Computer Vision

인간은 우리의 3차원 세계를 비교적 쉽게 인식합니다. 어린 시절부터 우리의 뇌는 기능 식별, 장애물 회피, 조정, 깊이 인식 및 시각적 자극에서 많은 다른 사람을 포함하여 귀중한 통찰력을 수집 할 수 있습니다. 컴퓨터 비전은 프로세서와 카메라를 사용하여 동일한 작업을 수행하려는 시도입니다. 오늘날의 디바이스에 대한 수많은 애플리케이션이 있습니다. 드론은 이를 사용하여 비행 중 장애물을 신속하게 감지하고 방지할 수 있습니다. 공장은 조립 라인에서 가장 작은 구성 요소에서 외관 결함을 감지하는 데 사용할 수 있습니다. 모니터나 의사의 장비를 사용하지 않고 심박수를 감지하는 데 사용할 수 있습니다. 우리의 데이터 중심 세계는 컴퓨터 비전을 믿을 수 없을만큼 활동적인 연구 영역으로 만들었습니다. 기업들은 10년 전에도 황당한 방식으로 이를 활용하고 있습니다. 컴퓨터, 카메라 및 데이터가 우리 사회에 더 많이 스며들면서 컴퓨터 비전의 가장 흥미로운 기능을 활용하는 도구는 가능한 한 쉽게 액세스하고 사용할 수 있도록 해야 합니다. Windows 10 IoT Core 두 가지 제품인 Microsoft Cognitive Services 및 OpenCV와의 호환성을 통해 이러한 요구를 충족하려고 시도합니다.

서비스

Cognitive Services

개요

원래 Project Oxford라는 Microsoft Research 프로젝트인 Cognitive Services는 높은 수준의 "인지 작업"을 수행하는 API 컬렉션입니다. 이러한 API는 Microsoft Research에서 수년간의 탐색 및 개발에서 고도로 학습된 기계 학습 모델을 기반으로 데이터에서 인사이트를 가져옵니다.

Cognitive Services는 비전, 음성, 언어, 지식 및 검색의 5가지 범주로 구성됩니다.

Cognitive Services 웹 사이트에서 Cognitive Services에 대한 자세한 정보를 찾을 수 있습니다.

Computer Vision 애플리케이션에서 가장 중요한 범주인 Vision 범주에는 Computer Vision, Emotion, Face 및 Video의 네 가지 API가 포함되어 있습니다. 이러한 API는 다음 기능을 제공합니다.

  • 얼굴 인식
  • 동작 감지
  • 감정 인식
  • 비디오 손떨림 보정
  • 이미지 콘텐츠 분석

Cognitive Services는 많은 양의 데이터를 사용하고, Microsoft Azure에 액세스하고, 애플리케이션의 출시 시간을 크게 줄이는 데 유용합니다. Vision API는 독립적으로 개발하는 데 시간이 많이 걸리는 경우가 많습니다. 이러한 API에 사용되는 모델은 Microsoft Research의 노력 덕분에 잘 학습되고 광범위합니다. 반면, 클라우드 연결 요구 사항은 시스템 성능을 감소시키고 인터넷 연결에 대한 요구 사항을 만듭니다.

가격 책정

각 API 구독에는 매달 무료 트랜잭션 집합이 제공됩니다(API에 따라 300~30,000개). 이 초기 금액을 초과하면 서비스에 적절한 가격이 제공됩니다. 예를 들어 Emotion API는 처음 30,000개의 트랜잭션을 무료로 제공하며 구독 유형에 따라 1000개 트랜잭션마다 $0.10 또는 $0.25가 필요합니다.

Cognitive Services 가격 책정에 대한 자세한 내용은 해당 웹 사이트에서 확인할 수 있습니다.

시작하기

Cognitive Services를 사용하려면 사용자가 Cognitive Services 웹 사이트에 등록하여 API 키를 받아야 합니다. Cognitive Services에 API 키를 제공한 후 사용자는 "가격 책정" 섹션에 설명된 제한 사항 내에서 API를 호출할 수 있습니다.

각 API에 대한 설명서는 Cognitive Services 웹 사이트에서 찾을 수 있습니다.

모든 Cognitive Services API C#을 사용하여 모든 하드웨어 플랫폼에서 구현할 수 있습니다.

IoT 디바이스에서 Cognitive Services를 실행하시겠습니까? 자습서를 방문하여 시작하세요.

OpenCV

OpenCV는 컴퓨팅 효율성 및 실시간 애플리케이션을 위해 설계된 오픈 소스 컴퓨터 비전 및 기계 학습 소프트웨어 라이브러리입니다. 이 기능은 전례 없는 효율성, 다용도 도구, 다양한 플랫폼 지원 및 활기찬 온라인 개발자 커뮤니티로 인해 개발자와 업계에서 널리 사용됩니다. 그것은 지금까지 가장 인기 있는 오픈 소스 컴퓨터 비전 도구. OpenCV 라이브러리는 C/C++, Java 및 C#에 사용할 수 있습니다.

OpenCV 웹 사이트에서 추가 세부 정보를 제공합니다.

OpenCV 기능:

  • 로컬 이미지 및 비디오 처리 및 분석
  • 실시간 개체 식별, 일치 및 추적
  • 실시간 얼굴 인식
  • 이미지와 실시간의 거리 결정
  • 3D 매핑/모델링/재구성
  • 이미지 편집(예: 컴퍼지션 및 색 변경)

OpenCV는 여러 가지 이점을 제공합니다. 최적화된 C/C++ 내부 및 OpenCL을 사용하여 GPU에 액세스하기 때문에 로컬 데이터 처리에 매우 효율적입니다(사용하도록 설정된 경우). 여기에는 현재 사용할 수 있는 대부분의 컴퓨터 비전 기능이 포함되어 있습니다. 수명 및 유틸리티는 애플리케이션 또는 라이브러리 문제를 가진 새 사용자를 도울 수 있는 광범위하고 숙련된 온라인 커뮤니티를 형성했습니다. 반면에 복잡한 코드 및 라이브러리 설정과 자습서 및 샘플 코드의 불일치로 인해 학습 곡선이 가파르게 나타납니다.

현재 IoT Core를 사용하는 OpenCV는 사용자가 원본에서 라이브러리를 빌드하는 경우에만 작동하며 시간이 오래 걸릴 수 있습니다. 이 때문에 IoT Core에 대해 NuGet 패키지 컬렉션을 만들어 OpenCV를 더 쉽게 설정할 수 있도록 적극적으로 노력하고 있습니다. Cognitive Services에서 사용하는 NuGet 패키지를 사용하면 개발자가 미리 빌드된 라이브러리를 애플리케이션으로 가져와 몇 번의 클릭으로 전체 기능을 제공할 수 있습니다. NuGet 패키지를 사용하는 애플리케이션은 전용 서버에서 라이브러리 업데이트를 계속 받습니다. 사용자는 오픈 소스 소프트웨어에 대한 공개 변경 내용이 있는 경우 새 소스 코드를 다시 빌드할 필요가 없습니다. 또한 이 패키지는 라이브러리의 일부만 사용하는 디바이스의 스토리지 공간을 줄입니다.

현재 진행 중인 작업이므로 업데이트에 대한 WindowsOnDevices.com 계속 확인하세요!

그동안 ARM 원본에서 라이브러리를 빌드하려면 GitHub 리포지토리를 방문하세요.

IoT Core 디바이스에서 OpenCV를 실행하시겠습니까? 자습서를 방문하여 시작하세요.

OpenCV 및 Cognitive Services 비교

기능 Microsoft Cognitive Services OpenCV
Windows에서 사용하기 쉬운 Yes
아키텍처 지원 ARM, x86, x64 ARM, x86, x64
얼굴 인식 및 추적 Yes Yes
감정 인식 Yes Yes
3D 재구성 및 매핑
콘텐츠 검색 특정 개체가 아닌 일반 기능 검색 Yes
비디오 손떨림 보정 Yes Yes
동작 감지 Yes Yes
커뮤니티 Cognitive Services에는 how-old.net 및 celebslike.me 포함하여 여러 산업 및 몇 가지 인기 있는 웹 사이트에 걸쳐 많은 활성 사용자가 있습니다. OpenCV는 매우 인기 있는 오픈 소스 프로젝트입니다. 수천 명의 사람들이 그것에 기여하고 그것을 유지했습니다.
설명서 Cognitive Services에는 전반적으로 명확하고 광범위한 설명서가 있습니다. 온라인으로 사용할 수 있는 샘플이 많지만 각 샘플은 다른 사용자가 작성하므로 때때로 일관성이 없을 수 있습니다.
무료 예, 어느 정도까지(자세한 내용은 여기) Yes
성능 모든 작업 및 API 호출은 클라우드의 데이터에 액세스해야 합니다. 모든 알고리즘은 최적화되고 로컬이며 Python 대신 C++를 사용하면 속도가 더욱 향상됩니다.
지원되는 카메라/하드웨어 모든 USB 또는 내장 카메라 모든 USB 또는 내장 카메라
지원되는 언어/프레임워크 C#, UWP C/C++, Python, Java, C#, UWP
시작 시간 사용자는 설명서에서 직접 직관적인 API와 함께 코드 샘플을 사용할 수 있습니다. OpenCV의 성능과 유연성은 복잡한 작업을 수행하기 위해 많은 구성과 코드가 필요하다는 것을 의미합니다.
링크 샘플 프로그램 샘플 프로그램
Cognitive Services 웹 사이트 OpenCV 웹 사이트