v4.6.0¶
الإصدار v4.6.0 هو إصدار رئيسي يضيف ميزات جديدة. أبرز ما فيه: أُعيدت تسمية وحدة الكاميرا من sensor إلى csi (مع اسم بديل sensor متوافق مع الإصدارات السابقة)، ووحدة جديدة ml.postprocessing، ودعم مستشعر الأحداث Prophesee GenX320 وكاميرات PAG7936 وكاميرات FLIR Boson الحرارية، ومحمّل إقلاع DFU جديد قائم على TinyUSB، وتسريع رسوميات Nema GPU، وMicroPython 1.24. كما يغيّر هذا الإصدار نطاق alpha الخاص بالرسم، لذا اقرأ التغييرات الجذرية أدناه.
أبرز النقاط¶
sensorصارت الآن أيضًاcsi— أُعيدت تسمية وحدة الكاميرا إلىcsi؛ وتبقىsensorكاسم بديل متوافق مع الإصدارات السابقة (لا حاجة لتعديل الكود بعد).وحدة
ml.postprocessingجديدة —fomo_postprocessوyolo_v2_postprocessوyolo_v5_postprocess.مستشعرات جديدة — كاميرا الأحداث Prophesee GenX320 وPAG7936 وFLIR Boson 320/640 الحرارية.
محمّل إقلاع DFU جديد — محمّل إقلاع DFU قياسي قائم على TinyUSB يحلّ محل محمّل CDC القديم على جميع اللوحات.
Nema GPU — رسوميات ثنائية الأبعاد/متجهية مُسرَّعة على STM32.
تحديث MicroPython إلى 1.24.0.
تغيير جذري: تغيّر نطاق
alphaالخاص بالرسم من 0–256 إلى 0–255 (راجع تغيير نطاق ألفا).
ميزات جديدة¶
ml.postprocessing— وحدة جديدة لفك ترميز مخرجات النموذج: فاكّ ترميز FOMO (fomo_postprocessوfind_blobs+ NMS معthresholdقابلة للضبط) وyolo_v2_postprocess/yolo_v5_postprocess(معthresholdوanchorsوnms_thresholdوnms_sigma).تصور كاميرا الأحداث — طريقتان جديدتان
Image.to_evt_dark()/Image.to_evt_light()ولوحتا ألوانPALETTE_EVT_DARK/PALETTE_EVT_LIGHT.تصور العمق — طريقة جديدة
Image.to_depth()ولوحة ألوانPALETTE_DEPTH(للوحات المزودة بمستشعر ToF).استبطان المستشعر — ioctl جديد
IOCTL_GET_RGB_STATSيُرجع صفًا من إحصائيات القنوات(R, Gb, Gr, B).إعدادات انحياز GenX320 المسبقة — ioctl جديد
IOCTL_GENX320_SET_BIASESمع الإعدادات المسبقةGENX320_BIASES_DEFAULT/LOW_LIGHT/ACTIVE_MARKER/LOW_NOISE/HIGH_SPEED.omv.debug_mode()— دالة جديدة للاستعلام عما إذا كانت واجهة تصحيح USB نشطة.Nema GPU — دمج مشغّل NemaGFX/NemaVG لمعالج Cortex-M55 على STM32، مع تمرير مباشر عبر GPU في مكانه لـ
draw_image.PAG7936 — أُضيف إخراج أشرطة الألوان والتعريض التلقائي/الكسب التلقائي ووضع السكون ووضع MIPI.
تغييرات وتحسينات أخرى¶
تحديث MicroPython إلى 1.24.0؛ وتحديث ulab إلى 6.7.3 (يضيف
keepdims).برنامج إقلاع نصي مشترك — تتشارك الآن STM32 / i.MX RT / RP2 ملف
_boot.pyينشئ تلقائيًا نظام ملفات ذاكرة الفلاش/بطاقة SD معmain.pyوREADME.txtافتراضيين، ويُحرر المتغيرات العامة المؤقتة الخاصة ببدء التشغيل.أساسات STM32N6 — دعم أساسي لـ STM32N6 ومشغّل XSPI ومشغّل MPU مشترك وتوقيع البرنامج الثابت/محمّل الإقلاع على STM32.
آلة افتراضية بقفز محسوب (Computed-goto VM) — مُفعَّلة على STM32 وnRF لتسريع المفسّر.
إصلاحات الأخطاء¶
الكاميرا والمستشعرات:
إصلاح حساب PCLK/التعريض في OV5640 (مساران MIPI، وجدول مقسّمات مصحَّح).
نسخة Bayer-CFA من MT9V0xx تقبل الآن RGB565/BAYER/GRAYSCALE وتُخرج بيانات Bayer خام صحيحة بدلًا من إصدار خطأ.
تفعيل تصحيح تظليل العدسة في PAG7936 وإصلاح إزاحة صور HD؛ وأصبحت
set_framerate()الآن محدودة بسقف لكل دقة.إصلاح التقاط FLIR Lepton الحراري على i.MX RT1060 (تصحيح VoSPI CPOL/CPHA)، وأصبحت لقطات Lepton الآن تُرجع رموز خطأ محددة.
إصلاح تقريب تردد GenX320.
معالجة الصور:
إصلاح تلف الذاكرة في
to_ndarray()على صور تدرج الرمادي.إصلاح تنبؤ حدود debayer في تحويل Bayer→RGB/تدرج الرمادي.
إصلاح
transposeفيdraw_image()على اللوحات التي لا تحتوي على SDRAM (مخزن مؤقت مقطّع).إصلاح معالجة الوسيطات المنطقية في
Image.binary()ورايةload_to_fbفيml.Model.
النظام:
إصلاح تكوين دبابيس SPI للاستقبال فقط/الإرسال فقط على STM32 وi.MX RT.
نقل مخازن DMA الخاصة بإيثرنت Portenta H7 إلى SRAM3 لكي يعمل الإيثرنت.
إصلاح إسقاط حرف في إخراج نص قناة التصحيح عبر USB؛ وتقريب أحجام التخصيص الديناميكي لـ ML إلى الأعلى لتجنّب مخازن نماذج أصغر من اللازم.
دعم العتاد واللوحات¶
Prophesee GenX320 مستشعر رؤية قائم على الأحداث (STM32F7 + i.MX RT1060).
PAG7936 مستشعر (مع وضع MIPI).
FLIR Boson 320/640 كاميرات حرارية (مشغّل IDD 4).
Nema GPU تسريع على STM32.
STM32N6 أساسات محمّل الإقلاع/XSPI.
VL53L5CX — أُضيف دعم دبوس تمكين الطاقة.
تغييرات جذرية في واجهة البرمجة¶
تغييرات جذرية ظاهرة للمستخدم في واجهة البرمجة بين v4.5.9 وv4.6.0. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بمدى تأثيره:
رئيسي — معظم البرامج النصية التي استخدمته تحتاج إلى تعديلات.
طفيف — واجهة برمجة ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمته.
سلوكي — نفس الواجهة، نتائج مختلفة؛ أعد التحقق من البرامج النصية المضبوطة.
أدوات — يؤثر فقط على أدوات الفلاش/أدوات المضيف/توافر اللوحات.
التغييرات مجمّعة حسب التأثير بهذا الترتيب. إذا كنت تريد فقط نقل الكود الخاص بك، انتقل إلى قائمة التحقق للترحيل في النهاية. كل تجزئة (hash) تعديل ترتبط بفرق التغييرات الخاص بها على GitHub. ملاحظة: إعادة تسمية الوحدة sensor → csi في هذا الإصدار ليست جذرية — لا تزال sensor تعمل كاسم بديل.
نطاق alpha الخاص بالرسم صار الآن 0–255 (رئيسي)¶
الوسيطة alpha في draw_image() وكل طبقة فوقية تأخذها (FIR وToF والعرض وTV وMJPEG وجداول ألفا) تستخدم الآن نطاق 0–255 بدلًا من 0–256. البرامج النصية التي مرّرت 256 للحصول على تعتيم كامل، أو حسبت ألفا بالنسبة إلى 256، يجب إعادة قياسها إلى 0–255.
التعديل: 1f87b5bb6
أُعيدت تسمية ثوابت ioctl الخاصة بـ FLIR Lepton (طفيف)¶
اختُصرت ثلاثة ثوابت ioctl خاصة بـ Lepton: IOCTL_LEPTON_SET_MEASUREMENT_MODE → IOCTL_LEPTON_SET_MODE وIOCTL_LEPTON_SET_MEASUREMENT_RANGE → IOCTL_LEPTON_SET_RANGE وIOCTL_LEPTON_GET_FPA_TEMPERATURE → IOCTL_LEPTON_GET_FPA_TEMP. وحُدّثت الأمثلة المرفقة.
التعديل: 12582d54d
تغييرات في واجهة المعالجة اللاحقة لـ ML (طفيف)¶
ml.postprocessing جديدة في هذا الإصدار وتغيّرت واجهتها خلاله: أُعيدت تسمية الكلمة المفتاحية score_threshold في مُنشئ yolo_v2_postprocess إلى threshold، وأصبحت نتائج المعالجة اللاحقة الفارغة تُرجع الآن () بدلًا من []. وأُعيدت تسمية النموذج المرفق yolov5_rgb_person إلى yolo_v5_224_nano. وتمرّر الآن ml.apps.MicroSpeech أي **kwargs اعتباطية إلى audio.init() بدلًا من gain_db=24 ثابتة.
التعديلات: d67bd1ad7، 979b4e8ee، b89b815b2، 6671d9df5، 5c2f4388c
AGAST هو كاشف الزوايا الافتراضي (سلوكي)¶
تستخدم الآن find_keypoints() خوارزمية AGAST بدلًا من FAST ككاشف زوايا افتراضي على جميع اللوحات. مجموعات النقاط المفتاحية (وبالتالي مطابقات الواصفات) تختلف عن الإصدارات السابقة — أعد التحقق من خطوط معالجة النقاط المفتاحية المضبوطة. كما أصبح بث مخزن الإطارات في الـ IDE الآن محدودًا بسقف 20 هرتز لتقليل حمل USB.
محمّل الإقلاع واللوحات والميزات المُزالة (أدوات)¶
استُبدل محمّل CDC القديم بمحمّل إقلاع DFU قياسي جديد قائم على TinyUSB على جميع اللوحات — تغيّرت آلية تحديث البرنامج الثابت؛ فحدّث سير عمل/أدوات الفلاش لديك وفقًا لذلك. كما أُزيلت لوحة OpenMV Pro والبناء المستقل لـ Raspberry Pi Pico وميزة الـ IDE البعيد عبر تصحيح WiFi (wifidbg).
التعديلات: a03fc90d8، c2e616aae، af3ea774b، f8bca9799، 59a38a0d3، 7edeb4fbe، d58d77fa2
قائمة التحقق للترحيل¶
للنقل النظيف إلى v4.6.0، يكون العمل المعتاد:
أعد قياس كل قيمة
alphaللرسم/الطبقة الفوقية من نطاق 0–256 إلى 0–255 (تغيير نطاق ألفا).أعد تسمية أي ثوابت ioctl خاصة بـ FLIR Lepton إلى صيغها المختصرة (إعادة تسمية ioctl الخاص بـ Lepton).
إذا استخدمت معالِجات ML اللاحقة الجديدة، فبدّل
score_thresholdبـthreshold، وتعامل مع نتيجة فارغة()، وحدّث اسم النموذجyolo_v5_224_nano(تغييرات ML).أعد التحقق من خطوط المعالجة القائمة على
find_keypoints()بسبب تغيير كاشف AGAST (تغيير كاشف الزوايا).حدّث سير عمل فلاش البرنامج الثابت لديك لمحمّل إقلاع DFU الجديد (تغييرات محمّل الإقلاع/اللوحات).