غير مقبول
Ansible هو نظام أتمتة تكنولوجيا المعلومات بسيط بشكل ملحوظ. فهو يتعامل ببراعة مع إدارة التكوين، ونشر التطبيقات، وتوفير السحابة، وتنفيذ المهام المخصصة، وأتمتة الشبكة، والتنسيق متعدد العقد. يمكّنك Ansible من تنفيذ تغييرات معقدة دون عناء، مثل التحديثات المستمرة بدون توقف باستخدام موازنات التحميل. تعمق في قدرات Ansible على موقعهم الرسمي على الإنترنت.
مبادئ التصميم
1. استخدم Ansible
يمكنك تثبيت الإصدار الذي تم إصداره من Ansible بسلاسة باستخدام النقطة أو مدير الحزم المفضل لديك. راجع دليل التثبيت التفصيلي الخاص بنا للحصول على تعليمات شاملة عبر الأنظمة الأساسية المختلفة.
2. تمكين المستخدمين والمطورين المتميزين
بالنسبة للمستخدمين والمطورين المتقدمين، يوفر فرع التطوير إمكانية الوصول إلى أحدث الميزات والإصلاحات. على الرغم من استقراره بشكل عام، فمن المهم الاعتراف بإمكانية كسر التغييرات عند استخدام هذا الفرع. نوصي بشدة بالتعامل مع مجتمع Ansible إذا اخترت العمل مع فرع التطوير.
تواصل
انضم إلى منتدى Ansible النابض بالحياة للتواصل مع المجتمع وطلب المساعدة وطرح الأسئلة. للحصول على قنوات اتصال إضافية، استكشف دليلنا المخصص حول التواصل مع مجتمع Ansible.
المساهمة في Ansible
إرشادات الترميز
لقد قمنا بتوثيق إرشادات الترميز الخاصة بنا بدقة في دليل المطور. نحن نشجعك بشدة على مراجعة الأقسام التالية:
1. معلومات الفرع
2. خريطة الطريق
واستنادًا إلى التعليقات القيمة من الفريق والمجتمع، يتم نشر خريطة طريق أولية لكل إصدار رئيسي أو ثانوي (على سبيل المثال، 2.7، 2.8). تحدد صفحة Ansible Roadmap خططنا وتوفر طرقًا للتأثير على اتجاهنا.
المؤلفون
تم تصميم Ansible في الأصل بواسطة Michael DeHaan وقد استفاد من مساهمات أكثر من 5000 مستخدم (وعددهم في ازدياد). شكرا لجميع الذين ساهموا!
تحظى Ansible برعاية شركة Red Hat, Inc.
رخصة
رخصة جنو العامة الإصدار 3.0 أو الأحدث. ارجع إلى النسخ للحصول على نص الترخيص الكامل.
إطار عمل Darknet للكشف عن الكائنات وYOLO
شعارات darknet وhank.ai
Darknet هو إطار شبكة عصبية مفتوح المصدر تم تطويره في C وC++ وCUDA.
يمثل YOLO (أنت تنظر مرة واحدة فقط) نظامًا متطورًا للكشف عن الكائنات في الوقت الفعلي والذي يعمل ضمن إطار عمل Darknet.
اكتشف كيف تساهم Hank.ai في مجتمع Darknet/YOLO: https://darknetcv.ai/
استكشف موقع Darknet/YOLO الرسمي: https://pjreddie.com/darknet/
راجع الأسئلة الشائعة الشاملة عن Darknet/YOLO: https://pjreddie.com/darknet/yolo/
انضم إلى خادم Darknet/YOLO Discord النشط: https://discord.gg/zSq8rtW
أوراق
1. ورقة YOLOv7: https://arxiv.org/abs/2207.02696
2. ورقة تحجيم YOLOv4: https://arxiv.org/abs/2102.12074
3. ورقة YOLOv4: https://arxiv.org/abs/2004.10934
4. ورقة YOLOv3: https://arxiv.org/abs/1804.02769
معلومات عامة
يستمر إطار عمل Darknet/YOLO في التفوق على أطر وإصدارات YOLO الأخرى من حيث السرعة والدقة.
تسمح لك حريته الكاملة وطبيعته مفتوحة المصدر بدمج Darknet/YOLO بسلاسة في المشاريع والمنتجات الحالية، بما في ذلك المشاريع التجارية، دون قيود أو رسوم ترخيص.
يُظهر Darknet V3 ("Jazz")، الذي تم إصداره في أكتوبر 2024، براعته من خلال معالجة مقاطع فيديو مجموعة بيانات LEGO بمعدل مذهل يبلغ 1000 إطارًا في الثانية عند استخدام وحدة معالجة الرسومات NVIDIA RTX 3090. ويعادل هذا وقت معالجة يبلغ 1 مللي ثانية أو أقل لكل إطار فيديو، مما يعرض كفاءة استثنائية.
للحصول على أي مساعدة أو مناقشات تتعلق بـ 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".
تركزت أهداف التطوير على تقليل التعطيل للوظائف الحالية مع التعرف على قاعدة التعليمات البرمجية.
التحسينات الرئيسية في الإصدار 2.x:
1. عملية البناء الموحدة: أعد كتابة خطوات البناء لنهج موحد باستخدام CMake على كل من نظامي التشغيل Windows وLinux.
2. انتقال C++: تحويل قاعدة التعليمات البرمجية للاستفادة من مترجم C++.
3. تحسين تصور التدريب: تم تحسين تصور Chart.png أثناء التدريب.
4. تحسينات الأداء: معالجة الأخطاء وتنفيذ التحسينات المتعلقة بالأداء، والتي تركز بشكل أساسي على تقليل وقت التدريب.
يمثل الإصدار 2.1 الفرع الأخير من قاعدة التعليمات البرمجية هذه، وهو متوفر في الفرع v2.
بدأت المرحلة التالية من التطوير في منتصف عام 2024 وبلغت ذروتها في إصدار أكتوبر 2024 للإصدار 3.x "JAZZ".
يمكنك الاحتفاظ بخيار التحقق من فرع v2 السابق إذا كنت تحتاج إلى الوصول إلى أوامر محددة من هذا الإصدار. إذا واجهت أي أوامر مفقودة، فيرجى إبلاغنا للتحقيق وإعادة الدمج المحتملة.
تغييرات هامة في الإصدار 3.x:
1. تقليم الأوامر: تمت إزالة العديد من الأوامر القديمة والتي لم يتم الحفاظ عليها.
2. الأداء المحسن: تم تنفيذ تحسينات واسعة النطاق للأداء، سواء أثناء التدريب أو الاستدلال.
3. تعديلات واجهة برمجة التطبيقات: خضعت واجهة برمجة تطبيقات C القديمة للتعديلات؛ ستتطلب التطبيقات التي تعتمد على Darknet API الأصلية تعديلات طفيفة. راجع الوثائق المحدثة للحصول على إرشادات: 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 المدربة مسبقًا من مواقع مختلفة، بما في ذلك هذا المستودع:
YOLOv2 (نوفمبر 2016):
yolov2-صغيرة
yolov2-full
YOLOv3 (مايو 2018):
yolov3-صغيرة
yolov3-full
YOLOv4 (مايو 2020):
yolov4-صغيرة
yolov4-full
YOLOv7 (أغسطس 2022):
yolov7-صغيرة
yolov7-full
يتم توفير أوزان 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 لإنشاء ملفات المشروع الضرورية.
لا يتطلب إنشاء Darknet/YOLO خبرة في لغة C++؛ كما هو الحال مع قيادة السيارة، لا تحتاج إلى أن تكون ميكانيكيًا لتتمكن من الاستفادة منها.
ننصح مطوري البرامج بزيارة https://darknetcv.ai/ للحصول على رؤى حول الأعمال الداخلية لإطار عمل اكتشاف الكائنات Darknet/YOLO.
جوجل كولاب
تعكس تعليمات Google Colab تعليمات Linux. تعرض العديد من دفاتر ملاحظات Jupyter مهامًا محددة، مثل تدريب شبكة جديدة.
استكشف دفاتر الملاحظات ضمن الدليل الفرعي colab أو اتبع تعليمات Linux المتوفرة أدناه.
طريقة لينكس CMake
1. البرامج الأساسية:
أساسيات البناء: sudo apt-get install build-essential git libopencv-dev cmake
2. استنساخ المستودع:
قم بإنشاء دليل مصدر: mkdir ~/srccd ~/src
استنساخ المستودع: git clone https://github.com/hank-ai/darknetcd darknet
3. بناء الدليل:
قم بإنشاء دليل بناء: mkdir buildcd build
4. تكوين CMake:
تكوين CMake: cmake -DCMAKEBUILDTYPE=إطلاق ..
5. بناء الشبكة المظلمة:
البناء: جعل -j4
6. تركيب الحزمة:
إنشاء الحزمة: package
قم بتثبيت الحزمة: sudo dpkg -i darknet-VERSION.deb
اختياري: تثبيت CUDA أو CUDA+cuDNN
لتسريع معالجة الصور والفيديو، يمكنك اختياريًا تثبيت إما CUDA أو CUDA+cuDNN.
تثبيت كودا:
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
تثبيت cuDNN:
تفضل بزيارة 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:
احذف ملف CMakeCache.txt من دليل إنشاء Darknet الخاص بك لإجبار CMake على إعادة العثور على الملفات الضرورية.
إعادة بناء داركنت.
ترقية إصدار CMake (إذا لزم الأمر):
تطهير CMake الموجود: Sudo apt-get purge cmake
قم بتثبيت أحدث إصدار من CMake: sudo snap install cmake --classic
أعد تشغيل الصدفة (bash) أو تأكد من التعرف على المسار الجديد (fish).
المستخدمون المتقدمون:
لإنشاء ملف تثبيت RPM بدلاً من DEB، قم بتعديل الأسطر ذات الصلة في CM_package.cmake. قبل تشغيل حزمة make -j4، اضبط الأسطر التالية:
`كماكي
مجموعة (CPACK_GENERATOR "DEB")
مجموعة (CPACK_GENERATOR "RPM")
`
بالنسبة لتوزيعات مثل CentOS وOpenSUSE، قم بتعديل هذه السطور:
`كماكي
مجموعة (CPACK_GENERATOR "DEB")
مجموعة (CPACK_GENERATOR "RPM")
`
بمجرد إنشاء حزمة التثبيت، قم بتثبيتها باستخدام مدير الحزم الخاص بالتوزيع. على سبيل المثال، في الأنظمة المستندة إلى Debian مثل Ubuntu:
``باش
sudo dpkg -i darknet-2.0.1-Linux.deb
`
ما بعد التثبيت:
تشمل الملفات المثبتة:
- /usr/bin/darknet: Darknet قابل للتنفيذ. قم بتشغيل إصدار darknet لتأكيد التثبيت.
- /usr/include/darknet.h: Darknet API لمطوري C وC++ وPython.
- /usr/include/darknet_version.h: معلومات الإصدار للمطورين.
- /usr/lib/libdarknet.so: مكتبة للربط في تطوير C وC++ وPython.
- /opt/darknet/cfg/...: موقع جميع قوالب .cfg.
تم الآن إنشاء Darknet وتثبيته بنجاح في /usr/bin/. للتحقق، قم بتشغيل إصدار darknet.
طريقة ويندوز CMake
1. المتطلبات الأساسية:
قم بتثبيت ما يلي باستخدام Winget:
- Git: تثبيت Winget Git.Git
- CMake: تثبيت Winget Kitware.CMake
- NSIS: تثبيت Winget nsis.nsis
- مجتمع Visual Studio 2022: تثبيت Winget Microsoft.VisualStudio.2022.Community
2. تكوين الاستوديو المرئي:
افتح "Visual Studio Installer" من قائمة "ابدأ" في نظام التشغيل Windows.
انقر فوق "تعديل".
حدد "تطوير سطح المكتب باستخدام C++".
انقر على "تعديل" في الزاوية اليمنى السفلية ثم "نعم".
3. موجه أوامر المطور:
افتح قائمة "ابدأ في Windows" وحدد "موجه أوامر المطور لـ VS 2022". لا تستخدم PowerShell لهذه الخطوات.
4. تثبيت Microsoft VCPKG (لـ OpenCV):
انتقل إلى C:: cd c:
قم بإنشاء دليل src: mkdir c:src
استنساخ VCPKG: cd c:src git clone https://github.com/microsoft/vcpkg
Bootstrap VCPKG: cd vcpkg bootstrap-vcpkg.bat
دمج VCPKG: .vcpkg.exe دمج التثبيت
تثبيت OpenCV (بما في ذلك التبعيات): .vcpkg.exe تثبيت opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
5. اختياري: تثبيت CUDA أو CUDA+cuDNN (Windows)
لتسريع معالجة الصور والفيديو، يمكنك اختياريًا تثبيت إما CUDA أو CUDA+cuDNN.
تثبيت كودا:
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
تثبيت cuDNN:
قم بزيارة https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows لتنزيل وتثبيت cuDNN.
التثبيت بعد CUDA:
تأكد من أنه يمكنك تنفيذ nvcc.exe. قد تحتاج إلى تعديل متغير PATH الخاص بك.
قم بفك ضغط ملف cuDNN الذي تم تنزيله وانسخ دلائل الحاوية والتضمين والليب إلى C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/. قد تحتاج إلى الكتابة فوق بعض الملفات.
ترقية CUDA أو CUDA+cuDNN:
يجب تثبيت CUDA بعد Visual Studio. أعد تثبيت CUDA إذا قمت بترقية Visual Studio.
6. الاستنساخ وبناء الشبكة المظلمة:
انتقل إلى الدليل المصدر الخاص بك: cd c:src
استنساخ المستودع: git clone https://github.com/hank-ai/darknet.git
قم بإنشاء دليل البناء: cd darknetmkdir build
تكوين CMake باستخدام VCPKG: cd build 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
قم بإنشاء حزمة تثبيت NSIS: msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
7. التعامل مع ملفات CUDA/cuDNN المفقودة:
إذا واجهت أخطاء بشأن فقدان ملفات CUDA أو cuDNN DLLs (على سبيل المثال، cublas64_12.dll)، فانسخ ملفات CUDA .dll ذات الصلة يدويًا إلى نفس دليل الإخراج مثل Darknet.exe. على سبيل المثال:
``باش
انسخ "C: Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
`
اضبط رقم الإصدار في الأمر ليتوافق مع التثبيت الخاص بك.
أعد تشغيل الأمر msbuild.exe لإنشاء حزمة تثبيت NSIS.
المستخدمون المتقدمون:
يقوم الأمر cmake بإنشاء ملف حل Visual Studio (Darknet.sln). إذا كنت تفضل واجهة المستخدم الرسومية Visual Studio، فيمكنك تحميل مشروع Darknet في Visual Studio بدلاً من استخدام أدوات سطر الأوامر.
التحقق بعد البناء:
تحقق من وجود C:srcDarknetbuildsrc-cliReleasedarknet.exe. قم بتشغيل الإصدار C:srcDarknetbuildsrc-cliReleasedarknet.exe للتأكيد.
تثبيت:
قم بتشغيل معالج تثبيت NSIS (على سبيل المثال، darknet-VERSION.exe في دليل البناء) لتثبيت Darknet والمكتبات وتضمين الملفات وملفات DLL الضرورية.
التحقق بعد التثبيت:
تحقق من وجود C:/Program Files/darknet/bin/darknet.exe. قم بتشغيل الإصدار C:/Program Files/darknet/bindarknet.exe للتأكيد.
باستخدام دارك نت
سطر الأوامر
لا تشمل هذه القائمة جميع أوامر Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، فكر في استخدام واجهة سطر الأوامر لمشروع DarkHelp، والتي توفر واجهة بديلة وأكثر تقدمًا. يمكن استخدام كلا CLIs معًا.
بالنسبة لمعظم الأوامر، ستحتاج إلى ملف .weights مع ملفات .names و.cfg المقابلة. يمكنك تدريب شبكتك الخاصة أو تنزيل شبكات مدربة مسبقًا.
مجموعات البيانات المدربة مسبقًا:
LEGO Gears: اكتشاف الأشياء في الصور.
Rolodex: الكشف عن النص في الصور.
MSCOCO: الكشف القياسي عن الكائنات من فئة 80.
أوامر CLI الشائعة:
1. المساعدة: مساعدة داركنت
2. الإصدار: نسخة دارك نت
3. التنبؤ بالصورة (V2):
اختبار كاشف الانترنت المظلم cars.data Cars.cfg Cars_best.weights image1.jpg
4. التنبؤ بالصورة (V3):
darknet02displayannotatedimages Cars.cfg image1.jpg
5. التنبؤ بالصورة (DarkHelp):
DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg
6. إحداثيات الإخراج (V2):
اختبار كاشف الشبكة المظلمة للحيوانات. بيانات Animals.cfg Animalbest.weights -extoutput dog.jpg
7. إحداثيات الإخراج (V3):
darknet01inference_images حيوانات dog.jpg
8. إحداثيات الإخراج (DarkHelp):
DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg
9. معالجة الفيديو (V2):
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4
10. معالجة الفيديو (V3):
darknet03display_videos Animals.cfg test.mp4
11. معالجة الفيديو (DarkHelp):
DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
12. معالجة كاميرا الويب (الإصدار 2):
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
13. معالجة كاميرا الويب (V3):
حيوانات darknet08display_webcam
14. حفظ الفيديو (الإصدار 2):
عرض تجريبي للكشف عن darknet للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
15. حفظ الفيديو (V3):
darknet05processvideosحيوانات متعددة الخيوط.cfg حيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
16. حفظ الفيديو (DarkHelp):
DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
17. إخراج JSON (V2):
عرض توضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
18. إخراج JSON (V3):
darknet06imagestojson الحيوانات image1.jpg
19. إخراج JSON (DarkHelp):
DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg
20. اختيار GPU (V2):
عرض تجريبي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
21. فحص دقة الشبكة:
خريطة كاشف الانترنت المظلم القيادة.بيانات القيادة.cfg القيادة_أفضل.الأوزان ...
22. التحقق من الدقة (mAP@IoU=75):
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
23. إعادة حساب المرساة (يوصى باستخدام DarkMark):
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
24. تدريب شبكة جديدة:
كاشف الشبكة المظلمة -خريطة -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg (انظر قسم التدريب أدناه)
تمرين
روابط سريعة للأقسام ذات الصلة من الأسئلة الشائعة حول Darknet/YOLO:
الإعداد: https://pjreddie.com/darknet/yolo/
اختيار ملف التكوين: https://pjreddie.com/darknet/yolo/
أمر التدريب: https://pjreddie.com/darknet/yolo/
يتضمن النهج الأكثر بساطة للتعليق التوضيحي والتدريب استخدام DarkMark. هذه هي الطريقة الموصى بها لتدريب شبكة عصبية جديدة.
إعداد التدريب اليدوي:
1. قم بإنشاء مجلد المشروع: على سبيل المثال، ~/nn/animals/.
2. انسخ قالب التكوين:
اختر ملف التكوين (على سبيل المثال، cfg/yolov4-tiny.cfg).
ضعه في مجلد المشروع
الآن لديك ~/nn/animals/animals.cfg.
3. قم بإنشاء ملف أسماء الحيوانات:
قم بإنشاء ملف نصي باسم Animals.names في مجلد المشروع.
قم بتحرير هذا الملف بالفئات التي تريدها.
تأكد من أن كل فصل موجود في سطر منفصل، مع عدم وجود أسطر أو تعليقات فارغة.
على سبيل المثال:
`
كلب
قطة
طائر
حصان
`
4. قم بإنشاء ملف Animals.data:
قم بإنشاء ملف نصي باسم Animals.data في مجلد المشروع.
يجب أن يشبه المحتوى:
`
الفصول = 4
القطار = /home/username/nn/animals/animals_train.txt
صالح = /home/username/nn/animals/animals_valid.txt
الأسماء = /home/username/nn/animals/animals.names
النسخ الاحتياطي = /home/username/nn/animals
`
5. قم بإنشاء مجلد مجموعة البيانات:
قم بإنشاء مجلد لتخزين الصور والتعليقات التوضيحية الخاصة بك. على سبيل المثال، ~/nn/animals/dataset.
تتطلب كل صورة ملف .txt مطابق يحدد التعليقات التوضيحية الخاصة بها.
لا يمكنك إنشاء ملفات .txt هذه يدويًا؛ تعد DarkMark أو الأدوات المشابهة ضرورية لتعليق صورك وإنشاء هذه الملفات.
ارجع إلى الأسئلة الشائعة حول Darknet/YOLO للتعرف على تنسيق التعليقات التوضيحية لـ YOLO.
6. قم بإنشاء ملفات Animaltrain.txt وAnimalsvalid.txt:
قم بإنشاء هذه الملفات النصية كما هو محدد في ملف Animals.data.
تسرد هذه الملفات جميع الصور التي سيتم استخدامها للتدريب والتحقق من الصحة، على التوالي.
صورة واحدة في كل سطر، باستخدام المسارات النسبية أو المطلقة.
7. تعديل ملف التكوين (animals.cfg):
الدفعة: تعيين الدفعة = 64.
التقسيمات الفرعية: ابدأ بالتقسيمات الفرعية = 1. اضبط حسب الحاجة بناءً على أبعاد الشبكة وذاكرة وحدة معالجة الرسومات.
الحد الأقصى للدفعات: قيمة البداية الجيدة هي maxbatches=2000 * numberofclasses. في هذا المثال، الحد الأقصى = 8000 (4 حيوانات).
الخطوات: اضبط على 80% و90% من max_batches. في هذا المثال، الخطوات=6400,7200.
العرض والارتفاع: تحديد أبعاد الشبكة. ارجع إلى الأسئلة الشائعة حول Darknet/YOLO للحصول على إرشادات.
الفئات: قم بتعيين الفئات=... لمطابقة عدد الفئات في ملف .names الخاص بك (4 في هذا المثال).
المرشحات: في كل طبقة تلافيفية قبل طبقة يولو، اضبط المرشحات=... على (عدد الفئات + 5) * 3. في هذا المثال، المرشحات=27.
8. ابدأ التدريب:
انتقل إلى مجلد المشروع الخاص بك: cd ~/nn/animals/
ابدأ التدريب: darknet Detector -map -dont_show Train Animals.data Animals.cfg
كن صبوراً. سيتم حفظ أفضل الأوزان باسم Animal_best.weights.
راقب تقدم التدريب من خلال عرض ملف Chart.png.
راجع الأسئلة الشائعة حول Darknet/YOLO للحصول على معلمات تدريب إضافية.
للحصول على مخرجات تدريبية أكثر تفصيلاً، أضف العلامة --verbose :
``باش
كاشف الشبكة المظلمة -خريطة -dont_show --قطار مطول للحيوانات.بيانات الحيوانات.cfg
`
أدوات وروابط أخرى
DarkMark: لإدارة مشاريع Darknet/YOLO، والتعليق على الصور، والتحقق من التعليقات التوضيحية، وإنشاء ملفات التدريب. https://darknetcv.ai/darkmark/
DarkHelp: للحصول على واجهة سطر الأوامر (CLI) بديلة قوية لـ Darknet، وتجانب الصور، وتتبع الكائنات، وواجهة برمجة تطبيقات C++ الملائمة تجاريًا. https://darknetcv.ai/darkhelp/
الأسئلة الشائعة حول Darknet/YOLO: للحصول على إجابات للأسئلة الشائعة. https://pjreddie.com/darknet/yolo/
قناة ستيفان على اليوتيوب: للحصول على البرامج التعليمية وأمثلة مقاطع الفيديو. https://www.youtube.com/@stephane-charette
Darknet/YOLO Discord Server: لأسئلة الدعم ومناقشات المجتمع. https://discord.gg/zSq8rtW
خريطة الطريق
آخر تحديث: 2024-10-30
مكتمل
تم استبدال qsort() بـ std::sort() أثناء التدريب.
تمت إزالة check_mistakes وgetchar() وsystem().
تم ترحيل Darknet إلى مترجم C++ (g++ على Linux، وVisualStudio على Windows).
حل مشاكل بناء ويندوز.
إعادة تمكين دعم بايثون.
قام ببناء مكتبة Darknet.
إعادة تمكين تسميات التنبؤ (رمز "الأبجدية").
إعادة تمكين رمز 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 Orin الجديدة تعمل بكفاءة.
تم حل مشكلات Python API في الإصدار 3.
الأهداف قصيرة المدى
قم بتبديل printf() مع std::cout (قيد التقدم).
التحقق من دعم كاميرا Zed القديمة.
تحسين تحليل سطر الأوامر لتحقيق الاتساق (قيد التقدم).
أهداف منتصف المدة
قم بإزالة كافة رموز char* واستبدلها بـ std::string.
قم بإزالة التحذيرات المخفية ومعالجة تحذيرات المترجم (قيد التقدم).
تحسين استخدام cv::Mat بدلاً من بنية صورة C المخصصة (قيد التقدم).
استبدل وظيفة القائمة القديمة بـ std::vector أو std::list.
إصلاح الدعم للصور ذات التدرج الرمادي ذات القناة الواحدة.
أضف دعمًا لصور قناة N حيث N > 3 (على سبيل المثال، الصور ذات القنوات العميقة أو الحرارية).
متابعة عملية التنظيف المستمرة للتعليمات البرمجية (قيد التقدم).
الأهداف طويلة المدى
معالجة مشكلات CUDA/CUDNN عبر جميع وحدات معالجة الرسومات.
أعد كتابة كود CUDA + cuDNN.
اكتشف الدعم لوحدات معالجة الرسومات غير التابعة لـ NVIDIA.
تنفيذ الصناديق المحيطة المدورة أو دعم الزاوية.
تقديم النقاط الرئيسية/الهياكل العظمية.
إضافة دعم للخرائط الحرارية (قيد التنفيذ).
دمج التجزئة.