v4.8.1¶
بُني الإصدار v4.8.1 على Qt Creator 14.0.2 ويركز على بروتوكول كاميرا OpenMV V2 جديد عالي الموثوقية، و Code Profiler مدمج، وسير عمل للحفظ يُبقي الكاميرا مثبتة بدلاً من إخراجها. تم تحديث البرنامج الثابت المرفق ومجموعة الأمثلة الكاملة إلى 4.8.1. لا توجد أي تغييرات قاطعة في واجهة برمجة التطبيقات الخاصة بالبرامج النصية، لكن سلوك الحفظ الذي لم يعد يُخرج الجهاز وإزالة بعض أعلام السلسلة عند وقت التشغيل هي تغييرات في سير العمل مرئية للمستخدم.
أبرز النقاط¶
OpenMV Protocol V2 هو مكدس كاميرا جديد عالي الموثوقية (
OMVCamera/OMVTransport/OMVDebug) مع CRC32، والترتيب التسلسلي، و ACK/NAK، وإعادة الإرسال، والأحداث، والتجزئة. يتم التفاوض عليه تلقائياً عند الاتصال ويدير إعادة الضبط، والإقلاع، والبث، وتنفيذ البرامج النصية، والإحصائيات.Code Profiler هو نافذة جديدة (
Window>Show Code Profiler) تستقصي سجلات التحليل لكل دالة من الكاميرا وتعرض عدد الاستدعاءات، والحد الأدنى/الأقصى/المجموع/المتوسط بالميكروثانية (μs)، ومتوسط الدورات، والنسبة المئوية، وعدّادات الأحداث في جدول قابل للفرز.الحفظ في المكان لم يعد يُخرج محرك الكاميرا؛ تكتب الآن واجهة OpenMV IDE ملف
main.pyوتُفرغ وحدة التخزين على القرص بحيث يبقى الجهاز مثبتاً.كشف المستشعرات المتعددة يبلّغ عن كل كاميرا على اللوحة، ويُعرض في شريط الحالة كـ
Sensors: X, Yمع إدراج المستشعر الرئيسي أولاً.القراءة الديناميكية للإطارات تعيد حساب أفضل دقة بث خام مناسبة لكل تنسيق بكسل وتعيد تكوين البث تلقائياً.
البرنامج الثابت والأمثلة المرفقة تم تحديثها إلى 4.8.1 عبر جميع اللوحات، مع إضافة أمثلة جديدة لكاميرا أحداث GenX320، و TensorFlow ML، و Alif OLED، ودرع LCD/Touch-LCD.
ميزات جديدة¶
تمت إضافة بروتوكول الاتصال OpenMV V2: طبقة نقل ومعاملات كاملة مع CRC32، والترتيب التسلسلي، و ACK/NAK، وإعادة الإرسال، والأحداث، والتجزئة، بالإضافة إلى فئة
OMVCameraيتم التفاوض عليها تلقائياً عند الاتصال ودمجها في مشغّل السلسلة (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).تمت إضافة نافذة Code Profiler (
Window>Show Code Profiler)، التي تستقصي سجلات التحليل لكل دالة وتعرض عدد الاستدعاءات، والحد الأدنى/الأقصى/المجموع/المتوسط بالميكروثانية (μs)، ومتوسط الدورات، والنسبة المئوية، وعدّادات الأحداث، مع تحويل العناوين إلى رموز عبر محلل ELF من ELFIO المرفق (019d3cd2c, 57cd9e1cc).تمت إضافة مربع حوار Debug Protocol Settings يعرض معلومات النظام الحية، وإحصائيات المضيف، وإحصائيات الجهاز التي يتم تحديثها كل ثانية، ويكشف معدلات الاستقصاء لكل قناة بالإضافة إلى عناصر تحكم الاستقصاء المدمجة مقابل المنفصلة (5220a6125, 0da2f79d0).
تمت إضافة كشف المستشعرات المتعددة: لوحة تحتوي على أكثر من كاميرا واحدة تبلّغ عنها جميعاً في شريط الحالة كـ
Sensors: X, Y، مع المستشعر الرئيسي أولاً (cebc79ce7).تمت إضافة القراءة الديناميكية للإطارات (مفعّلة افتراضياً)، التي تعيد حساب أفضل دقة بث خام مناسبة لكل تنسيق بكسل (
BINARY،GRAY،RGB565،ARGB8،JPEG،PNG) وتعيد تكوين البث (75c073bdb, 0da2f79d0).تمت إضافة فك ترميز مخزن الإطارات لتنسيقات البكسل الخام
BINARY(أحادية اللون 1-bpp) وARGB8(ألفا 32-بت) بحيث تُعرض الآن أنواع الصور هذه في العارض (dabb82062).على نظام Windows، يقوم Connect الآن بفحص أجهزة USB التي يضع نظام التشغيل علامة مشكلة عليها ويحذّر بقائمة الأجهزة المعطوبة التي قد تعيق الاتصال (1a5beb081, 1b59cd78e).
تمت إضافة مؤشر تسجيل في شريط الحالة: زر
Registeredأخضر أوUnregisteredمرجاني للكاميرا المتصلة، قابل للنقر لتسجيل اللوحة (a8c98a4b9).يمكن لعارض مخزن الإطارات الآن عرض رسالة نصية موسّطة مُرسلة من البرنامج النصي قيد التشغيل عبر رمز هروب جديد
FB_MESSAGEبدلاً من صورة (530048201).تمت إضافة مدخلات جديدة إلى مكتبة النماذج: نماذج تقدير العمق ST FastDepth (224/256/320)، ونموذج وضعية معالم الرأس من ST، ونماذج اليد لكشف الكف ومعالم اليد، ونموذج كشف الوجه الأمامي BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
تمت إضافة برنامج نصي للاختبار الذاتي خاص ببناء المصنع فقط (الكاميرا، IMU، ToF، WiFi، LAN) يُرفق ويُفتح تلقائياً عند التشغيل في نسخة OpenMV IDE الخاصة بالمصنع (0db7fbbb0)؛ جزء RT1060 LAN من الاختبار معطّل حالياً (48370d022).
تغييرات وتحسينات أخرى¶
الحفظ في المكان: لم يعد حفظ برنامج نصي يُخرج محرك الكاميرا؛ تكتب واجهة OpenMV IDE ملف
main.pyوتُفرغ وحدة التخزين على القرص (FlushFileBuffersعلى Windows، وsyncfsعلى Linux، وsync_volume_np/F_FULLFSYNCعلى macOS) بحيث يبقى الجهاز مثبتاً (1614c572f, 6928b51ea, 35ed53967).إجراءات شريط الأدوات التي يتم النقر عليها أثناء انشغال الكاميرا (تعطيل مخزن الإطارات، ضغط JPEG، حفظ البرنامج النصي، تكوين الإعدادات) تُوضع الآن في قائمة انتظار وتُنفّذ تلقائياً عندما يكون الجهاز متاحاً بدلاً من إظهار مربع حوار خطأ انشغال (f4315f0a4).
يضبط عارض مخزن الإطارات الآن افتراضياً على الملاءمة في العرض بحيث يتم تحجيم الصورة تلقائياً لتناسب النافذة عند بدء التشغيل، ويُعرض الآن جزء إخراج طرفية السلسلة افتراضياً عند بدء التشغيل (f3ce4dc75).
أصبحت ملفات النماذج المُترجمة بامتداد
.liteمعترفاً بها الآن في كل مكان: تصفية مكتبة النماذج وعرضها، ومحاذاة ROMFS في البرنامج الثابت، ومترجمات Vela/STEdge AI تُنتج الآن مخرجات.lite(f3ce4dc75).يقوم الآن مربع حوار ترجمة نموذج STEdge AI (N6) بتحليل والإبلاغ عن نسب استخدام NPU RAM و hyperRAM وينسخ مخرجات الشبكة المعاد توطينها إلى ملف يطابق امتداد النموذج (f3ce4dc75).
يعرض الآن متصفح مكتبة النماذج عمود حجم الملف ويمدّد عمود الاسم ليلائم، بدلاً من إخفاء الحجم (f3ce4dc75).
تم تحديث قالب البرنامج النصي الجديد إلى واجهة برمجة تطبيقات وحدة
csiالجديدة ويضبط افتراضياً على حجم إطار VGA، وتم تبديل مثال Hello World المرفق من حجم إطار QVGA إلى VGA (f3ce4dc75).تمت إعادة كتابة مربع حوار Convert Video لاستخدام مربع حوار المُحمّل المشترك مع مخرجات ملوّنة، ورسائل نجاح/فشل، وزر OK للإغلاق، وخطأ واضح عندما يكون FFMPEG غير متوفر على المنصة (f56efc7be).
يعرض الآن عارض مخزن الإطارات تحذيراً وامضاً عندما تكون صورة
JPEG/PNGأكبر من أن يتم تخزينها مؤقتاً وإرسالها، عبر رمز هروب جديدFB_BUFFER_ERROR(fda826126).يفرض الآن الدخول إلى محمّل إقلاع DFU بقاء محمّل الإقلاع مقيماً على البرنامج الثابت ذي البروتوكول V2، مع كشف الإصدار الذي يعود إلى إعادة ضبط عادية على محمّلات الإقلاع الأقدم (<1.0.2) التي قد تتعطل عند الإجبار (975857221).
تمت إعادة تسمية وتنظيم مجلدات نماذج كشف الكائنات من ST (
st_yolo_lc_v1إلىyolo_lc، وtiny_yolo_v2إلىyolo_v2، ونماذج الأشخاصyolov8nإلى ملفات مسمّاة بالحجم فقط) وإزالة متغيراتtiny_yolo_v2int8 الكبيرة (34240cc3c).يتم الآن ضبط توقيت السلسلة عبر مفاتيح تجاوز
protocolفي ملفsettings.jsonللبرنامج الثابت (overrideReadTimeout، وoverrideReadStallTimeout، وoverridePerCommandWait، ومفاتيح V2 وهيoverrideCRC/overrideSEQ/overrideACK) بدلاً من أعلام سطر الأوامر عند وقت التشغيل (019d8bf1d).تم ضبط حد طول السطر في خادم لغة Python على 120 عموداً لـ flake8 و pycodestyle بحيث لم تعد الأسطر الطويلة يُشار إليها عند الحد الافتراضي 79 (dabb82062).
تم تقليل مجموعة نماذج التعلم الآلي المرفقة بنقل مجموعة نماذج Qualcomm و
google/mobilenet_v1إلىmodels_unusedلتقليص حجم المثبّت (c44ddba20).
إصلاحات الأخطاء¶
تم جعل مربعات حوار تقدم تنزيل البرنامج الثابت وتحديث الموارد آمنة من التعطل باستخدام حُرّاس
QPointerبحيث لم تعد تستخدم مربع حوار محذوفاً إذا أُغلق في منتصف التنزيل (f3ce4dc75).يستمر الآن فحص المحركات في إعادة المسح حتى يُعثر على محرك USB الخاص بالكاميرا ويمسح مدخلات المحركات القديمة عند قطع الاتصال، مع إزالة حيلة المؤقت ذي اللقطة الواحدة السابقة (a31d41b4e).
عدة إصلاحات للاتصال والسلسلة: المستشعرات المخفية (مثل
SoftCSI) لم تعد تُربك نوع المستشعر المعروض، ويمنع مؤقت إبقاء السلسلة نشطة على Windows تعطّل USB، ولم يعد Start يعيد تشغيل برنامج نصي قيد التشغيل بالفعل، ويتم قطع اتصال قناة الكاميرا بشكل نظيف عند إغلاق المنفذ (a8e467be6).استعادت عارضة المحلّل اختيار عدّاد أحداث PMU لكل عمود (قوائم أحداث قابلة للتحديد) وحالة العدّاد/الترويسة المحفوظة التي كانت معطّلة مؤقتاً (40c679e90).
دعم المنصة والأدوات¶
قاعدة Qt Creator: 14.0.2.
البرنامج الثابت المرفق: تم تحديثه من 4.7.0 إلى 4.8.1، مع إعادة بناء البرنامج الثابت للوحات OPENMV2/3/4/4P/PT، و OPENMV_N6، و OPENMV_AE3، و OPENMV_RT1060، ولوحات Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
تم إصلاح مصافحة إصدار البروتوكول على macOS للوحات RT1062 و AE3 عن طريق تقسيم نقل USB متعدد الأوامر إلى قطع بحجم
USBDBG_LENيمكن لتلك اللوحات التعامل معها (6b9d5f842).تمت إعادة تصميم حزمة مشغّل Windows المرفقة: إضافة ملفات مشغّل
.cat/.infموقّعة لكل لوحة (AE3، H7، H7Plus، M4، M7، N6، Pico/PT، RT1062) ونقل مشغّلات السلسلة CDC إلى مجلدopenmvcdcجديد مع مثبّت تلقائي قائم على dpinst (439557829, ba3b01bfb).تمت إضافة دعم لمراجعات مستشعر الكاميرا MT9V032 الأقدم عن طريق تسجيل معرّفات المستشعر
0x1311و0x1312(إلى جانب0x1313الموجود) كـMT9V0X2(eaaa624e3).
التغييرات القاطعة¶
لا يحتوي هذا الإصدار على أي تغييرات قاطعة في واجهة برمجة تطبيقات البرامج النصية، لكن هناك بضعة تغييرات في سير العمل مرئية للمستخدم:
لم يعد حفظ برنامج نصي يُخرج أو يُلغي تثبيت محرك USB الخاص بالكاميرا. تُفرّغ الآن واجهة OpenMV IDE مخازن وحدة التخزين في المكان، بحيث يبقى الجهاز مثبتاً بعد الحفظ.
تمت إزالة أعلام السلسلة عند وقت التشغيل
-override_read_timeout(الافتراضي 5000 ميلي ثانية)، و-override_read_stall_timeout(الافتراضي 1000 ميلي ثانية)، و-override_per_command_wait(الافتراضي 1 ميلي ثانية، 2 ميلي ثانية على macOS)؛ يتم الآن تكوين توقيت السلسلة عبر مفاتيح تجاوزprotocolفي ملفsettings.jsonللبرنامج الثابت (019d8bf1d).أصبحت محمّلات الإقلاع المرفقة تُشحن الآن بصيغة
.binفقط؛ تمت إزالة ملفات البرنامج الثابت ومحمّل الإقلاع.dfuالخاصة بكل لوحة.