OpenCV 5 هنا - أكبر تحديث منذ عام 2018 (قمنا بتجربته)

BBetter Stack
컴퓨터/소프트웨어사진/예술AI/미래기술

스크립트

00:00:00جميعنا نعرف OpenCV، أليس كذلك؟ إنها مكتبة الرؤية الحاسوبية المثالية التي يستخدمها الجميع
00:00:07لتغيير حجم الصور، واكتشاف الكائنات، وتنفيذ كافة أنواع مهام الرؤية الحاسوبية. وقد حصلت للتو على
00:00:13أول تحديث رئيسي لها منذ عام 2018. وهذا تحديث كبير. يحتوي OpenCV5 على محرك
00:00:21تعلم عميق جديد كلياً يمكنه تشغيل YOLO. ويمكنه أيضاً إجراء عمليات ترميم الصور (in-painting) بأسلوب Stable Diffusion
00:00:27وحتى تشغيل نموذج رؤية ولغة كامل بشكل أصلي دون الحاجة إلى PyTorch، أو ONNX runtime، أو أي شيء آخر
00:00:35مضاف إليها. لذا في فيديو اليوم، سنشرح ما الجديد فعلياً في OpenCV5، ثم سنقوم باختبار
00:00:41الميزات الجديدة بأنفسنا من خلال بعض العروض التوضيحية الرائعة التي تعمل محلياً على جهازي. سيكون الأمر
00:00:47ممتعاً للغاية، فلنبدأ في ذلك. أولاً، إليكم لماذا يعتبر هذا التحديث أمراً كبيراً.
00:00:57تنتشر OpenCV في كل مكان. لديها أكثر من 86 ألف نجمة على GitHub، وأكثر من مليون عملية تثبيت يومياً، و
00:01:05على مدى عقدين من الزمن، كانت الأساس للروبوتات والواقع المعزز والهندسة الطبية، والتفتيش
00:01:11الصناعي، وأي برنامج يحتوي على جانب رؤية حاسوبية مرتبط به. وبالنسبة لـ
00:01:17السنوات الثماني الماضية، كان الجميع يبنون على نفس خط الإصدار 4. لذا فإن قفزة الإصدار الرئيسية هنا
00:01:24تعد حقاً أمراً مهماً جداً. والميزة الرئيسية لهذا الإصدار الجديد هي إعادة كتابة كاملة لوحدة DNN،
00:01:32وهذا هو الجزء من OpenCV الذي يشغل الشبكات العصبية. إليكم أهم رقم يجب
00:01:38الانتباه إليه. في OpenCV4، كان محرك DNN يدعم حوالي 22% فقط من مشغلات ONNX. وONNX هو التنسيق
00:01:47القياسي الذي تصدر إليه النموذج عندما تريد تشغيله في مكان آخر غير الإطار الذي تدرب عليه.
00:01:53وهذه التغطية بنسبة 22% كانت تعني في أغلب الأحيان أنك ستأخذ نموذجاً حديثاً، وتحاول تحميله، و
00:02:01تصطدم فوراً بعقبة. بعض المشغلات لم تكن مدعومة، لذا كنت عالقاً. لكن OpenCV5 يرفع هذه التغطية
00:02:08إلى 80%. والآن تقوم هذه المكتبة بتشغيل معظم هذه النماذج مباشرةً. والسبب في هذه القفزة
00:02:15الكبيرة هو طريقة إعادة بنائها. المحرك القديم كان يعالج الشبكات طبقة تلو الأخرى. أما المحرك الجديد فهو
00:02:22مبني حول رسم بياني للعمليات محدد النوع. لذا فهو ينظر إلى الشبكة بأكملها كرسم بياني أولاً، ثم يقوم
00:02:29باستنتاج الأشكال بشكل صحيح، وطي الثوابت، ودمج المشغلات قبل تشغيل أي شيء فعلياً. بعبارات بسيطة،
00:02:36هو يفهم النموذج بالكامل قبل تنفيذه، لذا يمكنه التعامل مع الأشكال الديناميكية و
00:02:42بنيات المحولات (Transformer) الحديثة التي لم يستطع المحرك القديم التعامل معها. وإليكم الجزء المثير للإعجاب.
00:02:48مع هذه التغييرات الجديدة، ليس فقط أصبح أكثر توافقاً، بل أصبح أيضاً سريعاً جداً. لقد اختبرت OpenCV محركها الجديد
00:02:56مقارنة بمحرك ONNX من مايكروسوفت. وعلى وحدة المعالجة المركزية (CPU)، تفوق OpenCV5 عليه أو تعادل معه في النماذج الحقيقية. لذا
00:03:04كان أسرع بنسبة 11.5% من YOLO الإصدار 8، وأسرع بنحو 37% من OWL الإصدار 2، وأسرع بنسبة 30% من Xfeet.
00:03:15هذه أرقام أعلنت عنها OpenCV بنفسها. لذا خذها بحذر واختبر
00:03:22عبء العمل الخاص بك. لكن إذا كانت صحيحة، فهذا مثير للإعجاب حقاً. وهناك المزيد من الأشياء الرائعة في
00:03:27هذا الإصدار الجديد مثل دعم أصلي لأنواع البيانات FP16 وBF16، ودعم حقيقي للمصفوفات ذات الأبعاد n في CVMAT،
00:03:36ونواة تعتمد على بايثون أولاً، وتم الاستغناء عن واجهة برمجة تطبيقات C القديمة واستبدالها بـ C++17 كقاعدة أساسية.
00:03:44وهناك ملاحظة مهمة يجب أن تعرفها مقدماً، وهي أن المحرك الجديد يعمل على وحدة المعالجة المركزية (CPU) فقط في الوقت الحالي.
00:03:51دعم وحدة معالجة الرسوميات (GPU) سيأتي لاحقاً في دورة الإصدار 5. لذا إذا كنت بحاجة إلى استنتاج GPU اليوم،
00:03:58فسوف تعود إلى المحرك التقليدي، الذي لا يزال يحتوي على دعم CUDA وOpenVINO.
00:04:03لذا كل ما سأعرضه لكم في هذا الإصدار 5 الجديد يعمل على CPU. إذن الميزة الأكبر في هذا
00:04:10الإصدار هي محرك DNN الجديد. لذا سنختبر بعض الأمثلة ونرى كيف يعمل.
00:04:16حسناً، لنبدأ بمثال ممتع. توفر OpenCV مثالاً للتلوين حيث يمكنك أخذ
00:04:22صورة بالأبيض والأسود ويقوم هو بتوقع الألوان. وعلى الهامش، كنت أشاهد Spider Noir
00:04:28مؤخراً، وهو عرض رائع. وهو أيضاً بالأبيض والأسود، لذا فكرت أنه قد يكون ممتعاً
00:04:34تلوين لقطة من هذا العرض ورؤية كيف ستبدو. لذا سآخذ هذه الصورة وأشغل
00:04:39مثال التلوين، الذي يستخدم محرك DNN الجديد وبوم، ها هي. انظروا كم كان ذلك سريعاً.
00:04:47بالنسبة للنتيجة، فهي ليست مثالية. ما زلنا نرى أنها جعلت السماء صحيحة نوعاً ما،
00:04:53لكنها فشلت في تلوين بعض الأجزاء الأخرى من الصورة. وتذكروا أن هذا يستخدم نموذج تلوين
00:04:59أقدم، والذي يلعب بأمان مع النغمات الهادئة. لكن النقطة هنا ليست النموذج،
00:05:05بل هي المحرك. لذا ما أردت إظهاره هنا هو أن هذه الصورة تم إنتاجها باستخدام الشبكة العصبية الأصلية
00:05:11لـ OpenCV بدون أي تبعيات إضافية، وهو أمر رائع جداً. الآن لنقم بتجربة مثال اكتشاف الكائنات
00:05:17الخاص بهم. ومجدداً، بما أننا في موضوع Spider Noir، سأستخدم مقطعاً من العرض
00:05:24وأشغله من خلال خط المعالجة لنرى كيف سيعمل. وعندما شغلت البرنامج النصي، انظروا
00:05:29إلى ذلك. إنه يقوم باكتشاف الكائنات في الوقت الفعلي، ويعمل على وحدة المعالجة المركزية من خلال محرك DNN الجديد. و
00:05:36تذكروا ذلك الاختبار الذي ذكرناه سابقاً؟ هذا هو نوع النماذج التي تتفوق فيها OpenCV في السرعة على
00:05:43وقت تشغيل ONNX. لذا فأنت لا تضحي بالأداء من أجل الراحة، بل تحصل على كليهما في هذا
00:05:49السيناريو الخاص. ولا تحتاج إلى تثبيت PyTorch لذلك أو وقت تشغيل منفصل. ولا يوجد GPU مطلوب.
00:05:56كل هذا يعمل في OpenCV الصافية. حسناً، الآن لنقم بتجربة مثال التلوين (in-painting) الخاص بـ LDM.
00:06:03LDM تعني الانتشار الكامن (Latent Diffusion)، وتوفر OpenCV 5 مثالاً للانتشار الكامن هنا.
00:06:11لذا دعونا نرى كيف يعمل ذلك. لنقم بتحميل نفس صورة Spider Noir التي استخدمناها سابقاً.
00:06:16والآن يمكنني التلوين فوق شيء أريد إزالته من الصورة. يمكن أن يكون شخصاً، كائناً،
00:06:23أياً كان. ويقوم نموذج الانتشار بملء المساحة الفارغة. وهذا أبطأ قليلاً لأن مثال التلوين التقليدي
00:06:31في OpenCV يستخدم تمريرة أمامية واحدة، وهي فورية، لكن LDM يستخدم الانتشار،
00:06:39وهو تكراري. لذا يبدأ من الضوضاء ثم يزيل الضوضاء خطوة بخطوة. لذا فهو يشغل هذا النموذج
00:06:45خطوات متعددة على التوالي. ولأننا نقوم بذلك على وحدة معالجة مركزية، فهو أبطأ لأن الانتشار
00:06:51مهمة أكثر ملاءمة لـ GPU. ومع ذلك، إليكم النتيجة التي حصلت عليها عند تشغيلها على بضع
00:06:58خطوات. وأود أن أقول إنها قامت بعمل جيد جداً. ليست مثالية. لا يزال بإمكاننا رؤية بعض آثار
00:07:05الانتشار بوضوح. لكن يمكن حل ذلك عن طريق زيادة عدد الخطوات أو استخدام نموذج انتشار مختلف.
00:07:11وأخيراً، أريد أن أعرض لكم مثال استنتاج VLM، الذي يوضح كيف يمكنك استخدام نماذج
00:07:17الرؤية واللغة أو LLMs أصلياً داخل OpenCV للقيام بأشياء مثل التعليق التوضيحي على الصور أو غيرها من
00:07:25الأشياء. في هذا العرض التوضيحي، نستخدم نموذج Pali Gemma للتعليق على صورة Spider Noir هذه.
00:07:32وكما ترون، إنه بطيء جداً. والنتيجة النهائية ليست مذهلة أيضاً. لذا أنا بالتأكيد
00:07:39لن أستخدم OpenCV لهذا الغرض. هناك خيارات أفضل بكثير للتعليق على الصور. على سبيل المثال،
00:07:45يمكنك تشغيل نموذج 12 billion Gemma 4 محلياً على OMLX والحصول على مخرجات أسرع بمائة مرة من هذا.
00:07:53لقد عرضت ذلك المثال تحديداً في أحد مقاطع الفيديو السابقة عن نموذج 12 billion Gemma 4.
00:07:58لذا تحققوا من ذلك إذا كنتم مهتمين. لكن الهدف من هذا العرض هو إظهار أن OpenCV تمتلك الآن
00:08:04كل القطع التي تحتاجها لتشغيل LLMs. المرمّز (tokenizer)، وطبقات الانتباه، وذاكرة KV المؤقتة،
00:08:11كلها مدمجة. وحقيقة أنها تعمل على الإطلاق على وقت تشغيل منفصل هي إشارة حقيقية
00:08:18إلى المكان الذي تتجه إليه هذه المكتبة. سيكون لديها رؤية ولغة مجمعة في مكان واحد. و
00:08:24بمجرد طرح تحديث GPU، سيكون الأمر أفضل وأسرع. إذن إليكم ذلك،
00:08:29يا رفاق. هذا هو OpenCV الإصدار 5 الجديد باختصار. مكتبة واحدة تعمل على CPU بدون أي
00:08:37تبعات إضافية. وقد استخدمناها للتلوين، واكتشاف الكائنات في الوقت الفعلي، وتلوين الانتشار،
00:08:43والتعليق التوضيحي على الصور. سيتعين عليكم تدريب نماذجكم على شيء مثل Pytorch.
00:08:50هذا ليس شيئاً صُممت OpenCV للقيام به. ولكن عندما يتعلق الأمر بتشغيل تلك النماذج فعلياً
00:08:56داخل خط معالجة الرؤية، فإن OpenCV 5 يعد خياراً رائعاً وقفزة هائلة عما كانت عليه قبل
00:09:03شهر مع محرك DNN الجديد الخاص بهم. فما رأيكم في OpenCV 5 الجديد؟ هل ستستخدمونه
00:09:09في مشاريعكم؟ أخبرونا في قسم التعليقات بالأسفل. ويا رفاق، إذا أعجبتكم
00:09:14أنواع هذه التحليلات التقنية، يرجى إعلامي عن طريق الضغط على زر الإعجاب تحت الفيديو.
00:09:19وأيضاً لا تنسوا الاشتراك في قناتنا. كان معكم أندروس من BetterStack،
00:09:24وسأراكم في الفيديوهات القادمة.

핵심 요약

يُمثل OpenCV 5 قفزة تقنية كبيرة بفضل محرك DNN المُعاد بناؤه، الذي يُتيح تشغيل نماذج الرؤية الحاسوبية والتعلم العميق محلياً على وحدة المعالجة المركزية بسرعة عالية وبدون تبعيات إضافية مثل PyTorch.

하이라이트

  • تعد OpenCV 5 أول تحديث رئيسي للمكتبة منذ عام 2018، وتتميز بإعادة كتابة كاملة لمحرك DNN الخاص بها.

  • يرفع المحرك الجديد توافق مشغلات ONNX من 22% في الإصدار الرابع إلى 80% في الإصدار الخامس.

  • يتفوق محرك DNN الجديد في سرعة الاستنتاج على وحدة المعالجة المركزية (CPU) مقارنة بمحرك ONNX من مايكروسوفت، بنسب تصل إلى 37% في نماذج مثل OWL v2.

  • يدعم OpenCV 5 بشكل أصلي أنواع البيانات FP16 وBF16، ويعتمد C++17 كقاعدة أساسية بدلاً من واجهات C القديمة.

  • يعمل المحرك الجديد حالياً حصرياً على وحدة المعالجة المركزية (CPU)، مع خطط لإضافة دعم وحدة معالجة الرسوميات (GPU) في تحديثات لاحقة.

타임라인

تقديم OpenCV 5 وأهمية التحديث

  • يأتي الإصدار OpenCV 5 كأول تحديث رئيسي منذ عام 2018.
  • تُعد هذه المكتبة حجر الأساس لتطبيقات الروبوتات، والواقع المعزز، والهندسة الطبية.

تُعد OpenCV مكتبة قياسية للرؤية الحاسوبية تتجاوز مليون تثبيت يومياً. بعد ثماني سنوات من البناء على الإصدار الرابع، يُغير الإصدار الخامس جذرياً كيفية التعامل مع الشبكات العصبية والتعلم العميق.

إعادة بناء محرك DNN

  • يرفع المحرك الجديد دعم مشغلات ONNX إلى 80%.
  • يعالج المحرك الشبكات كرسم بياني للعمليات بدلاً من معالجتها طبقة تلو الأخرى.
  • يتميز المحرك بسرعة أداء فائقة تتجاوز محرك ONNX من مايكروسوفت على وحدة المعالجة المركزية.

المحرك الجديد يحل مشكلة التوافق التي كانت تعيق الإصدار الرابع، حيث يفهم النموذج بالكامل قبل تنفيذه، مما يجعله قادراً على التعامل مع الأشكال الديناميكية وبنيات المحولات الحديثة. الأداء المحسن يتضمن تفوقاً بنسبة 11.5% في YOLO v8 و37% في OWL v2 مقارنة بمحرك ONNX.

اختبار الميزات عملياً

  • نجح المحرك الجديد في تلوين الصور واكتشاف الكائنات في الوقت الفعلي على وحدة المعالجة المركزية.
  • يدعم OpenCV 5 تقنيات الانتشار الكامن (Latent Diffusion) للترميم، رغم كونه أبطأ على CPU مقارنة بـ GPU.
  • يحتوي الإصدار على أدوات مدمجة لتشغيل نماذج الرؤية واللغة (VLM) مثل Pali Gemma.

تمت تجربة تلوين صور بالأبيض والأسود واكتشاف الكائنات محلياً دون تثبيت تبعيات إضافية. أظهر الاختبار أن العمليات تتم بفعالية عالية، مع الإشارة إلى أن استنتاج نماذج VLM الكبيرة لا يزال يواجه قيوداً في السرعة عند التشغيل على وحدة المعالجة المركزية.

커뮤니티 글

모든 글 보기