Go to documentation repository
Previous page Next page
GET http://IPaddress:port/prefix/archive/list/{VIDEOSOURCEID}
{VIDEOSOURCEID} − 세 부분으로 구성된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
요청 예시:
GET http://127.0.0.1:80/archive/list/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0
응답 예시:
{ "archives" : [ { "default" : true, "name" : "hosts/SERVER1/MultimediaStorage.AliceBlue/MultimediaStorage" }, { "default" : false, "name" : "hosts/SERVER1/MultimediaStorage.AntiqueWhite/MultimediaStorage" } ] }
파라미터 | 설명 |
---|---|
default | true − 기본 아카이브입니다. false – 기본 아카이브가 아닙니다. |
name | 아카이브 이름 |
GET http://IPaddress:port/prefix/archive/contents/intervals/{VIDEOSOURCEID}/{ENDTIME}/{BEGINTIME} – BEGINTIME에서 시작하여 ENDTIME에서 끝나는 아카이브 내용 가져오기
{VIDEOSOURCEID} – 세 부분으로 구성된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
BEGINTIME이 지정되지 않으면 무한 미래로 간주됩니다. ENDTIME이 지정되지 않으면 무한 과거로 간주됩니다. "past"와 "future"라는 단어를 사용하여 무한 과거와 무한 미래를 설정할 수도 있습니다.
간격 시퀀스는 지정된 BEGINTIME과 ENDTIME 사이의 비율에 해당합니다 (BEGINTIME<ENDTIME이면 오름차순, ENDTIME<BEGINTIME이면 내림차순). 간격의 시작과 끝 지점은 일반적인 순서로 반환됩니다. 즉, 간격 시작 시간이 간격 끝 시간보다 작거나 같아야 합니다.
시간은 YYYYMMDDTHHMMSS 형식으로 설정되며 UTC+0 시간대에 맞추어야 합니다.
파라미터 | 필수 | 설명 |
---|---|---|
limit | No | 응답에 포함될 간격의 수. 기본값은 100입니다. |
scale | No | 두 간격이 서로 다른 간격으로 처리되기 위한 최소 시간 간격(병합되지 않음), 기본값은 0입니다. |
archive | No | 간격을 가져올 아카이브의 이름입니다. 지정하지 않으면 기본 아카이브에서 간격이 가져옵니다. |
요청 예시:
GET http://127.0.0.1:80/archive/contents/intervals/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0/past/future
응답 예시:
{ "intervals": [ { "begin": "20200512T105111.089000", "end": "20200521T121106.032000" }, { "begin": "20200430T052909.842000", "end": "20200430T063733.242000" } ], "more": true }
파라미터 | 설명 |
---|---|
intervals | 간격을 포함하는 배열 Note 시간은 UTC 형식으로 반환됩니다. |
more | true – 서버가 제한(limit 매개변수)을 초과하여 모든 간격을 반환하지 않았습니다. false – 서버가 지정된 시간 간격에서 모든 간격을 반환했습니다. |
GET http://IP address:port/prefix/archive/statistics/depth/{VIDEOSOURCEID}—아카이브 깊이에 대한 정보를 가져옵니다.
{VIDEOSOURCEID}—세 가지 구성 요소로 된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
파라미터 | 필수 | 설명 |
---|---|---|
archive | No | 요청에서 아카이브 목록을 가져오는 데 사용된 아카이브의 이름 (아카이브 내용 가져오기 참조). 지정되지 않으면 기본 아카이브가 사용됩니다. |
threshold | No | 아카이브에 기록된 레코드 간의 최대 간격 기간. 레코드 간의 간격이 임계값(threshold) 파라미터 값을 초과하면 레코드는 분리된 것으로 간주되며 새 간격이 형성됩니다. 임계값(threshold) 파라미터는 일(day) 단위로 설정되며, 기본값은 1일입니다. |
샘플 요청 1:
GET http://127.0.0.1:80/archive/statistics/depth/SERVER1/DeviceIpint.23/SourceEndpoint.video:0:0
샘플 응답:
{ "start": "20160823T141333.778000" ,"end": "20160824T065142" }
샘플 요청 2:
GET http://127.0.0.1:80/archive/statistics/depth/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0?archive=hosts/SERVER1/MultimediaStorage.AliceBlue/MultimediaStorage
샘플 응답:
{ "start": "20210910T070448.179000" ,"end": "20210910T072838" }
파라미터 | 설명 |
---|---|
start | 간격 의 시작 시간 |
end | 간격의 끝 시간 |
샘플 요청 3:
{ "start": "20230506T125443.056000" ,"end": "20230804T065741.643000" }
GET http://IP address:port/prefix/archive/statistics/capacity/{VIDEOSOURCEID}/{ENDTIME}/{BEGINTIME}—BEGINTIME에서 ENDTIME까지 특정 카메라 아카이브의 녹화 용량에 대한 정보를 가져옵니다.
Note
ENDTIME과 BEGINTIME 구문은 아카이브 내용 가져오기에서 설명된 대로입니다.
파라미터 | 필수 | 설명 |
---|---|---|
archive | No | GET 요청을 통해 아카이브 목록을 가져올 때 사용된 아카이브 이름 (아카이브 내용 가져오기 참조). 지정하지 않으면 기본 아카이브가 사용됩니다. |
샘플 요청:
GET http://127.0.0.1:80/archive/statistics/capacity/SERVER1/DeviceIpint.23/SourceEndpoint.video:0:0/past/future?archive=hosts/SERVER1/MultimediaStorage.AntiqueWhite/MultimediaStorage
샘플 응답:
{ "size": 520093696 ,"duration": 32345 }
파라미터 | 설명 |
---|---|
size | 지정된 기간 내 아카이브 크기 (바이트 단위) |
duration | 지정된 기간 내 아카이브 지속 시간 (초 단위) Attention! 정확한 값을 계산하는 것이 고성능 프로세스이므로 값은 대략적으로 계산되며 오차 범위는 몇 퍼센트일 수 있습니다. |
{HOSTNAME} − 서버 이름
Note
NDTIME과 BEGINTIME 구문은 Get MM archive contents 섹션에 설명되어 있습니다.
파라미터 | 필수 | 설명 |
---|---|---|
archive | No | 아카이브 목록을 가져오기 위한 요청에서 아카이브 이름 (아카이브 내용 가져오기 참조). |
health | No | 0 − 아카이브 손상 있음, 1 − 아카이브 손상 없음 |
Important!
요청에 아카이브 또는 상태 파라미터가 포함되지 않은 경우, 응답에는 이들 파라미터의 모든 값이 포함됩니다.
샘플 요청:
GET http://127.0.0.1:80/archive/health/SERVER/past/future?archive=hosts/SERVER/MultimediaStorage.AliceBlue/MultimediaStorage&health=0
샘플 응답:
{ "events" : [ { "data" : { "archive" : "D:/archiveAliceBlue.afs", "health" : 0 }, "timestamp" : "20180907T101637.361014" }, { "data" : { "archive" : "D:/archiveAliceBlue.afs", "health" : 0 }, "timestamp" : "20180907T102726.750134" } ] }
여기서,
timestamp − 아카이브 손상 탐지 시간 (UTC +0)
Important!
오직 x64 서버에서만 오디오를 가져올 수 있습니다.
MJPEG 형식으로 오디오를 가져올 수 없습니다.
GET http://IPaddress:port/prefix/archive/media/{VIDEOSOURCEID}/{STARTTIME}
{VIDEOSOURCEID} − 3부 구성 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
ISO 형식의 시간. 시간대는 UTC+0으로 설정합니다.
파라미터 | 필수 | 설명 |
---|---|---|
speed | No | 재생 속도, 값은 음수일 수 있습니다. |
format | No | 파라미터 값은 'mjpeg', 'rtsp', 'mp4', 'hls'입니다. 형식이 지정되지 않거나 인식되지 않으면 기본적으로 'rtsp'가 선택되며, 추가 인코딩을 방지하기 위해 서버에서 네이티브 형식을 선택합니다. 클라이언트가 네이티브 형식을 지원하지 않으면 서버에서 WebM 형식을 선택합니다. |
id | No | 아카이브 스트림의 고유 식별자 (선택 사항). 스트림 정보를 가져오거나 스트림을 제어하는 데 사용됩니다. |
w h | No | w – 프레임 너비, h – 프레임 높이 |
fr | No | fps. Important! 이 파라미터는 MJPEG 비디오에만 해당됩니다. |
enable_token_auth | No | 비디오 스트림에 대한 서명된 링크를 가져옵니다 enable_token_auth − 토큰을 통한 인증 활성화 = 1. valid_token_hours − 서명 유효 시간 (시간 단위). 최대 값은 1주일이며, 기본 값은 12시간입니다. |
valid_token_hours | No |
샘플 요청:
GET http://127.0.0.1:80/archive/media/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/20110608T060141.375?format=rtsp&speed=1&w=640&h=480&enable_token_auth=1&valid_token_hours=1
Important!
HLS 아카이브 비디오는 응답을 받은 후 30초 이내에 사용 가능합니다.
샘플 응답:
{ "http": { "description": "RTP/RTSP/HTTP/TCP", "path": "archive/hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/20110608T060141.375000?speed=1&id=a865fcea-cfe6-44a1-bf7b-9e6a94c44a53&exp=20200525T171234&nonce=1&hmac=wVlyHvZkB2TnqftTfYugtwmZ7g8=", "port": "8554" }, "httpproxy": { "description": "RTP/RTSP/HTTP/TCP Current Http Port", "path": "rtspproxy/archive/hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/20110608T060141.375000?speed=1&id=a865fcea-cfe6-44a1-bf7b-9e6a94c44a53&exp=20200525T171234&nonce=2&hmac=BVICx8NVV4yijwqc0Q6Xzji41Rg=" }, "rtsp": { "description": "RTP/UDP or RTP/RTSP/TCP", "path": "archive/hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0/20110608T060141.375000?speed=1&id=a865fcea-cfe6-44a1-bf7b-9e6a94c44a53&exp=20200525T171234&nonce=1&hmac=wVlyHvZkB2TnqftTfYugtwmZ7g8=", "port": "554" } }
스트림에 ID를 할당하여 해당 스트림에 대한 정보를 받을 수 있습니다.
http://IPaddress:port/prefix/archive/media/VIDEOSOURCEID/STARTTIME/20140723T120000.000?format=rtsp&speed=1&w=640&h=480&id=f03c6ccf-b181-4844-b09c-9a19e6920fd3
기타 값들도 사용할 수 있으며, 라틴 문자와 숫자로 구성됩니다. UUID 함수를 사용하는 것이 권장됩니다 (고유 식별자 가져오기 참고).
GET rtsp://login:password@IPaddress:554/archive/hosts/SERVER1/DeviceIpint.0/SourceEndpoint.video:0:0/20160907T050548.723000Z?speed=1
Speed 파라미터는 필수입니다: 재생 속도.
예:
ffplay.exe -v debug "http://login:password@IP-Address:80/archive/media/SERVER1/DeviceIpint.4/SourceEndpoint.video:0:0/20170112T113526?w=1600&h=0&speed=1".
ffplay -rtsp_transport http "rtsp://login:password@IPaddress:8554/rtspproxy/archive/hosts/SERVER1/DeviceIpint.4/SourceEndpoint.video:0:0/20170115T113526".
For VLC: GET rtsp://login:password@Iaddress:8554/rtspproxy/archive/hosts/SERVER1/DeviceIpint.4/SourceEndpoint.video:0:0/20170115T113526
H.264 아카이브 비디오를 가져오려면 RTSP 프로토콜을 사용합니다.
GET rtsp://login:password@IP-Address:554/archive/hosts/SERVER1/DeviceIpint.4/SourceEndpoint.video:0:0/20170112T113526
또는 RTSP를 HTTP로 터널링하여 사용할 수 있습니다.
GET rtsp://login:password@IP-Address:80/rtspproxy/archive/hosts/SERVER1/DeviceIpint.4/SourceEndpoint.video:0:0/20170115T113526
{HOSTNAME} − 서버 이름
Note
ENDTIME과 BEGINTIME 구문은 Get MM archive contents 섹션에 설명되어 있습니다.
파라미터 | 필수 | 설명 |
---|---|---|
threshold | No | 지정된 수만큼 결과가 오프셋됩니다. 예를 들어, offset=0인 쿼리가 100개의 결과를 반환했다면, 다음 결과를 얻으려면 offset=100으로 쿼리를 실행해야 합니다. 두 번째 쿼리가 250개의 결과를 반환했다면, 다음 결과를 얻으려면 offset=350으로 쿼리를 실행해야 합니다. |
limit | No | 받은 북마크 한도. 기본값은 100입니다. |
샘플 요청:
GET http://127.0.0.1:80/archive/contents/bookmarks/Server1/future/past
응답 요청:
{ "archives": [ { "friendly_name": "AliceBlue", "storage": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" } ], "cameras": [ { "endpoint": "hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0", "friendly_name": "Camera" } ], "events": [ { "archBegin": "2019-03-19T10:06:54.295Z", "archEnd": "2019-03-19T13:02:41.243Z", "begins_at": "20190319T114843.000", "boundary": "((0.4989775;0.4169492);(75.49898;13.41695))", "comment": "comment", "endpoint": "hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0", "ends_at": "20190319T115638.000", "geometry": "f49fa526-c320-404a-9da2-7a090759a717;None;147", "group_id": "b686e57c-a4e8-44dd-b17e-8c1b805a1b6e", "id": "7843d488-67e2-4140-ab17-0016e4ba22bc", "is_protected": false, "storage_id": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "timestamp": "20190319T130332.110491", "user_id": "root" }, { "begins_at": "20190319T121747.999", "boundary": "((0.4989775;0.4169492);(75.49898;13.41695))", "comment": "protected", "endpoint": "hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0", "ends_at": "20190319T123101.145", "geometry": "4cbf8979-4234-4a9a-9838-3026bd4ec496;None;147", "group_id": "2e184409-ed77-41bb-85d1-92d78d35c882", "id": "a792a895-00fd-48f9-9bd4-99e572f1579d", "is_protected": true, "storage_id": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "timestamp": "20190319T130339.722000", "user_id": "root" } ]
파라미터 | 설명 |
---|---|
archives | 북마크를 포함하는 아카이브 배열 |
cameras | 북마크된 카메라 배열 |
begins_at | 북마크 시작 및 끝에 해당하는 항목 |
ends_at | |
comment | 코멘트 |
endpoint | 출처 |
is_protected | 값이 true이면 해당 기록은 덮어쓰기로부터 보호됩니다 (FIFO 덮어쓰기로부터 영상 보호 참조). |
storage_id | 아카이브 |
timestamp | 북마크 추가 날짜 |
user id | 북마크를 추가한 사용자 |
요청 본문에는 GET 요청의 데이터(아카이브에서 북마크 가져오기 참조)와 hostname 매개변수가 포함되어야 합니다.
[ { "archBegin": "2019-03-19T10:06:54.295Z", "archEnd": "2019-03-19T13:02:41.243Z", "begins_at": "20190319T114843.000", "boundary": "((0.4989775;0.4169492);(75.49898;13.41695))", "comment": "comment_new", "endpoint": "hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0", "ends_at": "20190319T115638.000", "geometry": "f49fa526-c320-404a-9da2-7a090759a717;None;147", "group_id": "b686e57c-a4e8-44dd-b17e-8c1b805a1b6e", "id": "7843d488-67e2-4140-ab17-0016e4ba22bc", "is_protected": false, "storage_id": "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage", "timestamp": "20190319T130332.110491", "user_id": "root", "hostname": "Server1" } ]
다음 매개변수를 편집할 수 있습니다.
ends_at,
comment,
is_protected,
endpoint,
storage_id.
댓글이나 북마크를 삭제하려면 endpoint와 storage_id 매개변수 값을 지워야 합니다.
[ { "archBegin": "2019-03-19T10:06:54.295Z", "archEnd": "2019-03-19T13:02:41.243Z", "begins_at": "20190319T114843.000", "boundary": "((0.4989775;0.4169492);(75.49898;13.41695))", "comment": "comment_new", "endpoint": "", "ends_at": "20190319T115638.000", "geometry": "f49fa526-c320-404a-9da2-7a090759a717;None;147", "group_id": "b686e57c-a4e8-44dd-b17e-8c1b805a1b6e", "id": "7843d488-67e2-4140-ab17-0016e4ba22bc", "is_protected": false, "storage_id": "", "timestamp": "20190319T130332.110491", "user_id": "root", "hostname": "Server1" } ]
요청 본문에는 begins_at, ends_at, comment, is_protected, endpoint 및 storage_id 매개변수가 포함된 JSON이 있어야 합니다. (아카이브에서 북마크 가져오기 참조).
[ { "begins_at":"20190226T102523.000", "comment":"text", "ends_at":"20190226T102646.000", "is_protected":true, "endpoint":"hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage_id":"hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" } ]
그룹 북마크 생성을 위한 JSON은 다음과 같습니다.
[ { "begins_at":"20190226T102523.000", "comment":"text", "ends_at":"20190226T102646.000", "is_protected":true, "endpoint":"hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0", "storage_id":"hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" }, { "endpoint":"hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0", "storage_id":"hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage" } ]
그룹 북마크는 여러 카메라에 연결되지만 begins_at, ends_at, comment 및 is_protected 매개변수는 첫 번째 요소 배열에서 가져옵니다.
Attention!
GET 요청에서 그룹 북마크(아카이브에서 북마크 가져오기 참조)는 서로 다른 endpoint와 storage_id 매개변수를 가진 여러 개의 북마크처럼 보입니다.
그룹 북마크를 편집하려면(북마크 편집 참조) 모든 개별 북마크를 동시에 편집해야 하며 endpoint와 storage_id를 제외한 다른 모든 매개변수가 일치하는지 확인해야 합니다.
파라미터 | 필수 | 설명 |
---|---|---|
begins_at | Yes | 매개변수는 생성된 북마크와 정확히 일치해야 합니다 (아카이브에서 북마크 가져오기 참조). |
ends_at | Yes | |
storage_id | Yes | |
endpoint | Yes |
북마크 자체는 삭제되지 않습니다.
샘플 요청:
DELETE http://127.0.0.1:80/archive/contents/bookmarks/?begins_at=20190320T114213.645&ends_at=20190320T114700.481&storage_id=hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage&endpoint=hosts/Server1/DeviceIpint.7/SourceEndpoint.video:0:0
Method: POST http://IP-Address:port/prefix/search/{auto|face|vmda|stranger|heatmap}/{DETECTORID}/{BEGINTIME/ENDTIME}
Note
ENDTIME과 BEGINTIME 구문은 아카이브 내용 가져오기 섹션에 설명되어 있습니다.
단일 컴퓨터에서의 검색 요청은 auto와 face 검색에 대해서도 지원되며, 요청 구조는 다음과 같습니다.
http://localhost/prefix/search/(auto|face)/{HOSTNAME}/{BEGINTIME}/{ENDTIME}
HOSTNAME – Server name.
Method: POST http://IP-Address:port/prefix/search/{auto|face|vmda|stranger|heatmap}/{BEGINTIME/ENDTIME}
이 검색 유형은 항상 POST 본문에 JSON을 수락하며, 최소한 다음 형식의 섹션을 포함해야 합니다.
"sources": [ "hosts/AVDetector.1/EventSupplier" ]
색 요청이 수행될 때, JSON에는 base64 형식의 이미지가 포함되어야 합니다.
{ "sources": [ "hosts/AVDetector.1/EventSupplier", "hosts/AVDetector.2/EventSupplier" ], "image" : "base64 encoded image" }
요청은 오류 또는 다음과 같은 응답을 반환합니다.
HTTP/1.1 202 Accepted Connection: Close Location: /search/(auto|face|vmda|stranger|heatmap)/GUID Cache-Control: no-cache
수락 코드(Accepted)를 받았다고 해서 검색이 성공적으로 실행된다는 보장은 없습니다. 이 코드는 명령이 처리 중임을 나타낼 뿐입니다.
파라미터 | 설명 |
---|---|
Location | 검색 결과에 대한 향후 접근을 위한 식별자. 예: /search/vmda/3dc15b75-6463-4eb1-ab2d-0eb0a8f54bd3 |
오류 코드:
오류 코드 | 설명 |
---|---|
400 | 잘못된 요청 |
500 | 내부 서버 오류 |
/search/(auto|face|vmda)/GUID 부분은 POST 명령의 결과입니다 (검색 요청 참조).
파라미터 | 필수 | 설명 |
---|---|---|
limit | No | 요청에 의해 반환되는 최대 이벤트 수. 기본값은 uint32_t::max()입니다. |
offset | No | 결과는 지정된 수만큼 오프셋됩니다. 예를 들어, offset=0으로 쿼리를 실행하여 100개의 결과를 반환받았다면, 다음 결과를 얻기 위해서는 offset=100으로 쿼리를 실행해야 합니다. 만약 두 번째 쿼리에서 250개의 결과가 반환되었다면, 다음 결과를 얻기 위해서는 offset=350으로 쿼리를 실행해야 합니다. |
샘플 요청:
http://127.0.0.1:80/search/face/49ded146-3912-4a2f-8e70-6ecfbcdacdea/result?offset=0&limit=10
반환된 결과는 검색 유형에 따라 달라집니다.
요청은 두 가지 성공적인 상태를 반환할 수 있습니다.
상태 | 설명 |
---|---|
206 | 검색이 끝나지 않았습니다. 상태 코드 200이 반환될 때까지 검색 결과 요청을 반복하십시오. 반복 요청 사이에 지연 시간을 설정하여 계산 부담을 줄이십시오. |
200 | 검색이 완료되었습니다. |
오류 코드:
오류 | 설명 |
---|---|
400 | 잘못된 요청입니다. |
404 | 오프셋 값이 현재 결과 수보다 크거나 요청한 검색 ID (GUID)를 찾을 수 없습니다. |
Method: DELETE http://IP-adress:port/search/(auto|face|vmda)/GUID
/search/(auto|face|vmda)/GUID GUID 부분은 POST 명령의 결과입니다 (검색 요청 참조).
이 명령은 검색 작업을 종료하고 리소스를 해제합니다. 명령 실행 후에는 검색 결과를 사용할 수 없습니다.
오류 코드:
오류 | 설명 |
---|---|
400 | 잘못된 요청 |
Note
모든 얼굴 탐지 트리거는 t_json_event 데이터베이스 테이블에 저장됩니다.
t_face_vector 테이블은 탐지 도구에 의해 인식된 얼굴의 벡터를 저장합니다.
t_face_listed 테이블은 사람 목록에 추가된 얼굴 이미지를 저장합니다.
파라미터 | 필수 | 설명 |
---|---|---|
accuracy | No | accuracy 매개변수는 [0, 1] 범위의 인식률(1 – 완전 일치)입니다. 이 매개변수는 검색 라인 또는 요청 본문에 추가로 지정할 수 있습니다. 그렇지 않으면 기본값 0.9가 사용됩니다. Attention! 요청 본문에 지정된 매개변수 값이 더 높은 우선순위를 갖습니다. |
Attention!
POST 요청의 본문이 비어 있으면, 검색은 인식된 얼굴에 대한 모든 결과를 반환합니다. 이 경우 accuracy 매개변수 값은 0이 됩니다.
샘플 요청:
POST http://127.0.0.1:80/search/face/SERVER1/AVDetector.2/EventSupplier/past/future?accuracy=0.7
GET http://127.0.0.1:80/search/face/2e69ba76-23f1-4d07-a812-fee86e994b8e/result
샘플 응답:
{ "events" : [ { "accuracy" : 0.90591877698898315, "origin" : "hosts/SERVER1/DeviceIpint.2/SourceEndpoint.video:0:0", "position" : { "bottom" : 0.10694444444444445, "left" : 0.69687500000000002, "right" : 0.74687500000000007, "top" : 0.018055555555555554 }, "timestamp" : "20160914T085307.499000" }, { "accuracy" : 0.90591877698898315, "origin" : "hosts/SERVER1/DeviceIpint.2/SourceEndpoint.video:0:0", "position" : { "bottom" : 0.10694444444444445, "left" : 0.69687500000000002, "right" : 0.74687500000000007, "top" : 0.018055555555555554 }, "timestamp" : "20160914T085830.392000" } ] }
파라미터 | 설명 |
---|---|
origin | 분석된 비디오 스트림을 가져올 카메라 채널 |
timestamp | 검출 도구로 얼굴이 감지된 비디오 프레임의 타임스탬프 |
accuracy | [0, 1] 범위의 인식 정확도, 1은 완전 일치를 의미 |
position | 비디오 프레임에서 얼굴을 둘러싼 프레임 경계의 좌표 |
검색 시작에 사용되는 POST 요청(검색 요청 참조)은 다음 JSON을 포함해야 합니다.
{ "plate": "mask" }
plate 매개변수는 검색 마스크를 설정합니다. 마스크 형식은 GUI에서 사용되는 형식에 해당합니다 (LPR 검색 참조).
Attention!
POST 요청의 본문이 비어 있으면, 검색은 인식된 모든 번호판에 대한 결과를 반환합니다.
파라미터 | 필수 | 설명 |
---|---|---|
result_type | No | result_type=full 은 상세한 응답을 의미합니다. |
샘플 요청:
POST http://127.0.0.1:80/search/auto/SERVER1/AVDetector.2/EventSupplier/past/future?result_type=full or POST http://127.0.0.1:80/search/auto/SERVER1/AVDetector.2/EventSupplier/past/future
GET http://127.0.0.1:80/search/auto/2e69ba76-23f1-4d07-a812-fee86e994b8e/result
샘플 응답:
{ "origin": "hosts/SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0", "plates": [ "О035КО97" ], "position": { "bottom": 0.86805555555555558, "left": 0.31805555555555554, "right": 0.49027777777777776, "top": 0.81944444444444442 }, "timestamp": "20190912T105500.925000" }
파라미터 | 설명 |
---|---|
origin | 분석된 비디오 스트림을 가져올 카메라 채널 |
timestamp | 검출 도구로 번호판이 감지된 프레임의 타임스탬프 |
plates | 추정된 가설 목록 |
position | 인식된 번호판 프레임의 좌표 |
상세 응답:
{ "events" : [ { "Direction" : 0, "Hypotheses" : [ { "OCRQuality" : 50, "PlateCountry" : "us", "PlateFull" : "E733XA97", "PlateRectangle" : [ 0.40104166666666669, 0.52941176470588236, 0.45000000000000001, 0.55147058823529416 ], "TimeBest" : "20180730T094220.010000" }, { "OCRQuality" : 32, "PlateCountry" : "us", "PlateFull" : "*E733X*9", "PlateRectangle" : [ 0.40104166666666669, 0.52941176470588236, 0.45000000000000001, 0.55147058823529416 ], "TimeBest" : "20180730T094220.010000" }, { "OCRQuality" : 38, "PlateCountry" : "us", "PlateFull" : "E733XA***", "PlateRectangle" : [ 0.40104166666666669, 0.52941176470588236, 0.45000000000000001, 0.55147058823529416 ], "TimeBest" : "20180730T094220.010000" } ], "TimeBegin" : "20180730T094219.610000", "TimeEnd" : "20180730T094220.050000", "detector_type" : "plateRecognized", "origin_id" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0", "phase" : 0, "timestamp" : "20180730T094220.010000", "ts_vector_body" : "E733XA97 EZERZER 7ONEZER 3TWOZER 3THRZER XFOUZER AFIVZER 9SIXZER 7SEVZER 8LENGTHZER *E733X*9 *ZERONE EONEONE 7TWOONE 3THRONE 3FOUONE XFIVONE *SIXONE 9SEVONE 8LENGTHONE E733XA*** EZERTWO 7ONETWO 3TWOTWO 3THRTWO XFOUTWO AFIVTWO *SIXTWO *SEVTWO *EIGTWO 9LENGTHTWO" },
Web-Socket을 통해 이벤트를 받기 위한 샘플 요청:
ws://root:root@localhost/events?schema=proto
파라미터 | 설명 |
---|---|
schema | schema=proto 는 자세한 응답을 의미합니다. |
자세한 샘플 응답:
{ "objects": [ { "body": { "@type": "type.googleapis.com/axxonsoft.bl.events.DetectorEvent", "details": [ { "autoRecognitionResultEx": { "direction": { "value": "Outgoing" }, "headlightsStatus": { "value": "Disabled" }, "hypotheses": [ { "country": "Denmark", "ocrQuality": 99, "plateFull": "CJ97139", "plateRectangle": { "h": 0.03703703703703709, "w": 0.067708333333333315, "x": 0.31302083333333336, "y": 0.96296296296296291 }, "plateState": "NA", "timeBest": "20230623T124816.295000" } ], "plateType": { "value": "EUnitedNations" }, "timeBegin": "2023-06-23T12:48:16.295Z", "timeEnd": "2023-06-23T12:48:16.295Z", "vehicleBrand": { "value": "Mercedes Benz" }, "vehicleClass": { "value": "Car" }, "vehicleColor": { "value": "Gray" }, "vehicleModel": { "value": "GLS Klasse" } } }, { "autoRecognitionResult": { "direction": "Outgoing", "headlightsStatus": "Disabled", "hypotheses": [ { "country": "Denmark", "ocrQuality": 99, "plateFull": "CJ97139", "plateRectangle": { "h": 0.03703703703703709, "w": 0.067708333333333315, "x": 0.31302083333333336, "y": 0.96296296296296291 }, "plateState": "NA", "timeBest": "20230623T124816.295000" } ], "plateType": "EUnitedNations", "timeBegin": "20230623T124816.295000", "timeEnd": "20230623T124816.295000", "vehicleBrand": "Mercedes Benz", "vehicleClass": "Car", "vehicleColor": "Gray", "vehicleModel": "GLS Klasse" } } ], "detectorDeprecated": "hosts/TEST/AVDetector.1/EventSupplier", "detectorExt": { "accessPoint": "hosts/TEST/AVDetector.1/EventSupplier", "friendlyName": "1.\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439 (RR)" }, "detectorsGroup": [ "DG_LPR_DETECTOR" ], "eventType": "plateRecognized", "guid": "d6650759-e89b-43dd-a610-459a6e421ccc", "nodeInfo": { "friendlyName": "TEST", "name": "TEST" }, "originDeprecated": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0", "originExt": { "accessPoint": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0", "friendlyName": "1.\u041a\u0430\u043c\u0435\u0440\u0430" }, "timestamp": "20230623T124816.295000" }, "eventName": "axxonsoft.bl.events.DetectorEvent", "eventType": "ET_DetectorEvent", "localization": { "text": "\u041a\u0430\u043c\u0435\u0440\u0430 \"1.\u041a\u0430\u043c\u0435\u0440\u0430\". \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \"1.\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439 (RR)\", \u041d\u043e\u043c\u0435\u0440 \"CJ97139\", \u0441\u0442\u0440\u0430\u043d\u0430 \"Denmark\", \u043a\u043b\u0430\u0441\u0441 \"\u0410\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\", \u0446\u0432\u0435\u0442 \"Gray\", \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \"Mercedes Benz\", \u043c\u043e\u0434\u0435\u043b\u044c \"GLS Klasse\", \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0444\u0430\u0440 \"\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u044b\" \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: \u0422\u0438\u043f \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 = \"\u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440\"" }, "requiredPermissions": { "requiredObjectPermissions": [ { "accessPoint": "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0", "cameraAccess": "CAMERA_ACCESS_ONLY_ARCHIVE" } ] }, "subjects": [ "hosts/TEST/DeviceIpint.1/SourceEndpoint.video:0:0", "hosts/TEST/AVDetector.1/EventSupplier" ] } ] }
파라미터 | 설명 |
---|---|
vehicleBrand | 차량 제조사 |
vehicleClass | 차량 종류 |
vehicleColor | 차량 색상 |
vehicleModel | 차량 모델 |
검색 요청에는 세 가지 논리적 부분이 있습니다.
검색 요청에는 세 가지 논리적 부분이 있습니다.
요청 유형 (queryType, 요청 유형 및 파라미터 참조)
지정된 요청 유형에 특화된 매개변수 (숫자, queryProperties, 추가 조건 참조)
추가 필터 조건 (objectProperties, 조건, 추가 조건 참조)
메타데이터 데이터베이스 언어로 된 직접 요청
{ "query": "figure fZone=polygon(0.4647676,0.3973333,0.7946027,0.5493333,0.8650675,0.7946666,0.4647676,0.7946666); figure fDir=(ellipses(-10000, -10000, 10000, 10000) - ellipses(-0, -0, 0, 0));set r = group[obj=vmda_object] { res = or(fZone((obj.left + obj.right) / 2, obj.bottom)) }; result = r.res;" }
Important!
입력 JSON에 생성자와 직접 요청 섹션이 모두 포함된 경우, 직접 요청이 우선합니다.
Important!
POST 요청의 본문이 비어 있으면, 검색은 모든 알람 인터벌을 반환합니다.
Note
offline analytics 데이터에서 검색을 수행하려면 다음 요청을 사용하세요.
POST /search/vmda/SERVER-NAME/OfflineAnalytics.c95ad5a581094845995ee28a7f097797/SourceEndpoint.vmda:AVDetector:1/past/future
이 요청은 Axxon One 아카이브가 삭제되었더라도 VMDA 메타데이터가 저장되어 있으면 수행됩니다.
객체 ID는 hosts/ 접두사 없이 지정해야 합니다.
유효한 요청: /search/vmda/SERVER-NAME/OfflineAnalytics...
유효하지 않은 요청: /search/vmda/hosts/SERVER-NAME/OfflineAnalytics...
검색 결과는 다음과 같은 JSON 응답입니다.
{ "intervals" : [ { "endTime" : "20210228T124302.313000", "positions" : [ { "bottom" : 0.60026908397674561, "left" : 0.42527302742004397, "right" : 0.48125132560729983, "top" : 0.50307014942169193 } ], "startTime" : "20210228T124256.673000" }, { "endTime" : "20210228T124259.513000", "positions" : [ { "bottom" : 0.45109353065490726, "left" : 0.41891927719116212, "right" : 0.4565316200256348, "top" : 0.34989043235778811 } ], "startTime" : "20210228T124256.673000" } ] }
여기서 Intervals는 검색 조건이 충족된 시간 인터벌의 집합입니다.
.
검색을 시작하려면 POST 요청을 사용합니다(검색 요청 참조). 검색 유형은 "낯선 얼굴(stranger)"으로 설정되며 요청 본문은 비어 있습니다.
다음 매개변수가 사용 가능합니다.
파라미터 | 필수 | 설명 |
---|---|---|
accuracy | No | 얼굴 유사도 수준을 [0,1] 범위 내에서 설정합니다(1은 완전 일치를 의미). 이 매개변수가 설정되지 않으면 기본값(0.9)이 사용됩니다. 비교된 얼굴이 특정 날짜에 카메라의 시야에 있었고 지정된 유사도 수준 이상으로 인식되었다면, 해당 얼굴은 그 날짜에 존재한 것으로 간주됩니다. 그렇지 않으면, 알고리즘은 이 얼굴이 그 날짜에 존재하지 않았다고 판단합니다. Important! 정확도 매개변수 값은 요청 본문에 지정할 수도 있습니다. 이 경우, 본문에 지정된 값이 검색 라인에서 지정된 값보다 우선 적용됩니다. |
threshold | No | 얼굴을 "낯선 얼굴"로 인식하기 위한 임계값을 정의합니다. 이 값은 0에서 1 사이로 설정되며, 얼굴이 "낯선 얼굴"로 간주되기 위한 결측 일수를 정의합니다: 30 - 30 * 임계값. 예를 들어, 0.8의 값은 "필요한 객체가 검색 영역 내에서 (30 - 30 * 0.8 = 6)일 이내에 나타났음을 의미합니다". 6일 이상 나타난 얼굴은 "익숙한 얼굴"로 정의되며, 그 외의 얼굴은 "낯선 얼굴"로 정의됩니다. Important! 임계값(threshold)과 연산자(op) 매개변수는 단독으로 사용될 수 없으며 반드시 함께 사용해야 합니다. 두 매개변수 중 하나라도 설정되지 않거나 잘못된 값이 지정되면 두 매개변수 모두 무시됩니다. |
op | No | 검색 방향을 정의합니다. 허용 가능한 값: lt – "익숙한 얼굴" 검색 (임계값(threshold) 매개변수 기반) gt – "낯선 얼굴" 검색 |
샘플 요청:
POST http://127.0.0.1:80/search/stranger/SERVER1/AVDetector.2/EventSupplier/past/future?accuracy=0.7
GET http://127.0.0.1:80/search/stranger/2e69ba76-23f1-4d07-a812-fee86e994b8e/result
샘플 응답:
{ "events" : [ { "rate" : 0.90591877698898315, "origin" : "hosts/SERVER1/DeviceIpint.2/SourceEndpoint.video:0:0", "position" : { "bottom" : 0.10694444444444445, "left" : 0.69687500000000002, "right" : 0.74687500000000007, "top" : 0.018055555555555554 }, "timestamp" : "20160914T085307.499000" }, { "rate" : 0.90591877698898315, "origin" : "hosts/SERVER1/DeviceIpint.2/SourceEndpoint.video:0:0", "position" : { "bottom" : 0.10694444444444445, "left" : 0.69687500000000002, "right" : 0.74687500000000007, "top" : 0.018055555555555554 }, "timestamp" : "20160914T085830.392000" } }
파라미터 | 설명명 |
---|---|
origin | 분석된 비디오 스트림을 가져올 카메라 채널 |
timestamp | 얼굴 인식 도구로 얼굴이 감지된 프레임의 타임스탬프 |
rate | 얼굴이 "낯선 얼굴"로 인식될 확률, [0,1] 범위의 값. 1은 완전한 낯선 얼굴을 의미합니다. |
position | 비디오 프레임에서 얼굴을 둘러싸는 프레임 경계의 좌표 |
검색을 시작하기 위해 사용되는 POST 요청 본문에는 검색된 얼굴의 바이너리 데이터가 JPEG 형식으로 포함되어야 합니다. 요청 자체는 두 가지 방법으로 표현될 수 있습니다:
POST http://IP-Address:port/prefix/faceAppearanceRate/{DETECTORID}/{BEGINTIME}/{ENDTIME}
DETECTORID – 엔드포인트 감지 도구의 3진 ID (자동 및 얼굴 검색의 경우 HOSTNAME/AVDetector.ID/EventSupplier, vmda의 경우 HOSTNAME/AVDetector.ID/SourceEndpoint.vmda, 검출 도구 목록 가져오기 참조).
Note
ENDTIME과 BEGINTIME 구문은 아카이브 내용 가져오기 섹션에 설명되어 있습니다.
POST http://IP-Address:port/prefix/faceAppearanceRate/{HOSTNAME}/{BEGINTIME}/{ENDTIME}
HOSTNAME – 서버 이름
파라미터 | 필수 | 설명 |
---|---|---|
accuracy | No | [0,1] 범위 내에서의 감지 정확도(1은 완전 일치를 의미). 이 매개변수가 설정되지 않으면 기본값(0.9)이 사용됩니다. |
샘플 요청:
POST http://127.0.0.1:80/faceAppearanceRate/SERVER1/AVDetector.2/EventSupplier/past/future?accuracy=0.7
샘플 응답:
{ "rate": 0.13333334028720856 }
파라미터 | 설명 |
---|---|
rate | 얼굴이 "낯선 얼굴"로 인식될 확률, [0,1] 범위의 값. 1은 완전한 낯선 얼굴을 의미합니다. |
DETECTORID – 엔드포인트 감지 도구의 3진 ID (자동 및 얼굴 검색의 경우 HOSTNAME/AVDetector.ID/EventSupplier, vmda의 경우 HOSTNAME/AVDetector.ID/SourceEndpoint.vmda , 검출 도구 목록 가져오기 참고).
Note
ENDTIME, BEGINTIME은 ISO 형식의 시간으로, 히트 맵 간격을 지정합니다.
ENDTIME과 BEGINTIME 구문은 아카이브 내용 가져오기 섹션에 설명되어 있습니다.
요청 본문에는 검색된 이미지의 크기가 포함될 수 있습니다.
{ "mask_size":{ "height":1080, "width":1920 } }
샘플 요청:
POST http://127.0.0.1:80/search/heatmap/SERVER1/AVDetector.2/SourceEndpoint.vmda/past/future
GET http://127.0.0.1:80/search/heatmap/35ff5989-42ee-4446-bfde-f91375df67d3/result
여기서 35ff5989-42ee-4446-bfde-f91375df67d3는 응답의 Location 필드에서 제공되는 GUID입니다.
샘플 응답:
Access-Control-Allow-Origin →* Cache-Control →no-cache Connection →Close Location →/search/heatmap/35ff5989-42ee-4446-bfde-f91375df67d3
GET http://IP Address:port/prefix/archive/calendar/{VIDEOSOURCEID}/{BEGINTIME}/{ENDTIME}
{VIDEOSOURCEID} – 3부 구성의 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참고). 예: "SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0".
Note
ENDTIME과 BEGINTIME 구문은 아카이브 내용 가져오기 섹션에 설명되어 있습니다.
파라미터 | 필수 | 설명 |
---|---|---|
archive | No | "hosts/SERVER1/MultimediaStorage.AliceBlue/MultimediaStorage" 형식의 아카이브 이름(아카이브 내용 가져오기 참고). 값이 지정되지 않으면 기본 아카이브가 검색에 사용됩니다. |
요청 예시:
GET http://127.0.0.1/archive/calendar/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0/20211028T120000/20211102T210000
응답 예시:
[ 3844368000000, 3844454400000, 3844540800000, 3844627200000, 3844713600000, 3844800000000 ]
응답은 밀리초 단위로 표현된 캘린더 날짜로 제공됩니다. 이 날짜는 1900년 1월 1일 0시 0분부터 계산됩니다. 이 예시에서는 날짜가 2021년 10월 28일부터 11월 2일까지입니다.