v4.5.9¶
v4.5.9 מביאה זרימת תצוגה מקדימה גולמית ללוחות ללא מקודד JPEG חומרתי, חיתוך חיישן חומרתי לפינוי RAM נוסף, debayering מהיר יותר בהאצת Helium, ואצווה של תיקוני מצלמה/ניפוי-USB. היא גם משנה את API התוצאה של AprilTag ואת קבוצת משפחות AprilTag כברירת מחדל, אז קראו את השינויים שוברי-התאימות להלן.
עיקרי הדברים¶
זרימת תצוגה מקדימה גולמית — לוחות ללא מקודד JPEG חומרתי יכולים כעת לשלוח פריימים גולמיים מוקטנים ל-IDE/מארח במקום להיכשל בתצוגה מקדימה.
חיתוך חיישן חומרתי — הגדרת גודל פריים קטן יותר מפחיתה כעת את הזיכרון לכל חוצץ ומפנה RAM עבור
fb_alloc().debayering מהיר יותר — המרת Bayer→RGB/grayscale מואצת כעת ב-Helium-SIMD בלוחות Cortex-M55.
שובר-תאימות: אובייקט התוצאה של AprilTag השתנה לגישת מאפיינים וקבוצת משפחות AprilTag כברירת מחדל צומצמה (ראו שינויי ה-AprilTag ו-שינוי משפחת ה-AprilTag).
תכונות חדשות¶
זרימת תצוגה מקדימה גולמית — לוחות ללא מקודד JPEG חומרתי יכולים לעקוף JPEG ולזרום פריימים גולמיים מוקטנים (מוגבלים לכ-60 KB) ל-IDE/מארח, כך שתצוגה מקדימה חיה עובדת בלוחות אלה.
שינויים ושיפורים נוספים¶
חיתוך חומרתי מופעל כעת בכל לוחות STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). כאשר נקבעים גודל פריים או חלון, הזיכרון לכל חוצץ מצומצם לגודל החתוך, ומפנה RAM נוסף עבור
fb_alloc().debayering מהיר יותר — המרת Bayer→RGB565/grayscale מואצת כעת ב-ARM Helium/MVE SIMD בלוחות Cortex-M55 (לדוגמה RT1060), עם נתיב מקודד JPEG משותף ל-SIMD.
ניפוי IDE מהיר יותר — המנפה מעביר כעת נתונים ישירות ממחסנית ה-USB כשאפשר, ובכך נמנע מהעתקה נוספת.
תת-המודול של MicroPython עודכן — לוחות יכולים לשנות את גודל חוצץ ה-CDC של TinyUSB, בנוסף לתיקוני GC וכללי-בנייה.
תיקוני באגים¶
מצלמה וחיישנים:
תוקנה תבנית ה-Bayer/CFA של OV7725 (GBRG → BGGR), ובכך תוקן פלט צבע ה-debayered במצלמות OV7725; ה-OV7725 מדווח כעת על פורמט הפיקסל Bayer, וחיישני Bayer-בלבד מדווחים כעת על עומק מקור של בית אחד לפיקסל.
תוקן חישוב גודל חוצץ הפריימים הגולמי/Bayer.
ראייה ממוחשבת (machine learning):
TensorFlow Lite Micro משתמש כעת בזיכרון הפנוי של ערמת ה-GC בעת קביעת גודל זירת ה-tensor הזמנית, ובכך מונע כשלי הקצאה בטעינת מודל בלוחות עם זיכרון חוצץ-פריימים מוגבל.
מארח / IDE:
תוקן הטיפול בחוצץ ה-CDC של ניפוי-USB בלוחות TinyUSB לתפוקה אמינה יותר של serial/ניפוי.
tools/pyopenmv: תוקן סדר הבתים של RGB565, נוסף ארגומנטscale, וכלי חוצץ-הפריימים מדווח כעת על גודל/פורמט התמונה.
תמיכת חומרה ולוחות¶
OV7725 מדווח כעת על פורמט הפיקסל Bayer (טיפול נכון ב-raw/CFA).
חיתוך חומרתי מופעל ברחבי טווח לוחות STM32/NXP.
שינויי API שוברי-תאימות¶
שבירות API גלויות-למשתמש בין v4.5.8 ל-v4.5.9. היקף: מודולי C של פייתון ב-modules/ וספריות פייתון ב-scripts/libraries/.
כל שינוי מתויג לפי השפעתו:
minor — API צר; משפיע רק על סקריפטים שהשתמשו בו.
behavior — אותו API, תוצאות שונות; בדקו מחדש סקריפטים מכווננים.
השינויים מקובצים לפי השפעה בסדר זה. אם אתם רק רוצים להסב את הקוד שלכם, דלגו אל רשימת ההסבה בסוף. כל hash של commit מקשר ל-diff שלו ב-GitHub.
אובייקטי תוצאת AprilTag ו-set_buffers (minor)¶
תוצאות AprilTag מ-find_apriltags() חושפות כעת את נתוניהן כ-מאפיינים במקום כמתודות — השתמשו ב-tag.cx, tag.cy, tag.rotation, tag.family, tag.corners במקום tag.cx(), tag.family() וכו«. נוספו name חדש (מחרוזת שם המשפחה) ומאחזרי cxf / cyf בדיוק עשרוני.
בנפרד, תצורת חוצץ-הווידאו האוטומטית השתנתה: set_buffers מחליף את auto_adjust — העבירו -1 כדי להשתמש בעד שלושה חוצצים בגודל הפריים (או במספר המרבי שמתאים) ו-1 כדי להשתמש בכל חוצץ הפריימים. קביעת גודל החוצץ מודעת כעת לביטים-לפיקסל, כך שניתן להקצות יותר חוצצים לפורמטים של 1 bpp.
ble_advertising ו-RPC-מעל-רשת הוסרו (minor)¶
ספריית העזר ble_advertising והדוגמה ble_temperature.py הוסרו — השתמשו ב-aioble במקום (סופקה דוגמת טמפרטורה של aioble). מחלקות ה-master/slave של רשת ה-RPC הוסרו מ-rpc.py.
משפחות AprilTag מושבתות כברירת מחדל (behavior)¶
משפחות AprilTag ניתנות כעת לבחירה בנפרד בזמן הידור, והבלתי-מנוצלות מושבתות כברירת מחדל. בלוחות סטנדרטיים find_apriltags() מזהה כעת רק את משפחת TAG36H11 אלא אם הקושחה נבנית מחדש כשמשפחות אחרות מופעלות. סקריפטים הנשענים על משפחות אחרות (TAG16H5, TAG25H9, …) בבנייה סטנדרטית יפסיקו בשקט לזהות אותן.
Commit: effe12f2c
רשימת הסבה¶
להסבה נקייה ל-v4.5.9, העבודה הטיפוסית היא:
שנו את הגישה לתוצאות AprilTag מקריאות מתודה למאפיינים (
tag.cx()→tag.cx), והחליפו אתauto_adjustב-set_buffers(שינויי ה-AprilTag / חוצץ).החליפו את
ble_advertisingב-aiobleוזנחו כל שימוש ב-master/slave של רשת RPC (ההסרות).אם אתם משתמשים במשפחות AprilTag שאינן
TAG36H11בבנייה סטנדרטית, שימו לב שהן אינן מזוהות עוד כברירת מחדל (שינוי משפחת ה-AprilTag).