[อัปเดต]: repo นี้ทำหน้าที่เป็นรหัสไดรเวอร์สำหรับการวิจัยของฉัน ฉันเพิ่งจบการศึกษาจากวิทยาลัยและกำลังยุ่งอยู่กับการมองหาบทบาทการฝึกงาน / การคบหาสมาคมก่อนที่จะสมัครอาจารย์ในที่สุด ฉันจะไม่มีเวลาพิจารณาปัญหาในขณะนี้ ขอบคุณ
ที่เก็บนี้มีรหัสสำหรับเครื่องตรวจจับวัตถุที่ใช้ YOLOV3: การปรับปรุงที่เพิ่มขึ้น, ใช้งานใน Pytorch รหัสนี้ใช้รหัสอย่างเป็นทางการของ YOLO V3 รวมถึงพอร์ต Pytorch ของรหัสต้นฉบับโดย Marvis หนึ่งในเป้าหมายของรหัสนี้คือการปรับปรุงพอร์ตดั้งเดิมโดยการลบส่วนที่ซ้ำซ้อนของรหัส (รหัสอย่างเป็นทางการนั้นเป็นห้องสมุดการเรียนรู้ลึกที่เป่าอย่างเต็มที่และรวมถึงสิ่งต่าง ๆ เช่นโมเดลลำดับซึ่งไม่ได้ใช้ใน YOLO) ฉันยังพยายามเก็บรหัสไว้ให้น้อยที่สุดและจัดทำเอกสารให้ดีที่สุดเท่าที่จะทำได้
หากคุณต้องการที่จะเข้าใจวิธีการใช้เครื่องตรวจจับนี้ด้วยตัวเองตั้งแต่เริ่มต้นคุณสามารถผ่านชุดการสอน 5 ส่วนที่มีรายละเอียดมากนี้ที่ฉันเขียนบน Paperspace เหมาะสำหรับคนที่ต้องการย้ายจากเริ่มต้นไปสู่ทักษะ Pytorch ระดับกลาง
ใช้ YOLO V3 ตั้งแต่เริ่มต้น
ณ ตอนนี้รหัสมีเพียงโมดูลการตรวจจับ แต่คุณควรคาดหวังโมดูลการฝึกอบรมในไม่ช้า -
การใช้ pytorch 0.3 จะทำลายเครื่องตรวจจับ
โคลนและ cd ลงในไดเรกทอรี repo สิ่งแรกที่คุณต้องทำคือการได้รับไฟล์น้ำหนักในเวลานี้สำหรับ V3 ผู้เขียนได้จัดหาน้ำหนักไฟล์สำหรับ Coco เท่านั้นที่นี่และสถานที่
ไฟล์น้ำหนักลงในไดเรกทอรี repo ของคุณ หรือคุณสามารถพิมพ์ได้ (ถ้าคุณอยู่บน Linux)
wget https://pjreddie.com/media/files/yolov3.weights
python detect.py --images imgs --det det
--images ภาพธงกำหนดไดเรกทอรีเพื่อโหลดภาพจากหรือไฟล์ภาพเดียว (จะคิดออก) และ --det เป็นไดเรกทอรีเพื่อบันทึกภาพไป การตั้งค่าอื่น ๆ เช่นขนาดแบทช์ (ใช้ --bs ธง BB) ความมั่นใจในเกณฑ์ของวัตถุสามารถปรับแต่งด้วยธงที่สามารถค้นหาได้
python detect.py -h
คุณสามารถเปลี่ยนความละเอียดของอิมเมจอินพุตได้ด้วย -ธง --reso ค่าเริ่มต้นคือ 416 ไม่ว่าคุณจะเลือกค่าใดก็ตามจำได้ว่า ควรจะเป็นหลาย 32 และมากกว่า 32 สิ่งแปลก ๆ จะเกิดขึ้นถ้าคุณไม่ทำ คุณได้รับคำเตือนแล้ว
python detect.py --images imgs --det det --reso 320
สำหรับสิ่งนี้คุณควรเรียกใช้ไฟล์ video_demo.py ด้วย -Video Flag ที่ระบุไฟล์วิดีโอ ไฟล์วิดีโอควรอยู่ในรูปแบบ. AVI เนื่องจาก OpENCV ยอมรับเฉพาะ OpENCV เป็นรูปแบบอินพุต
python video_demo.py --video video.avi
การตั้งค่าที่สามารถปรับแต่งได้สามารถเห็นได้ด้วยธง -H
หากต้องการเพิ่มความเร็วในการอนุมานวิดีโอคุณสามารถลองใช้ไฟล์ video_demo_half.py แทนซึ่งจะทำการอนุมานทั้งหมดด้วยความแม่นยำครึ่งบิตครึ่งลอยแทนที่จะลอย 32 บิต ฉันไม่ได้เห็นการปรับปรุงครั้งใหญ่ แต่ฉันบอกว่ามีการ์ดรุ่นเก่า (Tesla K80, Kepler Arch) หากคุณมีหนึ่งในการ์ดที่มีการสนับสนุน Fast Float16 ลองใช้และถ้าเป็นไปได้ให้เปรียบเทียบกับมัน
เหมือนกับโมดูลวิดีโอ แต่คุณไม่จำเป็นต้องระบุไฟล์วิดีโอเนื่องจากฟีดจะถูกนำมาจากกล้องของคุณ เพื่อความแม่นยำฟีดจะถูกนำมาจากสิ่งที่ OpenCV รับรู้ว่าเป็นกล้อง 0 ความละเอียดของภาพเริ่มต้นคือ 160 ที่นี่แม้ว่าคุณสามารถเปลี่ยนได้ด้วยธง reso
python cam_demo.py
คุณสามารถปรับแต่งรหัสเพื่อใช้ weightsfiles ที่แตกต่างกันได้ที่เว็บไซต์ yolo
หมายเหตุ: คุณสมบัติของสเกลถูกปิดใช้งานเพื่อการปรับโครงสร้างที่ดีขึ้น
YOLO V3 ทำให้การตรวจจับในระดับที่แตกต่างกันซึ่งแต่ละอันได้รับการตรวจจับวัตถุที่มีขนาดต่างกันขึ้นอยู่กับว่าพวกเขาจับคุณสมบัติหยาบคุณสมบัติที่ละเอียดหรือบางอย่างระหว่าง คุณสามารถทดลองกับเครื่องชั่งเหล่านี้ได้ด้วยธง --scales สเกล
python detect.py --scales 1,3