v2.5.0

גרסה v2.5.0 היא שחרור עשיר תכונות בתחום עיבוד התמונה: היא מוסיפה את find_rects(), find_circles(), get_regression() (התאמת קו/רגרסיה), find_number() (ספרות LeNet), את מחלקות ההזרמה ImageWriter / ImageReader, את sensor.flush() / width() / height(), ותמיכת pyb.RTC. טעינת תמונה נתמכת כעת על-ידי חוצץ הפריימים (framebuffer) — קראו את השינויים השוברים למטה.

עיקרים

  • image.find_rects() — מזהה מלבנים / מרובעים עם פלט פינות.

  • image.find_circles() — זיהוי מעגלים באמצעות Hough.

  • image.get_regression() — התאמת קו בריבועים פחותים ובשיטה חסינה (Theil-Sen).

  • image.find_number() — זיהוי ספרות באמצעות LeNet.

  • ImageWriter / ImageReader — הקלטה והשמעה חוזרת של זרמי תמונות.

  • תמיכת pyb.RTC, בנוסף לsensor.flush() / sensor.width() / sensor.height().

  • שובר: טעינת תמונה נתמכת כעת על-ידי חוצץ הפריימים ומעלה שגיאה אם התמונה גדולה מדי — ראו את השינויים השוברים.

תכונות חדשות

  • זיהוי מאפיינים — נוספו image.find_rects() (מזהה מרובעים של AprilTag; אובייקטי rect עם x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (התאמת קו בריבועים פחותים + שיטת Theil-Sen החסינה), ו-image.find_number() (זיהוי ספרות באמצעות LeNet), כל אחד עם סקריפטי דוגמה.

  • פינות תוצאה — נוסף מאפיין corners לאובייקטי התוצאה של QR-code / AprilTag / data-matrix / ברקוד.

  • זרמי תמונות — נוספו המחלקות image.ImageWriter / image.ImageReader (פורמט נתחים מיושר ל-16 בתים) עם הדוגמאות image_writer.py / image_reader.py.

  • חיישן — נוספו sensor.flush() (דחיפת חוצץ הפריימים ל-IDE ללא snapshot) וsensor.width() / sensor.height().

  • pyb.RTC — הופעלה תמיכת RTC עם דוגמת rtc.py.

  • נוספו Haar cascade לזיהוי פני חתול ודוגמת Servo-Shield (PCA9685); כלי המארח openmv-cascade.py קיבל תמיכה בפורמט ה-cascade החדש של OpenCV XML.

שינויים ושיפורים נוספים

  • חוצץ הפריימים עבר refactoring כך שמתודות תמונה מסוג copy_to_fb מעדכנות את התצוגה המקדימה ב-IDE; נתיבי HaarCascade() אינם דורשים עוד / מוביל (מובנה לעומת קובץ מזוהה אוטומטית); הקלטת GIF/MJPEG תומכת כעת ב-VGA (וב-GIFs של BAYER); קובץ ה-README.txt המובנה עודכן וקובץ הדרייבר openmv.inf אינו נוצר עוד במערכת קבצים חדשה.

תיקוני באגים

עיבוד תמונה:

  • תוקנו צבירת הקולות ב-find_circles(), היסט ה-rho ב-get_regression() עם ROI ודליפת זיכרון, מיזוג קטעים ב-find_lines(), מיצוע הזווית ב-find_blobs() וגבולות הצבע המוגדרים כברירת מחדל (הכי פחות מגבילים), יציבות מיון נקודות המפתח של ORB / סדר המתארים (descriptors) ודגל ההתאמה, וטעינה מחוצצת של Haar cascade (קריאות לא מיושרות).

מערכת:

  • הופעל Servo 3 (P9) של pyb (#256), תוקן אתחול ה-RTC, הוגדל timeout התווים של UART (#240), ותוקן דגל ה-”enabled“ הלא-מאותחל של חוצץ הפריימים של החיישן.

תמיכת חומרה ולוחות

  • תמיכת pyb.RTC ו-Servo 3 (P9) של pyb; דוגמת Servo-Shield (PCA9685).

שינויי API שוברים

שבירות API גלויות למשתמש בין v2.4.1 ל-v2.5.0. היקף: מודולי C של Python ב-modules/ וספריות Python ב-scripts/libraries/.

השינוי השובר הוא שינוי behavior (אותו API, תוצאה שונה) — בדקו מחדש סקריפטים מושפעים. כל hash של commit מקושר ל-diff שלו ב-GitHub.

טעינת תמונה נתמכת על-ידי חוצץ הפריימים (behavior)

image.Image / טעינת תמונה מעתיקה כעת את התמונה הטעונה לתוך חוצץ הפריימים הראשי ומעלה חריגה אם התמונה גדולה מדי מכדי להיכנס. טעינות שהצליחו בעבר לחוצץ ערימה (heap) עלולות כעת להיכשל — ודאו שתמונות טעונות נכנסות לחוצץ הפריימים (או טפלו בשגיאה החדשה).

Commits: 87d53385a

רשימת בדיקה להגירה

ודאו שתמונות טעונות נכנסות לחוצץ הפריימים (או תפסו את השגיאה החדשה ”image too large“) במקומות שבהם הסתמכתם בעבר על טעינות תמונה מבוססות ערימה (heap) (השינוי בטעינת התמונה). כל שאר הסקריפטים רצים ללא שינוי.