이 문서에서는 라이브 스트리밍 카메라와 함께 모바일 로봇을 사용하여 다양한 사용 사례를 구현하는 방법을 설명합니다. 이 솔루션은 Azure Stack Edge에서 로컬로 실행되는 시스템을 구현하여 개체 검색을 수행하는 비디오 스트림 및 Azure AI 서비스를 수집하고 처리합니다.
아키텍처
이 아키텍처의 Visio 파일을 다운로드합니다.
워크플로
이 워크플로에서는 시스템에서 들어오는 데이터를 처리하는 방법을 설명합니다.
로봇에 설치된 카메라는 RTSP(실시간 스트리밍 프로토콜)를 사용하여 실시간으로 비디오를 스트리밍합니다.
Azure Stack Edge의 Kubernetes 클러스터에 있는 컨테이너는 들어오는 스트림을 읽고 비디오를 별도의 이미지로 분할합니다. FFmpeg라는 오픈 소스 소프트웨어 도구는 비디오 스트림을 수집하고 처리합니다.
이미지는 로컬 Azure Stack Edge 스토리지 계정에 저장됩니다.
새 키 프레임이 스토리지 계정에 저장되면 AI 비전 컨테이너가 이를 선택합니다. 논리를 여러 컨테이너로 분리하는 방법에 대한 자세한 내용은 시나리오 세부 정보를 참조하세요.
스토리지 컨테이너에서 키 프레임을 로드하면 AI 비전 컨테이너가 클라우드의 Azure AI 서비스로 보냅니다. 이 아키텍처는 이미지 분석을 통해 개체 감지를 가능하게 하는 Azure AI 비전을 사용합니다.
이미지 분석 결과(검색된 개체 및 신뢰 등급)는 이상 탐지 컨테이너로 전송됩니다.
이상 탐지 컨테이너는 이미지 분석 및 이상 탐지 결과를 향후 참조를 위해 Azure Stack Edge의 로컬 Azure SQL Database 인스턴스에 저장합니다. 데이터베이스의 로컬 인스턴스를 사용하면 액세스 시간이 향상되어 데이터 액세스 지연을 최소화할 수 있습니다.
들어오는 실시간 비디오 스트림에서 변칙을 탐지하기 위해 데이터 처리가 실행됩니다. 변칙이 탐지되면 프런트 엔드 UI에 경고가 표시됩니다.
구성 요소
Azure Stack Edge는 Azure의 컴퓨팅, 스토리지 및 인텔리전스를 에지에 제공하는 Azure 관리 디바이스입니다. 이 아키텍처는 이 아키텍처를 사용하여 이상 탐지가 발생하는 위치와 가까운 온-프레미스에서 Azure 서비스를 호스팅하여 대기 시간을 줄입니다.
Azure Stack Edge의 AKS(Azure Kubernetes Service). AKS(Azure Kubernetes Service)는 컨테이너화된 애플리케이션을 배포하고 관리하는 데 사용할 수 있는 관리되는 Kubernetes Service입니다. 이 아키텍처에서는 Azure Stack Edge 디바이스에서 실행되는 AKS 버전을 사용하여 시스템 논리를 담당하는 컨테이너를 관리합니다.
Azure Arc는 Azure 서비스를 에지로 확장하는 브리지입니다. 이 아키텍처에서 Azure Arc를 활용하여 클라우드 포털을 통해 에지 서비스를 제어할 수 있습니다.
Azure AI 비전은 컴퓨터 비전 기능을 제공하는 통합 서비스입니다. 이 아키텍처에서 이미지 분석 기능은 비디오 스트림의 키 프레임에서 개체를 검색하는 데 사용됩니다.
Azure Blob Storage는 클라우드를 위한 Microsoft 개체 스토리지 솔루션입니다. 이 아키텍처에서는 비디오 스트림에서 추출된 키 프레임의 이미지를 저장하는 데 사용됩니다.
Azure SQL Edge는 기본 제공 AI를 포함하며 에지에 맞게 최적화된 소규모 SQL 엔진입니다. 이 아키텍처에서는 특히 에지 버전의 SQL 엔진이 이미지 분석 메타데이터를 저장하여 소비하고 처리하는 서비스에 가깝게 유지했습니다.
Azure Container Registry는 모든 OCI 아티팩트를 지원하는 Docker 및 OCI(Open Container Initiative) 이미지의 레지스트리입니다. 이 아키텍처에서 레지스트리는 이상 탐지 및 AI 비전 컨테이너를 위한 Docker 컨테이너 이미지를 저장합니다.
Azure Key Vault는 클라우드에서 보안 키 관리를 제공하는 서비스입니다. 이 아키텍처에서는 시스템 논리가 관리 ID를 사용할 수 없는 외부 서비스와 상호 작용할 수 있도록 비밀 및 키를 저장하는 데 사용됩니다.
Azure Monitor는 클라우드 및 온-프레미스 환경에서 모니터링 데이터를 수집 및 분석하여 적절하게 대응하는 포괄적인 모니터링 솔루션입니다. 이 아키텍처에서 이 서비스는 워크로드의 기본 가시성 플랫폼입니다.
시나리오 정보
이 아키텍처는 실시간 비디오 스트림을 처리하고, 추출된 실시간 데이터를 참조 데이터 집합과 비교하고, 결과에 따라 결정을 내리는 시스템을 보여 줍니다. 예를 들어 보안 위치 주위에 울타리가 있는 경계의 예약 검사를 제공하는 데 사용할 수 있습니다.
아키텍처는 Azure Stack Edge를 사용하여 가장 리소스 집약적인 프로세스가 비디오 원본과 가까운 온-프레미스에서 수행되도록 합니다. 이 디자인은 변칙에 대한 즉각적인 응답이 중요할 때 중요한 시스템의 응답 시간을 크게 향상시킵니다.
시스템의 부분은 Kubernetes 클러스터에서 독립 컨테이너로 배포되므로 수요에 따라 필요한 하위 시스템만 확장할 수 있습니다. 예를 들어 비디오 피드의 카메라 수를 늘리면 비디오 수집 및 처리를 담당하는 컨테이너의 크기를 조정하여 수요를 처리하지만 나머지 클러스터는 원래 수준으로 유지할 수 있습니다.
개체 검색 기능을 Azure AI 서비스로 오프로드하면 이 아키텍처를 배포하는 데 필요한 전문 지식이 크게 줄어듭니다. 개체 감지에 대한 요구 사항이 고도로 전문화되지 않는 한 이미지 분석 서비스에서 가져오는 기본 접근 방식은 충분하며 기계 학습에 대한 지식이 필요하지 않습니다.
잠재적인 사용 사례
경계 보안 모니터링
팩터리에서 안전하지 않은 작업 환경 검색
자동화된 어셈블리 줄에서 이상 탐지
항공기의 제빙 유체 부족 감지
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일련의 기본 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
안정성
안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.
Azure Stack Edge 사용의 가장 큰 장점 중 하나는 온-프레미스 하드웨어에서 완전히 관리되는 구성 요소를 얻을 수 있다는 것입니다. 모든 완전 관리형 Azure 구성 요소는 지역 수준에서 자동으로 복원력이 있습니다.
또한 Kubernetes 클러스터에서 시스템을 실행하면 하위 시스템을 정상 상태로 유지하는 책임을 Kubernetes 오케스트레이션 시스템에 오프로드할 수 있습니다.
보안
우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.
Microsoft Entra 관리 ID는 이 아키텍처의 모든 구성 요소에 대한 보안을 제공합니다. 관리 ID를 사용하면 코드나 구성 파일에서 비밀을 저장할 필요가 없습니다. 액세스 제어, 자격 증명 관리 및 역할 할당을 간소화합니다.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.
이 시나리오에 대한 가격 책정 예제를 보려면 Azure 가격 계산기를 사용합니다. 이 시나리오에서 가장 비싼 구성 요소는 Azure Stack Edge 및 Azure Kubernetes Service입니다. 이러한 서비스는 향후 증가하는 수요를 해결하기 위해 시스템을 스케일링하기 위한 용량을 제공합니다.
개체 감지에 Azure AI 서비스를 사용하는 비용은 시스템이 실행되는 기간에 따라 달라집니다. 앞의 가격 책정 예제는 초당 하나의 이미지를 생성하고 하루 8시간 동안 작동하는 시스템을 기반으로 합니다. 이 시나리오에는 하나의 FPS로 충분합니다. 그러나 시스템이 더 오랜 시간 동안 실행되어야 하는 경우 Azure AI 서비스를 사용하는 비용이 더 높습니다.
성능 효율성
성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.
코드는 Kubernetes 클러스터에 배포되므로 이 강력한 오케스트레이션 시스템의 이점을 활용할 수 있습니다. 다양한 하위 시스템은 컨테이너로 구분되므로 애플리케이션에서 가장 까다로운 부분만 확장할 수 있습니다. 기본 수준에서 하나의 들어오는 비디오 피드를 사용하여 시스템은 클러스터에 하나의 노드만 포함할 수 있습니다. 이 디자인은 초기 구성을 크게 간소화합니다. 데이터 처리에 대한 수요가 증가함에 따라 노드를 추가하여 클러스터의 크기를 쉽게 조정할 수 있습니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Nick Sologoub | 수석 소프트웨어 엔지니어링 책임자
기타 기여자:
- Mick Alberts | 테크니컬 라이터
- Frédéric Le Coquil | 수석 소프트웨어 엔지니어
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.
다음 단계
제품 설명서:
단계별 학습 경로 따르기:
- Azure Arc를 사용하여 하이브리드 환경에 Azure 혁신을 가져오세요.
- Azure Kubernetes Service 소개
- Azure Stack 소개
- Computer Vision 서비스를 사용하여 이미지 분석