جاتلينج
ما هو جاتلينج؟
جاتلينج هي أداة قوية لاختبار الحمل مفتوحة المصدر مصممة للأداء والموثوقية. فهو يقدم حلاً شاملاً لمحاكاة سلوك المستخدم الحقيقي وقياس أداء تطبيقاتك تحت الضغط.
تحفيز
جاتلينج تمكنك من:
1. افهم حدود تطبيقك: حدد الاختناقات ومشكلات الأداء قبل أن تؤثر على المستخدمين.
2. تحسين تجربة المستخدم: تأكد من أن تطبيقك يمكنه التعامل مع ذروة حركة المرور وتقديم أداء سلس لجميع المستخدمين.
3. احصل على رؤى قيمة: قم بتحليل نتائج الاختبار لتحسين أداء تطبيقك وقابلية التوسع والموثوقية.
أسئلة، مساعدة؟
للحصول على المساعدة والدعم، يمكنك:
1. راجع الوثائق الرسمية: استكشف البرامج التعليمية التفصيلية والأدلة ومراجع واجهة برمجة التطبيقات.
2. انضم إلى منتدى مجتمع جاتلينج: تواصل مع المستخدمين الآخرين وشارك الخبرات واطلب المشورة.
3. الإبلاغ عن المشكلات: إذا واجهت خطأ ما، قم بطرح مشكلة على مستودع Gatling GitHub الرسمي.
الشركاء
تتعاون شركة جاتلينج مع العديد من الشركاء لتوفير حلول شاملة لاختبار الأحمال. استكشف النظام البيئي الشريك لعمليات التكامل المتخصصة وخدمات الدعم.
Darknet Object Detection Framework وYOLO
Darknet هو إطار شبكة عصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA، ويشتهر بسرعته وكفاءته.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الأشياء في الوقت الفعلي ويتكامل بسلاسة مع إطار عمل Darknet.
استكشف النظام البيئي Darknet/YOLO:
1. مساهمة Hank.ai: اكتشف كيف تساهم Hank.ai بنشاط في مجتمع Darknet/YOLO.
2. الموقع الرسمي: قم بالوصول إلى أحدث المعلومات والموارد والأخبار على موقع Darknet/YOLO.
3. الأسئلة الشائعة الشاملة: ابحث عن إجابات للأسئلة المتداولة حول Darknet/YOLO.
4. انضم إلى خادم Discord: تواصل مع عشاق Darknet/YOLO الآخرين وناقش الأفكار واحصل على الدعم.
أوراق
1. YOLOv7: اكتشف أحدث التطورات في YOLOv7.
2. Scaled-YOLOv4: انغمس في بنية Scaled-YOLOv4 وتحسينات أدائها.
3. YOLOv4: فهم الميزات والابتكارات الرئيسية لـ YOLOv4.
4. YOLOv3: تعرف على أصول YOLO والمبادئ الأساسية لـ YOLOv3.
معلومات عامة
يتفوق إطار عمل Darknet/YOLO باستمرار على أطر العمل الأخرى وإصدارات YOLO من حيث السرعة والدقة.
إنه مجاني تمامًا ومفتوح المصدر، مما يسمح لك بدمجه في مشاريعك ومنتجاتك دون قيود الترخيص.
يحقق Darknet V3 "Jazz"، الذي تم إصداره في أكتوبر 2024، أداءً رائعًا، حيث يعالج مقاطع فيديو مجموعة بيانات LEGO بسرعة تصل إلى 1000 إطارًا في الثانية باستخدام وحدة معالجة الرسومات NVIDIA RTX 3090.
نسخة دارك نت
1. الإصدار 0.x: أداة Darknet الأصلية التي طورها جوزيف ريدمون في الفترة من 2013 إلى 2017.
2. الإصدار 1.x: مستودع Darknet الشهير الذي يحتفظ به Alexey Bochkovskiy بين 2017-2021.
3. الإصدار 2.x "OAK": مستودع Darknet برعاية Hank.ai ويديره ستيفان شاريت بدءًا من عام 2023. وقد قدم ترقيم الإصدارات وأدخل تحسينات كبيرة، بما في ذلك:
- عملية بناء موحدة باستخدام CMake لنظامي التشغيل Windows وLinux.
- تحويل قاعدة التعليمات البرمجية إلى مترجم C ++.
- تحسين تصور Chart.png أثناء التدريب.
- إصلاحات الأخطاء وتحسينات الأداء.
4. الإصدار 2.1: الفرع الأخير من الإصدار 2.x، المتوفر في الفرع v2.
5. الإصدار 3.x "JAZZ": الإصدار الأخير الذي تم إصداره في أكتوبر 2024، ويضم:
- تمت إزالة الأوامر القديمة والأوامر التي لم تتم صيانتها.
- تحسينات واسعة النطاق في الأداء لكل من التدريب والاستدلال.
- تعديل واجهة برمجة تطبيقات Legacy C.
- واجهة برمجة تطبيقات Darknet V3 C وC++ الجديدة.
- توسيع نموذج التعليمات البرمجية والتطبيقات في أمثلة src.
أوزان MSCOCO المدربة مسبقًا
تم تدريب العديد من إصدارات YOLO الشائعة مسبقًا على مجموعة بيانات MSCOCO، مما يوفر 80 فئة كائنات مدرجة في ملف cfg/coco.names.
تتوفر مجموعات بيانات أخرى وأوزان مدربة مسبقًا للاختبار، بما في ذلك:
ليغو جيرز
رولوديكس
قم بتنزيل أوزان 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 المدربة مسبقًا:
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 مخصص للاختبار في المقام الأول.
مبنى
يتطلب Darknet الإصدار 17 من الإصدار C++ أو الإصدار الأحدث، OpenCV، ويستخدم CMake لأتمتة البناء.
ملاحظة مهمة: تم تحديث هذه الإرشادات لإنشاء Darknet بعد أغسطس 2023. إذا واجهت مشكلات في اتباع البرامج التعليمية القديمة، فارجع إلى هذا الملف التمهيدي للحصول على أحدث خطوات البناء.
جوجل كولاب
اتبع تعليمات Linux أدناه. استكشف دفاتر ملاحظات Jupyter في الدليل الفرعي colab للقيام بمهام محددة مثل التدريب.
طريقة لينكس CMake
1. تثبيت التبعيات الضرورية:
- sudo apt-get install build-essential git libopencv-dev cmake
2. استنساخ مستودع Darknet:
- mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknet
3. إنشاء دليل البناء:
- بناء القرص المضغوط darknet mkdir buildcd
4. تكوين وبناء Darknet:
- cmake -DCMAKEBUILDTYPE=إطلاق ..
- اصنع حزمة -j4
5. قم بتثبيت حزمة .deb:
- sudo dpkg -i darknet-VERSION.deb
6. التحقق من التثبيت:
- نسخة دارك نت
اختياري: قم بتثبيت CUDA أو CUDA+cuDNN لتسريع GPU:
1. تنزيل وتثبيت CUDA:
- https://developer.nvidia.com/cuda-downloads
2. تنزيل وتثبيت cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview
3. التحقق من تثبيت CUDA:
- نفك
- نفيديا-سمي
4. إعادة بناء الشبكة المظلمة:
- cmake -DCMAKEBUILDTYPE=إطلاق ..
- اصنع حزمة -j4
5. قم بتثبيت حزمة .deb المحدثة:
- sudo dpkg -i darknet-VERSION.deb
طريقة ويندوز CMake
1. تثبيت التبعيات الضرورية:
- تثبيت Winget Git.Git
- تثبيت Winget Kitware.CMake
- تثبيت Winget nsis.nsis
- تثبيت Winget Microsoft.VisualStudio.2022.Community
2. تعديل تثبيت Visual Studio:
- افتح "مثبت Visual Studio".
- اختر "تعديل".
- اختر "تطوير سطح المكتب باستخدام C++".
- انقر على "تعديل" و"نعم".
3. تثبيت مايكروسوفت VCPKG:
- افتح موجه أوامر المطور لـ VS 2022 (وليس PowerShell).
- 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[مساهمة ،dnn،freetype،jpeg،openmp،png،webp،world]:x64-windows
4. استنساخ مستودع Darknet:
- cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknet
5. إنشاء دليل البناء:
- بناء مكدير buildcd
6. تكوين وبناء Darknet:
- 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;Configuration=Release PACKAGE.vcxproj
7. انسخ ملفات CUDA DLL إذا لزم الأمر:
- إذا واجهت أخطاء CUDA DLL مفقودة، فانسخها إلى دليل الإخراج:
- انسخ "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
8. أعد تشغيل msbuild لإنشاء حزمة تثبيت NSIS:
- msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
9. قم بتشغيل معالج تثبيت NSIS:
- darknet-VERSION.exe
10. التحقق من التثبيت:
- الإصدار C:Program FilesDarknetbindarknet.exe
اختياري: قم بتثبيت CUDA أو CUDA+cuDNN لتسريع GPU:
1. تنزيل وتثبيت CUDA:
- https://developer.nvidia.com/cuda-downloads
2. تنزيل وتثبيت cuDNN:
- https://developer.nvidia.com/rdp/cudnn-download
- https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows
3. قم بفك ضغط cuDNN ونسخ الدلائل:
- C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[الإصدار]
4. إعادة بناء الشبكة المظلمة:
- كرر الخطوات من 6 إلى 8 بعد تثبيت CUDA.
باستخدام دارك نت
سطر الأوامر
الأوامر:
مساعدة على الانترنت المظلم
نسخة دارك نت
التنبؤ بالصورة:
V2: اختبار كاشف الشبكة المظلمة cars.data Cars.cfg Cars_best.weights image1.jpg
V3: darknet02displayannotatedimages Cars.cfg image1.jpg
DarkHelp: DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg
إحداثيات الإخراج:
V2: اختبار كاشف الشبكة المظلمة Animals.data Animals.cfg Animalbest.weights -extoutput dog.jpg
V3: darknet01inference_images حيوانات dog.jpg
DarkHelp: 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: DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
كاميرا ويب:
V2: العرض التوضيحي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
V3: حيوانات darknet08display_webcam
حفظ النتائج إلى الفيديو:
V2: العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded Animals.cfg للحيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
إخراج جسون:
V2: العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson الحيوانات image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg
وحدة معالجة الرسومات المحددة:
V2: العرض التوضيحي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
دقة:
خريطة كاشف الانترنت المظلم القيادة.بيانات القيادة.cfg القيادة_أفضل.الأوزان ...
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
المراسي:
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
تمرين
DarkMark: استخدم DarkMark للتعليق التوضيحي والتدريب. إنه النهج الموصى به لتدريب الشبكات العصبية الجديدة.
الإعداد اليدوي:
1. قم بإنشاء دليل المشروع: على سبيل المثال، ~/nn/animals/.
2. انسخ ملف التكوين: cfg/yolov4-tiny.cfg
3. قم بإنشاء ملف Animals.names: قم بإدراج الفئات (واحدة في كل سطر) مثل:
- كلب
- قطة
- طائر
- حصان
4. قم بإنشاء ملف 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. قم بإنشاء مجلد مجموعة بيانات: قم بتخزين الصور وملفات التعليقات التوضيحية المقابلة (.txt) بتنسيق YOLO.
6. قم بإنشاء ملف Animaltrain.txt و ملف Animalvalid.txt: قم بإدراج الصور للتدريب والتحقق من الصحة.
7. تعديل ملف Animal.cfg:
- الدفعة = 64
- التقسيمات = 1
- الحد الأقصى لعدد الدفعات = 8000 (4 فصول * 2000)
- الخطوات = 6400,7200
- العرض = ...
- الارتفاع = ...
- الفصول = 4
- تحديث قيم المرشحات (مثال: (4 + 5) * 3 = 27).
8. ابدأ التدريب: cd ~/nn/animals/ darknet Detector -map -dont_show Train Animals.data Animals.cfg
معلمات التدريب:
--verbose للإخراج التفصيلي
أدوات وروابط أخرى
DarkMark: إدارة المشاريع والتعليقات التوضيحية للصور وإنشاء الملفات لـ Darknet.
DarkHelp: واجهة سطر الأوامر البديلة، وتجانب الصور، وتتبع الكائنات، وواجهة برمجة تطبيقات C++ القوية.
الأسئلة الشائعة حول Darknet/YOLO: مورد شامل للأسئلة الشائعة.
قناة Stéphane على YouTube: برامج تعليمية وأمثلة لمقاطع الفيديو.
خادم Darknet/YOLO Discord: دعم المجتمع والمناقشات.
خريطة الطريق
مكتمل:
std::sort() لـ qsort() أثناء التدريب
إزالة check_mistakes و getchar() و system()
دعم مترجم C++ (g++ على Linux، VisualStudio على Windows)
إصلاح بناء ويندوز
إصلاح دعم بايثون
بناء مكتبة Darknet
تسميات على التنبؤات (رمز "الأبجدية")
إعادة تمكين رمز CUDA/GPU
إعادة تمكين CUDNN
إعادة تمكين نصف CUDNN
بنية CUDA غير المشفرة
تحسين معلومات إصدار CUDA
إعادة تمكين AVX
إزالة الحلول القديمة وMakefile
OpenCV باعتباره تبعية غير اختيارية
إزالة تبعية مكتبة pthread القديمة
إزالة STB
إعادة كتابة CMakeLists.txt لاكتشاف CUDA الجديد
إزالة رمز "الأبجدية" وصور البيانات/التسميات
بناء خارج المصدر
تحسين إخراج رقم الإصدار
تحسينات الأداء للتدريب والاستدلال
التمرير حسب المرجع حيثما أمكن ذلك
تنظيف ملفات hpp
إعادة كتابة darknet.h
السيرة الذاتية::استخدام الحصيرة بدلاً من صب الفراغ*
إصلاحات لاستخدام بنية الصورة الداخلية
إنشاء إصلاح لأجهزة Jetson المستندة إلى ARM
إصلاح Python API في V3
الأهداف قصيرة المدى:
الأمراض المنقولة جنسيا::cout للطباعة ()
دعم كاميرا زيد
تحسين تحليل سطر الأوامر
الأهداف المتوسطة المدى:
إزالة رمز char* لصالح std::string
تنظيف تحذير المترجم
تحسين استخدام السيرة الذاتية::Mat
استبدال وظيفة القائمة القديمة بـ std::vector أو std::list
دعم للصور ذات التدرج الرمادي ذات القناة الواحدة
دعم صور قناة N (N > 3)
تنظيف الكود المستمر
الأهداف طويلة المدى:
إصلاحات CUDA/CUNN لجميع وحدات معالجة الرسومات
إعادة كتابة كود CUDA + cuDNN
دعم غير NVIDIA GPU
استدارة الصناديق المحيطة ودعم الزاوية
النقاط الرئيسية والهياكل العظمية
خرائط الحرارة
التقسيم