Makine görüşü,
kolaylaştırıldı.
Canlı yüz algılama, AprilTag takibi, QR tarama ve YOLO. Hepsi cihaz üzerinde, saf MicroPython ile. Ana bilgisayar yok, bulut yok.
IDE'yi açın
Windows, macOS veya Linux için OpenMV IDE'yi indirip yükleyin ve IDE'yi başlatın.
Kameralınızı bağlayın
OpenMV Cam'i USB üzerinden bilgisayarınıza takın. Hazır olduğunda mavi bir nabız LED'i yanıp söner.
İlk betiğinizi çalıştırın
IDE'deki soket simgeli bağlan düğmesine tıklayın, ardından ilk betiğinizi çalıştırmak için yeşil oynat okuna basın.
Merhaba dünya
Örneklerimport csi
import time
import ml
from ml.postprocessing.ultralytics import YoloV8
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.snapshot(time=2000) # let AWB/AGC stabilize
# Built-in single-class person detector model.
model = ml.Model("/rom/yolov8n_192.tflite",
postprocess=YoloV8(threshold=0.4))
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
# predict returns a list per class of ((x, y, w, h), score) tuples.
for class_dets in model.predict([img]):
for rect, score in class_dets:
img.draw_rectangle(rect, color=(0, 255, 0))
print(clock.fps(), "fps")
Gerçek zamanlı kişi takibi
Yerleşik YOLOv8 modeli, tek sınıflı bir kişi algılayıcısıdır — int8 nicelleştirilmiş ve ROM'a yüklenmiştir.
/rom/yolov8n_192.tflite dosyasından yüklenir — SD kart veya indirme gerekmez.import csi
import math
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000) # let AWB/AGC stabilize
csi0.auto_gain(False)
csi0.auto_whitebal(False)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
for tag in img.find_apriltags():
img.draw_detection(tag, color1=(255, 0, 0), color2=(0, 255, 0))
deg = math.degrees(tag.rotation)
print("ID %d rotation %.1f deg" % (tag.id, deg))
print(clock.fps(), "fps")
AprilTag'leri bulun ve tanımlayın
AprilTag'ler 2 boyutlu fiducial işaretçilerdir — hareket bulanıklığına ve kısmi tıkanmaya karşı dayanıklıdır ve tam 3D poz bilgisi verir.
x/y/z öteleme ve x/y/z döndürme.import csi
import time
import ml
from ml.postprocessing.mediapipe import BlazeFace
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.window((400, 400)) # square window for best results
csi0.snapshot(time=2000) # let AWB/AGC stabilize
model = ml.Model("/rom/blazeface_front_128.tflite",
postprocess=BlazeFace(threshold=0.4))
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
for rect, score, keypoints in model.predict([img]):
img.draw_rectangle(rect, color=(0, 0, 255))
ml.utils.draw_keypoints(img, keypoints, color=(255, 0, 0))
print(clock.fps(), "fps")
BlazeFace ile yüz algılama
Google'ın BlazeFace'i, her yüz için sınırlayıcı kutular ve altı referans noktası döndüren hafif bir TensorFlow Lite yüz algılayıcısıdır.
/rom/blazeface_front_128.tflite dosyasından yüklenir — önceden nicelleştirilmiş, indirme gerekmez.import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000) # let AWB/AGC stabilize
csi0.auto_gain(False)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
for code in img.find_qrcodes():
img.draw_rectangle(code.rect, color=(255, 0, 0))
print(code.payload)
print(clock.fps(), "fps")
Canlı yayından QR kodu tarama
Yerleşik QR kod çözücü, eğik, bozulmuş ve kısmen gizlenmiş kodları işler.
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000) # let AWB/AGC stabilize
csi0.auto_gain(False)
csi0.auto_whitebal(False)
# LAB thresholds: (L_min, L_max, A_min, A_max, B_min, B_max)
thresholds = [
(30, 100, 15, 127, 15, 127), # red
(30, 100, -64, -8, -32, 32), # green
]
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
for blob in img.find_blobs(thresholds, pixels_threshold=200):
img.draw_rectangle(blob.rect, color=(255, 0, 0))
img.draw_cross((blob.cx, blob.cy))
print(clock.fps(), "fps")
Renk kümesi bulma
find_blobs, bir veya daha fazla LAB eşiğiyle eşleşen bağlı piksel bölgelerini döndürür.
pixels_threshold küçük algılamaları filtreler; merge=True örtüşen kümeleri birleştirir.import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.window((640, 80)) # narrow strip for fast linear scanning
csi0.snapshot(time=2000) # let AWB/AGC stabilize
csi0.auto_gain(False)
csi0.auto_whitebal(False)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
for code in img.find_barcodes():
img.draw_rectangle(code.rect, color=(0, 255, 0))
print(code.payload, "(quality %d)" % code.quality)
print(clock.fps(), "fps")
1D barkodları okuma
Karede herhangi bir yerde 1D barkodları bulun ve yüklerini çözün.
import csi
import time
import ml
from ml.postprocessing.mediapipe import HandLandmarks
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.window((400, 400)) # square window for the model
csi0.snapshot(time=2000) # let AWB/AGC stabilize
# Connections between the 21 keypoints — palm + 5 fingers.
hand_lines = ((0, 1), (1, 2), (2, 3), (3, 4), (0, 5), (5, 6),
(6, 7), (7, 8), (5, 9), (9, 10), (10, 11), (11, 12),
(9, 13), (13, 14), (14, 15), (15, 16), (13, 17), (17, 18),
(18, 19), (19, 20), (0, 17))
model = ml.Model("/rom/hand_landmarks_full_224.tflite",
postprocess=HandLandmarks(threshold=0.4))
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
# predict returns a list per hand: index 0 = left, index 1 = right.
for detections in model.predict([img]):
for rect, score, keypoints in detections:
ml.utils.draw_skeleton(img, keypoints, hand_lines,
kp_color=(255, 0, 0),
line_color=(0, 255, 0))
print(clock.fps(), "fps")
21 el anahtar noktasını takip etme
Google'ın MediaPipe El Referans Noktaları modeli, algılanan her ele 21 eklem yerleştirir — bilek, boğumlar ve parmak uçları.
/rom/hand_landmarks_full_224.tflite dosyasından yüklenir — burada avuç içi algılama olmadan bağımsız olarak çalışır.ml.utils.draw_skeleton tek bir çağrıda 21 eklemin ve bağlantının tamamını çizer.OpenMV'de yeni misiniz?
Adım adım öğretici ile başlayın — donanım kurulumu, IDE, temel betikler ve ilk gerçek projeniz için ipuçlarını kapsar.
Temel kütüphaneler
APIDonanım, kameralar, görüntü işleme, ndarray'ler, ML, çoklu görev, ağ iletişimi, web sunucuları ve Bluetooth — hepsi MicroPython'dan.
machine
Alt düzey donanım: GPIO, SPI, I²C, UART, PWM, ADC ve zamanlayıcılar.
Keşfet →csi
Kamera kontrolü: piksel biçimleri, kare boyutları, pozlama, kazanç ve beyaz dengesi.
Keşfet →image
Makine görüşü: kümeler, kenarlar, çizgiler, daireler, özellikler ve çizim.
Keşfet →ulab
Cihaz üzerinde sayısal hesaplama — ndarray'ler, FFT'ler ve doğrusal cebir.
Keşfet →ml
Cihaz üzerinde sinir ağı çıkarımı — sınıflandırma, algılama ve bölümleme.
Keşfet →asyncio
İşbirlikçi çoklu görev — kamera, ağ ve G/Ç'yi paralel olarak çalıştırın.
Keşfet →network
IoT ve uzaktan iletişim için Wi-Fi, Ethernet ve soketler.
Keşfet →microdot
Minimal HTTP sunucusu — rotalar, oturumlar, oturum açma, SSE ve WebSocket'ler.
Keşfet →aioble
Asenkron Bluetooth Düşük Enerji — çevre birimleri, reklam yayını ve GATT.
Keşfet →Karta göre keşfet
DonanımOpenMV Cam'inizi seçerek pin çıkışını, teknik özellikleri ve karta özgü hızlı referansı görüntüleyin.

OpenMV N6 Yeni
Yerleşik NPU'lu STM32N6 — STMicro'nun ilk AI hızlandırmalı MCU'su.
Keşfet →
OpenMV AE3 Yeni
Alif Ensemble E3 — Ethos-U55 NPU'lu füzyon sınıfı Cortex-M55.
Keşfet →
OpenMV RT1062
32 MB harici SDRAM ile 600 MHz'de NXP i.MX RT1062 Cortex-M7.
Keşfet →
OpenMV H7 Plus
32 MB harici SDRAM ve 5MP OV5640 sensörlü STM32H743.
Keşfet →
OpenMV H7
Çıkarılabilir görüntü sensörü modülüne sahip STM32H743 Cortex-M7.
Keşfet →
Arduino Nicla Vision
Yerleşik sensörlü kompakt 23 × 23 mm STM32H747 kartı.
Keşfet →
Arduino Portenta
8 MB SDRAM ve Vision Shield desteğiyle STM32H747.
Keşfet →
Arduino Giga
8 MB SDRAM, Vision ve Display Shield desteğiyle STM32H747.
Keşfet →Kalkanlar
EklentilerOpenMV Cam'e takılan eklenti kartları — ağ iletişimi, motor kontrolü, ekranlar ve daha fazlası.

Gigabit PoE Shield
Daha yüksek bant genişliğinde yayın için PoE'li Gigabit Ethernet.
Keşfet →
Servo Shield
6–36V girişle kamerayı beslerken 5A'ya kadar çeken 4 servoya kadar sürün.
Keşfet →
Battery Shield
DC barrel jak üzerinden 1,8–5,5V pil girişi.
Keşfet →
Touch LCD Shield
Kapasitif çok dokunuşlu ve Qwiic'li 2,3" SPI LCD.
Keşfet →
PoE Shield
Power-over-Ethernet ile 10/100 Ethernet.
Keşfet →
PIR Shield
6µA bekleme hareketi tetikleyici ve beyaz ve 850 nm kızılötesi.
Keşfet →
CAN/RS232 Shield
Tek kalkanda 8 Mb/s CAN-FD ve 1 Mb/s RS-232.
Keşfet →
RS422/RS485 Shield
Endüstriyel veri yolları için 10 Mb/s diferansiyel seri.
Keşfet →Sensörler
Kamera modülleriKarta kart konektörüne takılan kamera modülleri ve sensör adaptörleri — renkli, tek renkli, termal ve olay tabanlı görüş.

PS5520 5MP HDR Camera
Zorlu aydınlatma için yüksek dinamik aralıklı 5MP HDR sensör.
Keşfet →
Multispectral Thermal (PAG7936)
Tek modülde 1 MP global perde renkli + FLIR Lepton termal.
Keşfet →
Multispectral Thermal (OV5640)
Tek modülde 5MP yuvarlanan perde renkli + FLIR Lepton termal.
Keşfet →
Multispectral Event Camera
Tek modülde GENX320 olay sensörü + PAG7936 renkli.
Keşfet →
GENX320 Event Camera
Prophesee olay tabanlı görüş — mikrosaniye zamansal hassasiyet.
Keşfet →
FLIR Boson Adapter
FLIR Boson / Boson+ için adaptör — daha yüksek çözünürlüklü termal.
Keşfet →
FLIR Lepton Adapter
FLIR Lepton 1.x / 2.x / 3.x termal çekirdekleri için adaptör.
Keşfet →
Global Shutter Camera Module
Hızlı hareket yakalama için tek renkli global perde sensör.
Keşfet →Daha fazla kaynak
MicroPythonOpenMV MicroPython dili
Dil referansı, sözdizimi ve temel çalışma zamanı semantiği.
CPython'dan farklar
MicroPython'ın standart Python'dan ayrıldığı yerler — modüller, yerleşik işlevler ve sözdizimi.
OpenMV MicroPython iç yapısı
Derleyici, çalışma zamanı, yerel modüller ve MicroPython'ı yeni MCU'lara taşıma.
Topluluk & bağlantılar
HariciOpenMV ana sayfası
Ürünler, uygulamalar, indirmeler ve haberler.
Forumlar
Topluluk tartışması, yardım ve proje paylaşımı.
GitHub'da OpenMV
Kaynak kodu, IDE ve örnek kaynaklar — sorunlar ve çekme istekleri kabul edilir.
GitHub'da MicroPython
Kaynak MicroPython kaynak kodu — OpenMV'nin üzerine inşa ettiği temel.