Skip to content

Commit 6906281

Browse files
committed
v2.1.0 release
1 parent 6fd99c8 commit 6906281

File tree

26 files changed

+772
-180
lines changed

26 files changed

+772
-180
lines changed

DevGuide.md

Lines changed: 476 additions & 59 deletions
Large diffs are not rendered by default.

LICENSE.md

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,27 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626
SOFTWARE.
2727
```
2828

29+
2930
#### 2. TS-ANPR 엔진 바이너리
3031
TS-ANPR 엔진 바이너리는 **상용 라이선스**로 제공됩니다.
31-
아래 세 종류의 라이선스를 사용할 수 있습니다.
32-
33-
| 구분 | 기능 | 성능 | 기간 제한 |
34-
|:---------------------|:--------:|-----------------:|--------------:|
35-
| `TS-ANPR 무료 평가판` | vms | 무제한 | 30일 |
36-
| `TS-ANPR 서버` | vms | 무제한 | 라이선스에 준함 |
37-
| `TS-ANPR 프로` | vms | 최대 16 CPU 코어 | 라이선스에 준함 |
38-
| `TS-ANPR 기본` | v | 최대 8 CPU 코어 | 라이선스에 준함 |
39-
| `TS-ANPR IoT` | v | 최대 4 CPU 코어 | 라이선스에 준함 |
40-
41-
**-* 기능: v(차량 장착), m(다중 인식), s(서라운드 인식)*
42-
**-* 성능: CPU 코어 일부분만 사용하는 방식으로 차번인식 성능을 제한*
32+
라이선스 종류는 아래와 같습니다.
33+
34+
| 구분 | 기능<sup>(1)</sup> | 다중 인식 수 | 성능<sup>(2)</sup>| 기간 제한 |
35+
|:---------------------|:-------------------|--------------:|-----------------:|--------------:|
36+
| `TS-ANPR 무료 평가판` | `vmsdr` | 최대 15대 | 최대 16 CPU 코어 | 30일 |
37+
| `TS-ANPR 서버` | `vmsdr` | 주문형<sup>(3)</sup> | 제한없음 | 라이선스에 준함 |
38+
| `TS-ANPR 프로` | `vmsdr` | 최대 15대 | 최대 16 CPU 코어 | 라이선스에 준함 |
39+
| `TS-ANPR 객체인식` | `msd`<sup>(4)</sup> | 최대 15대 | 최대 8 CPU 코어 | 라이선스에 준함 |
40+
| `TS-ANPR 기본` | `vdr` | 최대 1대 | 최대 8 CPU 코어 | 라이선스에 준함 |
41+
| `TS-ANPR IoT` | `vdr` | 최대 1대 | 최대 4 CPU 코어 | 라이선스에 준함 |
42+
43+
- <sup>(1)</sup> 기능 구분
44+
- `v`: 번호판 차량 부착 여부 판단
45+
- `m`: 여러 대의 차량 번호판을 모두 인식 (다중 인식)
46+
- `s`: 360° 모든 각도의 차량에서 번호판 인식 (서라운드 인식)
47+
- `d`: 객체 인식
48+
- `r`: 인식된 객체(차량)의 차량 번호 인식
49+
- <sup>(2)</sup> CPU 코어 일부분만 사용하는 방식으로 차량 번호 인식 성능을 제한
50+
- <sup>(3)</sup> 15대부터 500대까지 구매 가능
51+
- <sup>(4)</sup> 객체 인식 기능만 있고 차량 번호 인식 기능은 없음
4352

README.md

Lines changed: 129 additions & 63 deletions
Large diffs are not rendered by default.

Usage.md

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,22 @@ anpr 엔진 파일을 설치할 디렉토리에 압축을 해제합니다.
88

99
##### x86 64비트 윈도우즈 (windows-x86_64)
1010
```
11-
/windows-x86_64 # 윈도우즈용 64bit (amd64) 바이너리 디렉토리
11+
/windows-x86_64 # 윈도우즈용 64bit 바이너리 디렉토리
1212
tsanpr.dll # 공유 라이브러리 (API 제공)
13-
lpvr-xxxxx.eon # 딥러닝 모델 #1
14-
lpocr_kr-xxxxx.eon # 딥러닝 모델 #2
15-
tshelper.exe # 도우미 앱 (라이선스 관리, Github 링크 제공)
13+
tsanpr-kr-xxxxx.eon # 딥러닝 모델
14+
tshelper.exe # 도우미 앱 (라이선스 관리)
1615
```
1716

1817
##### x86 32비트 윈도우즈 (windows-x86)
1918
```
2019
/windows-x86 # 윈도우즈용 32bit 바이너리 디렉토리
2120
tsanpr.dll # 공유 라이브러리 (API 제공)
22-
lpvr-xxxxx.eon # 딥러닝 모델 #1
23-
lpocr_kr-xxxxx.eon # 딥러닝 모델 #2
24-
tshelper.exe # 도우미 앱 (라이선스 관리, Github 링크 제공)
21+
tsanpr-kr-xxxxx.eon # 딥러닝 모델
22+
tshelper.exe # 도우미 앱 (라이선스 관리)
2523
```
2624

2725
`tshelper.exe` 파일을 실행하면 해당 컴퓨터에 `30일 평가판 라이선스`가 자동으로 설치되며, 이 후 30일 동안 `TS-ANPR 프로`의 모든 기능을 사용해 볼 수 있습니다.
28-
![](img/evalationLicense.jpg)
26+
![](img/trialLicense.png)
2927

3028
## 리눅스용
3129

@@ -44,9 +42,8 @@ tar -xvf ts-anpr-v*-linux-x86_64.tar.gz
4442
```
4543
/linux-x86_64
4644
libtsanpr.so # 공유 라이브러리 (API 제공)
47-
lpvr-xxxxx.eon # 딥러닝 모델 #1
48-
lpocr_kr-xxxxx.eon # 딥러닝 모델 #2
49-
tshelper # 도우미 앱 (라이선스 관리, Github 링크 제공)
45+
tsanpr-kr-xxxxx.eon # 딥러닝 모델
46+
tshelper # 도우미 앱 (라이선스 관리)
5047
```
5148

5249
##### ARM 64비트 리눅스 (linux-aarch64)
@@ -59,9 +56,8 @@ tar -xvf ts-anpr-v*-linux-aarch64.tar.gz
5956
```
6057
/linux-aarch64
6158
libtsanpr.so # 공유 라이브러리 (API 제공)
62-
lpvr-xxxxx.eon # 딥러닝 모델 #1
63-
lpocr_kr-xxxxx.eon # 딥러닝 모델 #2
64-
tshelper # 도우미 앱 (라이선스 관리, Github 링크 제공)
59+
tsanpr-kr-xxxxx.eon # 딥러닝 모델
60+
tshelper # 도우미 앱 (라이선스 관리)
6561
```
6662

6763

@@ -73,8 +69,8 @@ tar -xvf ts-anpr-v*-linux-aarch64.tar.gz
7369
```sh
7470
./tshelper
7571

76-
TS-ANPR v1.5.0 (linux-x86_64)
77-
(C) 2022-2023. TS Solution Corp. all rights reserved.
72+
TS-ANPR v2.1.0 (linux-x86_64)
73+
(C) 2022-2024. TS Solution Corp. all rights reserved.
7874

7975
https://github.com/bobhyun/TS-ANPR
8076

@@ -105,60 +101,63 @@ https://github.com/bobhyun/TS-ANPR
105101
```sh
106102
sudo ./tshelper -t
107103

108-
TS-ANPR v1.5.0 (linux-x86_64)
109-
(C) 2022-2023. TS Solution Corp. all rights reserved.
104+
TS-ANPR v2.1.0 (linux-x86_64)
105+
(C) 2022-2024. TS Solution Corp. all rights reserved.
110106

111107
https://github.com/bobhyun/TS-ANPR
112108

113109
새 라이선스가 설치되었습니다.
114110

115111
현재 라이선스:
116112
TS-ANPR 서버, 30일 평가판 (30일 남음)
113+
동시 인식 차량 수: 최대 15
117114
```
118115

119116
##### 1.2.2 정품 라이선스 (소프트웨어 라이선스)
120117
소프트웨어 라이선스는 시스템별 고유 ID를 식별하여 해당 시스템에서만 동작하는 라이선스를 발급받아 설치하는 방식으로 관리합니다.
121118

122-
###### 1) 라이선스 요청서 만들기
119+
###### (1) 라이선스 요청서 만들기
123120
아래 명령으로 생성된 라이선스 요청서 파일을 보내주시면 해당 시스템용 인증서 파일을 발급해 드립니다.
124121
```sh
125122
sudo ./tshelper -r
126123

127-
TS-ANPR v1.5.0 (linux-x86_64)
128-
(C) 2022-2023. TS Solution Corp. all rights reserved.
124+
TS-ANPR v2.1.0 (linux-x86_64)
125+
(C) 2022-2024. TS Solution Corp. all rights reserved.
129126

130127
https://github.com/bobhyun/TS-ANPR
131128

132129
현재 라이선스:
133130
TS-ANPR 서버, 30일 평가판 (30일 남음)
131+
동시 인식 차량 수: 최대 15
134132

135133
라이선스 요청서 파일이 저장되었습니다.
136134

137135
파일명: O20230414-TS-ANPR-8f5b0de4e9eabab6d727ab5c0d4c97e3.req
138136
```
139137

140-
###### 2) 인증서 설치하기
138+
###### (2) 인증서 설치하기
141139
발급받은 정품 인증서 파일은 아래 명령으로 설치합니다.
142140
```sh
143141
sudo ./tshelper -c C20230414-TS-ANPR-8f5b0de4e9eabab6d727ab5c0d4c97e3.cert
144142

145-
TS-ANPR v1.5.0 (linux-x86_64)
146-
(C) 2022-2023. TS Solution Corp. all rights reserved.
143+
TS-ANPR v2.1.0 (linux-x86_64)
144+
(C) 2022-2024. TS Solution Corp. all rights reserved.
147145

148146
https://github.com/bobhyun/TS-ANPR
149147

150148
새 라이선스가 설치되었습니다.
151149
현재 라이선스:
152150
TS-ANPR 서버, 정품 라이선스
151+
동시 인식 차량 수: 최대 15
153152
```
154153

155154
##### 1.2.3 정품 라이선스 (USB 동글 라이선스)
156155
USB 동글 라이선스는 시스템에 USB 동글을 장착하면 즉시 적용됩니다.
157156
단, 리눅스이 경우는 USB 동글을 최초로 삽입하기 전에 아래 명령을 한 번 실행한 후부터 자동 인식됩니다.
158157
```sh
159158
sudo ./tshelper -d
160-
TS-ANPR v1.5.0 (linux-x86_64)
161-
(C) 2022-2023. TS Solution Corp. all rights reserved.
159+
TS-ANPR v2.1.0 (linux-x86_64)
160+
(C) 2022-2024. TS Solution Corp. all rights reserved.
162161

163162
https://github.com/bobhyun/TS-ANPR
164163

examples/cpp/anprCpp1/anprCpp1/anprCpp1.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,32 @@ void readPixels(const char* imgfile, const char* outputFormat, const char* optio
6767

6868
void anprDemo1(const char* outputFormat)
6969
{
70+
// anpr
7071
readFile(IMG_PATH "licensePlate.jpg", outputFormat, "v");
7172
readFile(IMG_PATH "licensePlate.jpg", outputFormat, "");
7273
readFile(IMG_PATH "multiple.jpg", outputFormat, "vm");
7374
readFile(IMG_PATH "multiple.jpg", outputFormat, "");
7475
readFile(IMG_PATH "surround.jpg", outputFormat, "vms");
7576
readFile(IMG_PATH "surround.jpg", outputFormat, "");
77+
78+
// object detection
79+
readFile(IMG_PATH "surround.jpg", outputFormat, "dms");
80+
readFile(IMG_PATH "surround.jpg", outputFormat, "dmsr");
7681
}
7782

7883
void anprDemo2(const char* outputFormat)
7984
{
85+
// anpr
8086
readPixels(IMG_PATH "licensePlate.jpg", outputFormat, "v");
8187
readPixels(IMG_PATH "licensePlate.jpg", outputFormat, "");
8288
readPixels(IMG_PATH "multiple.jpg", outputFormat, "vm");
8389
readPixels(IMG_PATH "multiple.jpg", outputFormat, "");
8490
readPixels(IMG_PATH "surround.jpg", outputFormat, "vms");
8591
readPixels(IMG_PATH "surround.jpg", outputFormat, "");
92+
93+
// object detection
94+
readPixels(IMG_PATH "surround.jpg", outputFormat, "dms");
95+
readPixels(IMG_PATH "surround.jpg", outputFormat, "dmsr");
8696
}
8797

8898

examples/cpp/anprCpp2/anprCpp2/anprCpp2.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,22 +78,32 @@ void readPixels(const char* imgfile, const char* outputFormat, const char* optio
7878

7979
void anprDemo1(const char* outputFormat)
8080
{
81+
// anpr
8182
readFile(IMG_PATH "licensePlate.jpg", outputFormat, "v");
8283
readFile(IMG_PATH "licensePlate.jpg", outputFormat, "");
8384
readFile(IMG_PATH "multiple.jpg", outputFormat, "vm");
8485
readFile(IMG_PATH "multiple.jpg", outputFormat, "");
8586
readFile(IMG_PATH "surround.jpg", outputFormat, "vms");
8687
readFile(IMG_PATH "surround.jpg", outputFormat, "");
88+
89+
// object detection
90+
readFile(IMG_PATH "surround.jpg", outputFormat, "dms");
91+
readFile(IMG_PATH "surround.jpg", outputFormat, "dmsr");
8792
}
8893

8994
void anprDemo2(const char* outputFormat)
9095
{
96+
// anpr
9197
readPixels(IMG_PATH "licensePlate.jpg", outputFormat, "v");
9298
readPixels(IMG_PATH "licensePlate.jpg", outputFormat, "");
9399
readPixels(IMG_PATH "multiple.jpg", outputFormat, "vm");
94100
readPixels(IMG_PATH "multiple.jpg", outputFormat, "");
95101
readPixels(IMG_PATH "surround.jpg", outputFormat, "vms");
96102
readPixels(IMG_PATH "surround.jpg", outputFormat, "");
103+
104+
// object detection
105+
readPixels(IMG_PATH "surround.jpg", outputFormat, "dms");
106+
readPixels(IMG_PATH "surround.jpg", outputFormat, "dmsr");
97107
}
98108

99109
int loadEngineModule()

examples/csharp/anprCsharpDotnet1/anprCsharpDotnet1/Program.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,21 +72,31 @@ static void readPixels(string imgfile, string outputFormat, string options)
7272

7373
static void anprDemo1(string outputFormat)
7474
{
75+
// anpr
7576
readFile(IMG_PATH + "licensePlate.jpg", outputFormat, "v");
7677
readFile(IMG_PATH + "licensePlate.jpg", outputFormat, "");
7778
readFile(IMG_PATH + "multiple.jpg", outputFormat, "vm");
7879
readFile(IMG_PATH + "multiple.jpg", outputFormat, "");
7980
readFile(IMG_PATH + "surround.jpg", outputFormat, "vms");
8081
readFile(IMG_PATH + "surround.jpg", outputFormat, "");
82+
83+
// object detection
84+
readFile(IMG_PATH + "surround.jpg", outputFormat, "dms");
85+
readFile(IMG_PATH + "surround.jpg", outputFormat, "dmsr");
8186
}
8287
static void anprDemo2(string outputFormat)
8388
{
89+
// anpr
8490
readPixels(IMG_PATH + "licensePlate.jpg", outputFormat, "v");
8591
readPixels(IMG_PATH + "licensePlate.jpg", outputFormat, "");
8692
readPixels(IMG_PATH + "multiple.jpg", outputFormat, "vm");
8793
readPixels(IMG_PATH + "multiple.jpg", outputFormat, "");
8894
readPixels(IMG_PATH + "surround.jpg", outputFormat, "vms");
8995
readPixels(IMG_PATH + "surround.jpg", outputFormat, "");
96+
97+
// object detection
98+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "dms");
99+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "dmsr");
90100
}
91101

92102
static void Main(string[] args)

examples/go/anprGolang1.go

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,31 @@ func readPixels(imgfile, outputFormat, options string) {
9090
}
9191

9292
func anprDemo1(outputFormat string) {
93-
readFile(IMG_PATH+"licensePlate.jpg", outputFormat, "v")
94-
readFile(IMG_PATH+"licensePlate.jpg", outputFormat, "")
95-
readFile(IMG_PATH+"multiple.jpg", outputFormat, "vm")
96-
readFile(IMG_PATH+"multiple.jpg", outputFormat, "")
97-
readFile(IMG_PATH+"surround.jpg", outputFormat, "vms")
98-
readFile(IMG_PATH+"surround.jpg", outputFormat, "")
93+
// anpr
94+
readFile(IMG_PATH + "licensePlate.jpg", outputFormat, "v")
95+
readFile(IMG_PATH + "licensePlate.jpg", outputFormat, "")
96+
readFile(IMG_PATH + "multiple.jpg", outputFormat, "vm")
97+
readFile(IMG_PATH + "multiple.jpg", outputFormat, "")
98+
readFile(IMG_PATH + "surround.jpg", outputFormat, "vms")
99+
readFile(IMG_PATH + "surround.jpg", outputFormat, "")
100+
101+
// object detection
102+
readFile(IMG_PATH + "surround.jpg", outputFormat, "dms")
103+
readFile(IMG_PATH + "surround.jpg", outputFormat, "dmsr")
99104
}
100105

101106
func anprDemo2(outputFormat string) {
102-
readPixels(IMG_PATH+"licensePlate.jpg", outputFormat, "v")
103-
readPixels(IMG_PATH+"licensePlate.jpg", outputFormat, "")
104-
readPixels(IMG_PATH+"multiple.jpg", outputFormat, "vm")
105-
readPixels(IMG_PATH+"multiple.jpg", outputFormat, "")
106-
readPixels(IMG_PATH+"surround.jpg", outputFormat, "vms")
107-
readPixels(IMG_PATH+"surround.jpg", outputFormat, "")
107+
// anpr
108+
readPixels(IMG_PATH + "licensePlate.jpg", outputFormat, "v")
109+
readPixels(IMG_PATH + "licensePlate.jpg", outputFormat, "")
110+
readPixels(IMG_PATH + "multiple.jpg", outputFormat, "vm")
111+
readPixels(IMG_PATH + "multiple.jpg", outputFormat, "")
112+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "vms")
113+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "")
114+
115+
// object detection
116+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "dms")
117+
readPixels(IMG_PATH + "surround.jpg", outputFormat, "dmsr")
108118
}
109119

110120
func main() {

examples/javascript/nodejs/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,21 +112,31 @@ function readPixels(imgFile, outputFormat, options) {
112112
}
113113

114114
function anprDemo1(outputFormat) {
115+
// anpr
115116
readFile(path.join(IMG_PATH, "licensePlate.jpg"), outputFormat, "v");
116117
readFile(path.join(IMG_PATH, "licensePlate.jpg"), outputFormat, "");
117118
readFile(path.join(IMG_PATH, "multiple.jpg"), outputFormat, "vm");
118119
readFile(path.join(IMG_PATH, "multiple.jpg"), outputFormat, "");
119120
readFile(path.join(IMG_PATH, "surround.jpg"), outputFormat, "vms");
120121
readFile(path.join(IMG_PATH, "surround.jpg"), outputFormat, "");
122+
123+
// object detection
124+
readFile(path.join(IMG_PATH, "surround.jpg"), outputFormat, "dms");
125+
readFile(path.join(IMG_PATH, "surround.jpg"), outputFormat, "dmsr");
121126
}
122127

123128
function anprDemo2(outputFormat) {
129+
// anpr
124130
readPixels(path.join(IMG_PATH, "licensePlate.jpg"), outputFormat, "v");
125131
readPixels(path.join(IMG_PATH, "licensePlate.jpg"), outputFormat, "");
126132
readPixels(path.join(IMG_PATH, "multiple.jpg"), outputFormat, "vm");
127133
readPixels(path.join(IMG_PATH, "multiple.jpg"), outputFormat, "");
128134
readPixels(path.join(IMG_PATH, "surround.jpg"), outputFormat, "vms");
129135
readPixels(path.join(IMG_PATH, "surround.jpg"), outputFormat, "");
136+
137+
// object detection
138+
readPixels(path.join(IMG_PATH, "surround.jpg"), outputFormat, "dms");
139+
readPixels(path.join(IMG_PATH, "surround.jpg"), outputFormat, "dmsr");
130140
}
131141

132142
(function () {

examples/pascal/delphi/anprDelphi.dpr

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ begin
9595
| | |
9696
| | |
9797
| | |
98-
스캔 방향 | | |
98+
스캔 방향 | | |
9999
| |
100100
이미지 첫라인 시작 주소 -> +-------------------------------+
101101
}
@@ -117,22 +117,32 @@ end;
117117

118118
procedure anprDemo1(outputFormat: string);
119119
begin
120+
// anpr
120121
readFile(IMG_PATH + 'licensePlate.jpg', outputFormat, 'v');
121122
readFile(IMG_PATH + 'licensePlate.jpg', outputFormat, '');
122123
readFile(IMG_PATH + 'multiple.jpg', outputFormat, 'vm');
123124
readFile(IMG_PATH + 'multiple.jpg', outputFormat, '');
124125
readFile(IMG_PATH + 'surround.jpg', outputFormat, 'vms');
125126
readFile(IMG_PATH + 'surround.jpg', outputFormat, '');
127+
128+
// object detection
129+
readFile(IMG_PATH + 'surround.jpg', outputFormat, 'dms');
130+
readFile(IMG_PATH + 'surround.jpg', outputFormat, 'dmsr');
126131
end;
127132

128133
procedure anprDemo2(outputFormat: string);
129134
begin
135+
// anpr
130136
readPixels(IMG_PATH + 'licensePlate.jpg', outputFormat, 'v');
131137
readPixels(IMG_PATH + 'licensePlate.jpg', outputFormat, '');
132138
readPixels(IMG_PATH + 'multiple.jpg', outputFormat, 'vm');
133139
readPixels(IMG_PATH + 'multiple.jpg', outputFormat, '');
134140
readPixels(IMG_PATH + 'surround.jpg', outputFormat, 'vms');
135141
readPixels(IMG_PATH + 'surround.jpg', outputFormat, '');
142+
143+
// object detection
144+
readPixels(IMG_PATH + 'surround.jpg', outputFormat, 'dms');
145+
readPixels(IMG_PATH + 'surround.jpg', outputFormat, 'dmsr');
136146
end;
137147

138148
var

0 commit comments

Comments
 (0)