v5.1.0#

v5.1.0 היא מהדורת תכונות. החלונית שמתחת לחוצץ הפריימים (frame buffer) גדלה מהיסטוגרמה לסט של תצוגות חיות – Board Info, Memory, Statistics ותצוגת Channels החדשה שהופכת את הערכים שסקריפט מפרסם לווידג’טים, גרפים, ספקטרומים ומפות עומק ומקליטה אותם לקבצים – חוצץ הפריימים מקבל בורר מקור למצלמות מרובות-חיישנים, ה-IDE לומד לטעון מאגרים של צד שלישי של לוחות, קושחה, דוגמאות, מודלים ותאבים, והקלטות הווידאו עוברות ל-H.264. לוחות וחיישנים חדשים נתמכים, כלי הקושחה חוזקו בביקורת מלאה של כל שינוי מאז v5.0.0, וקומץ התנהגויות הועברו מ-OpenMV Studio. היא בנויה על Qt Creator 14.0.2 וכוללת קושחה v5.0.1.

עיקרי הדברים#

  • תצוגות החלונית – שורת הכותרת של חלונית ההיסטוגרמה מקבלת בורר שמחליף את החלונית בין התצוגות Histogram, Board Info (החומרה, הגרסאות והיכולות של המצלמה המחוברת), Memory (גרפים חיים של ערימת (heap) ה-MicroPython ושל כל מאגר UMA, עם מעקב שיא), Statistics (מוני המנות, השגיאות והאירועים לכל ערוץ של פרוטוקול הניפוי) ו-Channels.

  • תצוגת Channels – סקריפט יכול לפרסם ערוצים בעלי שם של נתונים ופקדים דרך פרוטוקול הניפוי, וה-IDE מציג אותם בזמן אמת: תוויות, מתגים, מחוונים, תיבות ספין, לחצני רדיו, שדות טקסט, בוררים, לחצנים וגושי טקסט שכותבים בחזרה למצלמה; גרפי צורת גל עם הזזה, זום, סמנים, טריגרים, היסטוריה ומנתח ספקטרום; ומפות עומק עם הפלטות של המצלמה עצמה, שלושה מסנני שינוי קנה מידה ומיפוי גוונים. כל גרף או מפה ניתנים להקלטה לקובצי CSV, WAV, NumPy או Edge Impulse JSON ו-CBOR – כולל Record All לערוץ שלם – לאיסוף נתוני אימון. הערכים האחרונים נשארים על המסך כשסקריפט נעצר.

  • בורר מקור לחוצץ הפריימים (frame buffer) – מצלמות עם יותר מחיישן תמונה אחד מציגות בורר בשורת הכותרת של חוצץ הפריימים לבחירת החיישן שיוזרם אל ה-IDE (או לכיבוי ההזרמה), מתג ה-JPG הפך לבורר מצב הזרמה JPG / RAW, וכותרת החלונית נוקבת בפורמט שבו הגיע כל פריים.

  • מאגרים של צד שלישי – ספק יכול לפרסם מאגר של לוחות, קושחה (ערוצי מהדורה ופיתוח), דוגמאות, מודלים של למידת מכונה ותאבי .pyi; ה-IDE מתקין אותו מכתובת URL או מתיקייה שמתקין הניח, ממזג אותו עם התוכן שלו עצמו, שומר אותו מעודכן ומאפשר לך לסדר ספקים לפי עדיפות. מנוהל מ-Preferences → OpenMV → Third Party Repositories.

  • חומרה חדשה – לוח OpenMV N6 Classic (כולל מנהל ההתקן של המאתחל (bootloader) שלו, כלל udev ורשומת שחזור ROM-DFU) וחיישני FLIR Lepton 3.1R ו-UW.

  • הקלטות H.264 – מקליט חוצץ הפריימים (frame buffer) וממיר הווידאו מקודדים כעת H.264 במקום MPEG-4 Part 2, עם מרווח פריימי-מפתח קבוע כך שההקלטות נגללות בצורה נקייה, וקצב הפריימים מעוגל למספר שלם.

  • תיקוני ביקורת – כל commit מאז v5.0.0 נסקר פעמיים לאיתור רגרסיות, עם תשומת לב מיוחדת לנתיבי הקושחה, המאתחל (bootloader) וה-ROMFS; הפגמים שנמצאו תוקנו במהדורה זו (ראה תיקוני באגים).

תכונות חדשות#

  • תצוגות Board Info, Memory ו-Statistics בחלונית ההיסטוגרמה, עם עיצוב מלא-שטח בערכת הנושא הכהה והבהירה וטקסט הניתן לבחירה (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).

  • תצוגת Channels – אוצר הפקדים המלא (label, toggle, slider, spin box, radio, line edit, select, push button, text), גרפי צורת גל עם מנתח ספקטרום (חלונות Hann, Hamming, Blackman ומלבני, מיצוע, החזקת שיא, תדר לוגריתמי), טריגרים בקצה עולה ויורד, סמנים, היסטוריה וייצוא תרשים; מפות עומק עם הפלטות Depth, Rainbow, Ironbow ו-Event, שינוי קנה מידה nearest / bilinear / bicubic, מיפוי גוונים Script Range / Auto Range / Equalize, לחצן השהיה, קריאה בריחוף, כותרת עם הטווח המוצהר והמינימום / מקסימום / ממוצע של הפריים, ו-Save Image; הקלטה ל-CSV, WAV, NumPy ו-Edge Impulse JSON / CBOR עם תווית Edge Impulse אופציונלית, פיצול לחלקים ללכידות ארוכות, ו-Record All; מרווח Channel Polling בהעדפות הפרוטוקול (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).

  • בורר מקור לחוצץ הפריימים (frame buffer) וקריאת פורמט – בחר את החיישן המוזרם במצלמות מרובות-חיישנים, או Off; פורמט הפריים שהתקבל מוצג בכותרת החלונית; מתג ה-JPG הוא כעת בורר JPG Mode / RAW Mode (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).

  • מאגרים של צד שלישי – מאגרי קושחה מבוססי-קבצים הממוזגים עם רשימת הלוחות המובנית, עדכוני רשת עם עמוד Preferences, ערוץ קושחת פיתוח לכל ספק, עדיפות ספקים בשליטת המשתמש, דוגמאות ספק הממוזגות אל File → Examples, מודלי ספק הממוזגים אל ה-Model Zoo, תאבי .pyi מותאמים המוזנים להשלמת הקוד, אזהרות דריסה כשספק מסתיר תוכן מובנה, ובדיקת רישיון ללוחות ספק (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).

  • הסרת הערות לפני ההרצה – ההערות מוסרות מהסקריפט לפני שליחתו למצלמה, מה שחוסך RAM במצלמה בסקריפטים עתירי הערות; השורות נשמרות, כך שמספרי השורות ב-traceback עדיין תואמים לעורך (677546ee033).

  • סימון שגיאה בתוך השורה – כשסקריפט מת עם חריגה, העורך מסמן את השורה הבעייתית באדום עם טקסט השגיאה לצדה; הסימון נמחק כשאתה עורך את הקובץ, מריץ שוב או מתנתק (677546ee033).

  • גרירה ושחרור אל עורך ה-ROMFS – קבצים שנגררים משולחן העבודה עוברים את אותם הידור סקריפט והמרת מודל כמו Add File, אל התיקייה שעליה שוחררו (677546ee033).

שיפורי עורך, טרמינל וממשק משתמש#

  • ההיסטוגרמות מחושבות מ-RGB מלא של 8 סיביות במקום מטבלאות ה-RGB565 של המצלמה, עם פלטת תרשים משותפת, מילויים עם שקיפות וקווי רשת עמומים יותר (238e099373e, f126e8f34c0, cebbf0c9e2c).

  • תצוגות חלונית מוסתרות אינן עובדות – ההיסטוגרמה מדלגת על החישוב והציור מחדש שלה בזמן שתצוגה אחרת מוצגת או שהחלונית מכווצת, ומשלימה את הפער כשהיא מוצגת שוב; ציורים מחדש בגודל אפס מושתקים (c8730df8399).

  • סקריפטים לדוגמה נפתחים עם שורה ריקה אחרי הייבואים, והדוגמאות המצורפות עוצבו מחדש באותו אופן (1f88f617ec5, 87c8f7d41c7).

  • השלמת הקוד מציגה שמות פרטיים – שרת השפה המובנה אינו מסנן עוד איברים עם קידומת _, שבהם משתמשים המודולים של המצלמה (23ab5b38bb3).

  • macOS – תיבות הקבוצה של פקדי הפרוטוקול בהעדפות אינן צפופות עוד, תצוגות פריטים מוגנות מפני קריסות נגישות של Cocoa, משתמשי Apple Silicon מוזהרים על הגדרת האבטחה ”Allow accessories to connect“, ומשתמשי RT1062 מוזהרים כאשר ההרשאה Input Monitoring אינה מוענקת (עדכוני קושחה זקוקים לה); שתי האזהרות מוצגות לאחר ההתחברות (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).

  • קיצורים במצב Viewer – קיצורים תועים ששברו את מצב ה-Viewer (ואת ה-IDE הרגיל) הושבתו, ומצב ה-Viewer אינו שומר עוד את הקיצורים שנוקו בהגדרות ה-IDE המלא (251b422f642, 0d153671c1d).

  • חיישנים לא מוכרים נקראים לפי מזהה השבב בשורת הסטטוס כדי שאפשר יהיה לזהות אותם ולהוסיפם לטבלת החיישנים (df561775b54).

קושחה, לוחות וכלים#

  • תמיכה ב-OpenMV N6 Classic: רשומת לוח, מנהל התקן DFU ל-Windows וקודי מתקין, כלל udev ל-Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).

  • תמיכה בחיישני FLIR Lepton 3.1R ו-UW (12c03024f3c).

  • העברת המאתחל (bootloader) של IMX – catcher דרוך מראש תופס את המאתחל של ה-RT1062 ברגע שהוא מזוהה, ומחליף את לולאת ההפעלה-לכל-בדיקה שיכלה לפספס את חלון השנייה האחת במארח עמוס (3d8b63c6859).

  • קובצי zip של קושחה – Load Custom Firmware מקבל חבילות של romfs בלבד וחבילות ללא ROMFS, וקושחה מותאמת או של פיתוח מוכנה מראש עבור לוחות IMX שכבר נמצאים במצב מאתחל (b6f16f54c1a, 94d5fd5c30e).

  • ספריות הכנה פרטיות לקושחת פיתוח / מותאמת, לתמונות עורך ה-ROMFS ולקבצים זמניים של כלי הווידאו, כך שקבצים ישנים מתהליכים אחרים לעולם לא ייצרבו או יומרו בטעות (939154501af, a288fe712e7, 5c8c717adec).

  • וידאו H.264 – הקלטות והמרות מקודדות H.264 עם מרווח פריימי-מפתח קבוע; קצב הקלטה הקרוב למספר שלם מעוגל אליו, כך שנגנים מדווחים על 30 FPS במקום 29.97 (6ad1968341d, d62c110e155, bab488a54fe).

  • סכום ביקורת של zip המשאבים – עדכון המשאבים של ה-IDE מאומת מול SHA-256 המפורסם לצד הגרסה (677546ee033).

  • User-Agent אמין בבקשות לשרתי OpenMV (c4279c0213e).

תיקוני באגים#

שני מעברי סקירה על כל שינוי מאז v5.0.0 מצאו ותיקנו את הבאים (ccea3b17d01, 71826200611):

  • נתיבי הקושחה והמאתחל (bootloader) – Load Custom Firmware עם קובץ zip על לוח שכבר במצב מאתחל צרב את build המהדורה במקום; נתיב השחזור של Alif מסרב כעת ל-build מותאם במקום לצרוב את המהדורה; N6 Classic תקוע (bricked) תוקן עם המאתחל והקושחה של N6 הרגיל; שורש משאבים ישן של צד שלישי יכול היה להפנות לוח מובנה תקוע לקובצי ספק; ה-catcher של IMX יכול היה להמשיך לצריבה לאחר שקרס, התעלם מ-Cancel בזמן ההמתנה ל-flashloader, והשאיר את היציאה הטורית פתוחה לאחר ביטול במהלך הדריכה; למאתחל של N6 Classic לא היה כלל udev; בקודי היציאה המקובלים של מתקין מנהל ההתקן ב-Windows הייתה שגיאת כתיב.

  • עורך ה-ROMFS – Cancel במהלך קריאת ROMFS דיווח ”Failed to unpack ROMFS!“ והמתין עשר שניות למצלמה שעדיין במאתחל (bootloader); Cancel במהלך כתיבה הסתיים בשקט עם ROMFS חלקי אולי; שגיאת dfu-util במהלך כתיבה דווחה כהצלחה; Cancel בחלון ההמשך זרק כל עריכה; Auto Reconnect יכול היה להתחבר מתחת לעורך הפתוח; Edit ROMFS בזמן חיבור התנתק והתחבר מחדש תחילה שלא לצורך; ספריות זמניות של הממיר דלפו. לאחר פעולה שבוטלה המאתחל מתבקש כעת לצאת מ-DFU כך שהמצלמה חוזרת מעצמה.

  • מאגרים של צד שלישי – רשומות zip מאומתות לפני החילוץ (ללא חציית נתיבים או קישורים סימבוליים), התקנות והתקנות-מחדש של חלקים שומרות את העותק הישן עד שהחדש במקומו, לוח ספק שנדחה אינו מפיל עוד את הלוח המובנה שחפף אליו, מסכת PID חסרה לא התאימה לדבר בזמן ריצה, ושורות אינדקס של דוגמאות / מודלים בסיסיים אינן תופסות עוד קובצי ספק בעלי אותו שם.

  • חוצץ הפריימים (frame buffer) וחיישנים – חיישן האירועים GENX320 (מזהה שבב מעל 0x80000000) השבית את חוצץ הפריימים; בחירת חיישן שנשמרה לא שרדה הפעלה מחדש; ההעדפה הישנה ”disable frame buffer“ לא הועברה; פקודת מקור הזרם מותנית בגרסת הפרוטוקול; מדד המיקוד קפא בזמן שעמוד ההיסטוגרמה היה מוסתר; פורמט הפריים נשאר בכותרת לאחר ניתוק.

  • תהליך ההתחברות – אזהרות ה-macOS יכלו לבלוע את ה-”Yes“ של הודעת שדרוג הקושחה; ה-Model Zoo תמיד נפתח מכווץ ללא שחזור הבחירה; הגיבוי של כונן יחיד עבור כונן המצלמה לא היה נגיש כאשר המצלמה הייתה מחוברת יותר מעשר שניות.

  • תצוגת Channels והמקליט – גדלי פריימים עוינים יכלו לגלוש מעבר לבדיקות הגודל; מקליטי Edge Impulse הקצו מחדש זיכרון בכל מקטע וכעת מוגבלים ל-64 MB לכל חלק; סכמה עם מפרידים בשמות יכלה להצביע מעבר לרשימת הרשומות; רשומות כפולות הותירו מקליט רץ ללא בעלים; כתיבות נזרקות בזמן שהתצוגה מוקפאת; רשימת הערוצים מתרעננת כעת באירועי ביטול רישום ואתחול רך.

  • וידאו – רוחב אי-זוגי שהוזן על ידי המשתמש שבר את קידוד ה-H.264 ב-builds של libx264; המרות .bin שבוטלו או נכשלו השאירו פריימים שההרצה הבאה קיפלה פנימה.

  • פרוטוקול – ריקון הקריאה שרץ לפני זיהוי הפרוטוקול מוגבל (issue #336) (77cd13af76f); שיוך כונן המצלמה אינו מפסיד עוד במרוץ מול כרכים אחרים (9877480c304).

  • אזהרת -Wdeprecated-copy בעוטף מידע היציאה הטורית (abcfaa8af5e).

לוקליזציה#

  • כל 37 הקטלוגים עודכנו עבור תצוגות החלונית, תצוגת Channels ומפת העומק שלה, וכל מחרוזת חדשה במהדורה זו (1b71f243733, dc13c23ed81, a7debafdafa, 173a57422f7).

תמיכה בפלטפורמות ובכלים#

  • בסיס Qt Creator: 14.0.2.

  • גרסת OpenMV IDE הועלתה ל-5.1.0.

  • קושחה מצורפת: v5.0.1 (ראה את יומן השינויים של הקושחה).

  • לוחות וחיישנים חדשים: OpenMV N6 Classic; FLIR Lepton 3.1R ו-UW.

שינויים שוברי תאימות#

אין לפרויקטים קיימים. מתג ה-JPG בשורת הכותרת של חוצץ הפריימים (frame buffer) הוא כעת בורר JPG Mode / RAW Mode, וההגדרה הישנה שלו ”disable frame buffer“ מועברת אל הרשומה Off של בורר המקור החדש. ההערות מוסרות מסקריפטים לפני הרצתם; סקריפט שמסתמך על קריאת טקסט המקור של עצמו בזמן ריצה לא צריך להסתמך על כך.