1. Szybki start

OpenMV Cam

Witamy – z radością przedstawiamy Ci OpenMV Cam, małą, programowalną kamerę, która uruchamia Pythona bezpośrednio na urządzeniu. Napisz kilka linijek kodu, naciśnij uruchom, a kamera zaczyna widzieć: wykrywać twarze, śledzić kolory, odczytywać znaczniki, podążać za liniami – bez komputera w pętli i bez żmudnej konfiguracji na starcie.

Ten przewodnik szybkiego startu pozwoli Ci ruszyć z miejsca w ciągu kilku minut: zainstalujesz IDE, podłączysz kamerę i jako swój pierwszy skrypt uruchomisz działający na żywo detektor twarzy.

1.1. Zainstaluj OpenMV IDE

OpenMV IDE to aplikacja desktopowa do pisania skryptów, uruchamiania ich na kamerze i oglądania wyników na żywo. Pobierz ją dla systemu Windows, macOS lub Linux tutaj, a następnie zainstaluj:

  • Windows – uruchom instalator. Instaluje on IDE wraz ze sterownikami USB kamery; postępuj zgodnie z domyślnymi monitami.

  • macOS – otwórz plik .dmg i przeciągnij OpenMV IDE do folderu Aplikacje.

  • Linux – uruchom chmod +x openmv-ide-*.run && ./openmv-ide-*.run, a następnie postępuj zgodnie z monitami instalatora.

Informacja

W przypadku zautomatyzowanych lub bezgłowych konfiguracji instalatory można też uruchomić z wiersza poleceń z flagami cichej instalacji. Dokładne polecenia dla poszczególnych platform znajdziesz w pliku README openmv-ide.

1.2. Podłącz kamerę

Podłącz kamerę do komputera za pomocą kabla danych USB. Poczekaj, aż jej dysk się zamontuje, a niebieska dioda LED zacznie migać, a następnie kliknij przycisk połączenia – ikonę wtyczki na dole paska narzędzi.

Przy pierwszym połączeniu IDE porównuje oprogramowanie układowe kamery z wersją, z którą jest dostarczane, i proponuje jego aktualizację. Zaakceptuj monit, aby wgrać najnowsze oprogramowanie układowe; trwa to kilka sekund, a IDE samo ponownie się łączy po zakończeniu.

Jeśli kamera się nie pojawia lub chcesz poznać szczegóły tego, co robią połączenie i aktualizacja, zobacz Podłączanie kamery oraz Aktualizacje i odzyskiwanie oprogramowania układowego.

Informacja

Utknąłeś na czymś? Napisz na forum OpenMV – społeczność oraz zespół OpenMV chętnie pomogą.

1.3. Uruchom swój pierwszy skrypt

Twój OpenMV Cam jest dostarczany z detektorem twarzy BlazeFace z Google MediaPipe zapisanym w pamięci flash. Wklej ten skrypt do edytora:

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")

Naciśnij zielony przycisk Run i skieruj kamerę na twarz. Podgląd bufora ramki rysuje ramkę wokół każdej twarzy i zaznacza oczy, nos, usta i uszy, a terminal szeregowy wypisuje liczbę klatek na sekundę.

Ten skrypt – oraz po jednym na niemal każdą funkcję kamery – jest również wbudowany w IDE w menu File → Examples, przefiltrowany do podłączonej płytki. Otwórz jeden z nich, naciśnij uruchom i zacznij odkrywać, co potrafi kamera.

1.4. Dokąd dalej

To, od czego zaczniesz, zależy od tego, co już wiesz. Samouczek ma trzy punkty startowe – dla początkujących w Pythonie, dla początkujących w sprzęcie oraz dla gotowych na wizję maszynową – więc wybierz ten, który Ci pasuje. Materiały referencyjne i przewodnik po IDE są do Twojej dyspozycji, kiedy tylko będą potrzebne.