Darknet Object Detection Framework وYOLO
Darknet هو إطار عمل للشبكة العصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الكائنات في الوقت الفعلي والذي يعمل ضمن إطار عمل Darknet.
تعرف على كيفية قيام Hank.ai بتمكين مجتمع Darknet/YOLO!
الإعلان عن Darknet V3 "الجاز"
قم بزيارة موقع Darknet/YOLO
استكشف الأسئلة الشائعة حول Darknet/YOLO
انضم إلى Darknet/YOLO Discord Server
أوراق
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 للحصول على الدعم والمناقشة: https://discord.gg/zSq8rtW
يعمل إصدار وحدة المعالجة المركزية من Darknet/YOLO بكفاءة على أجهزة مختلفة، بما في ذلك Raspberry Pi والخوادم السحابية وcolab وأجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة وأجهزة التدريب المتطورة. ومع ذلك، فإن إصدار وحدة معالجة الرسومات (GPU) من Darknet/YOLO يتطلب وحدة معالجة رسومات (GPU) قادرة على تشغيل CUDA من NVIDIA.
Darknet/YOLO متوافق مع أنظمة التشغيل Linux وWindows وMac. راجع تعليمات البناء أدناه للحصول على إرشادات مفصلة.
نسخة دارك نت
أداة Darknet الأصلية التي طورها جوزيف ريدمون بين عامي 2013-2017 كانت تفتقر إلى رقم الإصدار. نشير إلى هذا الإصدار باسم 0.x.
كان مستودع Darknet الشهير اللاحق الذي يحتفظ به Alexey Bochkovskiy من 2017 إلى 2021 يفتقر أيضًا إلى رقم الإصدار. نحن نعتبر هذا الإصدار 1.x.
قدّم مستودع Darknet، الذي ترعاه شركة Hank.ai ويديره ستيفان شاريت، بدءًا من عام 2023، أمر إصدار لأول مرة. من عام 2023 حتى أواخر عام 2024، تم إرجاع الإصدار 2.x "OAK."
ركز فريق التطوير على تقليل التعطيل للوظائف الحالية مع التعرف على قاعدة التعليمات البرمجية.
تشمل التغييرات الرئيسية التي تم تنفيذها خلال هذه الفترة ما يلي:
1. عملية البناء الموحدة: إعادة كتابة خطوات البناء لتبسيط العملية باستخدام CMake لكل من نظامي التشغيل Windows وLinux.
2. تحويل C++: تم تحويل قاعدة التعليمات البرمجية لاستخدام مترجم C++.
3. تحسين الرسم البياني: تم تحسين تصور Chart.png أثناء التدريب.
4. إصلاحات الأخطاء والتحسينات: تم تنفيذ العديد من إصلاحات الأخطاء والتحسينات المتعلقة بالأداء، والتي ركزت بشكل أساسي على تقليل وقت التدريب.
الفرع الأخير من قاعدة التعليمات البرمجية هذه هو الإصدار 2.1، الموجود في الفرع v2.
بدأت مرحلة التطوير التالية في منتصف عام 2024 وبلغت ذروتها بإصدار الإصدار 3.x "JAZZ" في أكتوبر 2024. يُرجع أمر الإصدار الآن 3.x.
يمكنك دائمًا الرجوع إلى فرع v2 السابق إذا كنت بحاجة إلى تنفيذ أوامر محددة من هذا الإصدار. يرجى إبلاغ فريق التطوير إذا واجهت أي أوامر مفقودة، وسيقومون بالتحقيق في إضافتها مرة أخرى.
تم إدخال تغييرات هامة في الإصدار 3.x "JAZZ":
1. إزالة الأوامر: تمت إزالة العديد من الأوامر القديمة وغير المدعومة.
2. تحسينات الأداء: تم تطبيق العديد من تحسينات الأداء لكل من التدريب والاستدلال.
3. تعديل واجهة برمجة التطبيقات: خضعت واجهة برمجة تطبيقات C القديمة للتعديلات. قد تتطلب التطبيقات التي تستخدم واجهة Darknet API الأصلية تعديلات طفيفة. https://darknetcv.ai/api/api.html
4. واجهة برمجة تطبيقات C/C++ الجديدة: يقدم 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.
بالإضافة إلى MSCOCO، تتوفر مجموعات بيانات أبسط وأوزان مدربة مسبقًا لاختبار Darknet/YOLO، مثل LEGO Gears وRolodex. راجع الأسئلة الشائعة حول Darknet/YOLO لمزيد من التفاصيل.
يمكن تنزيل أوزان MSCOCO المدربة مسبقًا من مصادر مختلفة، بما في ذلك هذا المستودع:
YOLOv2 (نوفمبر 2016)
yolov2-tiny.weights
yolov2-full.weights
YOLOv3 (مايو 2018)
yolov3-tiny.weights
yolov3-full.weights
YOLOv4 (مايو 2020)
yolov4-tiny.weights
yolov4-full.weights
YOLOv7 (أغسطس 2022)
yolov7-tiny.weights
yolov7-full.weights
يتم توفير أوزان 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 لإنشاء ملفات المشروع المطلوبة.
لا يتطلب إنشاء Darknet/YOLO معرفة لغة C++. إنه مشابه لقيادة السيارة دون أن تكون ميكانيكيًا.
جوجل كولاب
تعكس تعليمات Google Colab تلك الخاصة بنظام التشغيل Linux. تتوفر العديد من دفاتر ملاحظات Jupyter لتوضيح مهام محددة، مثل تدريب شبكة جديدة.
استكشف دفاتر الملاحظات في الدليل الفرعي colab أو اتبع تعليمات Linux أدناه.
طريقة لينكس CMake
البرنامج التعليمي لبناء Darknet لنظام التشغيل Linux
1. المتطلبات الأساسية: التأكد من تثبيت الحزم التالية:
``باش
sudo apt-get install build-essential git libopencv-dev cmake
`
2. استنساخ Darknet: استنساخ مستودع Darknet:
``باش
mkdir ~/srccd ~/src
استنساخ بوابة https://github.com/hank-ai/darknet
مؤتمر نزع السلاح داركنت
`
3. إنشاء دليل البناء: إنشاء دليل البناء:
``باش
بناء مكدير
بناء القرص المضغوط
`
4. التكوين باستخدام CMake: قم بتشغيل CMake لتكوين البنية:
``باش
cmake -DCMAKEBUILDTYPE=إطلاق ..
`
5. البناء: بناء المشروع:
``باش
جعل -j4
`
6. الحزمة: إنشاء حزمة دبيان:
``باش
اصنع الحزمة
`
7. التثبيت: تثبيت الحزمة:
``باش
sudo dpkg -i darknet-VERSION.deb
`
اختياري: CUDA/cuDNN لتسريع وحدة معالجة الرسومات
1. قم بتثبيت CUDA: إذا كان لديك وحدة معالجة رسومات NVIDIA حديثة، فيمكنك تثبيت CUDA لتسريع وحدة معالجة الرسومات. قم بتنزيل وتثبيت CUDA من https://developer.nvidia.com/cuda-downloads.
2. تثبيت cuDNN: قم بتنزيل وتثبيت cuDNN من https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn- نظرة عامة على تثبيت مدير الحزم.
3. تحقق من تثبيت CUDA: تأكد من أنه يمكنك تشغيل nvcc وnvidia-smi بعد تثبيت CUDA. قد تحتاج إلى ضبط متغير PATH الخاص بك.
4. تكوين CMake (إذا تم تثبيت CUDA بعد CMake): إذا قمت بتثبيت CUDA أو CUDA+cuDNN بعد تكوين CMake، فستحتاج إلى حذف ملف CMakeCache.txt في دليل بناء Darknet لإجبار CMake على إعادة العثور على الملفات الضرورية. ثم أعد تشغيل CMake وأعد بناء Darknet.
المستخدمون المتقدمون
حزمة RPM: لإنشاء ملف تثبيت RPM بدلاً من ملف DEB، قم بتعديل الأسطر التالية في CM_package.cmake:
`كماكي
# مجموعة (CPACK_GENERATOR "DEB")
مجموعة (CPACK_GENERATOR "RPM")
`
توزيعات مثل Centos وOpenSUSE: بالنسبة إلى توزيعات مثل Centos وOpenSUSE، قم بتغيير الأسطر في CM_package.cmake إلى:
`كماكي
# مجموعة (CPACK_GENERATOR "DEB")
مجموعة (CPACK_GENERATOR "RPM")
`
حزمة التثبيت: لتثبيت الحزمة بعد الإنشاء، استخدم مدير الحزم الخاص بتوزيعتك. على سبيل المثال، في الأنظمة المستندة إلى Debian مثل Ubuntu، استخدم sudo dpkg -i darknet-2.0.1-Linux.deb.
الملفات الرئيسية المثبتة:
/usr/bin/darknet: الشبكة المظلمة الرئيسية القابلة للتنفيذ. قم بتأكيد التثبيت عن طريق تشغيل إصدار darknet في واجهة سطر الأوامر (CLI).
/usr/include/darknet.h: واجهة برمجة تطبيقات Darknet لمطوري C وC++ وPython.
/usr/include/darknet_version.h: يحتوي على معلومات الإصدار للمطورين.
/usr/lib/libdarknet.so: المكتبة التي سيتم الارتباط بها لمطوري C وC++ وPython.
/opt/darknet/cfg/...: يخزن جميع قوالب .cfg.
طريقة ويندوز CMake
إنشاء برنامج تعليمي لنظام التشغيل Windows (بافتراض تثبيت Windows 11 22H2 جديد)
1. متطلبات التثبيت: تثبيت المكونات الضرورية باستخدام Winget:
``باش
Winget تثبيت Git.Git
تثبيت Winget Kitware.CMake
تثبيت Winget nsis.nsis
تثبيت Winget Microsoft.VisualStudio.2022.Community
`
2. تثبيت دعم Visual Studio C++: قم بتعديل تثبيت Visual Studio ليشمل دعم C++:
* افتح قائمة "ابدأ في Windows" وقم بتشغيل "Visual Studio Installer".
*اضغط على "تعديل".
* اختر "تطوير سطح المكتب باستخدام C++".
* انقر على "تعديل" في الزاوية اليمنى السفلية ثم "نعم".
3. موجه أوامر المطور: قم بتشغيل "موجه أوامر المطور لـ VS 2022" من قائمة "ابدأ في Windows". لا تستخدم PowerShell لهذه الخطوات!
4. قم بتثبيت Microsoft VCPKG: قم بتثبيت VCPKG لإنشاء OpenCV:
``باش
مؤتمر نزع السلاح ج:
مكدير ج:src
مؤتمر نزع السلاح ج: سرك
استنساخ بوابة https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe دمج التثبيت
.vcpkg.exe يدمج بوويرشيل
.vcpkg.exe تثبيت opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
`
* التحلي بالصبر، قد تستغرق هذه الخطوة وقتًا طويلاً لأنها تحتاج إلى تنزيل العديد من المكونات وإنشائها.
5. اختياري: CUDA/cuDNN لتسريع وحدة معالجة الرسومات: اتبع نفس الخطوات الموضحة في قسم Linux.
6. استنساخ Darknet: استنساخ مستودع Darknet:
``باش
مؤتمر نزع السلاح ج: سرك
استنساخ بوابة https://github.com/hank-ai/darknet.git
مؤتمر نزع السلاح داركنت
بناء مكدير
بناء القرص المضغوط
`
7. التكوين باستخدام CMake: قم بتكوين البنية باستخدام CMake:
``باش
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
8. البناء باستخدام msbuild: قم ببناء المشروع باستخدام msbuild:
``باش
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
`
استكشاف الأخطاء وإصلاحها: فقدان ملفات CUDA/cuDNN DLLs
إذا واجهت أخطاء بشأن فقدان ملفات CUDA أو cuDNN DLLs (على سبيل المثال، cublas64_12.dll)، فانسخ ملفات CUDA .dll يدويًا إلى نفس دليل الإخراج مثل darknet.exe. على سبيل المثال:
``باش
انسخ "C: Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
* تذكر ضبط الأمر بناءً على إصدار CUDA الخاص بك.
أعد تشغيل الأمر msbuild.exe بعد نسخ ملفات DLL.
المستخدمون المتقدمون
حل Visual Studio: يقوم CMake بإنشاء ملف حل Visual Studio (Darknet.sln). يمكن لمطوري البرامج الذين يفضلون استخدام واجهة المستخدم الرسومية Visual Studio تحميل مشروع Darknet داخل Visual Studio بدلاً من استخدام سطر الأوامر.
التحقق والتثبيت
التحقق: قم بتشغيل الأمر التالي للتحقق من إنشاء Darknet بشكل صحيح:
``باش
الإصدار C:srcDarknetbuildsrc-cliReleasedarknet.exe
`
التثبيت: قم بتشغيل معالج تثبيت NSIS الذي تم إنشاؤه في الخطوة الأخيرة لتثبيت Darknet والمكتبات وتضمين الملفات وملفات DLL الضرورية بشكل صحيح. حدد موقع ملف darknet-VERSION.exe في دليل الإنشاء. على سبيل المثال: darknet-2.0.31-win64.exe.
الملفات الرئيسية المثبتة:
C:Program FilesDarknetbin/darknet.exe: تطبيق Darknet CLI.
C:Program FilesDarknet/bin: يحتوي على نماذج تطبيقات أخرى.
C:Program FilesDarknet: يتضمن ملفات .dll المطلوبة من جهات خارجية (OpenCV)، وملفات Darknet .dll، و.lib، و.h، وملفات القالب .cfg.
باستخدام دارك نت
سطر الأوامر
القائمة التالية ليست شاملة لجميع الأوامر التي يدعمها Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، فكر في واجهة سطر الأوامر لمشروع DarkHelp، والتي تقدم واجهة سطر أوامر بديلة مع العديد من الميزات المتقدمة غير المتوفرة مباشرة في Darknet. يمكنك استخدام كلا CLIs بشكل متزامن.
المتطلبات الأساسية:
بالنسبة لمعظم الأوامر، تحتاج إلى ملف .weights مع ملفات .names و.cfg المقابلة.
قم بتدريب شبكتك الخاصة (نوصي بشدة!) أو قم بتنزيل شبكة مدربة مسبقًا من الإنترنت.
أمثلة على مجموعات البيانات المدربة مسبقًا:
LEGO Gears: اكتشاف الأشياء في الصور.
Rolodex: الكشف عن النص في الصور.
MSCOCO: الكشف القياسي عن الكائنات من فئة 80.
أوامر المثال:
1. احصل على المساعدة:
``باش
مساعدة على الانترنت المظلم
`
2. التحقق من الإصدار:
``باش
نسخة دارك نت
`
3. التنبؤ بالصورة:
الإصدار 2:
``باش
اختبار كاشف الانترنت المظلم 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. إحداثيات الإخراج:
الإصدار 2:
``باش
اختبار كاشف الشبكة المظلمة للحيوانات. بيانات Animals.cfg Animalbest.weights -extoutput dog.jpg
`
الإصدار 3:
``باش
darknet01inference_images حيوانات dog.jpg
`
مساعدة داكنة:
``باش
DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg
`
5. معالجة الفيديو:
الإصدار 2:
``باش
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4
`
الإصدار 3:
``باش
darknet03display_videos Animals.cfg test.mp4
`
مساعدة داكنة:
``باش
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
6. معالجة كاميرا الويب:
الإصدار 2:
``باش
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
`
الإصدار 3:
``باش
حيوانات darknet08display_webcam
`
7. إخراج الفيديو:
الإصدار 2:
``باش
عرض تجريبي للكشف عن darknet للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
`
الإصدار 3:
``باش
darknet05processvideosحيوانات متعددة الخيوط.cfg حيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
`
مساعدة داكنة:
``باش
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
`
8. إخراج JSON:
الإصدار 2:
``باش
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.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. وحدة معالجة الرسومات المحددة:
الإصدار 2:
``باش
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
`
10. تقييم الدقة:
رسم خريطة:
``باش
خريطة كاشف الانترنت المظلم القيادة.بيانات القيادة.cfg القيادة_أفضل.الأوزان ...
`
mAP@IoU=75:
``باش
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
`
11. حساب المرساة:
DarkMark: استخدم DarkMark لإعادة حساب نقاط الارتساء لتحقيق الأداء الأمثل.
داركنت (الطريقة القديمة):
``باش
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
`
12. تدريب شبكة جديدة:
DarkMark (مستحسن): استخدم DarkMark للتعليق التوضيحي والتدريب.
الإعداد اليدوي:
1. إنشاء الدليل: قم بإنشاء مجلد لمشروعك (على سبيل المثال، ~/nn/animals/).
2. ملف التكوين: انسخ ملف تكوين Darknet كقالب (على سبيل المثال، cfg/yolov4-tiny.cfg).
3. ملف .names: قم بإنشاء ملف نصي .names يدرج فئاتك (على سبيل المثال، ~/nn/animals/animals.names).
4. ملف بيانات: قم بإنشاء ملف نصي بتنسيق بيانات في نفس المجلد مثل ملف التكوين (على سبيل المثال، ~/nn/animals/animals.data).
5. مجلد مجموعة البيانات: قم بإنشاء مجلد للصور والتعليقات التوضيحية (على سبيل المثال، ~/nn/animals/dataset).
6. التعليقات التوضيحية .txt: قم بإنشاء ملفات .txt لكل صورة، تحتوي على إحداثيات التعليقات التوضيحية. استخدم DarkMark أو أدوات التعليقات التوضيحية الأخرى.
7. ملفات التدريب/الصالحة: أنشئ ملفات Animaltrain.txt وAnimalsvalid.txt التي تدرج صور التدريب والتحقق من الصحة.
8. تعديل ملف .cfg: اضبط ملف التكوين بناءً على مجموعة البيانات الخاصة بك.
* تعيين الدفعة = 64.
* ضبط التقسيمات الفرعية بناءً على ذاكرة GPU الخاصة بك.
اضبط max_batches على 2000 عدد الفئات.
* اضبط الخطوات على 80% و90% من max_batches.
* ضبط العرض والارتفاع بناءً على أبعاد الشبكة.
* اضبط الفئات=... على عدد الفئات في ملف الأسماء الخاص بك.
اضبط عوامل التصفية=... في الأقسام [التلافيفية] قبل كل قسم [yolo] إلى (numberofclasses + 5) 3.
9. التدريب: ابدأ التدريب:
``باش
مؤتمر نزع السلاح ~/ن/الحيوانات/
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg
`
* سيتم حفظ أفضل الأوزان باسم Animal_best.weights.
* عرض ملف Chart.png لمراقبة تقدم التدريب.
أدوات وروابط أخرى
الموارد الرئيسية:
DarkMark: لإدارة مشاريع Darknet/YOLO، والتعليق على الصور، والتحقق من التعليقات التوضيحية، وإنشاء ملفات التدريب.
DarkHelp: واجهة سطر الأوامر (CLI) بديلة قوية لـ Darknet، مع ميزات مثل تقسيم الصور وتتبع الكائنات في مقاطع الفيديو وواجهة برمجة تطبيقات C++ قوية مناسبة للتطبيقات التجارية.
الأسئلة الشائعة حول Darknet/YOLO: ابحث عن إجابات للأسئلة والحلول الشائعة.
قناة Stéphane على YouTube: استكشف مقاطع الفيديو التعليمية والأمثلة.
Darknet/YOLO Discord Server: تواصل مع مستخدمي Darknet/YOLO الآخرين للحصول على الدعم والمناقشات.
خريطة الطريق
آخر تحديث 2024-10-30:
المهام المكتملة:
1. تم استبدال qsort() بـ std::sort() في أقسام التدريب ذات الصلة.
2. تمت إزالة check_mistakes وgetchar() وsystem().
3. تم تحويل Darknet لاستخدام مترجم C++ (g++ على Linux، وVisualStudio على Windows).
4. بناء ويندوز ثابت.
5. دعم بايثون ثابت.
6. بناء مكتبة Darknet.
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. تمت إزالة رمز "الأبجدية" القديم وحذف الصور في البيانات/التسميات.
20. تمكين البناء خارج المصدر.
21. إخراج رقم الإصدار المحسن.
22. تحسين الأداء المتعلق بالتدريب (مستمر).
23. تحسين الأداء المتعلق بالاستدلال (مستمر).
24. تم تنفيذ التمرير المرجعي حيثما ينطبق ذلك.
25. تنظيف ملفات .hpp.
26. إعادة كتابة darknet.h.
27. تم التخلص من تحويل cv::Mat إلى void*، واستخدامه ككائن C++ مناسب.
28. تحسين الاتساق في كيفية استخدام بنية الصورة الداخلية.
29. تم إصلاح البنية لأجهزة Jetson المستندة إلى ARM.
30. تم إصلاح واجهة برمجة تطبيقات Python في الإصدار 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. التقسيم.