Video2X: إطار عمل لرفع مستوى الفيديو عالي الجودة واستيفاء الإطار
محرر كود المصدر
مهم
وصل الإصداران 4 و5 إلى حالة نهاية العمر الافتراضي (EOL). نظرًا لموارد التطوير المحدودة، لن يتم حل أي مشكلات تتعلق بالإصدارات الأقل من 6.
الإصدار 6.0.0
قم بتنزيل برنامج تثبيت Windows
باختصار: الإصدار 6.0.0 هو إعادة كتابة كاملة لمشروع Video2X في C/C++، مع بنية أسرع وأكثر كفاءة، ودعم عبر الأنظمة الأساسية، وجودة إخراج محسنة بشكل كبير، وميزات جديدة لسهولة الإعداد على Windows GUI والمثبت .
الإصدار 6.0.0 عبارة عن إعادة كتابة كاملة للمشروع، وتم تنفيذه بلغة C/C++ ويتضمن الميزات التالية:
1. بنية أسرع: من خلال الاستفادة من تعدد الخيوط وتسريع وحدة معالجة الرسومات، أصبح Video2X الآن أسرع بكثير من ذي قبل.
2. دعم عبر الأنظمة الأساسية: يعمل Video2X الآن على أنظمة التشغيل Windows وLinux وmacOS.
3. تحسين جودة الإخراج: يوفر Video2X الآن جودة أعلى للترقية، خاصة بالنسبة لمقاطع الفيديو عالية الدقة.
4. واجهة المستخدم الرسومية الجديدة: يتميز Video2X الآن بواجهة مستخدم رسومية سهلة الاستخدام تعمل على تبسيط عملية الإعداد والاستخدام.
5. برنامج التثبيت الجديد: يوفر Video2X الآن برنامج تثبيت سهل الاستخدام يساعدك على تثبيت البرنامج بسرعة وسهولة على نظام التشغيل Windows.
سيتوفر قريبًا دعم RealCUGAN واستيفاء الإطارات باستخدام RIFE.
تحميل نسخة الويندوز
يمكنك تنزيل أحدث إصدار من Windows من صفحة الإصدارات. للتعرف على الاستخدام الأساسي لواجهة المستخدم الرسومية، راجع صفحة wiki الخاصة بواجهة المستخدم الرسومية. إذا لم تتمكن من التنزيل مباشرةً من GitHub، فحاول استخدام مرآة. تدعم واجهة المستخدم الرسومية حاليًا اللغات التالية:
1. الإنجليزية
2. الصينية المبسطة
3. الصينية التقليدية
4. اليابانية
5. الكورية
6. الفرنسية
7. الألمانية
8. الإيطالية
9. الاسبانية
10. البرتغالية
11. الروسية
تثبيت على لينكس
يمكنك تثبيت Video2X على Arch Linux باستخدام حزمة video2x-git، أو تنزيل الثنائيات المجمعة مسبقًا من صفحة الإصدارات. إذا كنت تريد البناء من المصدر، فراجع ملف PKGBUILD للحصول على نظرة عامة على الحزم والأوامر المطلوبة. إذا كنت لا تريد ترجمة برنامجك من المصدر، فكر في استخدام صورة الحاوية أدناه.
صورة الحاوية
تتوفر صور حاوية Video2X في سجل حاوية GitHub لسهولة النشر على Linux وmacOS. إذا كان لديك Docker/Podman مثبتًا، فيمكنك بدء تضخيم الفيديو بأمر واحد فقط. لمزيد من المعلومات حول كيفية استخدام صورة Video2X's Docker، راجع الوثائق.
جوجل كولاب (قديم: 5.0.0-beta7)
إذا لم يكن لديك وحدة معالجة الرسومات القوية الخاصة بك، فيمكنك استخدام Video2X مجانًا على Google Colab. يمكنك استعارة وحدة معالجة الرسومات القوية (NVIDIA T4 أو L4 أو A100) مجانًا على خوادم Google لمدة تصل إلى 12 ساعة لكل جلسة. يرجى استخدام الموارد المجانية بشكل عادل وعدم إنشاء جلسات متواصلة وتشغيل Zoom على مدار الساعة طوال أيام الأسبوع. قد يؤدي ذلك إلى حظرك. إذا كنت ترغب في استخدام وحدة معالجة رسومات أفضل والحصول على أوقات تشغيل أطول، فاحصل على Colab Pro/Pro+. تعليمات الاستخدام مضمنة في دفتر Colab.
مجموعة مناقشة برقية
انضم إلى مجموعة مناقشة Telegram الخاصة بنا لطرح أي أسئلة لديك حول Video2X، أو الدردشة مباشرة مع المطورين، أو مناقشة التكنولوجيا فائقة الدقة ومستقبل Video2X.
وثيقة
تتم استضافة وثائق Video2X على صفحة Wiki الخاصة بهذا المستودع. ويتضمن تعليمات شاملة حول كيفية استخدام واجهة المستخدم الرسومية وواجهة سطر الأوامر وصور الحاويات والمكتبات والمزيد. مواقع الويكي مفتوحة للتحرير من قبل المجتمع، لذا، نعم، يمكنك أيضًا تصحيح الأخطاء أو إضافة محتوى جديد إلى الوثائق.
يقدم
Video2X عبارة عن إطار عمل لرفع مستوى الفيديو واستيفاء الإطارات قائم على التعلم الآلي، وهو مبني على ثلاثة مكونات رئيسية:
1. النماذج: يستخدم Video2X مجموعة متنوعة من نماذج التعلم العميق المتقدمة لإجراء الترقية واستيفاء الإطار.
2. المحرك: محرك Video2X مسؤول عن معالجة بيانات الفيديو وإجراء استنتاج النموذج وإنشاء مقاطع فيديو الإخراج.
3. الواجهة: يوفر Video2X واجهات مختلفة مثل GUI وCLI وصور الحاوية لتمكينك من استخدام إطار العمل بسهولة.
مظاهرة الفيديو
تكبير: مقطع دعائي لفيلم Spirited Away
مقتطف الاختبار القياسي
يمكن استخدام المقتطف التالي لاختبار ما إذا كان الإعداد يعمل بشكل صحيح. يعد هذا أيضًا مقتطفًا قياسيًا لتشغيل مقاييس الأداء.
المقطع الأصلي مأخوذ من أنمي "The Pet Girl of Sakurasou".
حقوق الطبع والنشر لهذا المقطع مملوكة لشركة Amino Pulse Co., Ltd.
رخصة
تم إصدار هذا المشروع بموجب ترخيص GNU AGPL الإصدار 3.
حقوق الطبع والنشر (C) 2018-2024 K4YT3X والمساهمين.
يتضمن هذا المشروع أو يعتمد على المشاريع التالية:
1. opencv: https://github.com/opencv/opencv
2. waifu2x-caffe: https://github.com/nagadomi/waifu2x-caffe
3. ريال-ESRGAN: https://github.com/xinntao/Real-ESRGAN
4. BasicSR: https://github.com/xinntao/BasicSR
5. جفبجان: https://github.com/TencentARC/GFPGAN
6. رايف: https://github.com/hzwer/arXiv2021-RIFE
7. Anime4K: https://github.com/bloc97/Anime4K
يمكنك العثور على مزيد من معلومات الترخيص في ملف الإشعار.
شكر خاص
شكر خاص للأفراد التالية أسماؤهم لمساهماتهم الكبيرة في هذا المشروع، حسب الترتيب الأبجدي:
1.K4YT3X: منشئ المشروع
2. المساهمين: شكراً لكل من ساهم في هذا المشروع.
على سبيل المثال:
ترخيص أباتشي-2.0
جدول المحتويات
إطار عمل Darknet للكشف عن الكائنات وYOLO
1. الورق
2. معلومات عامة
3. نسخة دارك نت
4. أوزان ما قبل التدريب MSCOCO
5. بناء
1. جوجل كولاب
2. طريقة لينكس CMake
3. طريقة ويندوز CMake
6. استخدم داركنت
1. كلي
2. التدريب
7. أدوات وروابط أخرى
8. خريطة الطريق
1. الأهداف قصيرة المدى
2. الأهداف المتوسطة المدى
3. الأهداف طويلة المدى
إطار عمل Darknet للكشف عن الكائنات وYOLO
Darknet هو إطار شبكة عصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الكائنات في الوقت الفعلي ويعمل في إطار عمل Darknet.
اقرأ كيف تساعد Hank.ai مجتمع Darknet/YOLO
الإعلان عن Darknet V3 "الجاز"
قم بزيارة موقع Darknet/YOLO
يرجى قراءة الأسئلة الشائعة حول Darknet/YOLO
انضم إلى خادم Darknet/YOLO Discord
ورق
1. ورق YOLOv7
2. ورق متدرج YOLOv4
3. ورق YOLOv4
4. ورقة YOLOv3
معلومات عامة
لا يزال إطار عمل Darknet/YOLO أسرع وأكثر دقة من أطر العمل الأخرى وإصدارات YOLO.
الإطار مجاني بالكامل ومفتوح المصدر. يمكنك دمج Darknet/YOLO في المشاريع والمنتجات الحالية (بما في ذلك المنتجات التجارية) دون ترخيص أو رسوم.
يمكن لـ Darknet V3 ("Jazz")، الذي تم إصداره في أكتوبر 2024، تشغيل فيديو مجموعة بيانات LEGO بدقة بمعدل يصل إلى 1000 إطارًا في الثانية عند استخدام وحدة معالجة الرسوميات NVIDIA RTX 3090، مما يعني أن كل إطار فيديو يستغرق 1 مللي ثانية أو أقل. تتم قراءته وتغيير حجمه ومعالجته داخليًا بواسطة Darknet/ يولو.
إذا كنت بحاجة إلى مساعدة أو تريد مناقشة Darknet/YOLO، يرجى الانضمام إلى خادم Darknet/YOLO Discord: https://discord.gg/zSq8rtW
يمكن تشغيل إصدار وحدة المعالجة المركزية من Darknet/YOLO على أجهزة بسيطة مثل Raspberry Pi والخوادم السحابية وcolab وأجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة ومعدات التدريب المتطورة. يتطلب إصدار GPU من Darknet/YOLO وحدة معالجة الرسومات المتوافقة مع CUDA من NVIDIA.
من المعروف أن Darknet/YOLO يعمل على Linux وWindows وMac. انظر تعليمات البناء أدناه.
نسخة دارك نت
لم تكن أدوات Darknet الأصلية التي كتبها جوزيف ريدمون في 2013-2017 تحتوي على أرقام إصدار. نعتقد أن هذا هو الإصدار 0.x.
مكتبة Darknet الشهيرة التالية التي يديرها Alexey Bochkovskiy من 2017 إلى 2021 لا تحتوي أيضًا على رقم إصدار. نعتقد أن هذا هو الإصدار 1.x.
مكتبة Darknet التي ترعاها Hank.ai ويديرها Stéphane Charette بدءًا من عام 2023 هي أول مكتبة لديها أمر إصدار. ومن عام 2023 إلى نهاية عام 2024، يعود إلى الإصدار 2.x "OAK".
الهدف هو التعرف على قاعدة التعليمات البرمجية مع كسر أقل قدر ممكن من الوظائف الحالية.
1. أعد كتابة خطوات الإنشاء حتى نتمكن الآن من البناء على نظامي التشغيل Windows وLinux باستخدام CMake.
2. قم بتحويل قاعدة التعليمات البرمجية لاستخدام مترجم C++.
3. تحسين Chart.png أثناء التدريب.
4. إصلاحات الأخطاء والتحسينات المتعلقة بالأداء، والتي تتعلق بشكل أساسي بتقليل الوقت اللازم لتدريب الشبكة.
الفرع الأخير من قاعدة التعليمات البرمجية هو الإصدار 2.1 في الفرع v2.
تبدأ المرحلة التالية من التطوير في منتصف عام 2024 وسيتم إصدارها في أكتوبر 2024. يقوم أمر الإصدار الآن بإرجاع 3.x "JAZZ".
إذا كنت بحاجة إلى تشغيل أحد هذه الأوامر، فيمكنك دائمًا مراجعة فرع v2 السابق. يرجى إعلامنا حتى نتمكن من التحقيق في إضافة أي أوامر مفقودة.
1. تمت إزالة العديد من الأوامر القديمة والتي لم يتم الحفاظ عليها.
2. تم إجراء العديد من تحسينات الأداء، سواء أثناء التدريب أو الاستدلال.
3. ستحتاج تطبيقات واجهة برمجة تطبيقات C القديمة المعدلة باستخدام واجهة برمجة تطبيقات Darknet الأصلية إلى إجراء تعديلات طفيفة: https://darknetcv.ai/api/api.html
4. واجهة برمجة تطبيقات Darknet V3 C وC++ الجديدة: https://darknetcv.ai/api/api.html
5. التطبيقات الجديدة ونموذج التعليمات البرمجية في أمثلة src: https://darknetcv.ai/api/files.html
MSCOCO الأوزان المدربة مسبقا
للراحة، تم تدريب العديد من الإصدارات الشائعة من YOLO مسبقًا على مجموعة بيانات MSCOCO. تحتوي مجموعة البيانات على 80 فئة ويمكن رؤيتها في الملف النصي cfg/coco.names.
هناك العديد من مجموعات البيانات الأبسط والأوزان المدربة مسبقًا المتاحة لاختبار Darknet/YOLO، مثل LEGO Gears وRolodex. لمزيد من المعلومات، راجع الأسئلة الشائعة حول Darknet/YOLO.
يمكن تنزيل أوزان MSCOCO المدربة مسبقًا من عدة مواقع مختلفة ويمكن أيضًا تنزيلها من هذا الريبو:
1. YOLOv2، نوفمبر 2016
1.YOLOv2-صغيرة
2.YOLOv2-كامل
2. YOLOv3، مايو 2018
1.YOLOv3-صغيرة
2.YOLOv3-كامل
3. YOLOv4، مايو 2020
1.YOLOv4-صغيرة
2.YOLOv4-كامل
4. YOLOv7، أغسطس 2022
1.YOLOv7-صغيرة
2.YOLOv7-كامل
أوزان MSCOCO المُدربة مسبقًا مخصصة لأغراض العرض التوضيحي فقط. توجد ملفات .cfg و.names المقابلة لـ MSCOCO في دليل cfg. أمر مثال:
``باش
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
لاحظ أنه ينبغي للمرء تدريب شبكته الخاصة. يُستخدم MSCOCO عادةً للتأكد من أن كل شيء يعمل بشكل صحيح.
يبني
تم دمج طرق البناء المختلفة المتوفرة في الماضي (قبل 2023) في حل موحد. يتطلب Darknet C++ 17 أو أعلى، وOpenCV، واستخدام CMake لإنشاء ملفات المشروع الضرورية.
لا تحتاج إلى معرفة لغة C++ لإنشاء أو تثبيت أو تشغيل Darknet/YOLO، تمامًا كما لا تحتاج إلى أن تكون ميكانيكيًا لقيادة السيارة.
جوجل كولاب
تعليمات Google Colab هي نفس تعليمات Linux. تتوفر العديد من دفاتر ملاحظات Jupyter التي توضح كيفية تنفيذ مهام معينة، مثل تدريب شبكة جديدة.
قم بإلقاء نظرة على دفتر الملاحظات في الدليل الفرعي colab، أو اتبع تعليمات Linux أدناه.
طريقة لينكس CMake
البرنامج التعليمي لبناء Darknet لنظام التشغيل Linux
اختياري: إذا كان لديك وحدة معالجة رسومات NVIDIA حديثة، فيمكنك تثبيت CUDA أو CUDA+cuDNN في الوقت الحالي. إذا تم تثبيته، فسوف يستخدم Darknet وحدة معالجة الرسومات (GPU) الخاصة بك لتسريع معالجة الصور (والفيديو).
يجب عليك حذف ملف CMakeCache.txt من دليل إنشاء Darknet لإجبار CMake على إعادة البحث عن كافة الملفات المطلوبة.
تذكر إعادة بناء Darknet.
يمكن تشغيل Darknet بدونه، ولكن إذا كنت ترغب في تدريب شبكة مخصصة، فستحتاج إلى CUDA أو CUDA+cuDNN.
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
تفضل بزيارة https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview للتنزيل وتثبيت cuDNN.
بعد تثبيت CUDA، تأكد من أنه يمكنك تشغيل nvcc وnvidia-smi. قد تحتاج إلى تعديل متغير PATH.
إذا قمت لاحقًا بتثبيت CUDA أو CUDA+cuDNN، أو إذا قمت بالترقية إلى إصدار أحدث من برنامج NVIDIA:
تفترض هذه التعليمات (ولكنها لا تتطلب!) أن النظام يعمل بنظام التشغيل Ubuntu 22.04. إذا كنت تستخدم توزيعًا آخر، فاضبطه حسب الحاجة.
``باش
sudo apt-get install build-essential git libopencv-dev cmake
mkdir ~/srccd ~/src
استنساخ بوابة https://github.com/hank-ai/darknet
مؤتمر نزع السلاح داركنت
بناء مكدير
بناء القرص المضغوط
cmake -DCMAKEBUILDTYPE=إطلاق ..
حزمة make -j4
sudo dpkg -i darknet-VERSION.deb
`
إذا كنت تستخدم إصدارًا أقدم من CMake، فستحتاج إلى ترقية CMake لتشغيل أمر cmake أعلاه. يمكن ترقية CMake على Ubuntu باستخدام الأمر التالي:
``باش
sudo apt-get purge cmake
Sudo snap install cmake --classic
`
إذا كنت تستخدم bash كصدفة أوامر، فستحتاج إلى إعادة تشغيل الصدفة الخاصة بك في هذا الوقت. إذا كنت تستخدم السمكة فيجب أن تلتقط المسار الجديد على الفور.
المستخدمين المتقدمين:
إذا كنت تريد إنشاء ملف تثبيت RPM بدلاً من ملف DEB، فراجع الأسطر ذات الصلة في CM_package.cmake. قبل تشغيل حزمة make -j4، عليك تعديل هذين السطرين:
``باش
مجموعة (CPACKGENERATOR "DEB")# مجموعة (CPACKGENERATOR "RPM")
`
بالنسبة للتوزيعات مثل Centos وOpenSUSE، تحتاج إلى تبديل هذين الخطين في CM_package.cmake إلى:
``باش
مجموعة (CPACK_GENERATOR "DEB")
مجموعة (CPACK_GENERATOR "RPM")
`
لتثبيت حزمة، استخدم مدير الحزم العادي الخاص بالتوزيع الخاص بك بعد الانتهاء من بنائها. على سبيل المثال، في نظام يستند إلى دبيان مثل Ubuntu:
``باش
sudo dpkg -i darknet-2.0.1-Linux.deb
`
سيؤدي تثبيت حزمة .deb إلى نسخ الملفات التالية:
1. /usr/bin/darknet هو ملف Darknet المعتاد القابل للتنفيذ. قم بتشغيل إصدار darknet من واجهة سطر الأوامر (CLI) للتأكد من تثبيته بشكل صحيح.
2. /usr/include/darknet.h هو Darknet API لمطوري C وC++ وPython.
3. يحتوي /usr/include/darknet_version.h على معلومات الإصدار للمطورين.
4. /usr/lib/libdarknet.so هي مكتبة لمطوري C وC++ وPython للارتباط بها.
5. /opt/darknet/cfg/... هو المكان الذي يتم فيه تخزين كافة قوالب .cfg.
لقد انتهيت الآن! تم إنشاء Darknet وتثبيته في /usr/bin/. قم بتشغيل الأمر التالي للاختبار: إصدار darknet.
إذا لم يكن لديك /usr/bin/darknet، فأنت لم تقم بتثبيته، بل قمت بإنشائه للتو! تأكد من تثبيت ملف .deb أو .rpm كما هو موضح أعلاه.
طرق Windows CMake
تفترض هذه الإرشادات أن لديك تثبيتًا نظيفًا لنظام التشغيل Windows 11 22H2.
افتح نافذة موجه أوامر cmd.exe عادية وقم بتشغيل الأمر التالي:
``باش
Winget تثبيت Git.Git
تثبيت Winget Kitware.CMake
تثبيت Winget nsis.nsis
تثبيت Winget Microsoft.VisualStudio.2022.Community
`
في هذه المرحلة، نحتاج إلى تعديل تثبيت Visual Studio ليشمل دعم تطبيقات C++:
1. انقر فوق قائمة "ابدأ" في Windows وقم بتشغيل Visual Studio Installer.
2. انقر فوق تحرير.
3. اختر تطوير سطح المكتب باستخدام C++.
4. انقر فوق "تحرير" في الزاوية اليمنى السفلية، ثم انقر فوق "نعم".
بمجرد تنزيل كل شيء وتثبيته، انقر فوق قائمة ابدأ في Windows مرة أخرى وحدد Developer Command Prompt for Visual Studio 2022. لا تستخدم PowerShell لتنفيذ هذه الخطوات، فسوف تواجه مشاكل!
المستخدمين المتقدمين:
بدلاً من تشغيل موجه أوامر المطور، يمكنك تسجيل الدخول إلى الجهاز باستخدام موجه أوامر عادي أو ssh وتشغيل "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat" يدويًا.
بمجرد تشغيل موجه أوامر المطور كما هو موضح أعلاه (وليس PowerShell!)، قم بتشغيل الأمر التالي لتثبيت Microsoft VCPKG، والذي سيتم استخدامه بعد ذلك لإنشاء OpenCV:
``باش
مركز السيطرة على الأمراض:
mkdir c:srccd c:src
استنساخ بوابة https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe دمج التثبيت
.vcpkg.exe دمج powershell.vcpkg.exe تثبيت opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
يرجى التحلي بالصبر مع هذه الخطوة الأخيرة حيث قد يستغرق تشغيلها وقتًا طويلاً. يتطلب تنزيل وبناء الكثير من الأشياء.
المستخدمين المتقدمين:
لاحظ أنه عند إنشاء OpenCV، قد تحتاج إلى إضافة العديد من الوحدات الاختيارية الأخرى. قم بتشغيل .vcpkg.exe للبحث في opencv لرؤية القائمة الكاملة.
اختياري: إذا كان لديك وحدة معالجة رسومات NVIDIA حديثة، فيمكنك تثبيت CUDA أو CUDA+cuDNN في الوقت الحالي. إذا تم تثبيته، فسوف يستخدم Darknet وحدة معالجة الرسومات (GPU) الخاصة بك لتسريع معالجة الصور (والفيديو).
يجب عليك حذف ملف CMakeCache.txt من دليل إنشاء Darknet لإجبار CMake على إعادة البحث عن كافة الملفات المطلوبة.
تذكر إعادة بناء Darknet.
يمكن تشغيل Darknet بدونه، ولكن إذا كنت ترغب في تدريب شبكة مخصصة، فستحتاج إلى CUDA أو CUDA+cuDNN.
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
قم بزيارة https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows لتنزيل وتثبيت cuDNN.
بعد تثبيت CUDA، تأكد من أنه يمكنك تشغيل nvcc.exe وnvidia-smi.exe. قد تحتاج إلى تعديل متغير PATH.
بعد تنزيل cuDNN، قم بفك ضغط مجلدات bin والتضمين وlib ونسخها إلى C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/. قد تحتاج إلى الكتابة فوق بعض الملفات.
إذا قمت لاحقًا بتثبيت CUDA أو CUDA+cuDNN، أو إذا قمت بالترقية إلى إصدار أحدث من برنامج NVIDIA:
يجب تثبيت CUDA بعد Visual Studio. إذا قمت بترقية Visual Studio، تذكر إعادة تثبيت CUDA.
بمجرد الانتهاء من جميع الخطوات السابقة بنجاح، ستحتاج إلى استنساخ Darknet وإنشائه. في هذه الخطوة نحتاج أيضًا إلى إخبار CMake بمكان وجود vcpkg حتى يتمكن من العثور على OpenCV والتبعيات الأخرى:
``باش
مؤتمر نزع السلاح ج: سرك
استنساخ بوابة https://github.com/hank-ai/darknet.git
مؤتمر نزع السلاح داركنت
بناء مكدير
بناء القرص المضغوط
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
`
إذا تلقيت خطأ حول CUDA أو cuDNN DLL مفقود (على سبيل المثال، cublas64_12.dll)، فانسخ ملف CUDA .dll يدويًا إلى نفس دليل الإخراج مثل Darknet.exe. على سبيل المثال:
``باش
انسخ "C: Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
(هذا مثال! يرجى التحقق للتأكد من تشغيل الإصدار، وتشغيل الأمر المناسب للإصدار الذي قمت بتثبيته.)
بعد نسخ الملفات، أعد تشغيل الأمر msbuild.exe الأخير لإنشاء حزمة تثبيت NSIS:
``باش
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
`
المستخدمين المتقدمين:
لاحظ أن إخراج الأمر cmake هو ملف حل Visual Studio العادي Darknet.sln. إذا كنت أحد مطوري البرامج الذين يستخدمون واجهة المستخدم الرسومية Visual Studio بشكل متكرر بدلاً من msbuild.exe لإنشاء المشاريع، فيمكنك تجاهل سطر الأوامر وتحميل مشروع Darknet في Visual Studio.
يجب أن يكون لديك الآن هذا الملف جاهزًا للتشغيل: C:srcDarknetbuildsrc-cliReleasedarknet.exe. قم بتشغيل الأمر التالي للاختبار: إصدار C:srcDarknetbuildsrc-cliReleasedarknet.exe.
لتثبيت Darknet والمكتبات والملفات وملفات DLL الضرورية بشكل صحيح، قم بتشغيل معالج تثبيت NSIS المضمن في الخطوة السابقة. تحقق من الملف darknet-VERSION.exe في دليل البناء. على سبيل المثال:
``باش
darknet-2.0.31-win64.exe
`
سيؤدي تثبيت حزمة تثبيت NSIS إلى:
1. قم بإنشاء دليل باسم Darknet، على سبيل المثال C:Program FilesDarknet.
2. قم بتثبيت تطبيق CLI وdarknet.exe ونماذج التطبيقات الأخرى.
3. قم بتثبيت ملفات .dll المطلوبة من جهة خارجية، مثل تلك الموجودة في OpenCV.
4. قم بتثبيت ملفات Darknet .dll و.lib و.h الضرورية لاستخدام darknet.dll من تطبيق آخر.
5. قم بتثبيت ملف القالب .cfg.
لقد انتهيت الآن! بعد اكتمال معالج التثبيت، سيتم تثبيت Darknet في C:Program FilesDarknet. قم بتشغيل الأمر التالي للاختبار: إصدار C:Program FilesDarknetbindarknet.exe.
إذا لم يكن لديك C:/Program Files/darknet/bin/darknet.exe، فأنت لم تقم بتثبيته، بل قمت بإنشائه فقط! تأكد من إكمال كل لوحة من معالج تثبيت NSIS كما هو موضح في الخطوة السابقة.
باستخدام دارك نت
سطر الأوامر
ما يلي ليس قائمة كاملة بجميع الأوامر التي يدعمها Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، لاحظ أيضًا واجهة سطر الأوامر لمشروع DarkHelp، والتي توفر واجهة سطر أوامر بديلة لـ Darknet/YOLO. يحتوي DarkHelp CLI أيضًا على بعض التحسينات غير الموجودة في Darknet. يمكنك استخدام Darknet CLI وDarkHelp CLI معًا، فهما لا يستبعد أحدهما الآخر.
بالنسبة لمعظم الأوامر الموضحة أدناه، تحتاج إلى ملف .weights مع ملفات .names و.cfg المقابلة. يمكنك تدريب شبكتك الخاصة (نوصي بشدة!) أو تنزيل الشبكات العصبية التي دربها الآخرون وهي متاحة مجانًا على الإنترنت. تتضمن أمثلة مجموعات بيانات ما قبل التدريب ما يلي:
1. LEGO Gears (البحث عن الأشياء في الصور)
2. Rolodex (ابحث عن النص في الصورة)
3. MSCOCO (معيار اكتشاف الأهداف من فئة 80 فئة)
تتضمن أوامر التشغيل ما يلي:
قم بإدراج بعض الأوامر والخيارات الممكنة التي يمكن تشغيلها:
``باش
مساعدة على الانترنت المظلم
`
التحقق من الإصدار:
``باش
نسخة دارك نت
`
استخدم الصور لعمل تنبؤات:
``باش
V2
اختبار كاشف الانترنت المظلم Cars.data Cars.cfg Cars_best.weights image1.jpg
V3
darknet02displayannotatedimages cars.cfg image1.jpg
مساعدة داكنة
DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg
`
إحداثيات الإخراج:
``باش
V2
اختبار كاشف الشبكة المظلمة للحيوانات. بيانات Animals.cfg Animalbest.weights -extoutput dog.jpg
V3
darknet01inference_images حيوانات dog.jpg
مساعدة داكنة
DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg
`
معالجة الفيديو:
``باش
V2
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4
V3
darknet03display_videos Animals.cfg test.mp4
مساعدة داكنة
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
القراءة من كاميرا الويب:
``باش
V2
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
V3
حيوانات darknet08display_webcam
`
حفظ النتائج بالفيديو:
``باش
V2
عرض تجريبي للكشف عن darknet للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3
darknet05processvideosحيوانات متعددة الخيوط.cfg حيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
مساعدة داكنة
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
جسون:
``باش
V2
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3
darknet06imagestojson الحيوانات image1.jpg
مساعدة داكنة
DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg
`
التشغيل على وحدة معالجة رسومات محددة:
``باش
V2
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
`
للتحقق من دقة الشبكة العصبية:
``باش
خريطة كاشف الانترنت المظلم القيادة.بيانات القيادة.cfg القيادة_أفضل.الأوزان ...
اسم المعرف AvgPrecision TP FN FP TN الدقة ErrorRate الدقة استدعاء الخصوصية FalsePosRate
-- ---- ------------ ------ ------ ------ ------ -------- --------- --------- ------ ---------- ----------
0 مركبة 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821
1 دراجة نارية 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954
2 دراجة 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285
3 أشخاص 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855
4 مركبات عديدة 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610
5 الضوء الأخضر 86.8118 1969 239 510 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102
6 الضوء الأصفر 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236
7 الضوء الأحمر 94.1033 3449 217 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
`
للتحقق من الدقة mAP@IoU=75:
``باش
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
`
من الأفضل إجراء إعادة حساب نقاط الربط في DarkMark حيث سيتم تشغيلها 100 مرة متتالية واختيار أفضل نقطة ربط من جميع نقاط الربط المحسوبة. ومع ذلك، إذا كنت تريد تشغيل إصدار أقدم في Darknet:
``باش
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
`
تدريب شبكة جديدة:
``باش
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg
`
(انظر أيضًا قسم التدريب أدناه)
يدرب
روابط سريعة للأقسام ذات الصلة من الأسئلة الشائعة حول Darknet/YOLO:
1. كيف أقوم بإعداد الملفات والأدلة الخاصة بي؟
2. ما هو الملف الشخصي الذي يجب أن أستخدمه؟
3. ما هي الأوامر التي يجب أن أستخدمها عند تدريب شبكتي الخاصة؟
أسهل طريقة لإنشاء جميع ملفات Darknet والتعليقات التوضيحية والتدريبات اللازمة باستخدام DarkMark. هذه بالتأكيد هي الطريقة الموصى بها لتدريب الشبكات العصبية الجديدة.
إذا كنت تريد إعداد الملفات المختلفة يدويًا لتدريب شبكة مخصصة:
1. قم بإنشاء مجلد جديد لتخزين الملفات. في هذا المثال، ستقوم بإنشاء شبكة عصبية للكشف عن الحيوانات، لذلك سيتم إنشاء الدليل التالي: ~/nn/animals/.
2. انسخ أحد ملفات تكوين Darknet التي تريد استخدامها كقالب. على سبيل المثال، راجع cfg/yolov4-tiny.cfg. ضعه في المجلد الذي قمت بإنشائه. في هذا المثال، لدينا الآن ~/nn/animals/animals.cfg.
3. قم بإنشاء ملف نصي Animals.names في نفس المجلد الذي وضعت فيه ملف التكوين. في هذا المثال، لدينا الآن ~/nn/animals/animals.names.
4. استخدم محرر النصوص الخاص بك لتحرير ملف أسماء الحيوانات. قم بإدراج الفئات التي تريد استخدامها. تحتاج إلى إدخال واحد بالضبط في كل سطر، ولا تحتاج إلى أسطر أو تعليقات فارغة. في هذا المثال، سيحتوي ملف .names على 4 أسطر بالضبط:
`
كلب
قطة
طائر
حصان
`
5. قم بإنشاء ملف نصي Animals.data في نفس المجلد. في هذا المثال، سيحتوي ملف .data على:
`
الطبقات = 4
Train=/home/username/nn/animals/animals_train.txt
valid=/home/username/nn/animals/animals_valid.txt
names=/home/username/nn/animals/animals.names
Backup=/home/username/nn/animals
`
6. قم بإنشاء مجلد لتخزين الصور والتعليقات التوضيحية. على سبيل المثال، قد يكون هذا ~/nn/animals/dataset. تتطلب كل صورة ملف .txt مطابق يصف التعليقات التوضيحية لتلك الصورة. تنسيق ملفات التعليق .txt محدد للغاية. لا يمكنك إنشاء هذه الملفات يدويًا لأن كل تعليق توضيحي يجب أن يحتوي على الإحداثيات الدقيقة للتعليق التوضيحي. راجع DarkMark أو أي برنامج آخر مشابه لإضافة تعليقات توضيحية إلى صورك. تم توضيح تنسيق التعليقات التوضيحية YOLO في الأسئلة الشائعة حول Darknet/YOLO.
7. قم بإنشاء ملفات نصية "تدريبية" و"صالحة" مسماة في ملف البيانات. يحتاج هذان الملفان النصيان إلى إدراج جميع الصور التي يجب أن يستخدمها Darknet للتدريب والتحقق من الصحة (عند حساب mAP%) على التوالي. صورة واحدة بالضبط لكل صف. يمكن أن تكون المسارات وأسماء الملفات نسبية أو مطلقة.
8. استخدم محرر النصوص لتعديل ملف .cfg الخاص بك.
9. تأكد من الدفعة = 64.
10. انتبه إلى التقسيمات الفرعية. اعتمادًا على حجم الشبكة وحجم الذاكرة المتوفرة على وحدة معالجة الرسومات، قد تحتاج إلى زيادة التقسيمات الفرعية. أفضل قيمة يمكن استخدامها هي 1، لذا ابدأ بالرقم 1. إذا لم يناسبك الخيار 1، فراجع الأسئلة الشائعة حول Darknet/YOLO.
11. لاحظ أن maxbatches=.... القيمة الجيدة للبدء بها هي 2000 ضعف عدد الفئات. في هذا المثال لدينا 4 حيوانات، إذن 4 * 2000 = 8000. هذا يعني أننا سنستخدم maxbatches=8000.
12. لاحظ الخطوات=.... يجب ضبط هذا على 80% و90% من الدفعات القصوى. في هذا المثال، نظرًا لأنه تم تعيين maxbatches على 8000، فسنستخدم الخطوات=6400,7200.
13. لاحظ أن العرض=... والارتفاع=.... هذه أبعاد الشبكة. تشرح الأسئلة الشائعة لـ Darknet/YOLO كيفية حساب الحجم الأمثل للاستخدام.
14. ابحث في القسم [التلافيفي] عن جميع أسطر الفئات=... قبل القسم [yolo] وقم بتعديلها بعدد الفئات من ملف .names. في هذا المثال سوف نستخدم الفئات = 4.
15. ابحث في جميع خطوط التصفية=... في القسم [التلافيفي] قبل كل قسم [yolo]. القيمة المراد استخدامها هي (عدد الفئات + 5) 3. وهذا يعني أنه في هذا المثال، (4 + 5) 3 = 27. لذلك، نستخدم المرشحات = 27 على الأسطر المناسبة.
ابدأ التدريب! قم بتشغيل الأمر التالي:
``باش
مؤتمر نزع السلاح ~/ن/الحيوانات/
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg
`
انتظر من فضلك. سيتم حفظ أفضل الأوزان باسم Animal_best.weights. يمكنك ملاحظة تقدم التدريب من خلال عرض ملف Chart.png. راجع الأسئلة الشائعة حول Darknet/YOLO للحصول على معلمات إضافية قد ترغب في استخدامها عند تدريب شبكة جديدة.
إذا كنت تريد رؤية المزيد من التفاصيل أثناء التدريب، أضف المعلمة --verbose. على سبيل المثال:
``باش
كاشف الشبكة المظلمة -خريطة -dont_show --قطار مطول للحيوانات.بيانات الحيوانات.cfg
`
أدوات وروابط أخرى
لإدارة مشروع Darknet/YOLO الخاص بك، قم بإضافة تعليقات توضيحية إلى الصور، والتحقق من صحة التعليقات التوضيحية، وإنشاء الملفات الضرورية اللازمة للتدريب باستخدام Darknet، راجع DarkMark.
للحصول على بديل قوي لواجهة سطر الأوامر (CLI) لـ Darknet، أو لاستخدام تجانب الصور، أو تتبع الكائنات في مقاطع الفيديو الخاصة بك، أو للحصول على واجهة برمجة تطبيقات C++ قوية يمكن استخدامها بسهولة في التطبيقات التجارية، راجع DarkHelp.
تعرف على ما إذا كانت الأسئلة الشائعة حول Darknet/YOLO يمكنها المساعدة في الإجابة على سؤالك.
اطلع على العديد من البرامج التعليمية وأمثلة مقاطع الفيديو على قناة Stéphane على YouTube
إذا كانت لديك أي أسئلة تتعلق بالدعم أو كنت ترغب في الدردشة مع مستخدمي Darknet/YOLO الآخرين، فيرجى الانضمام إلى خادم Darknet/YOLO Discord.
خريطة الطريق
آخر تحديث: 2024-10-30:
مكتمل
1. استبدل qsort() المستخدم أثناء التدريب بـ std::sort()