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)