이미지에서 백그라운드 제거
Important
이 기능은 이제 사용되지 않습니다. 2025년 1월 10일에 Azure AI Image Analysis 4.0 Segment API 및 백그라운드 제거 서비스가 사용 중지됩니다. 이 서비스에 대한 모든 요청은 이 날짜 이후에 실패합니다.
모델의 원활한 작동을 유지하려면 오픈 소스 Florence 2 모델을 설치하고 지역 분할 기능을 사용하여 유사한 배경 제거 작업을 허용합니다.
이 문서에서는 Image Analysis 4.0 API를 호출하여 이미지를 분할하는 방법(포그라운드와 백그라운드를 분리)을 보여 줍니다. 또한 반환된 정보를 구문 분석하는 방법도 보여 줍니다.
Important
백그라운드 제거는 직접 REST API 호출을 통해서만 가능합니다. SDK를 통해서는 사용할 수 없습니다.
필수 조건
이 가이드에서는 귀하가 빠른 시작 페이지에 언급된 단계를 성공적으로 수행했다고 가정합니다. 이것은 다음을 의미합니다.
- Vision 리소스를 만들고 키와 엔드포인트 URL을 가져왔습니다.
- 서비스에 대한
curl.exe
호출을 성공적으로 수행했습니다(또는 대체 도구를 사용했습니다). 여기의 예를 기반으로curl.exe
호출을 수정합니다.
빠른 시작에서는 이미지에서 시각적 기능을 추출하는 방법을 보여 줍니다. 그러나 개념은 백그라운드 제거와 유사합니다. 따라서 빠른 시작으로 시작하여 수정하는 것이 좋습니다.
Important
백그라운드 제거는 특정 Azure 지역에서만 사용할 수 있습니다. 지역 가용성을 참조하세요.
서비스에 대한 인증
이미지 분석 서비스에 대해 인증하려면 Computer Vision 키와 엔드포인트 URL이 필요합니다.
팁
코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안 문서를 참조하세요.
인증은 HTTP 요청 헤더 Ocp-Apim-Subscription-Key를 추가하고 이를 비전 키에 설정하여 수행됩니다. URL <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview
에 대한 호출이 이루어집니다. 여기서 <endpoint>
는 고유한 Computer Vision 엔드포인트 URL입니다. 이 URL에 추가하는 다른 쿼리 문자열을 보려면 모드 선택 섹션을 참조하세요.
분석할 이미지 선택
이 가이드의 코드는 URL에서 참조하는 원격 이미지를 사용합니다. 이미지 분석 기능의 전체 기능을 보기 위해 다양한 이미지를 직접 시도할 수 있습니다.
원격 이미지를 분석하는 경우 {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}
같이 요청 본문의 형식을 지정하여 이미지 URL을 지정합니다. Content-Type은 application/json
이어야 합니다.
로컬 이미지를 분석하려면 HTTP 요청 본문에 이진 이미지 데이터를 넣습니다. Content-Type은 application/octet-stream
또는 multipart/form-data
이어야 합니다.
모드 선택
쿼리 문자열 mode를 이 두 값 중 하나로 설정합니다. 이미지 분할을 수행하려는 경우 이 쿼리 문자열은 필수입니다.
URL 매개 변수 | 값 | 설명 |
---|---|---|
mode |
backgroundRemoval |
투명한 백그라운드로 검색된 포그라운드 개체의 이미지를 출력합니다. |
mode |
foregroundMatting |
검색된 포그라운드 개체의 불투명도를 보여 주는 회색조 알파 매트 이미지를 출력합니다. |
backgroundRemoval에 대해 채워진 URL은 다음과 같습니다. <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval
서비스에서 결과 가져오기
이 섹션에서는 API 호출을 수행하고 결과를 구문 분석하는 방법을 보여 줍니다.
서비스는 Content-Type: image/png
성공 시 200
HTTP 응답을 반환하고 본문에는 반환된 PNG 이미지가 이진 파일 스트림 형식으로 포함되어 있습니다.
예를 들어, 다음 이미지에서 백그라운드 제거가 실행된다고 가정합니다.
성공적인 백그라운드 제거 호출 시 다음 4채널 PNG 이미지는 backgroundRemoval
모드에 대한 응답입니다.
다음 1채널 PNG 이미지는 foregroundMatting
모드에 대한 응답입니다.
API는 foregroundMatting
모드의 경우 원본과 동일한 크기의 이미지를 반환하지만 backgroundRemoval
모드의 경우 최대 16메가픽셀(이미지 가로 세로 비율 유지)을 반환합니다.
오류 코드
오류가 발생하면 이미지 분석 서비스 응답에 오류 코드와 오류 메시지가 포함된 JSON 페이로드가 포함됩니다. 또한 내부 오류 코드 및 메시지 형식의 다른 세부 정보도 포함될 수 있습니다. 예시:
{
"error":
{
"code": "InvalidRequest",
"message": "Analyze query is invalid.",
"innererror":
{
"code": "NotSupportedVisualFeature",
"message": "Specified feature type is not valid"
}
}
}
다음은 일반적인 오류와 그 원인 목록입니다. 목록 항목은 다음 형식으로 표시됩니다.
- HTTP 응답 코드
- JSON 응답의 오류 코드 및 메시지
- [선택 사항] JSON 응답의 내부 오류 코드 및 메시지
- JSON 응답의 오류 코드 및 메시지
일반적인 오류 목록:
400 Bad Request
InvalidRequest - Image URL is badly formatted or not accessible
. 이미지 URL이 유효하고 공개적으로 액세스할 수 있는지 확인하세요.InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes
. 이미지를 압축하거나 크기를 조정하여 이미지 크기를 줄이고 요청을 다시 제출하세요.InvalidRequest - The feature 'Caption' is not supported in this region
. 이 기능은 특정 Azure 지역에서만 지원됩니다. 지원되는 Azure 지역 목록은 빠른 시작 필수 조건을 참조하세요.InvalidRequest - The provided image content type ... is not supported
. 요청의 HTTP 헤더 Content-Type이 허용되는 형식이 아닙니다.- 이미지 URL의 경우 Content-Type은
application/json
이어야 합니다. - 이진 이미지 데이터의 경우 Content-Type은
application/octet-stream
또는multipart/form-data
이어야 합니다.
- 이미지 URL의 경우 Content-Type은
InvalidRequest - Either 'features' or 'model-name' needs to be specified in the query parameter
.InvalidRequest - Image format is not valid
InvalidImageFormat - Image format is not valid
. 지원되는 이미지 형식은 이미지 요구 사항 섹션을 참조하세요.
InvalidRequest - Analyze query is invalid
NotSupportedVisualFeature - Specified feature type is not valid
. 기능 쿼리 문자열에 유효한 값이 있는지 확인하세요.NotSupportedLanguage - The input language is not supported
. 다음 표에 따라 언어 쿼리 문자열에 선택한 시각적 기능에 대한 유효한 값이 있는지 확인하세요.BadArgument - 'smartcrops-aspect-ratios' aspect ratio is not in allowed range [0.75 to 1.8]
401 PermissionDenied
401 - Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource
.
404 Resource Not Found
404 - Resource not found
. 서비스가model-name
쿼리 문자열에서 제공한 이름을 기반으로 사용자 지정 모델을 찾을 수 없습니다.
팁
Azure AI 비전을 사용하는 동안 서비스에 적용된 요금 제한에 의한 일시적인 오류나 네트워크 중단과 같은 다른 일시적인 문제가 발생할 수 있습니다. 이러한 유형의 오류를 처리하는 방법에 대한 내용은 클라우드 디자인 패턴 가이드의 다시 시도 패턴 및 관련 회로 차단기 패턴을 참조하세요.