การตรวจจับวัตถุเป็นประเภทของการจัดหมวดหมู่ภาพที่โครงข่ายประสาทเทียมคาดการณ์รายการต่างๆ ในภาพและดึงกรอบล้อมรอบวัตถุเหล่านั้น การตรวจจับและโลคัลไลซ์สิ่งต่าง ๆ ในภาพที่สอดคล้องกับชุดคลาสที่กำหนดไว้ล่วงหน้านั้นเรียกว่าการตรวจจับวัตถุ
การตรวจจับวัตถุ (หรือที่เรียกว่าการรู้จำวัตถุ) เป็นโดเมนย่อยที่มีนัยสำคัญอย่างยิ่งของ Computer Vision เนื่องจากงานต่างๆ เช่น การตรวจหา การระบุตัวตน และการแปลเป็นภาษาท้องถิ่นจะค้นหาการใช้งานแบบกว้างๆ ในบริบทของโลกแห่งความเป็นจริง
แนวทางของ YOLO สามารถช่วยคุณทำงานเหล่านี้ได้ ในบทความนี้ เราจะพิจารณา YOLO อย่างละเอียดยิ่งขึ้น ซึ่งรวมถึงมันคืออะไร มันทำงานอย่างไร รูปแบบต่างๆ และอื่นๆ
ดังนั้น YOLO คืออะไร?
YOLO เป็นวิธีการระบุและจดจำวัตถุแบบเรียลไทม์ในภาพถ่าย เป็นตัวย่อสำหรับ You Only Look Once เรดมอนด์และคณะ เสนอแนวทางดังกล่าวในบทความที่ตีพิมพ์ครั้งแรกในปี 2015 ที่การประชุม IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)
รางวัล OpenCV People's Choice Award มอบให้กับบทความ ต่างจากวิธีการระบุอ็อบเจ็กต์ก่อนหน้านี้ ซึ่งใช้ตัวแยกประเภทใหม่เพื่อทำการตรวจจับ YOLO เสนอการใช้ end-to-end เครือข่ายประสาท ที่ทำนายขอบเขตและความน่าจะเป็นของคลาสพร้อมกัน
YOLO ให้ผลลัพธ์ที่ล้ำสมัยโดยใช้วิธีการใหม่พื้นฐานในการจดจำวัตถุ ซึ่งมีประสิทธิภาพเหนือกว่าวิธีการตรวจจับวัตถุแบบเรียลไทม์ก่อนหน้าอย่างง่ายดาย
YOLO ทำงาน
วิธี YOLO แบ่งรูปภาพออกเป็น N กริด แต่ละอันมีเซกเตอร์มิติ SxS ที่มีขนาดเท่ากัน แต่ละกริด N เหล่านี้มีหน้าที่ในการตรวจจับและค้นหาวัตถุที่มีอยู่
ในทางกลับกัน กริดเหล่านี้จะคาดการณ์พิกัดของกล่องล้อมรอบ B ที่สัมพันธ์กับพิกัดของเซลล์ ตลอดจนชื่อรายการและความน่าจะเป็นของวัตถุที่มีอยู่ในเซลล์ เนื่องจากมีหลายเซลล์ที่ทำนายรายการเดียวกันด้วยการคาดการณ์กล่องขอบเขตที่หลากหลาย เทคนิคนี้จึงช่วยลดการคำนวณได้มาก เนื่องจากทั้งการตรวจหาและการจดจำได้รับการจัดการโดยเซลล์จากรูปภาพ
อย่างไรก็ตาม มันสร้างการทำนายที่ซ้ำกันจำนวนมาก เพื่อแก้ไขปัญหานี้ YOLO ใช้การปราบปรามแบบไม่สูงสุด YOLO ระงับกรอบขอบเขตทั้งหมดด้วยคะแนนความน่าจะเป็นที่ต่ำกว่าในการปราบปรามแบบไม่ใช้ค่าสูงสุด
YOLO ทำได้โดยการตรวจสอบคะแนนความน่าจะเป็นที่เชื่อมโยงกับแต่ละตัวเลือกและเลือกอันที่มีคะแนนสูงสุด กล่องขอบเขตที่มีทางแยกที่ใหญ่ที่สุดเหนือ Union ที่มีขอบเขตความน่าจะเป็นสูงในปัจจุบันจะถูกระงับ
กระบวนการนี้จะดำเนินต่อไปจนกว่ากรอบล้อมรอบจะเสร็จสมบูรณ์
รูปแบบต่างๆของYOLO
เราจะดูเวอร์ชัน YOLO ที่พบบ่อยที่สุดบางเวอร์ชัน มาเริ่มกันเลย.
1. โยลอฟ1
เวอร์ชัน YOLO เริ่มต้นได้รับการประกาศในปี 2015 ในสิ่งพิมพ์ “คุณดูเพียงครั้งเดียว: การตรวจจับวัตถุแบบครบวงจรแบบเรียลไทม์” โดย Joseph Redmon, Santosh Divvala, Ross Girshick และ Ali Farhadi
เนื่องจากความเร็ว ความแม่นยำ และความสามารถในการเรียนรู้ YOLO ได้ครอบงำพื้นที่การระบุวัตถุอย่างรวดเร็ว และกลายเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายมากที่สุด แทนที่จะจัดการกับการตรวจจับวัตถุเป็นปัญหาการจำแนกประเภท ผู้เขียนมองว่าเป็นปัญหาการถดถอยด้วยกรอบขอบเขตที่แยกจากกันตามภูมิศาสตร์และความน่าจะเป็นของคลาสที่เกี่ยวข้อง ซึ่งแก้ไขได้โดยใช้ตัวเดียว เครือข่ายประสาท.
YOLOv1 ประมวลผลภาพถ่ายที่ 45 เฟรมต่อวินาทีแบบเรียลไทม์ ในขณะที่ Fast YOLO รุ่นเล็กกว่า ประมวลผลที่ 155 เฟรมต่อวินาที และยังคงได้รับ mAP สองเท่าของตัวตรวจจับแบบเรียลไทม์อื่นๆ
2. โยลอฟ2
อีกหนึ่งปีต่อมาในปี 2016 โจเซฟ เรดมอนและอาลี ฟาร์ฮาดี ได้เผยแพร่ YOLOv2 (หรือที่รู้จักในชื่อ YOLO9000) ในบทความ “YOLO9000: ดีกว่า เร็วกว่า แข็งแกร่งกว่า".
ความสามารถของโมเดลในการคาดการณ์ถึง 9000 หมวดหมู่รายการที่แตกต่างกันในขณะที่ยังคงทำงานแบบเรียลไทม์ทำให้ได้ชื่อ 9000 ไม่เพียงแต่เวอร์ชันโมเดลใหม่จะได้รับการฝึกฝนในชุดข้อมูลการตรวจจับวัตถุและการจัดหมวดหมู่ไปพร้อม ๆ กันเท่านั้น แต่ยังได้รับ Darknet-19 เป็นพื้นฐานใหม่ แบบอย่าง.
เนื่องจาก YOLOv2 ประสบความสำเร็จอย่างมากและกลายเป็นโมเดลการจดจำวัตถุที่ล้ำสมัยอย่างรวดเร็ว วิศวกรคนอื่นๆ ก็เริ่มทดลองอัลกอริทึมนี้และผลิตเวอร์ชัน YOLO ที่เป็นเอกลักษณ์ของตนเองขึ้นมา บางส่วนจะกล่าวถึงในประเด็นต่างๆ ในบทความ
3. โยลอฟ3
ในกระดาษ “YOLOv3: การปรับปรุงที่เพิ่มขึ้น” Joseph Redmon และ Ali Farhadi เผยแพร่อัลกอริทึมเวอร์ชันใหม่ในปี 2018 ซึ่งสร้างขึ้นจากสถาปัตยกรรม Darknet-53 ตัวแยกประเภทลอจิสติกส์อิสระเข้ามาแทนที่กลไกการเปิดใช้งาน softmax ใน YOLOv3
การสูญเสียเอนโทรปีแบบไบนารีถูกใช้ระหว่างการฝึก Darknet-19 ได้รับการปรับปรุงและเปลี่ยนชื่อเป็น Darknet-53 ซึ่งขณะนี้มี 53 เลเยอร์ convolutional นอกเหนือจากนั้น การคาดคะเนยังดำเนินการในสามมาตราส่วนที่แตกต่างกัน ซึ่งช่วยให้ YOLOv3 เพิ่มความแม่นยำในการทำนายสิ่งเล็กๆ น้อยๆ
YOLOv3 เป็นเวอร์ชันสุดท้ายของ YOLO ของโจเซฟ เรดมอน เนื่องจากเขาเลือกที่จะไม่ปรับปรุง YOLO เพิ่มเติมใดๆ อีก (หรือแม้แต่ในพื้นที่การมองเห็นด้วยคอมพิวเตอร์) เพื่อหลีกเลี่ยงไม่ให้งานของเขาส่งผลเสียต่อโลก ตอนนี้ส่วนใหญ่จะใช้เป็นจุดเริ่มต้นสำหรับการสร้างสถาปัตยกรรมการตรวจจับวัตถุที่มีลักษณะเฉพาะ
4. โยลอฟ4
Alexey Bochkovsky, Chien-Yao Wang และ Hong-Yuan Mark Liao ตีพิมพ์ “YOLOv4: ความเร็วและความแม่นยำสูงสุดของการตรวจจับวัตถุ” ในเดือนเมษายน 2020 ซึ่งเป็นการทำซ้ำครั้งที่สี่ของอัลกอริทึม YOLO
การเชื่อมต่อที่เหลือแบบถ่วงน้ำหนัก, การเชื่อมต่อข้ามฉาก-บางส่วน, การทำให้เป็นมาตรฐานข้ามชุดย่อย, การฝึกปรปักษ์กันตนเอง, การเปิดใช้งาน mish, บล็อกดร็อป และการสูญเสีย CIoU ทั้งหมดถูกนำมาใช้เป็นส่วนหนึ่งของสถาปัตยกรรม SPDarknet53
YOLOv4 เป็นทายาทของตระกูล YOLO อย่างไรก็ตาม มันถูกพัฒนาโดยนักวิทยาศาสตร์ที่แยกจากกัน (ไม่ใช่ Joseph Redmon และ Ali Farhadi) แกนหลัก SPDarknet53, การรวมปิรามิดเชิงพื้นที่, การรวมพาธ PANet เป็นคอ และส่วนหัว YOLOv3 ประกอบเป็นสถาปัตยกรรม
ด้วยเหตุนี้ เมื่อเปรียบเทียบกับระดับบนสุดของ YOLOv3 แล้ว YOLOv4 จึงมีความแม่นยำเฉลี่ยสูงขึ้น 10% และเมตริกเฟรมต่อวินาทีดีขึ้น 12%
5. โยลอฟ5
โยลอฟ5 เป็นโครงการโอเพนซอร์ซที่มีช่วงของแบบจำลองการระบุวัตถุและอัลกอริธึมตามแบบจำลอง YOLO ที่ได้รับการฝึกอบรมล่วงหน้าบนชุดข้อมูล COCO
YOLOv5 เป็นชุดของแบบจำลองการระบุวัตถุแบบสเกลผสม ได้รับการฝึกฝนเกี่ยวกับชุดข้อมูล COCO พร้อมความสามารถที่ง่ายดายสำหรับ TTA การประกอบโมเดล การพัฒนาไฮเปอร์พารามิเตอร์ และการส่งออกไปยัง ONNX, CoreML และ TFLite เนื่องจาก YOLOv5 ไม่ได้ใช้หรือพัฒนาแนวทางเฉพาะใดๆ จึงไม่สามารถเผยแพร่เอกสารที่เป็นทางการได้ เป็นเพียงส่วนขยาย PyTorch ของ YOLOv3
Ultranytics ใช้สถานการณ์นี้เพื่อเผยแพร่เวอร์ชัน "YOLO ใหม่" ภายใต้การสนับสนุน เนื่องจากมีโมเดลก่อนการฝึกอบรมห้าแบบที่สามารถเข้าถึงได้ หน้าแรกของ YOLOv5 จึงค่อนข้างตรงไปตรงมาและมีโครงสร้างและเขียนอย่างมืออาชีพ พร้อมด้วยบทเรียนและคำแนะนำมากมายเกี่ยวกับการฝึกอบรมและการใช้โมเดล YOLOv5
ข้อจำกัดของ YOLO
แม้ว่า YOLO ดูเหมือนจะเป็นเทคนิคที่ยอดเยี่ยมที่สุดในการแก้ปัญหา การตรวจจับวัตถุ ปัญหามันมีข้อเสียหลายประการ เนื่องจากแต่ละกริดสามารถระบุได้เพียงรายการเดียว YOLO จึงมีปัญหาในการตรวจจับและแยกสิ่งเล็กๆ ในภาพที่เกิดขึ้นเป็นกลุ่มๆ สิ่งเล็กๆ ในฝูง เช่น ฝูงมด เป็นเรื่องยากสำหรับ YOLO ในการระบุและระบุตำแหน่ง
เมื่อเทียบกับวิธีการระบุวัตถุที่ช้ากว่าอย่างเห็นได้ชัด เช่น Fast RCNN YOLO มีลักษณะเฉพาะด้วยความแม่นยำที่น้อยกว่าเช่นเดียวกัน
เริ่มใช้ YOLOv5
หากคุณสนใจที่จะเห็นการทำงานของ YOLOv5 โปรดดูที่ GitHub อย่างเป็นทางการ และ YOLOv5 ใน PyTorch.
สรุป
เวอร์ชันเริ่มต้นของ YOLOv5 นั้นรวดเร็ว มีประสิทธิภาพ และใช้งานง่ายมาก แม้ว่า YOLOv5 จะไม่เพิ่มสถาปัตยกรรมโมเดลใหม่ใดๆ ให้กับตระกูล YOLO แต่ก็มีเฟรมเวิร์กการฝึกอบรมและการใช้งาน PyTorch ใหม่ที่ปรับปรุงความทันสมัยสำหรับเครื่องตรวจจับวัตถุ
นอกจากนี้ YOLOv5 ยังเป็นมิตรกับผู้ใช้เป็นอย่างยิ่งและ "แกะกล่อง" ออกมาพร้อมสำหรับใช้กับวัตถุที่สั่งทำพิเศษ
เขียนความเห็น