v2.5.0¶
v2.5.0 เป็นรุ่นที่เน้นการประมวลผลภาพอย่างเต็มรูปแบบ โดยเพิ่ม find_rects(), find_circles(), get_regression() (การปรับเส้นถดถอย), find_number() (การจดจำตัวเลขด้วย LeNet), คลาสสตรีม ImageWriter / ImageReader, sensor.flush() / width() / height() และรองรับ pyb.RTC การโหลดภาพตอนนี้ใช้บัฟเฟอร์เฟรมเป็นพื้นฐาน — โปรดอ่านรายละเอียดการเปลี่ยนแปลงที่ทำให้โค้ดเก่าใช้งานไม่ได้ด้านล่าง
ไฮไลท์¶
image.find_rects()— ตัวตรวจจับรูปสี่เหลี่ยม / รูปสี่ด้านพร้อมเอาต์พุตมุมimage.find_circles()— การตรวจจับวงกลมด้วย Houghimage.get_regression()— การปรับเส้นด้วยกำลังสองน้อยที่สุดและแบบ Robust (Theil-Sen)image.find_number()— การจดจำตัวเลขด้วย LeNetImageWriter/ImageReader— บันทึกและเล่นสตรีมภาพรองรับ
pyb.RTCพร้อมกับsensor.flush()/sensor.width()/sensor.height()Breaking: การโหลดภาพตอนนี้ใช้บัฟเฟอร์เฟรมเป็นพื้นฐานและจะเกิดข้อผิดพลาดหากภาพมีขนาดใหญ่เกินไป — ดูรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบ
ฟีเจอร์ใหม่¶
การตรวจจับลักษณะเด่น — เพิ่ม
image.find_rects()(ตัวตรวจจับ AprilTag quad; วัตถุ rect พร้อมx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(การปรับเส้นด้วยกำลังสองน้อยที่สุด + Theil-Sen robust) และimage.find_number()(การจดจำตัวเลขด้วย LeNet) พร้อมสคริปต์ตัวอย่างสำหรับแต่ละฟังก์ชันมุมของผลลัพธ์ — เพิ่มแอตทริบิวต์
cornersให้กับวัตถุผลลัพธ์ QR code / AprilTag / data-matrix / barcodeสตรีมภาพ — เพิ่มคลาส
image.ImageWriter/image.ImageReader(รูปแบบ chunk ที่จัดตำแหน่ง 16 bytes) พร้อมตัวอย่างimage_writer.py/image_reader.pySensor — เพิ่ม
sensor.flush()(ส่งบัฟเฟอร์เฟรมไปยัง IDE โดยไม่ต้องสแนปช็อต) และsensor.width()/sensor.height()pyb.RTC— เปิดใช้งานการรองรับ RTC พร้อมตัวอย่างrtc.pyเพิ่ม Haar cascade สำหรับหน้าแมวและตัวอย่าง Servo-Shield (PCA9685) โดยเครื่องมือ host
openmv-cascade.pyรองรับรูปแบบ OpenCV XML cascade ใหม่แล้ว
การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ¶
บัฟเฟอร์เฟรมได้รับการปรับโครงสร้างใหม่เพื่อให้เมธอด
copy_to_fbของภาพอัปเดตการแสดงผลตัวอย่างใน IDE; เส้นทางHaarCascade()ไม่ต้องมี/นำหน้าอีกต่อไป (ระบบตรวจจับอัตโนมัติว่าเป็นในตัวหรือไฟล์); การบันทึก GIF/MJPEG รองรับ VGA แล้ว (และ BAYER GIF); ไฟล์README.txtในตัวถูกอัปเดตและไฟล์ไดรเวอร์openmv.infจะไม่ถูกสร้างบนระบบไฟล์ใหม่อีกต่อไป
การแก้ไขข้อบกพร่อง¶
การประมวลผลภาพ:
แก้ไขการสะสมคะแนนของ
find_circles(), ออฟเซ็ต rho ของget_regression()เมื่อใช้กับ ROI และหน่วยความจำรั่ว, การรวมเซกเมนต์ของfind_lines(), การเฉลี่ยมุมและขอบเขตสีค่าเริ่มต้น (ที่จำกัดน้อยที่สุด) ของfind_blobs(), ความเสถียรของการเรียงลำดับ ORB keypoint / การจัดลำดับ descriptor และ matched-flag และการโหลด Haar cascade แบบ buffered (การอ่านที่ไม่จัดตำแหน่ง)
ระบบ:
เปิดใช้งาน
pybServo 3 (P9) (#256), แก้ไขการกำหนดค่า RTC, เพิ่ม timeout ของอักขระ UART (#240) และแก้ไขแฟลก "enabled" ของบัฟเฟอร์เฟรม sensor ที่ยังไม่ถูกกำหนดค่าเริ่มต้น
การรองรับฮาร์ดแวร์และบอร์ด¶
การเปลี่ยนแปลง API ที่ส่งผลกระทบ¶
การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v2.4.1 และ v2.5.0 ขอบเขต: Python C-modules ใน modules/ และ Python libraries ใน scripts/libraries/
การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลง พฤติกรรม (API เดิม ผลลัพธ์ต่างออกไป) — ตรวจสอบสคริปต์ที่ได้รับผลกระทบอีกครั้ง แต่ละ hash ของ commit เชื่อมโยงไปยัง diff บน GitHub
การโหลดภาพใช้บัฟเฟอร์เฟรมเป็นพื้นฐาน (พฤติกรรม)¶
image.Image / การโหลดภาพตอนนี้คัดลอกภาพที่โหลดไปยังบัฟเฟอร์เฟรมหลักและเกิดข้อผิดพลาดหากภาพมีขนาดใหญ่เกินไปที่จะใส่ได้ การโหลดที่เคยสำเร็จไปยัง heap buffer อาจล้มเหลวได้ตอนนี้ — ตรวจสอบให้แน่ใจว่าภาพที่โหลดพอดีกับบัฟเฟอร์เฟรม (หรือจัดการกับข้อผิดพลาดใหม่นี้)
Commits: 87d53385a
รายการตรวจสอบการย้าย¶
ตรวจสอบให้แน่ใจว่าภาพที่โหลดพอดีกับบัฟเฟอร์เฟรม (หรือดักจับข้อผิดพลาด "image too large" ใหม่) ในที่ที่คุณเคยพึ่งพาการโหลดภาพด้วย heap (การเปลี่ยนแปลงการโหลดภาพ) สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่ต้องเปลี่ยนแปลง