v1.0.0-beta¶
v1.0.0-beta คือ การเปิดตัวครั้งแรก (เบต้า) ของ OpenMV firmware ซึ่งเป็นบิลด์สาธารณะแรกของ OpenMV Cam วางรากฐานสำหรับทุกสิ่งที่ตามมา ได้แก่ รันไทม์สคริปต์ MicroPython บน STM32F4 OpenMV Cam, Camera API ผ่าน sensor, ไลบรารีการมองเห็นของเครื่อง image และ OpenMV IDE สำหรับการพัฒนาแบบเรียลไทม์ เนื่องจากเป็นเวอร์ชันแรก จึงไม่มีสิ่งใดต้องโยกย้าย รายการนี้สรุปสิ่งที่มาพร้อมกับ firmware แรก
จุดเด่น¶
MicroPython บน OpenMV Cam — รันสคริปต์ Python บนกล้องผ่าน USB พร้อม REPL แบบโต้ตอบและอินเทอร์เฟซดีบักของ IDE
การจับภาพจากกล้อง — โมดูล
sensor: กำหนดรูปแบบพิกเซล/ความละเอียด/อัตราเฟรม และดึงเฟรมด้วยsnapshot()การมองเห็นของเครื่อง — ไลบรารี
image: การตรวจจับบลอบสี การวาด ฟิลเตอร์ การจับคู่แม่แบบ การตรวจจับใบหน้าด้วย Haar-cascade และจุดสำคัญOpenMV IDE — IDE สำหรับเดสก์ท็อปพร้อมตัวแสดงบัฟเฟอร์เฟรมแบบเรียลไทม์ ตัวแก้ไขโค้ด และการอัปเดต firmware ในตัว IDE
ฮาร์ดแวร์ — OpenMV Cam ต้นแบบ (STM32F4) พร้อมกล้อง OmniVision OV9650 / OV2640 รองรับ SD card และ WiFi shield
ฟีเจอร์ใหม่¶
การสคริปต์และโมดูล:
รันไทม์ MicroPython เป็นฐานของ firmware พร้อมการรันสคริปต์บนกล้องผ่านอินเทอร์เฟซดีบัก USB และ REPL แบบโต้ตอบ
โมดูล
sensor—set_pixformat()/set_framesize()/set_framerate(), การควบคุมเพดานค่าเกน/ความสว่าง/คอนทราสต์/ค่าเกน,reset(),snapshot()และการพลิกแนวนอน/แนวตั้ง รวมถึงค่าคงที่ของเซนเซอร์และความละเอียดโมดูลการมองเห็นของเครื่อง
image(imlib) ที่เปิดเผยออบเจกต์ภาพ (พร้อม Python buffer protocol) และพื้นผิวการประมวลผลภาพด้านล่างโมดูล
time/clockสำหรับการจับเวลาและวัด FPSโมดูลอุปกรณ์ต่อพ่วงเบื้องต้น —
led(RGB LED),spi,gpio(I/O พินพร้อมการลงทะเบียนอินเทอร์รัปต์ภายนอก),uart, ฮาร์ดแวร์rng, ตัวจับเวลา systick และfile/selectสำหรับระบบไฟล์เครือข่ายผ่าน
socket/wlan(CC3000 WiFi), ไดรเวอร์จอแสดงผลlcd, โมดูลเซนเซอร์ความร้อนmlx90620และการบันทึกวิดีโอ AVI/MJPEG
การประมวลผลภาพ:
เฟรมจากกล้องบันทึกลงในบัฟเฟอร์เฟรมที่จัดสรรแบบไดนามิก
การตรวจจับบลอบสี (flood-fill) และการค้นหาค่าขีดแบ่งในพื้นที่สี LAB/XYZ (พร้อมตารางแปลง RGB↔LAB)
ฟังก์ชันวาดพื้นฐาน (เส้น สตริง/ฟอนต์ วงกลม), ฟิลเตอร์ (erode / dilate / median / invert / binary / threshold), การปรับขนาดภาพ (bilinear), การแยกภาพย่อย, blit และการผสมอัลฟ่า
การจับคู่แม่แบบ (พร้อมบันทึก/โหลดแม่แบบ), การตรวจจับใบหน้า/วัตถุด้วย Viola-Jones Haar-cascade (cascade ที่โหลดได้ + ตัวแปลง cascade ของ OpenCV), LBP cascade และตัวตรวจจับดวงตา, การตรวจจับจุดสำคัญ FAST / SURF / FREAK และการจับคู่ตัวบ่งชี้ลักษณะ, ภาพอินทิกรัล และการตรวจจับการเคลื่อนไหว
การเข้ารหัส JPEG (พร้อมควบคุมคุณภาพ), การบันทึก PPM / PGM / PNG / ภาพดิบ และการเข้ารหัสวิดีโอ AVI/MJPEG
IDE และเครื่องมือ:
แอปพลิเคชัน OpenMV IDE สำหรับเดสก์ท็อป — ตัวแสดงบัฟเฟอร์เฟรมแบบเรียลไทม์พร้อม FPS, ตัวแก้ไขโค้ด (เปิด/ใหม่/บันทึก/บันทึกเป็น, ไฟล์ล่าสุด, เมนูตัวอย่างในตัว), เชื่อมต่อ/รีเซ็ต/เชื่อมต่ออัตโนมัติ และโหลด/บันทึกการกำหนดค่า
การอัปเดต firmware ใน IDE ผ่าน DFU, ยูทิลิตี
pydfuแบบ Python ล้วน และคำสั่ง USB สำหรับบังคับเข้าสู่ bootloader; ไลบรารีโฮสต์/โปรโตคอลopenmv.py; ตัวแสดงบัฟเฟอร์เฟรมแบบสแตนด์อโลนและเครื่องมือ cascade; และกฎ udev ของ Linux
การเปลี่ยนแปลงและการปรับปรุงอื่นๆ¶
สคริปต์ตัวอย่างในตัว: การตรวจจับบลอบ, การตรวจจับ/ติดตามใบหน้า, SURF / จุดสำคัญ, การจับคู่แม่แบบ, LCD, ตัวแสดงบัฟเฟอร์เฟรม, blit, MJPEG streamer, การบันทึก AVI, echo server, FPS และเดโม JPEG / การเขียนภาพ
ฮาร์ดแวร์และการรองรับบอร์ด¶
OpenMV Cam — STM32F4xx (STM32F407 / F429) ครอบคลุมฮาร์ดแวร์รุ่นต้นๆ พร้อม CMSIS + STM32 peripheral/Cube HAL และ CMSIS-DSP
กล้อง — OmniVision OV9650 และ OV2640 (SCCB/I2C, ควบคุมตัวควบคุมแรงดัน) ผ่าน sensor HAL รวมถึงเซนเซอร์ความร้อน IR รุ่น MLX90620; ความละเอียดตั้งแต่ QQCIF/QCIF ถึง SVGA/UXGA ที่ความเร็วสูงสุด 30 FPS
การจัดเก็บ/การเชื่อมต่อ — SD card (SPI และ SDIO) พร้อม FatFS, ระบบไฟล์แฟลชภายใน, SDRAM (บัฟเฟอร์เฟรมใน SDRAM), USB OTG FS (ดีบัก + DFU), CC3000 WiFi (WiFi / BLE shields), IR LED และ I2C แบบซอฟต์/ฮาร์ดแวร์ และ SPI ที่ขับเคลื่อนด้วย DMA
การเปลี่ยนแปลง API ที่ไม่เข้ากัน¶
ไม่มี v1.0.0-beta คือ การเปิดตัวครั้งแรก (เบต้า) ของ OpenMV firmware — ไม่มีรุ่นก่อนหน้าที่ต้องรักษาความเข้ากันได้ รุ่นถัดไปจะบันทึกการเปลี่ยนแปลงที่ไม่เข้ากันเทียบกับรุ่นก่อนหน้า ดูส่วนที่เหลือของ บันทึกการเปลี่ยนแปลง