1. Быстрый старт

OpenMV Cam

Добро пожаловать – мы рады представить вам OpenMV Cam, небольшую программируемую камеру, которая выполняет Python прямо на устройстве. Напишите несколько строк кода, нажмите запуск, и камера начинает видеть: обнаруживать лица, отслеживать цвета, читать метки, следовать по линиям – без участия ПК и без громоздкой первоначальной настройки.

Это руководство по быстрому старту поможет вам запуститься за несколько минут: вы установите IDE, подключите камеру и запустите живой детектор лиц в качестве вашего самого первого скрипта.

1.1. Установите OpenMV IDE

OpenMV IDE – это настольное приложение для написания скриптов, их запуска на камере и наблюдения за результатами в реальном времени. Скачайте его для Windows, macOS или Linux здесь, затем установите:

  • Windows – запустите установщик. Он устанавливает IDE вместе с USB-драйверами камеры; следуйте подсказкам по умолчанию.

  • macOS – откройте .dmg и перетащите OpenMV IDE в папку Applications.

  • Linux – выполните chmod +x openmv-ide-*.run && ./openmv-ide-*.run, затем следуйте подсказкам установщика.

Примечание

Для автоматизированных или безголовых установок установщики также запускаются из командной строки с флагами тихой установки. Точные команды для каждой платформы см. в openmv-ide README.

1.2. Подключите камеру

Подключите камеру к компьютеру с помощью USB-кабеля для передачи данных. Дождитесь, пока её накопитель смонтируется, а синий светодиод начнёт мигать, затем нажмите кнопку подключения – значок вилки в нижней части панели инструментов.

При первом подключении 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 и направьте камеру на лицо. Программа просмотра буфера кадра рисует рамку вокруг каждого лица и отмечает глаза, нос, рот и уши, а последовательный терминал выводит частоту кадров.

Этот скрипт – и по одному почти для каждой возможности камеры – также встроен в IDE в разделе File → Examples, отфильтрованном по вашей подключённой плате. Откройте один из них, нажмите запуск и начните исследовать, что может камера.

1.4. Куда двигаться дальше

То, с чего вы начнёте, зависит от того, что вы уже знаете. В учебнике есть три отправные точки – новички в Python, новички в оборудовании или готовые к машинному зрению – так что выберите подходящую. Справочники и руководство по IDE всегда здесь, когда они вам понадобятся.