ARC eye VOT API
- 인쇄
- PDF
ARC eye VOT API
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
개요
ARC eye Visual Object Tracking (VOT) API 는 추정할 오브젝트가 촬영된 이미지를 전달하여 이미지에서 오브젝트를 검출한 결과와 포즈를 추정한 결과를 반환합니다.
API 준비
VOT앱과 콘솔을 통해 오브젝트를 변환하고 API 를 배포합니다. 자세한 내용은 사용가이드 를 참조하세요.
요청
메서드 | 요청 URI |
---|---|
POST | ARC eye > API > API 연동 키 확인 의 InvokeURL 로 호출 |
요청 헤더
이름 | 설명 |
---|---|
X-ARCEYE-SECRET | ARC eye > API > API 연동 키 확인 의 Secret Key 사용 |
Content-Type | multipart/form-data |
요청 바디
필드이름 | 필수여부 | 데이터유형 | 설명 | 제약사항 |
---|---|---|---|---|
image | Y | file | 오브젝트 검출을 수행할 RGB 이미지 | jpg, png |
uuid | Y | string | 이미지를 촬영한 디바이스의 uuid | |
timestamp | Y | number | 이미지 촬영 시점의 timestamp | milliseconds |
intrinsic | Y | string | 오브젝트 포즈 추정에 사용된 카메라 intrinsic 파라미터 | |
distort | Y | string | 오브젝트 포즈 추정에 사용된 카메라 distortion 파라미터 | |
gravity | N | string | 오브젝트 포즈 추정에 사용된 중력 방향 (요청시 제공되지 않으면 extrinsic으로부터 계산된 값) | |
extrinsic | Y | string | 오브젝트 포즈 추정에 사용된 카메라 포즈 |
CURL example:
curl -X POST '{invokeUrl}' \
-H 'X-ARCEYE-SECRET: {secretKey}' \
-H 'Content-Type: multipart/form-data' \
-F 'image=@object.jpg \
-F 'uuid=a4315b63-2d64-11ef-becb-005056a70a22' \
-F 'timestamp=1718709558076' \
-F 'intrinsic=1524.3942260742188,0.0,539.0464782714844,0.0,1524.3942260742188,950.2188720703125,0.0,0.0,1.0' \
-F 'distort=0.0,0.0,0.0,0.0,0.0' \
-F 'extrinsic=-0.5501050024473961,-0.03056710354932507,-0.834535882070361,-0.2494854635652485-0.42819610313094764,0.8682865385146257,0.25045275861479593,-0.16543658916848714,0.7169606569023306,,0.495120328016226,-0.4907374830184501,0.189104661569504620.0,0.0,0.0,1.0'
응답
응답바디
필드이름 | 데이터유형 | 설명 |
---|---|---|
result | string | 응답결과 : "SUCCESS", "FAILURE" |
version | string | 버전 |
uuid | string | 요청시 사용된 디바이스 uuid |
timestamp | number | 요청시 사용된 이미지 생성시간 |
message | string | 검출 상태 메시지 |
status | boolean | 검출 상태 |
recvtime | number | Poser에서 Detector의 요청을 수신한 시점 |
running_time | object | 포즈 추정에 사용된 수행시간 |
candidate_obj_id | number | 가장 확률이 높고, 가장 카메라에서 가까운 오브젝트 id(index) |
objects | array | 포즈 추정에 사용된 오브젝트 정보 |
object[].projectid | string | 포즈 추정을 수행한 projectid |
object[].poserid | string | 포즈 추정을 수행한 videoid(objectid) |
object[].bbox2d | array(4,2) | 포즈 추정을 위해 제공된 detector의 검출 roi |
object[].corners3d | array(9,3) | 3D 공간에서 (0,0)을 중심으로한 3D object bounding box의 좌표 |
object[].corners2d | array(9,2) | 3D object bounding box에 대응되는 image 좌표 |
object[].intrinsic | array(3,3) | 포즈 추정에 사용된 카메라 intrinsic 파라미터 |
object[].distort | array(5) | 포즈 추정에 사용된 카메라 distortion 파라미터 |
object[].extrinsic | array(4,4) | 포즈 추정에 사용된 카메라 포즈 |
object[].gravity | array | 포즈 추정에 사용된 중력 방향 (요청시 제공되지 않으면 extrinsic으로부터 계산된 값) |
object[].rvec | array(3) | 카메라 기준 오브젝트의 rodrigues 회전 [θx,θy,θz] |
object[].tvec | array(3) | 카메라 기준 오브젝트의 position [tx,ty,tz] |
object[].size | array(3) | 오브젝트의 크기 정보 [width, height, depth] |
object[].status | boolean | 오브젝트의 포즈 추정 상태 |
object[].message | string | 오브젝트의 포즈 추정 상태 정보 |
응답 예시
검출성공
{
"result": "SUCCESS",
"version": "3.0.0-1",
"projectid": "b385865f-67f3-4341-aca5-166d20df952b",
"recvtime": 1712213062.4720848,
"timestamp": 1712213062.2513185,
"uuid": "933ec42646f8",
"status": True,
"message": "VOT_DETECTOR_SUCCESS",
"running_time": {
"poser": {"response": 248, "total": 252},
"processing": 457,
"recognizer": {"matching": 48, "searching": 18, "total": 68}
},
"candidate_obj_id": 0,
"objects": [
{
"bbox2d": [[677.0, 1472.0], [1466.0, 1472.0], [1466.0, 2861.0], [677.0, 2861.0]],
"conf_thresh": 0.3,
"corners2d": [[1048, 2119], [746, 2513], [726, 1473], [715, 2864], [686, 1564], [1297, 2500], [1335, 1477], [1408, 2842], [1472, 1568]],
"corners3d": [[0.0, 0.0, 0.0],
[-0.29031120781734804, -0.5381274223327637, -0.3174518426978675],
[-0.29031120781734804, 0.5381274223327637, -0.3174518426978675],
[-0.29031120781734804, -0.5381274223327637, 0.3174518426978675],
[-0.29031120781734804, 0.5381274223327637, 0.3174518426978675],
[0.29031120781734804, -0.5381274223327637, -0.3174518426978675],
[0.29031120781734804, 0.5381274223327637, -0.3174518426978675],
[0.29031120781734804, -0.5381274223327637, 0.3174518426978675],
[0.29031120781734804, 0.5381274223327637, 0.3174518426978675]],
"distort": [0.0, 0.0, 0.0, 0.0, 0.0],
"extrinsic": [[-0.2429226121477801, -0.2506293885132776, 0.9371091260471003, 0.0],
[-0.009911837278829036, 0.9666372782061301, 0.2559572774195017, 0.0],
[-0.9699950309094669, 0.05288933725909484, -0.23730225033748942, 0.0],
[0.012476532015234023, 0.021933435026800476, 0.024992155870001847, 1.0]],
"global_pose": [[1.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 1.0]],
"global_prob": 1.0,
"gravity": [-0.009911837278828987, 0.966637278206129, 0.2559572774195015],
"intrinsic": [[2834.314, 0.0, 1093.1019], [0.0, 2834.314, 1933.7009], [0.0, 0.0, 1.0]],
"message": "VOT_OBJECT_POSE_SUCCESS",
"obj_prob": 1.0,
"objid": "rookie",
"pose": [[0.9968414902687073, 0.014719659462571144, 0.0780409649014473, -0.03976171463727951],
[-0.006204552017152309, -0.9652349948883057, 0.26131001114845276, 0.16608235239982605],
[0.07917426526546478, -0.2609688639640808, -0.9620949625968933, 2.5332860946655273],
[0.0, 0.0, 0.0, 1.0]],
"poserid": "14dfc56c-a640-4281-9e95-aa49b61d51bd",
"projectid": "b385865f-67f3-4341-aca5-166d20df952b",
"rvec": [-2.8748595829506685, -0.006238192822651484, -0.1151763449620682],
"sim_prob": 0.9999999255277782,
"size": [0.5806224156346961, 1.0762548446655273, 0.634903685395735],
"status": True,
"tvec": [-0.03976171527617555, 0.1660823578702362, 2.5332861897611787],
"type": "normal"
}
]
}
검출실패
{
"result": "FAILURE",
"running_time": {
"processing": 2
},
"timestamp": 1718709558076,
"version": "3.0.0-1",
"candidate_obj_id": 0
}
에러코드
에러응답:
{
"code": "9999",
"message": "Unknown server error.",
"path": "path",
"product": "ARC eye",
"traceId": "9c1f55ac7d8341d792a922b2590c045f",
"timestamp": 1570776853475,
"status": "500"
}
에러코드 | HTTP 상태 | 설명 |
---|---|---|
0001 | 404 | Not Found |
0020 | 401 | Unauthorized |
0030 | 403 | Forbidden |
0100 | 40x | Invalid Parameter |
0101 | 409 | Duplicate |
1000 | 50x | Internal API Error |
1001 | 500 | Processing Error |
9999 | 500 | Unknown Error |
이 문서가 도움이 되었습니까?