[Update]: يعد هذا الريبو بمثابة رمز برنامج تشغيل لبحثي. لقد تخرجت للتو في الكلية ، وأنا مشغول جدًا بالبحث عن أدوار التدريب الداخلية / الزمالة قبل التقدم بطلب للحصول على درجة الماجستير في النهاية. لن يكون لدي الوقت الكافي للنظر في القضايا في الوقت الحالي. شكرًا لك.
يحتوي هذا المستودع على رمز للكشف عن الكائنات بناءً على YOLOV3: تحسن تدريجي ، تنفيذ Pytorch. يعتمد الرمز على الكود الرسمي لـ Yolo V3 ، بالإضافة إلى منفذ Pytorch للرمز الأصلي ، بواسطة Marvis. يتمثل أحد أهداف هذا الرمز في تحسين المنفذ الأصلي عن طريق إزالة الأجزاء الزائدة من الكود (الرمز الرسمي هو في الأساس مكتبة تعليمية عميقة بالكامل ، وتتضمن أشياء مثل نماذج التسلسل ، والتي لا تستخدم في YOLO). لقد حاولت أيضًا الحفاظ على الحد الأدنى من الكود ، وتوثيقه قدر الإمكان.
إذا كنت تريد أن تفهم كيفية تنفيذ هذا الكاشف بنفسك من نقطة الصفر ، فيمكنك المرور من خلال سلسلة البرنامج التعليمية المفصلة المكونة من 5 أجزاء التي كتبتها على PAPERSPACE. مثالي لشخص يريد الانتقال من المبتدئين إلى مهارات Pytorch المتوسطة.
تنفيذ yolo v3 من الصفر
اعتبارًا من الآن ، يحتوي الكود فقط على وحدة الكشف ، ولكن يجب أن تتوقع وحدة التدريب قريبًا. سائدا
باستخدام Pytorch 0.3 سوف يكسر الكاشف.
استنساخ ، وقرص cd في دليل الريبو. أول ما عليك فعله هو الحصول على ملف الأوزان هذه المرة ، بالنسبة لـ V3 ، قام المؤلفون بتزويد الأوزان فقط لكوكو هنا ، ومكانه
ملف الأوزان في دليل repo الخاص بك. أو يمكنك الكتابة فقط (إذا كنت على Linux)
wget https://pjreddie.com/media/files/yolov3.weights
python detect.py --images imgs --det det
--images Flag Flag الدليل لتحميل الصور من ملف صورة واحد (سيقوم باكتشافه) ، و- --det هو الدليل لحفظ الصور إليه. الإعدادات الأخرى مثل حجم الدُفعة (باستخدام --bs ) ، يمكن تعديل ثقة عتبة الكائن بالأعلام التي يمكن البحث عنها.
python detect.py -h
يمكنك تغيير قرارات صورة الإدخال بواسطة علم --reso . القيمة الافتراضية هي 416. مهما كانت القيمة التي اخترتها ، يجب أن تكون مضاعفة 32 وأكبر من 32 . ستحدث أشياء غريبة إذا لم تفعل. لقد تم تحذيرك.
python detect.py --images imgs --det det --reso 320
لهذا ، يجب عليك تشغيل الملف ، video_demo.py مع -علامة Video التي تحدد ملف الفيديو. يجب أن يكون ملف الفيديو بتنسيق .avi لأن OpenCV يقبل OpenCV فقط كتنسيق الإدخال.
python video_demo.py --video video.avi
يمكن رؤية الإعدادات القابلة للتطبيق مع علم -H.
لتسريع استدلال الفيديو ، يمكنك محاولة استخدام ملف Video_Demo_half.py بدلاً من ذلك والذي يقوم بكل الاستدلال مع عوامات نصف دقة 16 بت بدلاً من تعويم 32 بت. لم أر تحسينات كبيرة ، لكنني أعزو ذلك إلى وجود بطاقة أقدم (Tesla K80 ، Kepler Arch). إذا كان لديك إحدى البطاقات التي تحمل دعم Float16 السريع ، فجرّبها ، وإذا أمكن ، فسيكون ذلك.
مثل وحدة الفيديو ، ولكن ليس عليك تحديد ملف الفيديو لأن التغذية ستأخذ من الكاميرا. لكي نكون دقيقًا ، سيتم أخذ التغذية من ما هو OpenCV ، على أنه كاميرا 0. دقة الصورة الافتراضية هي 160 هنا ، على الرغم من أنه يمكنك تغييرها باستخدام علامة reso .
python cam_demo.py
يمكنك بسهولة تعديل الرمز لاستخدام الأوزان المختلفة ، المتوفرة على موقع Yolo
ملاحظة: تم تعطيل ميزات المقاييس لإعادة إنشاء أفضل.
يقوم Yolo V3 بإجراء اكتشافات عبر موازين مختلفة ، كل منها ينفجر في اكتشاف كائنات ذات أحجام مختلفة اعتمادًا على ما إذا كانت تلتقط ميزات خشنة أو ميزات محببة أو أي شيء بينها. يمكنك تجربة هذه المقاييس بواسطة علم --scales .
python detect.py --scales 1,3