مارميت
Marmite [Markdown يجعل المواقع] هو منشئ مواقع ثابت بسيط للغاية.
قال محرر Downcodes: "Marmite هو منشئ مواقع ويب ثابت وبسيط جدًا. غالبًا ما أستخدم SSGs أخرى، ولكن دائمًا ما أجد أنه من المرهق جدًا إعدادها من الصفر. مجرد دليل لملفات تخفيض السعر وتشغيل أمر يمكن أن ينشئ موقع ويب، هذا يبدو مريحة حقا."
كيفية الاستخدام
يقوم المارميت بشيء واحد بسيط:
تحويل ملف تخفيض السعر إلى HTML
يمكنه أيضًا التعامل مع إنشاء أو نسخ الملفات الثابتة أو ملفات الوسائط إلى دليل الإخراج.
ثَبَّتَ
التثبيت باستخدام البضائع:
``باش
تثبيت البضائع مارميت
`
أو قم بتنزيل الثنائيات المترجمة مسبقًا من صفحة الإصدارات.
يستخدم
إنه سهل الاستخدام للغاية!
``باش
مجلد $ marmite مع مسار ملفات العلامات إلى الموقع الذي تم إنشاؤه
`
سيتم إنشاء موقع الويب في الدليل pathtogenerated_site/.
سطر الأوامر
``باش
❯ المارميت --مساعدة
Marmite هو أسهل مولد للمواقع الثابتة.
الاستخدام: المارميت [خيارات]
الحجج:
خيارات:
--serve خدمة الموقع باستخدام خادم HTTP مدمج
--watch الكشف عن التغييرات وإعادة بناء الموقع تلقائيًا
--ربط
عنوان ربط الخادم [الافتراضي: localhost:8000]
--config
المسار إلى ملف التكوين المخصص [الافتراضي: marmite.yaml]
--debug طباعة رسائل التصحيح
--init-templates تهيئة القوالب في المشروع
--start-theme قم بتهيئة السمة باستخدام القوالب والأصول الثابتة
-h، --help تعليمات الطباعة
-V، --version نسخة الطباعة
`
ابدأ
اقرأ البرنامج التعليمي لمعرفة كيفية البدء باستخدام Marmite https://rochacbruno.github.io/marmite/getting-started.html وقضاء بضع دقائق في إنشاء مدونتك.
وثيقة
اقرأ المزيد حول كيفية تخصيص القوالب وإضافة التعليقات والمزيد على https://rochacbruno.github.io/marmite/.
تلخيص
المارميت بسيط للغاية.
إذا كانت هذه البساطة لا تناسب احتياجاتك، فهناك مولدات مواقع ويب ثابتة رائعة أخرى. وهنا بعض أوصي:
جيكل
هوغو
غاتسبي
Next.js
إطار عمل Darknet للكشف عن الكائنات وYOLO
ملخص
Darknet هو إطار شبكة عصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الكائنات في الوقت الفعلي ويعمل في إطار عمل Darknet.
روابط مهمة:
كيف يساعد Hank.ai مجتمع Darknet/YOLO
موقع Darknet/YOLO
الأسئلة الشائعة حول Darknet/YOLO
Darknet/YOLO Discord Server
ورق
ورقة YOLOv7
ورق متدرج YOLOv4
ورقة YOLOv4
ورقة YOLOv3
معلومات عامة
يتفوق إطار عمل Darknet/YOLO باستمرار على أطر العمل الأخرى وإصدارات YOLO من حيث السرعة والدقة.
الإطار مجاني بالكامل ومفتوح المصدر. يمكنك دمج Darknet/YOLO في المشاريع والمنتجات الحالية، بما في ذلك المنتجات التجارية، دون ترخيص أو رسوم.
يمكن لـ Darknet V3 ("Jazz")، الذي تم إصداره في أكتوبر 2024، تشغيل فيديو مجموعة بيانات LEGO بدقة تصل إلى 1000 إطار في الثانية عند استخدام وحدة معالجة الرسومات NVIDIA RTX 3090، مما يعني أن Darknet/YOLO يقرأ في 1 مللي ثانية أو أقل، جلب كل إطار فيديو وتغيير حجمه ومعالجته .
يمكن تشغيل إصدار وحدة المعالجة المركزية من 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".
الهدف هو كسر الوظائف الحالية بأقل قدر ممكن مع التعرف على قاعدة التعليمات البرمجية.
أعد كتابة خطوات الإنشاء حتى يكون لدينا طريقة موحدة للبناء على نظامي التشغيل Windows وLinux باستخدام CMake.
تحويل قاعدة التعليمات البرمجية لاستخدام مترجم C++.
تحسين Chart.png أثناء التدريب.
إصلاحات الأخطاء والتحسينات المتعلقة بالأداء، والتي تتعلق بشكل أساسي بتقليل الوقت اللازم لتدريب الشبكة.
الفرع الأخير من قاعدة التعليمات البرمجية هذه هو الإصدار 2.1 في الفرع v2.
تبدأ المرحلة التالية من التطوير في منتصف عام 2024، على أن يتم إصدارها في أكتوبر 2024. يقوم أمر الإصدار الآن بإرجاع 3.x "JAZZ".
إذا كنت بحاجة إلى تشغيل أحد هذه الأوامر، فيمكنك دائمًا التحقق من فرع v2 السابق. أخبرنا حتى نتمكن من التحقيق في إضافة أي أوامر مفقودة.
تمت إزالة العديد من الأوامر القديمة والتي لم تتم صيانتها.
العديد من تحسينات الأداء، بما في ذلك التحسينات أثناء التدريب والاستدلال.
تتطلب تطبيقات C API القديمة المعدلة باستخدام واجهة برمجة تطبيقات Darknet الأصلية تعديلات طفيفة: https://darknetcv.ai/api/api.html
واجهة برمجة تطبيقات Darknet V3 C وC++ الجديدة: https://darknetcv.ai/api/api.html
تطبيقات جديدة ونموذج التعليمات البرمجية في أمثلة src: https://darknetcv.ai/api/files.html
MSCOCO الأوزان المدربة مسبقا
للراحة، تم تدريب العديد من إصدارات YOLO الشائعة مسبقًا باستخدام مجموعة بيانات MSCOCO. تحتوي مجموعة البيانات هذه على 80 فئة ويمكن رؤيتها في الملف النصي cfg/coco.names.
هناك العديد من مجموعات البيانات الأبسط والأوزان المدربة مسبقًا المتاحة لاختبار 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 لإنشاء ملفات المشروع الضرورية.
لا تحتاج إلى معرفة لغة C++ لإنشاء أو تثبيت أو تشغيل Darknet/YOLO، تمامًا كما لا تحتاج إلى أن تكون ميكانيكيًا لقيادة السيارة.
جوجل كولاب
تعليمات Google Colab هي نفس تعليمات Linux. يتم توفير عدد من دفاتر ملاحظات Jupyter التي توضح كيفية تنفيذ مهام معينة، مثل تدريب شبكة جديدة.
راجع دفتر الملاحظات في الدليل الفرعي colab، أو اتبع تعليمات Linux أدناه.
طريقة لينكس CMake
1. قم بتثبيت البرامج اللازمة:
``باش
sudo apt-get install build-essential git libopencv-dev cmake
`
2. استنساخ مستودع Darknet:
``باش
استنساخ بوابة https://github.com/hank-ai/darknet
`
3. قم بإنشاء دليل البناء:
``باش
مؤتمر نزع السلاح داركنت
بناء مكدير
بناء القرص المضغوط
`
4. استخدم CMake لإنشاء ملفات البناء:
``باش
cmake -DCMAKEBUILDTYPE=إطلاق ..
`
5. بناء الشبكة المظلمة:
``باش
جعل -j4
`
6. تثبيت Darknet (اختياري):
``باش
اصنع الحزمة
sudo dpkg -i darknet-VERSION.deb
`
يلاحظ:
إذا كان لديك NVIDIA GPU مثبتًا على نظامك، فيمكنك تثبيت CUDA أو CUDA+cuDNN لتسريع معالجة الصور (والفيديو).
إذا قمت بتثبيت CUDA أو CUDA+cuDNN أو ترقية برنامج NVIDIA، فستحتاج إلى حذف ملف CMakeCache.txt في دليل البناء وإعادة إنشاء Darknet.
يمكنك استخدام أمر إصدار darknet للتحقق من تثبيت Darknet بنجاح.
طرق Windows 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. تثبيت مايكروسوفت VCPKG:
``باش
مركز السيطرة على الأمراض:
مكدير ج: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
`
4. استنساخ مستودع Darknet:
``باش
مؤتمر نزع السلاح ج: سرك
استنساخ بوابة https://github.com/hank-ai/darknet.git
مؤتمر نزع السلاح داركنت
بناء مكدير
بناء القرص المضغوط
`
5. استخدم CMake لإنشاء ملفات البناء:
``باش
cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
`
6. بناء الشبكة المظلمة:
``باش
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
`
7. تثبيت داركنت:
- قم بتشغيل ملف darknet-VERSION.exe في دليل البناء لبدء معالج تثبيت NSIS.
يلاحظ:
إذا كان لديك NVIDIA GPU مثبتًا على نظامك، فيمكنك تثبيت CUDA أو CUDA+cuDNN لتسريع معالجة الصور (والفيديو).
إذا قمت بتثبيت CUDA أو CUDA+cuDNN أو ترقية برنامج NVIDIA، فستحتاج إلى حذف ملف CMakeCache.txt في دليل البناء وإعادة إنشاء Darknet.
يمكنك استخدام أمر إصدار darknet.exe للتحقق من تثبيت Darknet بنجاح.
باستخدام دارك نت
سطر الأوامر
ما يلي ليس قائمة كاملة بجميع الأوامر التي يدعمها Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، لاحظ أيضًا واجهة سطر الأوامر لمشروع DarkHelp، والتي توفر واجهة سطر أوامر بديلة لـ Darknet/YOLO. يحتوي DarkHelp CLI أيضًا على العديد من الميزات المتقدمة غير المتوفرة في Darknet. يمكنك استخدام Darknet CLI وDarkHelp CLI في نفس الوقت، فهما لا يستبعد أحدهما الآخر.
بالنسبة لمعظم الأوامر الموضحة أدناه، تحتاج إلى استخدام ملف .weights المطابق لملفات .names و.cfg. يمكنك تدريب شبكتك الخاصة (نوصي بشدة!) أو تنزيل الشبكات العصبية التي قام الآخرون بتدريبها ونشرها مجانًا على الإنترنت. تتضمن أمثلة مجموعات بيانات ما قبل التدريب ما يلي:
LEGO Gears (البحث عن الأشياء في الصور)
Rolodex (ابحث عن النص في الصورة)
MSCOCO (الكشف القياسي عن الكائنات من 80 فئة)
تتضمن أوامر التشغيل ما يلي:
تعليمات darknet: عرض معلومات المساعدة.
إصدار darknet: التحقق من الإصدار.
اختبار كاشف الشبكة المظلمة cars.data Cars.cfg Cars_best.weights image1.jpg: استخدم الصور للتنبؤ (V2).
darknet02displayannotatedimages cars.cfg image1.jpg: التنبؤ باستخدام الصور (V3).
DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg: التنبؤ باستخدام الصور (DarkHelp).
اختبار كاشف الشبكة المظلمة للحيوانات. بيانات Animals.cfg Animalbest.weights -extoutput dog.jpg: إحداثيات الإخراج (V2).
darknet01inference_images Animals dog.jpg: إحداثيات الإخراج (V3).
DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg: إحداثيات الإخراج (DarkHelp).
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4: معالجة الفيديو (V2).
darknet03display_videos Animals.cfg test.mp4: معالجة مقاطع الفيديو (V3).
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4: معالجة الفيديو (DarkHelp).
العرض التوضيحي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0: القراءة من كاميرا الويب (V2).
حيوانات darknet08display_webcam: القراءة من كاميرا الويب (V3).
عرض توضيحي لكاشف Darknet Animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi: حفظ النتائج في الفيديو (V2).
darknet05processvideosmultithreaded Animals.cfg Animals.names Animal_best.weights test.mp4: حفظ النتائج في الفيديو (V3).
DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4: حفظ النتائج في الفيديو (DarkHelp).
العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput: استخدم تنسيق JSON (V2).
darknet06imagestojson Animals image1.jpg: استخدم تنسيق JSON (V3).
DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg: استخدم تنسيق JSON (DarkHelp).
العرض التوضيحي لكاشف Darknet Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4: التشغيل على وحدة معالجة رسومات محددة.
خريطة كاشف الشبكة المظلمة القيادة.بيانات القيادة.cfg القيادة_أفضل.أوزان...: التحقق من دقة الشبكة العصبية.
خريطة كاشف Darknet Animals.data Animals.cfg Animalbest.weights -iouthresh 0.75: تحقق من دقة mAP@IoU=75.
كاشف الشبكة المظلمة calcanchors Animals.data -numof_clusters 6 -width 320 -height 256: إعادة حساب نقاط الربط.
كاشف الشبكة المظلمة -map -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg: تدريب شبكة جديدة.
يدرب
كيف أقوم بإعداد الملفات والأدلة الخاصة بي؟
ما الملف الشخصي الذي يجب أن أستخدمه؟
ما الأوامر التي يجب أن أستخدمها عند تدريب شبكتي الخاصة؟
يعد استخدام التعليقات التوضيحية والتدريب على DarkMark الطريقة الأبسط، حيث يتم إنشاء جميع ملفات Darknet الضرورية. هذه بالتأكيد هي الطريقة الموصى بها لتدريب الشبكات العصبية الجديدة.
إذا كنت تفضل إعداد الملفات المختلفة يدويًا لتدريب شبكة مخصصة، فاتبع الخطوات التالية:
1. قم بإنشاء مجلد جديد لتخزين الملفات. على سبيل المثال، ستقوم بإنشاء شبكة عصبية للكشف عن الحيوانات، لذلك سيتم إنشاء الدليل التالي: ~/nn/animals/.
2. انسخ ملف تكوين Darknet الذي تريد استخدامه كقالب. انظر، على سبيل المثال، cfg/yolov4-tiny.cfg. ضعه في المجلد الذي قمت بإنشائه. في هذا المثال، لدينا الآن ~/nn/animals/animals.cfg.
3. قم بإنشاء ملف نصي Animals.names في نفس المجلد الذي قمت بوضع ملف التكوين فيه. في هذا المثال، لدينا الآن ~/nn/animals/animals.names.
4. استخدم محرر النصوص لتحرير ملف أسماء الحيوانات. قم بإدراج الفئات التي تريد استخدامها. يجب أن يحتوي كل سطر على عنصر واحد بالضبط، ولا توجد أسطر أو تعليقات فارغة. في هذا المثال، سيحتوي ملف .names على الأسطر الأربعة التالية:
`
كلب
قطة
طائر
حصان
`
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 الخاص بك.
-تأكد من الدفعة=64.
- الاهتمام بالأقسام. اعتمادًا على أبعاد الشبكة وحجم الذاكرة المتوفرة على وحدة معالجة الرسومات، قد تحتاج إلى زيادة التقسيمات الفرعية. القيمة المثالية هي 1، لذا ابدأ بها. إذا لم يعمل الخيار 1 معك، فيرجى الاطلاع على الأسئلة الشائعة حول Darknet/YOLO.
- لاحظ maxbatches =…. القيمة الجيدة للبدء بها هي عدد الفئات مضروبًا في 2000. في هذا المثال، لدينا 4 حيوانات، إذن 4 * 2000 = 8000. هذا يعني أننا سنستخدم maxbatches=8000.
- ملاحظة الخطوات=…. يجب ضبط هذا على 80% و90% من الدفعات القصوى. في هذا المثال، نظرًا لأنه تم تعيين maxbatches على 8000، فسنستخدم الخطوات=6400,7200.
- لاحظ العرض=... والارتفاع=.... هذه هي أبعاد الشبكة. تشرح الأسئلة الشائعة لـ Darknet/YOLO كيفية حساب الحجم الأمثل للاستخدام.
- ابحث عن جميع السطور=... وقم بتعديلها بعدد الفئات في ملف .names الخاص بك. في هذا المثال سوف نستخدم الفئات = 4.
- ابحث عن جميع خطوط التصفية=... في القسم [التلافيفي] قبل كل قسم [yolo]. القيمة المراد استخدامها هي (عدد الفئات + 5) 3. وهذا يعني أنه في هذا المثال، (4 + 5) 3 = 27. لذلك، نستخدم المرشحات = 27 على الأسطر المناسبة.
9. ابدأ التدريب! قم بتشغيل الأمر التالي:
``باش
مؤتمر نزع السلاح ~/ن/الحيوانات/
كاشف الشبكة المظلمة -خريطة -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
مكتمل
تم استبدال qsort() بـ std::sort() أثناء التدريب (لا تزال بعض البدائل الغامضة الأخرى موجودة)
إزالة check_mistakes و getchar() و system()
تحويل Darknet لاستخدام مترجم C++ (g++ على Linux، Visual Studio على Windows)
إصلاح بناء ويندوز
إصلاح دعم بايثون
بناء مكتبة دارك نت
إعادة تمكين التصنيفات على التنبؤات (رمز "الأبجدية")
أعد تمكين رمز CUDA/GPU
أعد تمكين CUDNN
أعد تمكين نصف CUDNN
لا تقم بترميز بنية CUDA
معلومات إصدار CUDA أفضل
أعد تمكين AVX
إزالة الحل القديم وMakefile
جعل OpenCV غير اختياري
إزالة التبعية على مكتبة pthread القديمة
حذف STB
أعد كتابة CMakeLists.txt لاستخدام أدوات CUDA الجديدة
تمت إزالة رمز "الأبجدية" القديم وحذف أكثر من 700 صورة في البيانات/التسميات
بناء كود المصدر الخارجي
الحصول على إخراج رقم الإصدار أفضل
تحسينات الأداء المتعلقة بالتدريب (المهام المستمرة)
تحسينات الأداء المتعلقة بالاستدلال (المهام المستمرة)
استخدم المراجع حسب القيمة كلما أمكن ذلك
تنظيف ملفات hpp
إعادة كتابة darknet.h
لا تقم بتحويل cv::Mat إلى void*، بل استخدمه ككائن C++ صحيح
إصلاح أو الحفاظ على استخدام بنيات الصور الداخلية باستمرار
إصلاح البنية لأجهزة Jetson ذات بنية ARM
- من غير المرجح أن يتم إصلاح أجهزة Jetson الأصلية لأنها لم تعد مدعومة من قبل NVIDIA (لا يوجد مترجم C++ 17)
- جهاز جيتسون اورين جديد شغال
إصلاح Python API في V3
- هل تحتاج إلى دعم أفضل لـ Python (هل هناك أي مطورين لـ Python يرغبون في المساعدة في حل هذه المشكلة؟)
أهداف قصيرة المدى
استبدل printf() بـ std::cout (العمل قيد التقدم)
تحقق من دعم كاميرا Zed القديمة
تحليل سطر الأوامر أفضل وأكثر اتساقًا (العمل قيد التقدم)
أهداف منتصف المدة
قم بإزالة كافة رموز char* واستبدلها بـ std::string
لا تخفي التحذيرات وقم بتنظيف تحذيرات المترجم (العمل قيد التقدم)
استخدام أفضل لـ cv::Mat بدلاً من هياكل الصور المخصصة في لغة C (العمل قيد التقدم)
استبدل وظائف القائمة القديمة بـ std::vector أو std::list
إصلاح الدعم للصور ذات التدرج الرمادي ذات القناة الواحدة
إضافة دعم لصور قناة N حيث N > 3 (مثل الصور ذات العمق الإضافي أو القنوات الحرارية)
تنظيف الكود المستمر (قيد التقدم)
أهداف طويلة المدى
إصلاح مشكلات CUDA/CUNN المتعلقة بجميع وحدات معالجة الرسومات
أعد كتابة كود CUDA + cuDNN
فكر في إضافة دعم لوحدات معالجة الرسومات غير التابعة لـ NVIDIA
مربع محيط مستدير، أو شكل من أشكال دعم "الزاوية".
النقاط الرئيسية/الهيكل العظمي
خريطة الحرارة (جاري العمل)
التجزئة