ARC eye VOT API
- Print
- PDF
ARC eye VOT API
- Print
- PDF
Article summary
Did you find this summary helpful?
Thank you for your feedback
Overview
The ARC eye Visual Object Tracking (VOT) API returns the result of detecting the object in the image and estimating its pose by passing an image of the object to be estimated.
Prepare API
Convert objects and deploy the API through the VOT app and console. For more information, see the User Guide.
Request
Method | Request URI |
---|---|
POST | Call with the InvokeURL of ARC eye > API > Check API integration key |
Request headers
Name | Description |
---|---|
X-ARCEYE-SECRET | Use the secret key of ARC eye > API > Check API integration key |
Content-Type | multipart/form-data |
Request body
Field name | Required | Data type | Description | Restrictions |
---|---|---|---|---|
image | Y | file | RGB image to perform object detection on | jpg, png |
uuid | Y | string | UUID of the device that took the image | |
timestamp | Y | number | Timestamp of when the image was taken | milliseconds |
intrinsic | Y | string | Camera intrinsic parameters used for object pose estimation | |
distort | Y | string | Camera distortion parameters used for object pose estimation | |
gravity | N | string | Gravity direction used for object pose estimation (calculated from extrinsic if not provided on request) | |
extrinsic | Y | string | Camera pose used for object pose estimation |
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'
Response
Response body
Field name | Data type | Description |
---|---|---|
result | string | Response result: "SUCCESS", "FAILURE" |
version | string | Version |
uuid | string | Device UUID used in the request |
timestamp | number | Image creation time used on request |
message | string | Detection status message |
status | boolean | Detection status |
recvtime | number | Point in time when the poser received the request from the detector |
running_time | object | Duration used for pose estimation |
candidate_obj_id | number | ID (index) of the most probable, closest object to the camera |
objects | array | Information about the objects used for pose estimation |
object[].projectid | string | projectid for which pose estimation was performed |
object[].poserid | string | videoid (objectid) for which pose estimation was performed |
object[].bbox2d | array(4,2) | Detection ROI for the detector provided for pose estimation |
object[].corners3d | array(9,3) | Coordinates of the 3D object bounding box centered at (0, 0) in 3D space |
object[].corners2d | array(9,2) | Image coordinates corresponding to 3D object bounding box |
object[].intrinsic | array(3,3) | Camera intrinsic parameters used for pose estimation |
object[].distort | array(5) | Camera distortion parameters used for pose estimation |
object[].extrinsic | array(4,4) | Camera pose used for pose estimation |
object[].gravity | array | Gravity direction used for pose estimation (calculated from extrinsic if not provided on request) |
object[].rvec | array(3) | Rodrigues rotation of the object relative to the camera [θx, θy, θz] |
object[].tvec | array(3) | Position of the object relative to the camera [tx, ty, tz] |
object[].size | array(3) | Size information for the object [width, height, depth] |
object[].status | boolean | Pose estimation status of the object |
object[].message | string | Pose estimation status information of the object |
Response example
Detection success
{
"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"
}
]
}
Detection failure
{
"result": "FAILURE",
"running_time": {
"processing": 2
},
"timestamp": 1718709558076,
"version": "3.0.0-1",
"candidate_obj_id": 0
}
Error code
Error response:
{
"code": "9999",
"message": "Unknown server error.",
"path": "path",
"product": "ARC eye",
"traceId": "9c1f55ac7d8341d792a922b2590c045f",
"timestamp": 1570776853475,
"status": "500"
}
Error code | HTTP status | Description |
---|---|---|
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 |
Was this article helpful?