OpenMV Cam은 소형 저전력 마이크로컨트롤러 보드로, 실제 환경에서 머신 비전을 활용한 애플리케이션을 쉽게 구현할 수 있게 해줍니다. OpenMV Cam은 C/C++ 대신 고수준 Python 스크립트(MicroPython 운영 체제 제공)로 프로그래밍됩니다. 이를 통해 머신 비전 알고리즘의 복잡한 출력을 처리하고 고수준 데이터 구조를 다루는 것이 더 쉬워집니다. 하지만 Python을 통해 OpenMV Cam과 I/O 핀을 완전히 제어할 수 있습니다. 외부 이벤트에 따라 사진 및 비디오 촬영을 쉽게 트리거하거나 머신 비전 알고리즘을 실행하여 I/O 핀을 제어하는 방법을 파악할 수 있습니다.
OpenMV Cam의 특징은 다음과 같습니다:
- STM32H743II480MHz로 작동하는 ARM Cortex M7 프로세서, 32MB SDRAM + 1MB SRAM 및 32MB 외부 플래시 + 2MB 내부 플래시를 탑재했습니다. 모든 I/O 핀은 3.3V를 출력하며 5V 내성을 가집니다. 이 프로세서는 다음과 같은 I/O 인터페이스를 갖추고 있습니다:
- 컴퓨터에 연결되는 풀 스피드 USB(12Mbps) 인터페이스입니다. OpenMV Cam을 연결하면 가상 COM 포트와 USB 플래시 드라이브로 인식됩니다.
- 100Mbps 읽기/쓰기가 가능한 μSD 카드 소켓으로, OpenMV Cam이 사진을 찍고 μSD 카드에서 머신 비전 자산을 쉽게 가져올 수 있게 합니다.
- 최대 80Mbps까지 실행 가능한 SPI 버스로, 시스템에서 LCD 실드, WiFi 실드 또는 다른 마이크로컨트롤러로 이미지 데이터를 손쉽게 스트리밍할 수 있습니다.
- I2C 버스(최대 1Mb/s), CAN 버스(최대 1Mb/s) 및 다른 마이크로컨트롤러 및 센서와의 인터페이싱을 위한 비동기 직렬 버스(TX/RX, 최대 7.5Mb/s)를 제공합니다.
- 12비트 ADC와 12비트 DAC.
- 서보 제어용 두 개의 I/O 핀.
- 모든 I/O 핀에서 인터럽트 및 PWM 지원(보드에는 10개의 I/O 핀이 있음).
- 그리고, RGB LED와 두 개의 고출력 850nm 적외선 LED가 있습니다.
- 100MHz로 동작하는 32비트 외부 SDRAM 32MB로 400MB/s의 대역폭을 제공합니다.
- 32MB의 외부 쿼드스파이 플래시가 4비트 DDR 모드에서 100MHz로 구동되어 100MB/s의 대역폭(읽기 속도)을 제공합니다.
- 분리 가능한 카메라 모듈 시스템으로, 8비트 병렬을 지원하여 OpenMV Cam H7이 다양한 센서와 연결할 수 있습니다:
- OpenMV Cam H7 Plus에는OV5640이미지 센서는 2592x1944(5MP) 해상도의 이미지를 촬영할 수 있습니다. 대부분의 간단한 알고리즘은 QVGA(320x240) 해상도 및 그 이하에서 25-50 FPS로 실행됩니다. 당신의 이미지 센서는 표준 M12 렌즈 마운트에 2.8mm 렌즈가 장착되어 제공됩니다. 더 특화된 렌즈를 사용하고 싶다면 쉽게 구매하여 직접 부착할 수 있습니다. 더 특화된 렌즈를 사용하려면 쉽게 설치할 수 있습니다.
- 전문적인 머신 비전 애플리케이션을 위해 SingTown의글로벌 셔터 카메라 모듈 MT9V034SingTown
- 적외선 열화상 머신 비전 애플리케이션을 위해 SingTown의 제품을 구매하실 수 있습니다.FLIR Lepton 열화상 이미징 모듈.
- 3.7V 리튬 이온 배터리 인터페이스, 당사 제품을 구매하실 수 있습니다3.7V-1000MAH 리튬 이온 배터리
문서화:https://singtown.com/openmv/
애플리케이션
현재 OpenMV 카메라는 다음과 같은 기능을 수행할 수 있습니다(향후 추가 예정):
- 신경망 객체 감지
- OpenMV를 사용하여 객체 감지를 위한 신경망을 훈련시킬 수 있으며, 감지하고자 하는 모든 대상을 훈련할 수 있습니다. 예를 들어, 다양한 숫자, 다양한 과일, 다양한 마커, 다양한 부품 또는 특정 불규칙 대상들을 훈련하여 특정 대상의 번호, 좌표 및 객체 유형 이름을 식별할 수 있습니다.
- 당사의 동영상 튜토리얼을 기반으로 실제 도로에서 경적 금지, 주차 금지, 속도 제한 80km/h 등 교통 표지판을 감지할 수 있습니다./learn/50918
- 신경망 분류
- OpenMV를 사용하여 객체 감지를 위한 신경망을 훈련시킬 수 있으며, 감지하고자 하는 모든 대상을 훈련할 수 있습니다. 예를 들어, 다양한 숫자, 다양한 과일, 다양한 마커, 다양한 부품 또는 특정 불규칙 대상들을 훈련하여 특정 대상의 번호, 좌표 및 객체 유형 이름을 식별할 수 있습니다.
- 이것은 우리의 비디오 튜토리얼을 기반으로 사람이 마스크를 착용하고 있는지 여부를 분류할 수 있습니다./learn/50872
- TensorFlow Lite for Microcontrollers
- TensorFlow Lite 지원을 통해 OpenMV Cam에서 사용자 정의 이미지 분류 및 분할 모델을 실행할 수 있습니다. TensorFlow Lite를 사용하면 사진 내 복잡한 영역을 쉽게 분류하고, 인식한 내용에 따라 1/0 핀을 제어할 수 있습니다.

- 프레임 차이
- OpenMV Cam에서 프레임 차분 알고리즘을 사용하여 장면의 움직임을 감지할 수 있습니다. 프레임 차분 기능을 통해 OpenMV를 보안 애플리케이션에 활용할 수 있습니다.
- 컬러 트래킹
- OpenMV를 사용하여 이미지에서 최대 16가지 색상을 동시에 감지할 수 있습니다(4가지 이상의 색상을 찾을 필요는 거의 없지만), 각 색상은 여러 개의 다른 블롭을 가질 수 있습니다. OpenMV는 각 블롭의 위치, 크기, 중심 및 방향을 알려줍니다. 색상 추적을 사용하면 OpenMV Cam을 태양 추적, 선 따라가기, 목표물 추적 등에 프로그래밍할 수 있습니다. 비디오 데모:/learn/49993
- 마커 추적
- OpenMV Cam을 사용하여 개별 색상 대신 색상 그룹을 감지할 수 있습니다. 이를 통해 물체에 색상 태그(2개 이상의 색상 라벨)를 부착하면 OpenMV가 태그된 물체의 내용을 인식하게 됩니다.
- 얼굴 감지
- OpenMV 카메라를 사용하여 얼굴(또는 일반적인 객체)을 감지할 수 있습니다. OpenMV 카메라는 일반 객체 감지를 위한 Haar 템플릿을 처리할 수 있으며, 얼굴과 눈을 감지하기 위한 내장된 정면 얼굴 및 눈 Haar 템플릿이 함께 제공됩니다./learn/50013
- 아이 트래킹
- 눈동자 추적을 사용하여 누군가가 바라보는 방향을 감지할 수 있습니다. 이를 로봇 제어에 활용할 수 있습니다. 눈동자 추적은 이미지 내에 눈이 존재하는지 감지하면서 동공 위치를 파악합니다.
- 사람 감지
- 내장된 사람 감지기(TensorFlow Lite 모델)를 사용하여 시야 내에 사람이 있는지 감지할 수 있습니다.
- 광학 흐름
- 광학 흐름을 사용하여 OpenMV 카메라 앞에서의 움직임을 감지할 수 있습니다. 예를 들어, 쿼드콥터에 광학 흐름을 적용하여 공중에서의 안정성을 제어할 수 있습니다.
- QR 코드 감지/디코딩
- OpenMV 카메라를 사용하여 시야 내 QR 코드를 읽을 수 있습니다. QR 코드 감지/디코딩을 통해 스마트 로봇이 주변 환경의 라벨을 읽을 수 있도록 할 수 있습니다.
- Data Matrix 감지/디코딩
- OpenMV Cam은 데이터 매트릭스 코드(2D 바코드)도 감지하고 디코딩할 수 있습니다. 여기서 동영상을 확인하실 수 있습니다.
- 선형 바코드 디코딩
- OpenMV Cam은 1D 바코드도 처리할 수 있습니다. EAN2, EAN5, EAN8, UPCE, ISBN10, UPCA, EAN13, ISBN13, I25, DATABAR, DARABAR_EXP, CODABAR, CODE39, CODE93, CODE128을 디코딩할 수 있습니다. 여기서 동영상을 확인하세요:/learn/50017
- AprilTag 추적
- 위의 QR 코드보다 더 뛰어나게, OpenMV Cam은 AprilTags도 추적할 수 있습니다. AprilTags는 회전 불변, 크기 불변, 전단 불변, 조명 불변의 최첨단 기준 마커입니다. 여기서 동영상을 시청하세요:/learn/49590
- 라인 감지
- OpenMV Cam은 거의 최대 프레임 속도로 실행하면서 무한 선 감지를 빠르게 완료할 수 있습니다. 또한 무한하지 않은 선분도 찾을 수 있습니다. 여기에서 동영상을 확인하실 수 있습니다:/learn/50009
- 원 감지
- OpenMV를 사용하여 이미지에서 원을 쉽게 감지할 수 있습니다.
- 사각형 감지
- OpenMV는 또한 AprilTag 라이브러리의 사각형 감지 코드를 사용하여 직사각형을 감지할 수 있습니다.
- 템플릿 매칭
- OpenMV 템플릿 매칭을 사용하여 시야 내에 템플릿과 유사한 이미지가 있는지 감지할 수 있습니다. 예를 들어, 템플릿 매칭은 PCB 상의 마커를 찾거나 디스플레이의 알려진 숫자를 읽는 데 사용될 수 있습니다.
- 이미지 캡처
- OpenMV를 사용하여 RGB565/그레이스케일 BMP/JPG/PPM/PGM 이미지를 캡처할 수 있습니다. Python 스크립트에서 이미지 캡처 방법을 직접 제어할 수 있습니다. 가장 중요한 것은 머신 비전 알고리즘을 사용하여 선을 그리고 문자를 그린 후 저장하는 것입니다.
- 비디오 녹화
- OpenMV 카메라를 사용하여 RGB565/그레이스케일 MJPEG 동영상 또는 GIF 이미지(또는 RAW 동영상)를 녹화할 수 있습니다. Python 스크립트에서 각 동영상 프레임이 어떻게 녹화되는지 직접 제어할 수 있으며, 동영상 녹화 시작과 종료 시점을 완전히 통제할 수 있습니다. 또한 사진 촬영과 마찬가지로 머신 비전 알고리즘을 사용하여 선을 그리거나 문자를 그리고 저장할 수 있습니다.
마지막으로, 위의 모든 기능은 IO 핀 제어와 결합하여 실제 세계와 상호작용하는 사용자 정의 애플리케이션과 함께 작동할 수 있습니다.