Darknet Object Detection Framework وYOLO
Darknet هو إطار عمل للشبكة العصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الكائنات في الوقت الفعلي، والذي يعمل في إطار عمل Darknet.
اقرأ كيف تساعد Hank.ai مجتمع Darknet/YOLO
الإعلان عن Darknet V3 "الجاز"
راجع موقع الويب Darknet/YOLO
يرجى قراءة الأسئلة الشائعة حول Darknet/YOLO
انضم إلى خادم الفتنة Darknet/YOLO
أوراق
1. ورقة YOLOv7
2. مقياس الورق-YOLOv4
3. ورقة YOLOv4
4. ورقة YOLOv3
معلومات عامة
لا يزال إطار عمل Darknet/YOLO أسرع وأكثر دقة من أطر العمل والإصدارات الأخرى من YOLO.
هذا الإطار مجاني تمامًا ومفتوح المصدر. يمكنك دمج Darknet/YOLO في المشاريع والمنتجات الحالية - بما في ذلك المشاريع التجارية - دون ترخيص أو دفع رسوم.
يمكن لـ Darknet V3 ("Jazz") الذي تم إصداره في أكتوبر 2024 تشغيل مقاطع فيديو مجموعة بيانات LEGO بدقة تصل إلى 1000 إطارًا في الثانية عند استخدام وحدة معالجة الرسوميات NVIDIA RTX 3090، مما يعني أنه تتم قراءة كل إطار فيديو وتغيير حجمه ومعالجته بواسطة Darknet/YOLO في 1 مللي ثانية أو أقل.
يرجى الانضمام إلى خادم Darknet/YOLO Discord إذا كنت بحاجة إلى مساعدة أو إذا كنت تريد مناقشة Darknet/YOLO: 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. أعد كتابة خطوات الإنشاء لتحصل على طريقة واحدة موحدة للإنشاء باستخدام CMake على كل من نظامي التشغيل Windows وLinux.
2. تحويل قاعدة التعليمات البرمجية لاستخدام مترجم C++.
3. تحسين Chart.png أثناء التدريب.
4. إصلاحات الأخطاء والتحسينات المتعلقة بالأداء، والتي تتعلق في الغالب بتقليل الوقت المستغرق لتدريب الشبكة.
الفرع الأخير من قاعدة التعليمات البرمجية هذه هو الإصدار 2.1 في الفرع v2.
بدأت المرحلة التالية من التطوير في منتصف عام 2024 وتم إصدارها في أكتوبر 2024. يُرجع أمر الإصدار الآن 3.x "JAZZ".
يمكنك دائمًا إجراء فحص لفرع v2 السابق إذا كنت بحاجة إلى تشغيل أحد هذه الأوامر. أخبرنا حتى نتمكن من التحقيق في إضافة أي أوامر مفقودة.
تتضمن التغييرات الرئيسية في هذا الإصدار ما يلي:
1. تمت إزالة العديد من الأوامر القديمة والتي لم يتم الحفاظ عليها.
2. العديد من تحسينات الأداء، سواء أثناء التدريب أو أثناء الاستدلال.
3. تم تعديل واجهة برمجة تطبيقات Legacy 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
- YOLOv2-صغيرة
- YOLOv2-كامل
2. YOLOv3، مايو 2018
- YOLOv3-صغيرة
- YOLOv3-كامل
3. YOLOv4، مايو 2020
- YOLOv4-صغيرة
- YOLOv4-كامل
4. YOLOv7، أغسطس 2022
- YOLOv7-صغيرة
- 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 الإصدار 17 من لغة C++ أو الإصدار الأحدث، OpenCV، ويستخدم CMake لإنشاء ملفات المشروع الضرورية.
لا تحتاج إلى معرفة لغة C++ لإنشاء أو تثبيت أو تشغيل Darknet/YOLO، بنفس الطريقة التي لا تحتاج فيها إلى أن تكون ميكانيكيًا لقيادة السيارة.
احذر إذا كنت تتبع برامج تعليمية قديمة تحتوي على خطوات إنشاء أكثر تعقيدًا، أو تقوم بإنشاء خطوات لا تتطابق مع ما هو موجود في هذا الملف التمهيدي. بدأت خطوات البناء الجديدة كما هو موضح أدناه في أغسطس 2023.
ننصح مطوري البرامج بزيارة https://darknetcv.ai/ للحصول على معلومات حول الأجزاء الداخلية لإطار عمل الكشف عن الكائنات Darknet/YOLO.
جوجل كولاب
تعليمات Google Colab هي نفس تعليمات Linux. تتوفر العديد من دفاتر ملاحظات Jupyter التي توضح كيفية القيام بمهام معينة، مثل تدريب شبكة جديدة.
راجع دفاتر الملاحظات في الدليل الفرعي colab، و/أو اتبع تعليمات Linux أدناه.
طريقة لينكس CMake
1. قم بتثبيت الحزم الضرورية:
``باش
sudo apt-get install build-essential git libopencv-dev cmake
`
2. استنساخ مستودع Darknet:
``باش
mkdir ~/srccd ~/src
استنساخ بوابة https://github.com/hank-ai/darknetcd darknet
`
3. قم بإنشاء دليل بناء وتشغيل CMake:
``باش
بناء mkdir buildcd
cmake -DCMAKEBUILDTYPE=إطلاق ..
`
4. بناء الشبكة المظلمة:
``باش
جعل -j4
`
5. حزمة وتثبيت Darknet:
``باش
طَرد
sudo dpkg -i darknet-VERSION.deb
`
6. التحقق من التثبيت:
``باش
نسخة دارك نت
`
طريقة ويندوز CMake
1. قم بتثبيت الحزم الضرورية:
``باش
تثبيت Winget Git.Git تثبيت Winget Kitware.CMake تثبيت Winget nsis.nsis تثبيت Winget Microsoft.VisualStudio.2022.Community
`
2. تعديل تثبيت Visual Studio:
- انقر على قائمة "ابدأ في Windows" وقم بتشغيل "Visual Studio Installer".
- انقر على تعديل.
- اختر تطوير سطح المكتب باستخدام C++.
- انقر على تعديل في الزاوية اليمنى السفلية، ثم انقر على نعم.
3. افتح موجه أوامر المطور لـ VS 2022:
- انقر على قائمة "ابدأ في Windows" وحدد Developer Command Prompt for VS 2022. لا تستخدم PowerShell في هذه الخطوات.
4. تثبيت مايكروسوفت VCPKG:
``باش
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg
bootstrap-vcpkg.bat
دمج .vcpkg.exe
تثبيت .vcpkg.exe دمج powershell.vcpkg.exe تثبيت opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
5. استنساخ مستودع Darknet:
``باش
مؤتمر نزع السلاح ج: سرك
استنساخ بوابة https://github.com/hank-ai/darknet.gitcd darknet
`
6. قم بإنشاء دليل بناء وتشغيل CMake:
``باش
بناء mkdir buildcd
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
7. بناء الشبكة المظلمة:
``باش
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
`
8. قم بإنشاء حزمة تثبيت NSIS:
``باش
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
`
9. قم بتشغيل معالج تثبيت NSIS:
- افتح الملف darknet-VERSION.exe في دليل البناء. على سبيل المثال: darknet-2.0.31-win64.exe.
10. التحقق من التثبيت:
``باش
C:إصدار ملفات البرنامجDarknetbindarknet.exe
`
باستخدام دارك نت
سطر الأوامر
ما يلي ليس القائمة الكاملة لجميع الأوامر التي يدعمها Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، لاحظ أيضًا واجهة سطر الأوامر لمشروع DarkHelp والتي توفر واجهة سطر أوامر بديلة لـ Darknet/YOLO. يحتوي DarkHelp CLI أيضًا على العديد من الميزات المتقدمة التي لا تتوفر مباشرة في Darknet. يمكنك استخدام كل من Darknet CLI وDarkHelp CLI معًا، فهما لا يستبعد أحدهما الآخر.
بالنسبة لمعظم الأوامر الموضحة أدناه، ستحتاج إلى ملف .weights مع ملفات .names و.cfg المقابلة. يمكنك إما تدريب شبكتك الخاصة (نوصي بشدة!) أو تنزيل شبكة عصبية قام شخص ما بتدريبها بالفعل وإتاحتها مجانًا على الإنترنت. تتضمن أمثلة مجموعات البيانات المدربة مسبقًا ما يلي:
1. LEGO Gears (العثور على الأشياء في صورة ما)
2. Rolodex (البحث عن نص في صورة)
3. MSCOCO (الكشف القياسي عن الكائنات من فئة 80)
تتضمن أوامر التشغيل ما يلي:
1. قم بإدراج بعض الأوامر والخيارات الممكنة للتشغيل:
``باش
مساعدة على الانترنت المظلم
`
2. التحقق من الإصدار:
``باش
نسخة دارك نت
`
3. توقع باستخدام الصورة:
- الإصدار الثاني:
``باش
اختبار كاشف الانترنت المظلم Cars.data Cars.cfg Cars_best.weights image1.jpg
`
- الإصدار 3:
``باش
darknet02displayannotatedimages cars.cfg image1.jpg
`
- مساعدة الظلام:
``باش
DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg
`
4. إحداثيات الإخراج:
- الإصدار الثاني:
``باش
اختبار كاشف الشبكة المظلمة للحيوانات. بيانات Animals.cfg Animalbest.weights -extoutput dog.jpg
`
- الإصدار 3:
``باش
darknet01inference_images حيوانات dog.jpg
`
- مساعدة الظلام:
``باش
DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg
`
5. العمل مع مقاطع الفيديو:
- الإصدار الثاني:
``باش
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4
`
- الإصدار 3:
``باش
darknet03display_videos Animals.cfg test.mp4
`
- مساعدة الظلام:
``باش
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
6. القراءة من كاميرا الويب:
- الإصدار الثاني:
``باش
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
`
- الإصدار 3:
``باش
حيوانات darknet08display_webcam
`
7. حفظ النتائج على الفيديو:
- الإصدار الثاني:
``باش
عرض تجريبي للكشف عن darknet للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
`
- الإصدار 3:
``باش
darknet05processvideosحيوانات متعددة الخيوط.cfg حيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
`
- مساعدة الظلام:
``باش
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
8. جسون:
- الإصدار الثاني:
``باش
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
`
- الإصدار 3:
``باش
darknet06imagestojson الحيوانات image1.jpg
`
- مساعدة الظلام:
``باش
DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg
`
9. التشغيل على وحدة معالجة رسومات محددة:
``باش
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
`
10. للتحقق من دقة الشبكة العصبية:
``باش
خريطة كاشف الانترنت المظلم القيادة.بيانات القيادة.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
`
11. للتحقق من الدقة mAP@IoU=75:
``باش
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
`
12. إعادة حساب المراسي:
- من الأفضل القيام به في DarkMark.
- في داركنت، استخدم:
``باش
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
`
13. تدريب شبكة جديدة:
``باش
مؤتمر نزع السلاح ~/ن/الحيوانات/
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg
`
تمرين
روابط سريعة للأقسام ذات الصلة من الأسئلة الشائعة حول Darknet/YOLO:
1. كيف أقوم بإعداد الملفات والأدلة الخاصة بي؟
2. ما هو ملف التكوين الذي يجب أن أستخدمه؟
3. ما الأمر الذي يجب أن أستخدمه عند تدريب شبكتي الخاصة؟
إن أبسط طريقة للتعليق والتدريب هي استخدام DarkMark لإنشاء جميع ملفات Darknet الضرورية. هذه بالتأكيد هي الطريقة الموصى بها لتدريب شبكة عصبية جديدة.
إذا كنت تفضل إعداد الملفات المتنوعة يدويًا لتدريب شبكة مخصصة:
1. قم بإنشاء مجلد جديد لمشروعك:
- في هذا المثال، سيتم إنشاء شبكة عصبية لكشف الحيوانات، لذلك يتم إنشاء الدليل التالي: ~/nn/animals/.
2. انسخ ملف تكوين Darknet كقالب:
- على سبيل المثال، انسخ cfg/yolov4-tiny.cfg إلى مجلد المشروع. سيكون لديك الآن ~/nn/animals/animals.cfg.
3. قم بإنشاء ملف نصي Animals.names:
- سيحتوي هذا الملف على قائمة الفئات التي تريد اكتشافها، واحدة في كل سطر. على سبيل المثال:
`
كلب
قطة
طائر
حصان
`
4. قم بإنشاء ملف نصي Animals.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
`
5. قم بإنشاء مجلد للصور والتعليقات التوضيحية:
- على سبيل المثال، يمكن أن يكون ~/nn/animals/dataset. ستحتاج كل صورة إلى ملف .txt مطابق يصف التعليقات التوضيحية لتلك الصورة. تنسيق ملفات التعليقات التوضيحية .txt محدد للغاية. لا يمكنك إنشاء هذه الملفات يدويًا نظرًا لأن كل تعليق توضيحي يجب أن يحتوي على الإحداثيات الدقيقة للتعليق التوضيحي. راجع DarkMark أو أي برنامج آخر مشابه لإضافة تعليقات توضيحية إلى صورك. تم توضيح تنسيق التعليقات التوضيحية YOLO في الأسئلة الشائعة حول Darknet/YOLO.
6. قم بإنشاء الملفات النصية "القطار" و"الصالحة":
- يحتاج هذان الملفان النصيان إلى إدراج كل الصور بشكل فردي والتي يجب أن يستخدمها Darknet للتدريب وللتحقق من الصحة عند حساب نسبة mAP%. صورة واحدة بالضبط في كل سطر. قد يكون المسار وأسماء الملفات نسبية أو مطلقة.
7. قم بتعديل ملف .cfg الخاص بك:
- الدفعة: اضبط على 64.
- التقسيمات الفرعية: ابدأ بـ 1. راجع الأسئلة الشائعة حول Darknet/YOLO إذا كنت بحاجة إلى ضبط ذلك بناءً على توفر الذاكرة.
- maxbatches: قيمة البداية الجيدة هي 2000 numberof_classes. في هذا المثال، لدينا 4 حيوانات، إذن 42000 = 8000.
- الخطوات: اضبط على 80% و90% من الدفعات القصوى. في هذا المثال، سنستخدم الخطوات=6400,7200 نظرًا لأنه تم تعيين maxbatches على 8000.
- العرض والارتفاع: هذه هي أبعاد الشبكة. تشرح الأسئلة الشائعة لـ Darknet/YOLO كيفية حساب الحجم الأفضل للاستخدام.
- الفئات: قم بتعديل هذا السطر بعدد الفئات في ملف الأسماء الخاص بك. في هذا المثال، سنستخدم الفئات=4.
- المرشحات: في القسم [التلافيفي] قبل كل قسم [yolo]، قم بتعديل المرشحات=... بالقيمة (numberofclasses + 5) * 3. في هذا المثال، سنستخدم المرشحات=27.
8. ابدأ التدريب:
``باش
مؤتمر نزع السلاح ~/ن/الحيوانات/
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg
`
كن صبوراً. سيتم حفظ أفضل الأوزان باسم Animal_best.weights. يمكن ملاحظة تقدم التدريب من خلال عرض ملف Chart.png. راجع الأسئلة الشائعة حول Darknet/YOLO للحصول على معلمات إضافية قد ترغب في استخدامها عند تدريب شبكة جديدة.
إذا كنت تريد رؤية المزيد من التفاصيل أثناء التدريب، أضف المعلمة --verbose. على سبيل المثال:
``باش
كاشف الشبكة المظلمة -خريطة -dont_show --قطار مطول للحيوانات.بيانات الحيوانات.cfg
`
أدوات وروابط أخرى
1. DarkMark: لإدارة مشاريع Darknet/YOLO الخاصة بك، قم بإضافة تعليقات توضيحية إلى الصور، والتحقق من التعليقات التوضيحية، وإنشاء الملفات الضرورية للتدريب باستخدام Darknet.
2. DarkHelp: للحصول على واجهة سطر أوامر (CLI) بديلة قوية لـ Darknet، أو لاستخدام تجانب الصور، أو لتتبع الكائنات في مقاطع الفيديو الخاصة بك، أو لواجهة برمجة تطبيقات C++ قوية يمكن استخدامها بسهولة في التطبيقات التجارية.
3. الأسئلة الشائعة حول Darknet/YOLO: للمساعدة في الإجابة على أسئلتك.
4. قناة Stéphane على YouTube: للحصول على مقاطع فيديو تعليمية وأمثلة.
5. خادم Darknet/YOLO discord: للدردشة مع مستخدمي Darknet/YOLO الآخرين وطلب الدعم.
خريطة الطريق
آخر تحديث 2024-10-30:
مكتمل
1. قم بتبديل qsort() لـ std::sort() حيث يتم استخدامها أثناء التدريب.
2. تخلص من check_mistakes وgetchar() وsystem().
3. قم بتحويل Darknet لاستخدام مترجم C++.
4. إصلاح بناء Windows.
5. إصلاح دعم بايثون.
6. بناء مكتبة داركنت.
7. إعادة تمكين التسميات على التنبؤات (رمز "الأبجدية").
8. أعد تمكين كود CUDA/GPU.
9. أعد تمكين CUDNN.
10. أعد تمكين نصف CUDNN.
11. لا تقم بترميز بنية CUDA.
12. معلومات أفضل عن إصدار CUDA.
13. أعد تمكين AVX.
14. قم بإزالة الحلول القديمة وMakefile.
15. اجعل OpenCV غير اختياري.
16. قم بإزالة التبعية من مكتبة pthread القديمة.
17. قم بإزالة STB.
18. أعد كتابة CMakeLists.txt لاستخدام اكتشاف CUDA الجديد.
19. قم بإزالة الكود "الأبجدي" القديم، واحذف أكثر من 700 صورة في البيانات/التسميات.
20. البناء خارج المصدر.
21. الحصول على رقم إصدار أفضل.
22. تحسين الأداء المتعلق بالتدريب (مهمة مستمرة).
23. تحسين الأداء المتعلق بالاستدلال (مهمة مستمرة).
24. المرور بالإشارة حيثما أمكن ذلك.
25. تنظيف ملفات .hpp.
26. إعادة كتابة darknet.h.
27. لا تقم بإلقاء cv::Mat إلى void* ولكن استخدمه ككائن C++ مناسب.
28. أصلح أو كن متسقًا في كيفية استخدام بنية الصورة الداخلية.
29. إصلاح البنية لأجهزة Jetson المستندة إلى ARM.
30. اجهزة جيتسون اورين الجديدة شغالة.
31. إصلاح Python API في الإصدار 3.
أهداف قصيرة المدى
1. قم بتبديل printf() بـ std::cout.
2. ابحث في دعم كاميرا Zed القديمة.
3. تحليل سطر الأوامر أفضل وأكثر اتساقًا.
أهداف منتصف المدة
1. قم بإزالة كافة رموز char* واستبدلها بـ std::string.
2. لا تخفي التحذيرات وقم بتنظيف تحذيرات المترجم.
3. استخدام أفضل لـ cv::Mat بدلاً من بنية الصورة المخصصة في C.
4. استبدل وظيفة القائمة القديمة بـ std::vector أو std::list.
5. إصلاح دعم الصور ذات التدرج الرمادي ذات القناة الواحدة.
6. أضف دعمًا لصور قناة N حيث N > 3.
7. التنظيف المستمر للتعليمات البرمجية.
أهداف طويلة المدى
1. إصلاح مشكلات CUDA/CUDNN مع جميع وحدات معالجة الرسومات.
2. أعد كتابة كود CUDA+cuDNN.
3. فكر في إضافة دعم لوحدات معالجة الرسومات غير التابعة لـ NVIDIA.
4. الصناديق المحيطة المدورة، أو نوع من دعم "الزاوية".
5. النقاط الرئيسية/الهياكل العظمية.
6. الخرائط الحرارية.
7. التقسيم.