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، مما يمحو الملفات المخزنة على ذاكرة الفلاش الداخلية للجهاز؛ راجع التغييرات الجذرية أدناه.
أبرز النقاط¶
سير عمل نظام ملفات ROM يتيح لك إنشاء وتحرير وفلاش وإعادة تعيين نظام ملفات للقراءة فقط على الجهاز بحيث يمكن تخزين نماذج التعلم الآلي على الكاميرا، وهو مدمج عبر محمّلات الإقلاع 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 مجمّعًا الآن لتمكين برمجة المصنع لمحمّل إقلاع OpenMV N6 (STM32N657) عبر
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)اكتسب متصفح Model Zoo خانة اختيار "Filter models by board type" مدفوعة بجدول
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)فتح متصفح 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 لنماذج Ethos-U من نوع.tflite، وST Edge AI لنماذج N6 Neural-ART من نوع.tflite/.onnx) ويحفظ النموذج المُحوَّل على القرص أو الكاميرا. (3913f5b8b)أداة Copy/Convert Python File تنسخ برنامجًا نصيًا بلغة Python إلى الكاميرا أو القرص وتقوم اختياريًا بترجمته المتقاطعة إلى شيفرة MicroPython الثنائية
.mpyعبر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)تم تنظيف روابط مجموعة النماذج: أُضيف نموذج Qualcomm
face_attrib_net(لـ 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" بدلًا من الفشل بصمت، ولم يعد إفلات نموذج في مجموعة النماذج يتطلب وجود 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 القابلة للتنزيل (البرنامج الثابت/النماذج/الوثائق) الآن تُثبَّت في دليل بيانات تطبيق مشترك لجميع المستخدمين عبر واجهة برمجة تطبيقات
ICore::allUsersResourcePath()جديدة، مع تخزين بيان إصدار الموارد في ملفOpenMVIDE.jsonعلى مستوى واحد فوق مجلد موارد جميع المستخدمين. (be308ace2, 7c7dddb87)أثناء تحديثات برنامج حزمة نظام Alif الثابت، يطالب IDE الآن المستخدم بإعادة تشغيل دورة الطاقة (فصل وإعادة توصيل) للكاميرا قبل المتابعة. (162d128f9, 756611696)
أُعيد تصميم تدفق تنزيل محمّل الإقلاع/البرنامج الثابت لـ 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 الثابتة الأقدم عبر حماية خطوات مسح الفلاش وبرمجته ضد نطاقات قطاعات فلاش غير صالحة (غير موجبة) وعرض خطأ صريح بدلًا من التعطل، وتم إصلاح حماية الوصول إلى ROMFS أثناء ترقية البرنامج الثابت القديم. (ae2cc15b4, 235dbdb10)
تم إصلاح كشف اللوحة عبر المنفذ التسلسلي بحيث يُطبَّق مرشح الرقم التسلسلي العكسي فقط أثناء التحقق من المنفذ (وليس أثناء الاتصال)، وأُضيفت مرشحات عكسية للوحة i.MX بحيث تُستبعد الأرقام التسلسلية لوضع محمّل الإقلاع. (ae2cc15b4)
تم إصلاح استمرارية نوع اللوحة بحيث لم يعد تعيين اللوحة المحفوظ مسبقًا يُكتب فوقه عند إجراء تحديد يدوي لنوع اللوحة. (c42d36001)
أصبح إصلاح محمّل الإقلاع الآن يحلّل اسم العرض للوحة مخفية إلى سلسلة معماريتها بحيث تربط إعادة الاتصال/إصلاح البرنامج الثابت اللوحة الصحيحة. (a1de7a09c)
أصبح كشف اللوحة الآن يطابق سلاسل معمارية اللوحات بغض النظر عن حالة الأحرف. (7a2e0e93f)
تم إصلاح فشل تحميل قرص الجهاز عند الفصل/إعادة التوصيل السريع عبر الإبقاء على خيط فحص محرك الأقراص وإعادة محاولة فحص محركات الأقراص حتى ثلاث مرات، وجُعل فحص محركات الأقراص يعمل بشكل موثوق على خيط الفحص. (455dbe967, 58c0e5456)
تم إصلاح فشل تشغيل مترجم النماذج (ST Edge AI وVela) على أجهزة Mac من Intel عبر السماح بمسار أداة ARM64 عند التشغيل تحت Rosetta. (32e309e86)
تم إصلاح مشكلات ذاكرة التخزين المؤقت لأداة Python وخادم اللغة عبر توجيه كل
__pycache__لـ Python المجمّع إلى دليل موارد مشترك والإحماء المسبق لذاكرة التخزين المؤقت لـblhostالخاصة بـ i.MX قبل اتصال محمّل الإقلاع المحدود زمنيًا بحيث لم تعد عملية الفلاش تنتهي مهلتها. (f64f3330f)تم إصلاح مسار رأس MicroPython المستخدم من قبل خادم لغة Python (للإكمال التلقائي) ليُحلّ من مسار موارد جميع المستخدمين، وجُعل البحث عن مسار موارد جميع المستخدمين أكثر متانة عندما لا يجد ترشيح اسم المستخدم أي شيء. (5f2648565, fc1938818)
تم إصلاح روابط وثائق ST Edge AI المعطّلة في مربع حوار خيارات المترجم عبر تحويل مسارات الملفات المحلية إلى عناوين
file://صحيحة. (3ac136444)تم إصلاح المسافة البادئة التلقائية لمحرر Python بحيث لم تعد الأسطر تُزال مسافتها البادئة بشكل خاطئ بعد سطر ينتهي بنقطتين (سطر كهربائي)، على سبيل المثال بعد ترويسات
if/for/def. (6555f44ba)تم إصلاح محاذاة سجل دليل ROMFS بحيث تأخذ إزاحات المجلدات في الحسبان حجم سجل اسم الدليل، وزيد التأخير بين الملفات عند فك حزم/إنشاء ملفات ROMFS ومجموعة النماذج لضمان طوابع زمنية إنشاء مميزة. (9bf7e1d9e, d968a6e46)
تم إصلاح تجاوز عددي صحيح في تحويل المتوسط إلى التفاف عميق (mean-to-depthwise-conv) في مُحسِّن الرسم البياني لـ Vela عبر حساب مضاعف الإخراج بـ 64 بت، وتم إصلاح اسم الملف الأساسي المستخدم في عنوان/إخراج مربع حوار مترجم Vela. (d217a46e9, 8376490eb)
تم إصلاح استعادة المجلدات الموسعة والنموذج المحدد في متصفح مجموعة النماذج عند إعادة الفتح، وتم تبديل مربع الحوار إلى تخصيص الكومة لتجنب مشكلات دورة حياة واجهة المستخدم الرسومية. (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)OpenMV N6 ROMFS: زيد من 16 ميجابايت إلى 24 ميجابايت، مع نقل صورة romfs إلى DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: زيد من 16 ميجابايت إلى 24 ميجابايت، مع إضافة قواعد محاذاة 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) لمسرّع N6 Neural-ART NPU. (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)
أُضيفت مخططات منافذ لكاميرتي OpenMV N6 وAE3 (مستشعر PAG7936) إلى محدد منافذ التوصيل، ومثال جديد لكاميرا أحداث 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)
تم إزالة مجموعة نماذج DeGirum YOLOv5/YOLOv8 المجمّعة من IDE. (26710be1c)
التغييرات الجذرية¶
تغييرات في سير العمل والسلوك مرئية للمستخدم في v4.7.0. لا يوجد كسر في واجهة برمجة تطبيقات البرمجة النصية، لكن لاحظ ما يلي:
مسح نظام ملفات FAT عند الترقية من إصدار أقدم من 4.7.0. تفرض ترقية أي OpenMV Cam من برنامج ثابت أقدم من 4.7.0 الآن مسح نظام ملفات FAT وإعادة تعيين/تحديث ROMFS أثناء تحديث البرنامج الثابت (تُفرض خانات اختيار مربع الحوار ولا يمكن تعطيلها)، لذا ستُمحى ملفات المستخدم المخزنة على ذاكرة الفلاش الداخلية للجهاز عند الترقية. (f6f3355b0)
تمت إزالة برنامج UVC الثابت وملفات محمّل إقلاع Portenta H7 الثنائية. أُزيلت صور برنامج كاميرا الويب UVC الثابتة المبنية مسبقًا (
uvc.bin/dfu/elf) لجميع اللوحات، وأُزيلت ملفات محمّل إقلاع Arduino Portenta H7 الثنائية من الحزمة؛ لم يعد بالإمكان فلاش هذه الصور المبنية مسبقًا من IDE. (c44e33d70)نقل دليل الموارد. أصبحت موارد IDE القابلة للتنزيل (البرنامج الثابت، مجموعة النماذج، الوثائق) الآن تُثبَّت في دليل بيانات تطبيق مشترك لجميع المستخدمين بدلًا من مسار موارد كل مستخدم، وانتقل بيان الإصدار من QSettings إلى ملف
OpenMVIDE.jsonمخزّن على مستوى واحد فوق مجلد موارد جميع المستخدمين (مع انعكاس متوافق رجعيًا في QSettings). تُشغَّل عملية إعادة تنزيل للموارد عند أول تشغيل بعد الترقية. (be308ace2, 7c7dddb87)