Azure의 이미지 분류

Azure Blob Storage
Azure Computer Vision
Azure Cosmos DB
Azure Event Grid
Azure 기능

Computer Vision API 및 Azure Functions와 같은 Azure 서비스를 사용하면 회사는 비용을 절감하고 Microsoft가 이미 Azure AI 서비스를 사용하여 이미지를 처리하면서 개발한 전문 지식을 활용하면서 개별 서버를 관리할 필요가 없습니다. 이 예제 시나리오에서는 특히 이미지 처리 사용 사례에 대해 다루고 있습니다. 다른 AI 요구 사항이 있는 경우 Azure AI 서비스의 전체 제품군 을 고려하세요.

아키텍처

이미지 분류를 위한 아키텍처

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

이 시나리오에서는 웹 또는 모바일 애플리케이션의 백 엔드 구성 요소에 대해 설명합니다. 시나리오를 통한 데이터 흐름은 다음과 같습니다.

  1. Blob Storage에 새 파일(이미지 업로드)을 추가하면 Azure Event Grid에 이벤트가 트리거됩니다. 업로드 프로세스는 웹 또는 모바일 애플리케이션을 통해 오케스트레이션할 수 있습니다. 또는 이미지를 Azure Blob Storage에 별도로 업로드할 수 있습니다.
  2. Event Grid는 Azure 함수를 트리거하는 알림을 보냅니다.
  3. Azure Functions는 Azure Computer Vision API를 호출하여 새로 업로드된 이미지를 분석합니다. Computer Vision은 Azure Functions로 구문 분석된 Blob URL을 통해 이미지에 액세스합니다.
  4. Azure Functions는 Azure Cosmos DB에서 Computer Vision API 응답을 유지합니다. 이 응답에는 이미지 메타데이터와 함께 분석 결과가 포함됩니다.
  5. 해당 결과를 사용하고 웹 또는 모바일 프런트 엔드에 반영할 수 있습니다. 이러한 접급 방식은 업로드된 이미지가 아닌 분류 결과를 검색합니다.

구성 요소

  • Computer Vision API 는 Azure AI 서비스 제품군의 일부이며 각 이미지에 대한 정보를 검색하는 데 사용됩니다.
  • Azure Functions는 웹 애플리케이션에 대한 백 엔드 API를 제공합니다. 이 플랫폼은 업로드된 이미지에 대한 이벤트 처리도 제공합니다.
  • Event Grid는 Blob Storage에 새 이미지가 업로드되면 이벤트를 트리거합니다. 그런 다음 Azure Functions를 사용하여 이미지를 처리합니다.
  • Azure Blob Storage는 웹 애플리케이션에 업로드되는 모든 이미지 파일과 웹 애플리케이션에서 사용하는 모든 정적 파일을 저장합니다.
  • Azure Cosmos DB는 Computer Vision API에서 처리한 결과를 포함하여 업로드된 각 이미지에 대한 메타데이터를 저장합니다.

대안

  • Custom Vision Service. Computer Vision API는 일단의 분류 기반 범주를 반환합니다. Computer Vision API에서 반환하지 않는 정보를 처리해야 하는 경우 사용자 지정 이미지 분류기를 만들 수 있는 Custom Vision Service를 사용하는 것이 좋습니다.
  • Cognitive Search(이전의 Azure Search). 특정 조건을 충족하는 이미지를 찾기 위해 메타데이터를 쿼리하는 사용 사례의 경우 Cognitive Search를 사용하는 것이 좋습니다. 현재 미리 보기에서 인지 검색은 이 워크플로를 원활하게 통합합니다.
  • Logic Apps. Blob에 추가된 파일에 대해 실시간으로 반응할 필요가 없는 경우 Logic Apps를 사용하는 것이 좋습니다. 파일이 추가되었는지 확인할 수 있는 논리 앱은 되풀이 트리거 또는 슬라이딩 윈도우 트리거에 의해 시작될 수 있습니다.

시나리오 정보

이 예제 시나리오는 이미지를 처리해야 하는 비즈니스와 관련이 있습니다.

잠재적인 애플리케이션에는 패션 웹 사이트에 대한 이미지 분류, 보험 청구에 대한 텍스트 및 이미지 분석 또는 게임 스크린샷의 원격 분석 데이터 인식이 포함됩니다. 일반적으로 회사에서는 기계 학습 모델에 대한 전문 지식을 개발하고, 모델을 학습하며, 마지막으로 사용자 지정 프로세스를 통해 이미지를 실행하여 이미지에서 데이터를 가져와야 합니다.

잠재적인 사용 사례

이 솔루션은 소매, 게임, 금융 및 보험 산업에 이상적입니다. 관련된 다른 사용 사례는 다음과 같습니다.

  • 패션 웹 사이트에서 이미지 분류 판매용 플랫폼에서 제품 사진을 업로드하는 동안 판매자가 이미지 분류를 사용할 수 있습니다. 그런 다음 관련된 수동 태그 지정을 자동화할 수 있습니다. 고객은 제품의 시각적 인상을 통해 검색할 수도 있습니다.

  • 게임 스크린샷의 원격 분석 데이터 분류 스크린샷에서 비디오 게임의 분류는 컴퓨터 비전과 함께 소셜 미디어의 관련 문제로 진화하고 있습니다. 예를 들어 Twitch 스트리머가 연속해서 다른 게임을 플레이할 때 스트림 정보 수동 업데이트를 건너뛸 수 있습니다. 스트림 정보를 업데이트하지 않으면 사용자 검색에서 스트림이 잘못 분류될 수 있으며 콘텐츠 작성자와 스트리밍 플랫폼 모두에 대한 잠재적인 시청률이 손실될 수 있습니다. 새로운 게임을 소개하는 동안 사용자 지정 모델 경로는 해당 게임에서 새로운 이미지를 감지하는 기능을 도입하는 데 도움이 될 수 있습니다.

  • 보험 청구의 이미지 분류 이미지 분류는 클레임 처리 및 인수의 시간과 비용을 줄이는 데 도움이 될 수 있습니다. 자연 재해 피해, 차량 손상을 분석하고 주거 및 상업용 자산을 식별하는 데 도움이 될 수 있습니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

이러한 솔루션을 구현할 때는 다음 사항을 고려합니다.

확장성

이 시나리오에서 사용된 대부분의 구성 요소는 자동으로 크기 조정되는 관리 서비스입니다. 몇 가지 주목할 만한 예외: Azure Functions에는 최대 200개의 인스턴스 제한이 있습니다. 이 제한을 초과하여 확장해야 하는 경우 여러 지역 또는 앱 계획을 사용하는 것이 좋습니다.

NoSQL용 Azure Cosmos DB에서만 자동 크기 조정 하도록 Azure Cosmos DB를 프로비전할 수 있습니다. 다른 API를 사용하려는 경우 요청 단위에서 요구 사항 예측에 대한 지침을 확인하세요. Azure Cosmos DB의 크기 조정을 최대한 활용하려면 Azure Cosmos DB에서 파티션 키가 작동하는 방식을 이해하세요.

NoSQL 데이터베이스는 가용성, 확장성 및 파티션에 대한 일관성을 자주 교환합니다(CAP 정리의 의미에서). 이 시나리오에서는 키-값 데이터 모델이 사용되며 대부분의 작업이 원자성 정의이므로 트랜잭션 일관성은 거의 필요하지 않습니다. 적절한 데이터 저장소 선택에 대한 추가 지침은 Azure 아키텍처 센터에서 사용할 수 있습니다. 구현에 높은 일관성이 필요한 경우 Cosmos DB에서 일관성 수준을 선택할 수 있습니다.

확장 가능한 솔루션 설계에 대한 일반적인 지침은 Azure 아키텍처 센터의 성능 효율성 검사 목록을 참조하세요.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

Azure 리소스 에 대한 관리 ID는 계정 내부의 다른 리소스에 대한 액세스를 제공한 다음 Azure 함수에 할당하는 데 사용됩니다. 이러한 ID에 필요한 리소스에만 액세스할 수 있도록 허용하여 추가적으로 사용자의 함수에(그리고 잠재적으로 고객에게 ) 노출되지 않도록 합니다.

보안 솔루션 디자인에 대한 일반적인 지침은 Azure 보안 설명서를 참조하세요.

복원력

이 시나리오의 모든 구성 요소가 관리되므로 모두 지역 수준에서 자동으로 복원됩니다.

복원력 있는 솔루션 설계에 대한 일반적인 지침은 복원력 있는 Azure 애플리케이션 디자인을 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

이 시나리오를 실행하는 데 들어가는 비용을 알아보기 위해 모든 서비스가 비용 계산기에서 미리 구성됩니다. 특정 사용 사례에 대한 가격이 변경되는 정도를 확인하려면 필요한 트래픽에 맞게 적절한 변수를 변경합니다.

트래픽 양에 따라 세 가지 샘플 비용 프로필을 제공했습니다(모든 이미지의 크기는 100KB라고 가정).

  • 소형: 이 가격 책정 예제는 매월< 5000개 이미지 처리와 관련이 있습니다.
  • 중형: 이 가격 책정 예제는 매월 500,000개 이미지 처리와 관련이 있습니다.
  • 대형: 이 가격 책정 예제는 매월 5천만 개 이미지 처리와 관련이 있습니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

다음 단계

제품 설명서

단계별 학습 경로는 다음을 참조하세요.

프로덕션 환경에서 이 예제 시나리오를 배포하기 전에 Azure Functions에서 성능 및 안정성 최적화를 위한 권장 사례를 검토합니다.

Azure Cognitive Search에서 이미지 및 자연어 처리를 사용하는 AI 보강