v4.5.3¶
يُعدّ الإصدار v4.5.3 إصدارًا كبيرًا: التركيز التلقائي في OV5640، ورسم خطوط بحواف ناعمة، ومُفكّك ترميز JPEG عتادي مُدمج في الفرع الرئيسي، ومكاسب كبيرة في قدرات i.MX RT (RT1060)، ومجموعة واسعة من إصلاحات الكاميرا و ISP. أُزيلت عدة دوال صور نادرة الاستخدام وتغيّرت بعض واجهات برمجة التطبيقات الخاصة بـ ISP/العرض — اطّلع على التغييرات الكاسرة أدناه.
أبرز النقاط¶
التركيز التلقائي في OV5640 — مُفعَّل على OpenMV 4 / 4 Plus / RT1060 (
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS))، مع مثال.رسم
draw_line()بحواف ناعمة ومُفكّك ترميز JPEG عتادي مُدمج في الفرع الرئيسي لـ STM32 (إلغاء ضغط JPEG أسرع).OpenMV RT1060 اكتسب ulab، وعمليات ISP، و
set_framerate()/set_frame_callback()، ومخزن إطارات أكبر بكثير، وبرنامج تشغيل CAN.تغيير كاسر: أُزيلت
Image.div()/cartoon()/mul()وتغيّرت بعض واجهات برمجة التطبيقات الخاصة بـ ISP/العرض — راجع التغييرات الكاسرة.
ميزات جديدة¶
التركيز التلقائي في OV5640 — البرنامج الثابت للتركيز التلقائي مُفعَّل على OPENMV4 و OPENMV4P و OPENMV RT1060؛ شغِّله عبر
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). أُضيف مثال جديد07-Sensor-Control/autofocus.py.رسم خطوط بحواف ناعمة — اكتسبت
draw_line()خاصية تنعيم الحواف.وحدات تحكم عرض SPI مخصّصة — تقبل
SPIDisplayالآن الكلمة المفتاحيةcontroller=وتوفّر خطّافbus_writeلتسلسلات التهيئة/الأوامر المخصّصة.ترقية
Image.ccm()— تقبل الآن مصفوفات متداخلة 3x3 / 4x3 / 3x4 / 4x4 ومصفوفات ulab (مع صفّ إزاحة اختياري لكل قناة)؛ أُضيف مثال لتصحيح الألوان.التقاط JPEG على i.MX RT — التقاط
sensor.JPEGعلى Arduino Portenta/Nicla Vision/Giga، بالإضافة إلىset_framerate()وset_frame_callback()على منفذ mimxrt.التحقق من نماذج TFLite — تحمل النماذج الآن بصمة ترتيب المُشغّلات وحجم مجموعة المُشغّلات.
WiFi — أُضيفت ثوابت أوضاع أمان CYW43؛ برامج نصية جديدة للتحكم في لوحة i.MX RT (Pin/ADC/CAN/I2C/PWM/SPI/UART/...).
تغييرات وتحسينات أخرى¶
تحديث MicroPython إلى 1.22؛ تحديث CMSIS إلى 5.9.0.
مُفكّك ترميز JPEG عتادي لـ STM32 مُدمج في الفرع الرئيسي — إلغاء ضغط JPEG أسرع على المُرمِّز الموجود على الشريحة.
تحسين
Image.invert()/negate()وعمليات الصور الثنائية/الرياضية (تعليمات CMSIS الجوهرية).جُعلت مكتبتا
rpcوvl53l1xقابلتين للنقل (تستخدمانmachine/timeبدلاً منpyb)، بحيث تعملان على المنافذ غير STM32.نسخ مخزن الإطارات بتسريع DMA على OpenMV H7 / H7 Plus / Pro / Pure Thermal و Arduino Giga / Nicla Vision / Portenta H7؛ يفحص STM32 الآن أجهزة I2C مرة واحدة لكل عملية فحص لتسريع الإقلاع.
إصلاحات الأخطاء¶
الكاميرا والمستشعرات:
تم تثبيت XCLK كاميرا STM32 على دورة عمل حقيقية بنسبة 50% وإصلاح خطأ عند ضبط تردد ساعة الكاميرا على صفر؛ وإصلاح اقتصاص+تبديل Bayer، وانزياح لون YUV422، و
set_windowing()على منفذ mimxrt.تم إصلاح فحص معرّف شريحة GC2145 و hmirror/vflip على التركيبات المُدوّرة؛ وإصلاح PAJ6100 على RT1062 وتجاوز سعة مخزن SPI لـ PixArt PAJ7620/PAW3902.
معالجة الصور:
تم إصلاح اقتصاص roi في
find_rects()، واقتطاع الإزاحة الكسرية فيmorph()، والقيم الافتراضية للتباين/السطوع فيimage.gamma()، وإزاحات A/B فيget_threshold()على RGB565، وفك ترميز JPEG للأبعاد التي ليست من مضاعفات 8.
النظام والمكتبات:
machine.LED.value()بدون وسيطة تُرجع الآن حالة LED بدلاً من مسحها؛ وإصلاح إلغاء تهيئة SPI SSEL على ناقل مشترك، وmachine.deepsleep()على RT1062، وتعطّل TF عند فقدان المُشغّلات، والتفعيل التلقائي لبطاقة الشبكة WINC1500/ninaw10 عندconnect().
العتاد ودعم اللوحات¶
OpenMV RT1060 — تفعيل ulab وعمليات ISP، ومخزن إطارات أكبر (10M←20M) / fb_alloc (2M←11M)، واستعادة برنامج تشغيل CAN، وذاكرة كومة أكبر.
Arduino GIGA — دعم كاميرا GC2145، مع الكشف التلقائي لـ GC2145/OV5640 (يتشاركان عنوان I2C).
i.MX RT — دعم التقاط
sensor.JPEG.
تغييرات كاسرة في واجهة برمجة التطبيقات¶
تغييرات كاسرة في واجهة برمجة التطبيقات المرئية للمستخدم بين v4.5.2 و v4.5.3. النطاق: وحدات Python C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بمدى تأثيره:
طفيف — واجهة برمجة تطبيقات ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمتها.
سلوكي — نفس الواجهة، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
التغييرات مُجمَّعة حسب التأثير بهذا الترتيب. إن كنت تريد نقل شيفرتك فحسب، انتقل إلى قائمة التحقق للترحيل في النهاية. كل بصمة إيداع ترتبط بفروقاتها على GitHub.
دوال صور مُزالة (طفيف)¶
أُزيلت Image.div() و Image.cartoon() (ومثالها) و Image.mul().
واجهة برمجة التطبيقات لوحدة العرض (طفيف)¶
أُزيل التراجع القديم إلى اسم الوحدة udisplay — تُسجَّل الوحدة الآن باسم display فقط. استُبدلت دالتا dsi_write() / dsi_read() الخاصتان بـ DSI فقط بـ bus_write() / bus_read()، المتوفرتين الآن على جميع وحدات تحكم العرض.
تغييرات واجهة برمجة التطبيقات لـ MQTT و tf.regression (طفيف)¶
أُعيد تصميم MQTTClient في مكتبة mqtt: أصبح port مطلوبًا الآن، وأُضيفت الكلمتان المفتاحيتان ssl_params / callback في المُنشئ ووسيطة timeout على connect()، وأُزيلت القيم الافتراضية القديمة ssl= / port=0، وأصبحت check_msg() غير حاجبة الآن. أُعيدت كتابة tf.regression() — توقيعها الآن regression(model, array) وتتعامل مع النماذج أحادية/ثنائية/ثلاثية الأبعاد والمُكمَّمة (int8).
تغييرات سلوك ISP / المستشعر (سلوكي)¶
أُعيد تصميم Image.awb() — أصبح التمييز بين العالم الرمادي (الافتراضي) ورقعة الأبيض (max=True) صريحًا الآن، وأصبحت وسيطة max بالإضافة إلى وسائط gamma / contrast / brightness في Image.gamma() كلمات مفتاحية فقط الآن (يجب تحديث الاستدعاءات الموضعية). عُطِّل تبديل الصورة الآن لـ YUV422 (كان سابقًا يُنتج مخرجات خاطئة) وصُحِّح انزياح لون YUV422 ليطابق Bayer. يثير الآن مسار JPEG في STM32 خطأً عند عدم تطابق هندسة JPEG بدلاً من إنتاج صورة تالفة، ويطبّق الآن وضع نقطة الوصول WiFi وضع أمان افتراضيًا على منفذي STM32 و i.MX RT.
الإيداعات: 36d5cecbd، 00500ccde، c1eeaefd6، 333fb2b5f، 55cab8733، c7d40f6af
قائمة التحقق للترحيل¶
للنقل النظيف إلى v4.5.3، العمل المعتاد هو:
توقّف عن استخدام
Image.div()/cartoon()/mul()(الدوال المُزالة).استورد وحدة العرض باسم
displayوبدِّلdsi_write/dsi_readإلىbus_write/bus_read(تغيير واجهة برمجة تطبيقات العرض).حدّث بناء
MQTTClient(portمطلوب؛ssl_params/callback) وأي استدعاءات لـtf.regression()(تغييرات واجهة برمجة تطبيقات المكتبات).مرّر
maxفيawb()وgamma/contrast/brightnessفيgamma()كوسائط مفتاحية، وأعد فحص افتراضات YUV422/التبديل وأمان وضع نقطة الوصول (تغييرات ISP/المستشعر).