v3.6.0

v3.6.0 นำเสนอการรองรับกล้อง OV5640 5 MP แบบเต็มรูปแบบพร้อม framesizes ความละเอียดสูงใหม่ (HD / FHD / QHD / QXGA / WQXGA), อัปเดตคอร์เป็น MicroPython 1.12, ปรับปรุงประสิทธิภาพตัวเข้ารหัส JPEG ซอฟต์แวร์และการตรวจจับ AprilTag / เส้นอย่างมาก, เพิ่ม UVC (USB video) บน OpenMV Cam H7 Plus, และรองรับ QSPI flash สูงสุด 32 MB พฤติกรรมของ MicroPython และ get_histogram() เปลี่ยนแปลง — กรุณาอ่านการเปลี่ยนแปลงที่ไม่เข้ากันด้านล่าง

ไฮไลต์

  • OV5640 5 MP — ไดรเวอร์กล้องแบบเต็มรูปแบบพร้อม framesizes ใหม่ HD / FHD / QHD / QXGA / WQXGA / WQXGA2

  • MicroPython 1.12 — อัปเดตคอร์ที่รวมอยู่แล้ว

  • Pipeline ที่เร็วกว่า — ปรับปรุงประสิทธิภาพการเข้ารหัส JPEG ซอฟต์แวร์, การตรวจจับ AprilTag, การตรวจจับเส้น LSD, histeq(), และการถอดรหัส QR code อย่างมาก

  • UVC บน H7 Plus — OpenMV Cam H7 Plus สามารถทำหน้าที่เป็นอุปกรณ์ USB video ได้

  • การเปลี่ยนแปลงที่ไม่เข้ากัน: พฤติกรรม MicroPython, การทำให้เป็นมาตรฐานของ image.get_histogram(), และผลลัพธ์ JPEG/ระดับสีเทาของ OpenMV 3 เปลี่ยนแปลง — ดูการเปลี่ยนแปลงที่ไม่เข้ากัน

คุณสมบัติใหม่

  • OV5640 — เพิ่มการรองรับแบบเต็มรูปแบบสำหรับกล้อง OV5640 5 MP (การกำหนดค่า external clock ใน sensor init) และค่าคงที่ framesize ใหม่ sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2

  • TIM4 — ปลดปล่อยแล้วเพื่อให้สามารถใช้งานจาก MicroPython ได้

  • เพิ่มตัวอย่าง DAC timed-write (dac_write_timed.py) และเปลี่ยนชื่อ dac_control.py เป็น dac_write.py

การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ

  • อัปเดต MicroPython ที่รวมอยู่เป็น 1.12; ปรับปรุงประสิทธิภาพตัวเข้ารหัส JPEG ซอฟต์แวร์อย่างมาก (VGA path, grayscale/binary paths, การคำนวณจำนวนเต็มแทนทศนิยม, การจับ MCU ที่ปรับปรุงแล้ว), LSD find_line_segments(), การตรวจจับ AprilTag, Image.histeq(), และการแปลง QR-code / RGB-to-gray; เพิ่มการรองรับ QSPI flash สำหรับชิปสูงสุด 32 MB; ลบตัวอย่าง CMSIS-CNN cnn.py ที่ล้าสมัย

การแก้ไขบั๊ก

กล้องและการประมวลผลภาพ:

  • แก้ไขการเสียหายของการเข้ารหัส JPEG ที่ HQQQVGA, การบีบอัด JPEG ของภาพไบนารี (1 บิต), การถดถอยของ find_line_segments() (เปิดใช้งานการตรวจสอบ non-aligned NOTDEF อีกครั้ง), และปัญหาเล็กน้อยของไดรเวอร์ OV2640

ระบบและการบูต:

  • แก้ไข self-test / การเสียหายของระบบไฟล์ (selftest.py ตอนนี้ทำงานก่อน USB MSC เปิดใช้งาน และ USB MSC เปิดใช้งานเมื่อมีข้อผิดพลาดร้ายแรงเพื่อให้โฮสต์อ่าน error log ได้), pyb.DAC write_timed(), ช่วงเวลา H7 machine.I2C, การเปิดใช้งาน F7 overdrive อีกครั้งหลังโหมดหยุด, และช่วงเวลา rtc.wakeup() ของ stop_mode.py

ฮาร์ดแวร์และการรองรับบอร์ด

  • OV5640 — ไดรเวอร์กล้อง 5 MP แบบเต็มรูปแบบพร้อม framesizes ความละเอียดสูง

  • OpenMV Cam H7 Plus — การรองรับ UVC (USB video); เป้าหมายบอร์ด OPENMV4R ถูกเปลี่ยนชื่อเป็น OPENMV4P

  • QSPI flash — ตอนนี้รองรับชิปสูงสุด 32 MB

การเปลี่ยนแปลง API ที่ไม่เข้ากัน

การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v3.5.2 และ v3.6.0 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/

การเปลี่ยนแปลงที่ไม่เข้ากันทั้งสามนี้เป็นการเปลี่ยนแปลง พฤติกรรม (API เดิม ผลลัพธ์ต่างกัน) — ตรวจสอบสคริปต์ที่ได้รับผลกระทบอีกครั้ง แต่ละแฮชคอมมิตลิงก์ไปยัง diff บน GitHub

MicroPython อัปเดตเป็น 1.12 (พฤติกรรม)

คอร์ MicroPython ที่รวมอยู่ได้รับการอัปเดตเป็น 1.12 พฤติกรรมของไลบรารีมาตรฐานและภาษาเป็นไปตาม MicroPython 1.12 upstream; ตรวจสอบสคริปต์ที่ขึ้นอยู่กับพฤติกรรมเฉพาะเวอร์ชันของ micropython / โมดูลมาตรฐานอีกครั้ง

Commits: eafd431ea

การทำให้เป็นมาตรฐานของ image.get_histogram() เปลี่ยนแปลง (พฤติกรรม)

image.get_histogram() (และ get_statistics()) ที่มีค่าขีดแบ่งสีตอนนี้ทำให้เป็นมาตรฐานโดยจำนวนพิกเซลที่ผ่านค่าขีดแบ่งแทนทั้ง ROI และใช้ floor แทน round สำหรับการทำ bin indexing ค่าฮิสโตแกรม/สถิติสำหรับการเรียกที่มีค่าขีดแบ่งแตกต่างจากเวอร์ชันก่อนหน้า — ปรับโค้ดที่เปรียบเทียบกับค่าฮิสโตแกรมแบบสัมบูรณ์อีกครั้ง

Commits: 7cf0f8089

ผลลัพธ์ JPEG/ระดับสีเทาของ OpenMV 3 เปลี่ยนแปลง (พฤติกรรม)

เพื่อประหยัดแฟลช YUV lookup table ของ OpenMV 3 (M7) ถูกปิดใช้งาน ดังนั้นค่าพิกเซลของผลลัพธ์ JPEG และระดับสีเทาจะคำนวณแตกต่างกันเล็กน้อยบน OpenMV 3 ผลลัพธ์ยังคงถูกต้องแต่แตกต่างเล็กน้อยจากเวอร์ชันก่อนหน้า; ตรวจสอบการเปรียบเทียบพิกเซลที่แม่นยำบน OpenMV 3 อีกครั้ง

Commits: 0e4b46e41

รายการตรวจสอบการย้าย

ตรวจสอบสคริปต์ที่ขึ้นอยู่กับพฤติกรรมเฉพาะเวอร์ชันของ MicroPython กับ 1.12 อีกครั้ง (การอัปเดต MicroPython), ปรับโค้ดที่เปรียบเทียบกับค่า get_histogram() / get_statistics() แบบสัมบูรณ์เมื่อใช้ค่าขีดแบ่งสี (การเปลี่ยนแปลงฮิสโตแกรม), และตรวจสอบการเปรียบเทียบพิกเซลที่แม่นยำบน OpenMV 3 อีกครั้ง (การเปลี่ยนแปลงผลลัพธ์ OpenMV 3) สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่มีการเปลี่ยนแปลง