Cloud recognition APIs 소개
API 목록
- Target image 생성
- 이미지 라이브러리의 target image 목록
- 단일 target image 가져오기
- 이미지 인식 가능성 난이도 평가
- 기존 유사 target image
- Target image 삭제
- Target image 속성 수정
- 이미지로 이미지 검색
- Health check
REST API 인터페이스 프로토콜 및 인증 메커니즘
CRS API는 표준 HTTP REST 전송 표준을 따릅니다.
Http Header
Authorization: <APIKey에서 얻은 Token 입력>
Http 요청 파라미터는 두 가지 유형으로 나뉩니다.
공통 파라미터(다음을 모두 포함하며, 인증 방식에 따라 서로 다른 조합으로 사용):
- appId
- timestamp(Long 정수: 1970년 1월 1일 00:00:00 UTC 이후 경과한 밀리초)
- apiKey
- signature(요청 서명, token 방식 인증과 둘 중 하나 선택)
CRS API 파라미터: API 자체의 파라미터
API 문서는 더 이상 인증에 사용하는 공통 파라미터를 설명하지 않습니다
API Key 인증
인증 방식은 두 가지로 나뉩니다.
Token 기반 인증
Http header Authorization에 Token이 포함됩니다. 공통 파라미터는 다음을 포함합니다.
- appId
Signature 인증
Http header Authorization을 사용하지 않습니다.
공통 파라미터에는 signature 서명 정보가 포함됩니다. 이미지를 제외한 모든 파라미터가 서명 계산에 포함됩니다.
- appId
- timestamp
- apiKey
- signature
서명 계산의 자세한 알고리즘과 코드는 API Key signature 방법 문서를 참고하십시오.
사용 예시 및 속성 분석
API 사용 예시
이 예시에서는 API 인터페이스를 호출하여 target image를 생성함으로써, 개발자가 CRS API 요청 과정, target image의 속성 구조, 인터페이스의 입력과 출력을 이해할 수 있도록 합니다.
운영 환경에서 target image를 생성하기 전에는 더 많은 검증이 필요합니다. 자세한 내용은 best practice를 참고하여 새 target image를 생성하십시오.
요청 예시
test-target.jpg라는 target image 파일을 추가합니다. Target image를 생성할 때 이미지 파일은 base64 인코딩되어야 합니다.
API 문서에서는 요청 파라미터를 자세히 설명합니다. 이미지 파일을 base64 인코딩하여 API를 요청하려면 API - Target image 생성을 참고하십시오.
POST /targets HTTP/1.1
Host:
Date: Mon, 1 Jan 2018 00:00:00 GMT
Content-Type: application/json
{
"image":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
"active":"1",
"name":"easyar",
"size":"5",
"meta":"496fbbabc2b38ecs3460a...",
"type":"ImageTarget",
"timestamp": 1514736000000,
"apiKey": "8b485c648c3056e79c2a85ee9b51f9dc",
"appId": "C:CN1:f9f903c36da8bd64d71d491077bba...",
"signature": "89985e2420899196db5bdf16b3c2ed0922c0c221"
}
응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
{
"statusCode": 0,
"result": {
"targetId":"e61db301-e80f-4025-b822-9a00eb48d8d2",
"trackingImage":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgM...",
"name": "easyar",
"size": "5",
"meta": "496fbbabc2b38ecs3460a...",
"type": "ImageTarget",
"modified":1514735000000
"active":"1",
"trackableRate": 0,
"detectableRate": 0,
“detectableDistinctiveness”:0,
"detectableFeatureCount": 0,
"trackableDistinctiveness": 0,
"trackableFeatureCount": 0,
"trackableFeatureDistribution": 0,
"trackablePatchContrast": 0,
"trackablePatchAmbiguity": 0
},
"timestamp": 1514736000000
}
응답 형식
응답은 모두 통일된 형식을 사용합니다. 다음은 예시입니다.
{
"statusCode": 119,
"msg": "Parameter has errors",
"date": "2022-06-15T09:56:30.000Z",
"result": //result는 statusCode가 0인 경우에만 있으며, 오류가 발생하면 결과 필드는 비어 있습니다
}
위 예시와 같이, 이는 정상적으로 반환되는 target image 상세 구조입니다. 하나의 target image는 다음 속성을 포함합니다.
| 속성 | 설명 |
|---|---|
| targetId | Target image의 고유 Id |
| trackingImage | 처리된 grayscale image의 base64 인코딩이며, device 측 image tracking에 사용됩니다 |
| name | Target image 이름 |
| size | 이미지 크기, 애플리케이션에서 virtual content를 중첩할 때 사용하는 실제 크기 |
| meta | 사용자 연결 데이터로, 파일, 텍스트 또는 url일 수 있으며 base64 인코딩이 필요합니다 |
| type | "ImageTarget" |
| active | 활성화된 target image만 인식될 수 있습니다. 비활성화 후에는 인식되지 않습니다 |
| trackableRate | Tracking 난이도 점수. 작을수록 좋습니다 |
| detectableRate | Recognition 종합 난이도 점수. 작을수록 좋습니다 |
| detectableDistinctiveness | Recognition 구분 난이도 점수. 작을수록 좋습니다 |
| detectableFeatureCount | Recognition feature 난이도 점수. 작을수록 좋습니다 |
| trackableDistinctiveness | Tracking 구분 난이도 점수. 작을수록 좋습니다 |
| trackableFeatureCount | Tracking feature 난이도 점수. 작을수록 좋습니다 |
| trackableFeatureDistribution | Tracking feature distribution 난이도 점수. 작을수록 좋습니다 |
오류 코드
Cloud recognition APIs 오류 코드 설명