ARC eye VL API
- 인쇄
- PDF
ARC eye VL API
- 인쇄
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
개요
ARC eye Visual Localization (VL) API 는 카메라를 포함한 비전 디바이스로부터 수집된 정보를 통해, 실외 및 GPS가 통하지 않는 실내에서도 현재 위치를 정확하게 알려주는 위치 측위 서비스를 제공합니다. 이미지만으로 실내 위치 데이터를 확인할 수 있습니다.
공간데이터 구축
콘솔에서 공간데이터를 구축하여 VL API 를 사용할 수 있습니다. SLAM 데이터 변환부터 SLAM 데이터 병합, 로컬라이즈, VL 데이터 변환까지 모든 작업을 순서대로 진행해야합니다. 자세한 내용은 ARC eye 사용가이드 를 참조하세요.
API 준비
VL 데이터 병합이 성공하면, ARC eye > API 메뉴에 '대기' 상태의 API 가 생성됩니다. 해당 API 를 선택하여 배포하면 VL API 를 사용할 수 있습니다.
또다른 API 를 생성하여 배포할 버전을 변경할 경우에는 기존 API 는 중지됩니다. *중지중에는 다른 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 | 이미지 파일 | |
cameraParameters | N | string | 카메라 파마미터 정보를 입력. 입력하지 않으면 디폴트 값으로 동작 fx,fy,cx,cy,k1,k2,p1,p2,k3 - (fx,fy): focal length - (cx,cy): principal point - (k1,k2): radial distortion - (p1,p2): tangential distortion - (k3): radial distortion | |
lastPose | N | string | - 쿼리 이미지를 생성하는 시점에 추정된 이미지의 comma로 구분된 6-dof pose 정보 - 최근에 응답받은 pose 값에 odometry 값을 더함. | odometry 와 함께 사용되어야함 |
odometry | N | string | - comma로 구분된 6-dof pose 정보 - 마지막 쿼리 이미지를 보낸 시점에서 현재 쿼리 이미지를 보낸 시점사이의 pose 변화량 | lastPose 와 함께 사용되어야함 |
withGlobal | N | boolean | - true 일 경우 lastPose 값을 "위도, 경도, tz, qw, qx, qy, qz" 으로 해석. - 만약 값이 설정되어 있지 않거나 false 일 경우 lastPose 값을 "tx, ty, tz, qw, qx, qy, qz" 으로 해석. |
CURL example:
curl -X POST '{invokeUrl}' \
-H 'X-ARCEYE-SECRET: {secretKey}' \
-H 'Content-Type: multipart/form-data' \
-F 'image=@location.jpg;type=image/jpeg'
curl -X POST '{invokeUrl}' \
-H 'X-ARCEYE-SECRET: {secretKey}' \
-H 'Content-Type: multipart/form-data' \
-F 'image=@location.jpg;type=image/jpeg' \
-F 'odometry=0,0,0,1,0,0,0' \
-F 'lastPose=0,0,0,1,0,0,0' \
-F 'cameraParameters=1186.7,1406.5,540,960,0.0,0.0,0.0,0.0,0.0'
응답
응답바디
필드이름 | 데이터유형 | 설명 |
---|---|---|
result | string | 응답결과 : "SUCCESS", "FAILURE" |
message | string | 결과메시지 |
tips | string | 추가정보 |
pose | string | 이미지이름,tx,ty,tz,qw,qx,qy,qz 값을 의미 |
total | int | 쿼리이미지에서 추출된 특징점의 전체 개수 |
inlier | int | 쿼리이미지에서 추출된 유효한 특징점의 전체 개수 |
residual | float | 유효한 특징점의 projection error (pixel 단위) |
status | string | 서버 상태 |
floor | string | 쿼리 이미지의 층정보 |
lonLat | string | Longitude(경도), Latitude (위도) |
globalPose | string | 이미지이름,위도,경도,altitude,qw,qx,qy,qz 값을 의미 |
nnPoses | string[] | 인접한 레퍼런스 이미지들의 이미지이름,tx,ty,tz,qw,qx,qy,qz 값을 의미 |
datasetInfo | string | 스캔시에 구분한 각 계층의 이름들을 하나로 이어붙인 값 |
응답 예시
{
"result": "SUCCESS",
"status": "success",
"pose": "VL0_0000050014880892_000000006.jpg,2.746507,9.889554,-20.729435,0.657244,-0.096816,-0.068169,0.744318",
"total": 7738,
"inlier": 1762,
"residual": 5.998124,
"floor": "ground",
"lonlat": "126.61787915108854,37.47318807235039",
"globalPose": "VL0_0000050014880892_000000006.jpg,37.47318807235039,126.61787915108854,21.688565,0.657244,-0.096816,-0.068169,0.744318",
"nnPoses": [
"VL0_1663124545528216.jpg,3.219894,17.559616,-19.898514,0.720037,-0.121523,-0.006865,0.683177",
"VL1_1663124536528144.jpg,3.498234,18.586061,-20.282135,0.721541,-0.07256,-0.117165,0.678518",
"VL2_1663124537528455.jpg,2.849693,18.648811,-20.386539,0.631969,-0.018601,-0.109304,0.767022",
"VL0_1663124544528213.jpg,3.159655,16.287134,-19.874195,0.701073,-0.139553,0.015575,0.699127",
"VL1_1663124521528042.jpg,4.446866,15.010426,-19.975168,0.755891,-0.150474,-0.035666,0.636171",
"VL1_1663124543528186.jpg,3.704958,15.066489,-20.11025,0.761836,-0.152187,-0.059388,0.626832",
"VL4_1663124540528089.jpg,4.224849,16.700996,-20.057743,0.601045,-0.055503,-0.034118,0.796555",
"VL0_1663124547528227.jpg,2.683109,20.13681,-20.074528,0.543752,-0.150696,-0.013089,0.825502",
"VL4_1663124516527975.jpg,3.005801,17.602791,-20.282951,0.761109,-0.017261,-0.000655,0.648394",
"VL2_1663124520528189.jpg,5.639919,15.146515,-19.748491,0.675394,-0.108291,-0.088871,0.724029",
"VL1_1663124513527983.jpg,4.592686,18.804764,-20.067684,0.770351,-0.120287,-0.11107,0.616242"
],
"datasetInfo": "123_LOCAL_GND_1F_084"
}
{
"result": "FAILURE",
"status": "success",
"message": "internal server error",
"pose": "failed",
"floor": "",
"lonlat": "",
"globalPose": "",
"datasetInfo": ""
}
에러코드
에러응답:
{
"code": "9999",
"message": "Unknown server error.",
"path": "/api/v1",
"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 |
이 문서가 도움이 되었습니까?