1. 빠른 시작¶
환영합니다 – 장치에서 직접 Python을 실행하는 작고 프로그래밍 가능한 카메라, OpenMV Cam을 소개하게 되어 기쁩니다. 몇 줄의 코드를 작성하고 실행을 누르면 카메라가 보기 시작합니다: 얼굴 검출, 색상 추적, 태그 읽기, 선 따라가기 – 루프 안에 PC가 없고, 먼저 헤쳐 나가야 할 복잡한 설정도 없습니다.
이 빠른 시작 가이드를 따라 몇 분 안에 시작할 수 있습니다: IDE를 설치하고, 카메라를 연결하고, 첫 번째 스크립트로 실시간 얼굴 검출기를 실행하게 됩니다.
1.1. OpenMV IDE 설치¶
OpenMV IDE는 스크립트를 작성하고, 카메라에서 실행하고, 결과를 실시간으로 관찰하기 위한 데스크톱 애플리케이션입니다. Windows, macOS 또는 Linux용으로 여기에서 다운로드한 뒤 설치하세요:
Windows – 인스톨러를 실행하세요. IDE와 함께 카메라의 USB 드라이버를 설치합니다. 기본 프롬프트를 따르세요.
macOS –
.dmg를 열고 OpenMV IDE를 응용 프로그램 폴더로 드래그하세요.Linux –
chmod +x openmv-ide-*.run && ./openmv-ide-*.run을 실행한 뒤 인스톨러 프롬프트를 따르세요.
참고
자동화되거나 헤드리스 환경의 경우, 인스톨러는 무인 설치 플래그와 함께 명령줄에서도 실행됩니다. 플랫폼별 정확한 명령은 openmv-ide README를 참조하세요.
1.2. 카메라 연결¶
USB 데이터 케이블로 카메라를 컴퓨터에 연결하세요. 드라이브가 마운트되고 파란색 LED가 깜박이기 시작할 때까지 기다린 다음, 연결 버튼 – 툴바 하단의 플러그 아이콘 – 을 클릭하세요.
처음 연결할 때, IDE는 카메라의 펌웨어를 함께 제공되는 버전과 비교하여 업데이트를 제안합니다. 프롬프트를 수락하여 최신 펌웨어를 플래시하세요. 몇 초가 걸리며, 완료되면 IDE가 자동으로 다시 연결됩니다.
카메라가 나타나지 않거나 연결과 업데이트가 무엇을 하는지 자세히 알고 싶다면 카메라 연결하기과 펌웨어 업데이트 및 복구를 참조하세요.
참고
막히는 부분이 있나요? OpenMV 포럼에 글을 올리세요 – 커뮤니티와 OpenMV 팀이 기꺼이 도와드립니다.
1.3. 첫 번째 스크립트 실행¶
OpenMV Cam에는 Google의 MediaPipe BlazeFace 얼굴 검출기가 플래시에 함께 제공됩니다. 이 스크립트를 편집기에 붙여넣으세요:
import csi
import time
import ml
from ml.postprocessing.mediapipe import BlazeFace
# Set up the camera sensor.
csi0 = csi.CSI()
csi0.reset() # Initialize the sensor to a known state.
csi0.pixformat(csi.RGB565) # Capture 16-bit colour.
csi0.framesize(csi.QVGA) # Set a small, fast frame size.
# BlazeFace was trained on square images, so crop to a centred
# square the size of the sensor's height.
side = csi0.height()
csi0.window((side, side))
# Load the built-in face detector. The post-processor turns the
# network's raw output into a list of detections; threshold sets how
# confident a detection must be to count.
model = ml.Model("/rom/blazeface_front_128.tflite",
postprocess=BlazeFace(threshold=0.4))
clock = time.clock() # For measuring the frame rate.
while True:
clock.tick()
img = csi0.snapshot() # Capture one frame.
# predict() runs the network and returns one
# ((x, y, w, h), score, keypoints) tuple per detected face.
for rect, score, keypoints in model.predict([img]):
# Draw the box around the face...
ml.utils.draw_predictions(img, [rect], ("face",),
((0, 0, 255),), format=None)
# ...and mark the six landmarks: eyes, nose, mouth, ears.
ml.utils.draw_keypoints(img, keypoints, color=(255, 0, 0))
print(clock.fps(), "fps")
초록색 Run 버튼을 누르고 카메라를 얼굴로 향하게 하세요. 프레임 버퍼 뷰어가 각 얼굴 주위에 상자를 그리고 눈, 코, 입, 귀를 표시하며, 직렬 터미널은 프레임 레이트를 출력합니다.
이 스크립트는 – 그리고 카메라가 가진 거의 모든 기능에 대한 스크립트는 – File → Examples에서 연결된 보드에 맞게 필터링되어 IDE에 내장되어 있습니다. 하나를 열고, 실행을 누르고, 카메라가 무엇을 할 수 있는지 탐색해 보세요.
1.4. 다음으로 어디로 갈 것인가¶
어디서 시작할지는 여러분이 이미 알고 있는 것에 따라 다릅니다. 튜토리얼에는 세 가지 시작점이 있습니다 – Python이 처음인 경우, 하드웨어가 처음인 경우, 또는 머신 비전을 시작할 준비가 된 경우 – 자신에게 맞는 것을 고르세요. 참조 문서와 IDE 가이드는 필요할 때 언제든 여기 있습니다.