v4.7.0¶
v4.7.0 היא גרסה גדולה המתמקדת ב-NPU וב-ROMFS, הבנויה על Qt Creator 14.0.2. היא מציגה זרימת עבודה של מערכת קבצים ROM על-גבי-ההתקן עם מהדרי מודלים משולבים של ARM Ethos-U (Vela) ושל ST Edge AI, מוסיפה תכנות מפעל מבוסס STM32CubeProgrammer עבור OpenMV N6, וכוללת את קושחת OpenMV 4.7.0 בכל הלוחות. שים לב שעדכון של מצלמה כלשהי מקושחה שקדמה ל-4.7.0 מאלץ כעת מחיקה של מערכת קבצים FAT ואיפוס ROMFS, מה שמוחק קבצים השמורים בזיכרון הפלאש (flash) הפנימי של ההתקן; ראה שינויים שוברי תאימות בהמשך.
עיקרי הדברים¶
זרימת עבודה של מערכת קבצים ROM מאפשרת לך ליצור, לערוך, לצרוב ולאפס מערכת קבצים לקריאה-בלבד על-גבי-ההתקן כך שניתן יהיה לאחסן מודלי ML על המצלמה, משולבת בכל מאתחלי (bootloaders) ה-DFU, IMX, Bossac, Picotool ו-Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
מהדרי המודלים ARM Ethos-U Vela ו-ST Edge AI משולבים כעת כך שמודלי
.tflite/.onnxמהודרים אוטומטית עבור ה-NPU בעת טעינתם ללוחות Ethos-U55 (OpenMV AE3) או Neural-ART (OpenMV N6). (411f708ea, 3064411ad)STM32CubeProgrammer כלול כעת כדי לאפשר תכנות מפעל של מאתחל (bootloader) ה-OpenMV N6 (STM32N657) באמצעות
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)דפדפן Model Zoo מקבל תיבת סימון ”סנן מודלים לפי סוג לוח“ המופעלת על-ידי טבלת
models/index.csvחדשה אשר מסתירה מודלים שאינם תואמים ללוח המחובר. (80adb2079)יישור ROMFS לפי סיומת: עורך תמונת ה-ROMFS ממיין כעת קבצים לפי סדר אלפביתי וארוז אותם תוך שימוש בכללי יישור-בתים מתוך
settings.json(למשל מודלי.tfliteמיושרים ל-16 בתים). (e87b2bf06)הקושחה הכלולה עודכנה ל-4.7.0 בכל לוחות OpenMV ו-Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)
תכונות חדשות¶
תפריט משנה של מערכת קבצים ROM (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) מחליף את פעולת ה-Edit ROM File Systemהבודדת הישנה. (0bc275a0a, 958f732b5)דפדפן Open Model Zoo עם מצב מודל-נבחר מתמיד ותצוגה מקדימה של שינוי-בחירה, כולל ספריות מודלים מצורפות של STMicroelectronics, Qualcomm, DeGirum, Edge Impulse ו-Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
פריט התפריט Convert Model for NPU תחת
Machine Vision Toolsמהדר מודל TensorFlow Lite (.tflite) או ONNX (.onnx) עבור מאיץ ה-NPU של הלוח (Vela עבור.tfliteשל Ethos-U, ST Edge AI עבור.tflite/.onnxשל ה-Neural-ART של ה-N6) ושומר את המודל המומר לדיסק או למצלמה. (3913f5b8b)הכלי Copy/Convert Python File מעתיק סקריפט Python למצלמה או לדיסק וברירת מחדל מהדר אותו לרוחב לקוד-ביניים
.mpyשל MicroPython באמצעותmpy-cross; הוא נמצא בתפריט משנה חדשMicroPython ToolsתחתTools. (e9d7fa143, 47188c0e3)לחצני המתג Wrap Text נוספו למסוף הטורי של OpenMV ולחלונית הפלט
General Messages; שניהם גולשים את הפלט שלהם לפי מילים ושומרים את ההגדרה לאורך הפעלות. (8c052845a, 51d3e1ad6)הידור-לרוחב של ROMFS עם mpy-cross עם דגלי ארכיטקטורה לפי לוח (
armv7emsp/armv7emdp) מאפשר להקפיא סקריפטים של MicroPython לתוך תמונות ROMFS. (8c71548df)תיבת הדו-שיח של מאתחל הקושחה מקבלת כעת קבצי ROMFS מסוג
*.imgלצד*.binו-*.dfu, מאמתת סיומות לפי מאתחל, ומשביתה את תיבת הסימוןReset ROMFS file systemהקיימת בעת טעינת קובץ*.img. (79f348b36)עדכונים מקושחה שקדמה ל-4.7.0 מאלצים כעת את תיבות הסימון של מחיקת ה-FAT ושל איפוס/עדכון ה-ROMFS למצב פעיל ומזהירים שהשדרוג מחייב מחיקה של מערכת הקבצים FAT. (f6f3355b0)
שינויים ושיפורים נוספים¶
ארגון מחדש של מאגר מודלי Qualcomm הכלול לתיקיות מבוססות-משימה (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), הסרת מודלים גדולים שאינם נתמכים (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), והוספתresnet18ו-densenet_121(עם תאימות לוחות רחבה יותר), בנוסף ל-facemap_3dmmו-FFNet_40S(AE3/N6 בלבד). (300ce2fc2)נוסף ספק מודלים חדש של Edge Impulse (מודל זיהוי-פנים FOMO) ומודלי Google חדשים (
micro_speech,mnist_lstm,person_detection) למאגר המודלים הכלול, ונוספה פעולתView/Editלתפריט ההקשר של עורך ה-ROMFS. (80adb2079)ניקוי קישורי model-zoo: נוסף מודל
face_attrib_netשל Qualcomm (AE3/N6), הוסרה רשומת YOLO-NAS השבורה, ותוקנו מסנני תאימות-לוחות עבור כמה מודלי זיהוי-עצמים של STMicroelectronics. (fd639bda0)נוספו תוויות מודל נוספות, הוחלף תצורת מאיץ ה-NPU של מודל אחד מ-
staiל-stedgeai, והורחב מסנן תאימות-הלוחות שלst_yolo_x(כעת גם OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 ו-NICLA_VISION בנוסף ל-AE3/N6). (1515631ce)הוספת מודל
.tfliteל-ROMFS מדלגת כעת על הידור Vela/Ethos-U אם המודל כבר הודר עבור Ethos-U (הוא פשוט מועתק), ופעולת תיבת הדו-שיח שמה שונה מ-Add Modelל-Model Zoo. (9c0b178fa)הידור ST Edge AI מדלג על המרה עבור מודלים שכבר נמצאים בפורמט
NBIN. (3064411ad)תיבת הדו-שיח של מהדר Vela מנתחת את שימוש ה-SRAM המדווח של המודל מול גודל הערימה המוגדר של כל לוח ומציגה אחוז עם אזהרות/שגיאות כאשר המודל חורג מ-90% או 100% מהערימה הזמינה. (7140fc2aa)
מהדר Vela מדווח כעת על שגיאת ”not supported on this platform“ ברורה במקום להיכשל בשקט, וגרירת מודל לתוך ה-model zoo כבר אינה מחייבת ש-Vela יהיה נוכח. (c736dd54d, 0ad7fd705)
מהדר Vela Ethos-U רץ כעת באמצעות סביבת הריצה המוטבעת של Python הכלולה (
python -m ethosu.vela) במקום קובץ הפעלה עצמאי. (52f9b8820)תיבות הדו-שיח של הידור מודלים של ST Edge AI ו-Vela ארוכות-משך מציגות כעת הודעת ”This command takes a while to execute. Please be patient.“. (fc9ac2ab5)
פתיחת דוגמאות או סקריפטים חדשים בחיישני PAG7936 (N6/AE3) ו-PS5520 מעלה כעת אוטומטית את
sensor.set_framesize(QVGA)ל-VGAעבור החיישנים בעלי הרזולוציה הגבוהה יותר. (dfc27dd25)נוסף תיקון-אוטומטי של סקריפטי דוגמה עבור מצלמות תרמיות FLIR Boson 320/640, PixArt PAG7920/PAJ6100, FROGEYE2020, ומצלמת האירועים Prophesee GENX320. (1f54ad01b)
משאבי IDE הניתנים להורדה (קושחה/מודלים/תיעוד) מותקנים כעת לתיקיית נתוני-יישום משותפת לכל-המשתמשים באמצעות API
ICore::allUsersResourcePath()חדש, כאשר מניפסט גרסת המשאבים נשמר בקובץOpenMVIDE.jsonרמה אחת מעל תיקיית המשאבים של כל-המשתמשים. (be308ace2, 7c7dddb87)במהלך עדכוני קושחה של חבילת-המערכת של Alif, ה-IDE מבקש כעת מהמשתמש להפעיל מחדש את המצלמה (לנתק ולחבר מחדש) לפני שממשיכים. (162d128f9, 756611696)
זרימת הורדת המאתחל (bootloader)/הקושחה של Alif (Ensemble) עוצבה מחדש כדי להיות תואמת ROMFS: היא יוצרת את App TOC לאחר כתיבת המאתחל, מעתיקה תמונות bin/sign לתיקיית משנה
images/, וצורבת אתfirmware_pad.toc. (f623c9231)פשטת שמות התצוגה של הלוחות בבורר הקושחה על-ידי השמטת סיומות השבב-בסוגריים המיותרות ותגי ”Legacy“ (למשל ”OpenMV Cam H7 (STM32H743)“ הופך ל-”OpenMV Cam H7“). (334b04dbd)
שתי פעולות בתפריט Tools שמן שונה לשם בהירות:
Run Bootloader (Load Firmware)הוא כעתLoad Custom Firmware, ו-Erase Onboard Data Flashהוא כעתErase Internal FAT File System(תיבת הדו-שיח לאישור מתייחסת כעת למערכת הקבצים FAT הפנימית של המצלמה). (0bc275a0a)שוחזרו קיצורי המקלדת
Ctrl+Shift+L(Load Custom Firmware) ו-Ctrl+Shift+E(Erase Internal FAT File System), והוחזר הפריטPreferencesלתפריטEdit. (dabb6f7d9, b5daf59a6)זיהוי-אוטומטי של מהדר C/C++ ושל שרשרת-כלים בעת ההפעלה הושבת, מכיוון שה-IDE מכוון ל-MicroPython. (f42fcc8f2)
נוסף לוגו השותף של Alif Semiconductor (בהיר/כהה) לאזור השותפים בתיבת הדו-שיח
About. (4878781bb)קריאת הקושחה של הלוח המחובר יכולה כעת לרוקן נתוני יציאה-טורית מיושנים לפני הוצאת הפקודה, מה שמשפר את האמינות של שאילתות קושחה/גרסה. (c15a46f5b)
שופרה אמינות החיבור של ROMFS על-ידי אילוץ חיבור-מחדש/רענון בפעולות קריאה, כתיבה ואיפוס של ROMFS. (f9bc83007)
תיקוני באגים¶
תוקנו תיבות הדו-שיח לשמירת מודל/סקריפט והוספת-קובץ/הוספת-מודל של ROMFS כך שישתמשו בסיומת הקובץ הפשוטה במקום בסיומת המלאה, מה שמונע סיומות משובשות בעת שינוי שמות של קבצים עם נקודות בשמותיהם. (52c6820d2)
תוקנה גלישת שורת-התקדמות של העלאת DFU בהעברות גדולות על-ידי חישוב האחוז באמצעות אריתמטיקה של 64 סיביות. (4b91ff2ba)
תוקנה צריבה של קושחות/מאתחלי OpenMV ישנים יותר על-ידי הגנה על שלבי מחיקת הפלאש (flash) והתכנות מפני טווחי מגזרי פלאש לא תקינים (לא-חיוביים) והצגת שגיאה מפורשת במקום קריסה, ותוקנה הגנת הגישה-ל-ROMFS במהלך שדרוג קושחה ישנה. (ae2cc15b4, 235dbdb10)
תוקן זיהוי לוח ביציאה-טורית כך שמסנן ההיפוך של המספר-הסידורי מיושם רק במהלך אימות היציאה (לא במהלך החיבור), ונוספו מסנני היפוך עבור לוח ה-i.MX כך שמספרים סידוריים של מצב-מאתחל יוצאו מהכלל. (ae2cc15b4)
תוקנה התמדה של סוג-לוח כך שמיפוי לוח שנשמר קודם לכן אינו נדרס עוד כאשר נעשית בחירה ידנית של סוג-לוח. (c42d36001)
תיקון מאתחל (bootloader) פותר כעת את שם התצוגה של לוח מוסתר למחרוזת הארכיטקטורה שלו כך שחיבור-מחדש/תיקון-קושחה ממפה את הלוח הנכון. (a1de7a09c)
זיהוי לוח מתאים כעת מחרוזות ארכיטקטורת-לוח ללא תלות באותיות גדולות/קטנות. (7a2e0e93f)
תוקנה כשל בעיגון דיסק ההתקן בעת ניתוק/חיבור-מחדש מהיר על-ידי הנצחת תהליכון סריקת-הכוננים וניסיון-חוזר של סריקות הכוננים עד שלוש פעמים, ונעשה שסריקת הכוננים תרוץ באופן אמין על תהליכון הסריקה. (455dbe967, 58c0e5456)
תוקן כשל בהרצת מהדר המודלים (ST Edge AI ו-Vela) על מחשבי Mac מבוססי Intel על-ידי התרת נתיב כלי ARM64 בעת ריצה תחת Rosetta. (32e309e86)
תוקנו בעיות מטמון של כלי Python ושל שרת-השפה על-ידי ניתוב כל ה-
__pycache__של Python הכלול לתיקיית משאבים משותפת וחימום-מקדים של ה-pycache שלblhostשל ה-i.MX לפני חיבור המאתחל מוגבל-הזמן כך שהצריבה כבר אינה חורגת מהזמן. (f64f3330f)תוקן נתיב הכותרת (header) של MicroPython המשמש את שרת-השפה של Python (להשלמה-אוטומטית) כך שיתפענח מנתיב המשאבים של כל-המשתמשים, ונעשה חיפוש נתיב המשאבים של כל-המשתמשים עמיד יותר כאשר סינון שם-המשתמש אינו מוצא דבר. (5f2648565, fc1938818)
תוקנו קישורי תיעוד שבורים של ST Edge AI בתיבת הדו-שיח של אפשרויות-המהדר על-ידי המרת נתיבי קבצים מקומיים לכתובות
file://תקינות. (3ac136444)תוקנה הזחה-אוטומטית בעורך Python כך ששורות כבר אינן מוזחות-החוצה בטעות לאחר שורה המסתיימת בנקודתיים (אלקטרית), למשל לאחר כותרות
if/for/def. (6555f44ba)תוקן יישור רשומת ספריית ROMFS כך שהיסטי תיקיות מביאים בחשבון את גודל רשומת שם-הספרייה, והוגדל ההשהיה (latency) בין-קבצים בעת פריקה/יצירה של קבצי ROMFS ו-model-zoo כדי להבטיח חותמות-זמן-יצירה מובחנות. (9bf7e1d9e, d968a6e46)
תוקנה גלישת מספר-שלם בהמרת mean-to-depthwise-conv של מיטוב הגרף של Vela על-ידי חישוב מכפיל הפלט ב-64 סיביות, ותוקן ה-basename המשמש בכותרת/פלט של תיבת הדו-שיח של מהדר Vela. (d217a46e9, 8376490eb)
תוקן שחזור התיקיות המורחבות של דפדפן ה-model zoo והמודל הנבחר בעת פתיחה-מחדש, והוחלפה תיבת הדו-שיח להקצאת-ערימה כדי להימנע מבעיות אורך-חיים של ה-GUI. (84a63ef4c)
תוקן נתיב השמירה-בשם של Model Zoo כך שהתיקייה הזכורה נשמרת כתיקייה ולא כשם-קובץ מלא. (be877f7af)
נשמר נתיב משאבי-המשתמש הישן במקום למחוק אותו בעת ההפעלה, מה שמונע שגיאת ”close any programs viewing OpenMV IDE data“ כאשר התיקייה הישנה נעולה. (775656775)
תוקנו סקריפטי מתקין מנהלי-ההתקן של Windows וקבצי הקטלוג/inf כך שמנהלי ההתקן OpenMV DFU, dfuse, FTDI, Arduino, pybcdc ו-VCR יותקנו באמינות וידווחו קודי הצלחה כראוי, חוזקו סקריפטי התקנת מנהל ההתקן dfuse/vcr DFU, ונחתמו מחדש קטלוגי מנהל ההתקן OpenMV DFU הכלולים. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
תוקן המתקין של Linux כך שיתקין
pyusbבאמצעות חבילת ה-python3-usbשל ההפצה ויוסיףbuild-essentialבמקום להריץpip install pyusb, וכדי לזהות את מערכת ההפעלה באמצעות/etc/os-release. (c471ddc42, 4014a0ba5)המתקין של Windows מאפשר כעת תמיכה בנתיבים ארוכים כך שקבצי ST Edge AI מקוננים-עמוק יותקנו כראוי. (0b3ca6945)
תמיכת פלטפורמה וכלים¶
בסיס Qt Creator: 14.0.2.
קושחת OpenMV כלולה: עודכנה ל-4.7.0 בכל לוחות OpenMV ו-Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); הקושחה נבנתה מחדש עם תמיכת ROMFS (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)ROMFS של OpenMV N6: הוגדל מ-16MB ל-24MB, כאשר תמונת ה-romfs הועברה ל-DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
ROMFS של OpenMV AE3: הוגדל מ-16MB ל-24MB, עם הוספת כללי יישור של 16/32 בתים עבור קבצי מודל
.binכלולים בכל הלוחות. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) כלול עבור macOS, Linux ו-Windows עם מסד הנתונים המלא של התקני STM32 וטוענים חיצוניים לתכנות מפעל של N6; ההתקנה קוצצה מקבצי טוען-חיצוני ומסד-נתונים לפי-MCU שאינם בשימוש כדי לצמצם את הגודל. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
מהדר ST Edge AI (stedgeai) 2.1.0 כלול (Windows) עבור ה-Neural-ART NPU של ה-N6. (3064411ad)
מהדר ARM Ethos-U Vela 4.2.0 (עם numpy 2.2.4) כלול עבור Linux x86-64, macOS (Apple silicon) ו-Windows. חבילת ה-Windows נוספה לראשונה ב-Vela 4.1.0 / numpy 2.2.3 ומאוחר יותר הועלתה ל-4.2.0 / numpy 2.2.4 הסופיים. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 כלול (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: עודכן ל-v1.104.0 (בינארי setools חתום ו-PDF של מדריך המשתמש v1.104.0) עבור לוחות מבוססי Alif Ensemble. (43260719c, 75a58e61b)
נוספו תצורות NPU של OPENMV_AE3 (Alif Ensemble) המכוונות למאיצי ethos-u55-256 ו-ethos-u55-128 עם תצורות מערכת RTSS HP/HE SRAM/MRAM/OSPI. (1f5fc546d, 411f708ea)
נוספו תרשימי pinout עבור מצלמות OpenMV N6 ו-AE3 (חיישן PAG7936) לבורר ה-pinout, ודוגמת מצלמת-אירועים בגווני אפור Genx320 חדשה המדגימה תצורת מסנן נגד-הבהוב. (60184bbc5, 6d04b1b50)
עודכנה התאמת ה-USB PID של Arduino Nicla Vision כדי לזהות PID יישום חדש (0x055F) לצד המקורי (0x045F). (91ce4007c)
עודכנו פרמטרי הצריבה של מאתחל-מאובטח של NXP/blhost כדי להשתמש בכתובת/אורך FCB מפורשים ובגודל דיסק MBR, בהתאמה עם ערכת spsdk העדכנית ביותר. (16b66c3e2)
המתקין של Windows כולל כעת מנהל התקן ייעודי של מאתחל STM32 DFU ואת חבילות ההפצה-מחדש של Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
הוסר מאגר מודלי YOLOv5/YOLOv8 של DeGirum הכלול מתוך ה-IDE. (26710be1c)
שינויים שוברי תאימות¶
שינויים שוברי זרימת-עבודה והתנהגות הנראים למשתמש ב-v4.7.0. אין שבירה של API סקריפטינג, אך שים לב לדברים הבאים:
מערכת הקבצים FAT נמחקת בעת שדרוג מקושחה שקדמה ל-4.7.0. שדרוג של כל OpenMV Cam מקושחה שקדמה ל-4.7.0 מאלץ כעת מחיקה של מערכת הקבצים FAT ואיפוס/עדכון של ה-ROMFS במהלך עדכון הקושחה (תיבות הסימון של תיבת הדו-שיח מאולצות למצב פעיל ולא ניתן להשבית אותן), כך שקבצי משתמש השמורים בזיכרון הפלאש (flash) הפנימי של ההתקן יימחקו בעת השדרוג. (f6f3355b0)
הוסרו קושחת UVC ובינאריים של מאתחל Portenta H7. תמונות קושחת מצלמת-הרשת UVC המוכנות-מראש (
uvc.bin/dfu/elf) הוסרו עבור כל הלוחות, ובינאריים של מאתחל Arduino Portenta H7 הוסרו מהחבילה; תמונות מוכנות-מראש אלו כבר אינן ניתנות לצריבה מתוך ה-IDE. (c44e33d70)העברת מיקום של תיקיית המשאבים. משאבי IDE הניתנים להורדה (קושחה, model zoo, תיעוד) מותקנים כעת לתיקיית נתוני-יישום משותפת לכל-המשתמשים במקום בנתיב המשאבים לפי-משתמש, ומניפסט הגרסה הועבר מ-QSettings לקובץ
OpenMVIDE.jsonהשמור רמה אחת מעל תיקיית המשאבים של כל-המשתמשים (עם שיקוף QSettings תואם-לאחור). הורדה-מחדש של משאבים מופעלת בהפעלה הראשונה לאחר השדרוג. (be308ace2, 7c7dddb87)