Ang Object detection ay isang uri ng pagkakategorya ng imahe kung saan inaasahan ng isang neural network ang mga item sa isang imahe at gumuhit ng mga bounding box sa paligid nila. Ang pag-detect at pag-localize ng mga bagay sa isang imahe na tumutugma sa isang preset na hanay ng mga klase ay tinutukoy bilang object detection.
Ang Object detection (kilala rin bilang object recognition) ay isang partikular na makabuluhang subdomain ng Computer Vision dahil ang mga gawain tulad ng detection, identification, at localization ay nakakahanap ng malawak na aplikasyon sa mga real-world na konteksto.
Ang diskarte sa YOLO ay makakatulong sa iyo na gawin ang mga gawaing ito. Sa sanaysay na ito, susuriin nating mabuti ang YOLO, kasama kung ano ito, kung paano ito gumagana, iba't ibang variation, at higit pa.
Kaya, ano ang YOLO?
Ang YOLO ay isang paraan para sa real-time na pagkilala sa bagay at pagkilala sa mga litrato. Ito ay isang acronym para sa You Only Look Once. Redmond et al. iminungkahi ang diskarte sa isang papel na unang inilathala noong 2015 sa IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
Ang OpenCV People's Choice Award ay ibinigay sa papel. Hindi tulad ng mga naunang pamamaraan ng pagkilala sa bagay, na nag-repurpose ng mga classifier para mag-detect, iminungkahi ng YOLO ang paggamit ng end-to-end neural network na hinuhulaan ang mga bounding box at probabilities ng klase nang sabay-sabay.
Gumagawa ang YOLO ng mga makabagong resulta sa pamamagitan ng pagsasagawa ng panimulang bagong diskarte sa pagkilala ng bagay, na madaling nahihigitan ang pagganap ng mga dating pamamaraan ng pagtuklas ng bagay na real-time.
Gumagana ang YOLO
Hinahati ng paraan ng YOLO ang larawan sa mga N grid, bawat isa ay may pantay na laki ng sektor ng SxS dimensional. Ang bawat isa sa mga N grid na ito ay namamahala sa pag-detect at paghahanap ng bagay na nilalaman nito.
Ang mga grid na ito, sa turn, ay nagtataya ng mga B bounding box na coordinate na nauugnay sa mga cell coordinates, pati na rin ang pangalan ng item at posibilidad ng bagay na naroroon sa cell. Dahil sa maraming mga cell na hinuhulaan ang parehong item na may iba't ibang mga hula sa bounding box, ang diskarteng ito ay lubos na binabawasan ang pagkalkula dahil ang parehong pagtuklas at pagkilala ay pinangangasiwaan ng mga cell mula sa larawan.
Gayunpaman, gumagawa ito ng maraming duplicate na hula. Upang matugunan ang problemang ito, gumagamit ang YOLO ng Non-Maximal Suppression. Pinipigilan ng YOLO ang lahat ng mga bounding box na may mas mababang mga marka ng posibilidad sa Non-Maximal Suppression.
Ginagawa ito ng YOLO sa pamamagitan ng pagsusuri sa mga marka ng posibilidad na nauugnay sa bawat opsyon at pagpili ng may pinakamataas na marka. Ang mga bounding box na may pinakamalaking Intersection over Union na may kasalukuyang high probability na bounding box ay pinipigilan.
Ang prosesong ito ay ipinagpatuloy hanggang sa makumpleto ang mga bounding box.
Iba't ibang variation ng YOLO
Titingnan natin ang ilan sa mga pinakakaraniwang bersyon ng YOLO. Magsimula na tayo.
1. YOLOv1
Ang unang bersyon ng YOLO ay inihayag noong 2015 sa publikasyong "Isang beses Ka Lang Tumingin: Pinag-isang, Real-Time na Object Detection” ni Joseph Redmon, Santosh Divvala, Ross Girshick, at Ali Farhadi.
Dahil sa bilis, katumpakan, at kakayahang matuto nito, mabilis na pinamunuan ng YOLO ang lugar ng pagkilala sa bagay at naging pinakamalawak na ginagamit na algorithm. Sa halip na tugunan ang pagtuklas ng bagay bilang isang isyu sa pag-uuri, nilapitan ito ng mga may-akda bilang isang problema sa regression na may mga kahon na pinaghihiwalay sa heograpiya at nauugnay na mga probabilidad ng klase, na kanilang nalutas gamit ang isang solong neural network.
Ang YOLOv1 ay nagpoproseso ng mga larawan sa 45 na mga frame bawat segundo sa real-time, samantalang ang isang mas maliit na variant, ang Mabilis na YOLO, ay naproseso sa 155 na mga frame bawat segundo at nakakuha pa rin ng dobleng mAP ng iba pang mga real-time na detector.
2. YOLOv2
Makalipas ang isang taon, noong 2016, inilabas nina Joseph Redmon at Ali Farhadi ang YOLOv2 (kilala rin bilang YOLO9000) sa papel na “YOLO9000: Mas Mabuti, Mas Mabilis, Mas Malakas. "
Ang kapasidad ng modelo na maghula ng kahit 9000 natatanging kategorya ng item habang tumatakbo pa rin sa real-time ay nakakuha ito ng pagtatalagang 9000. Hindi lamang ang bagong bersyon ng modelo ay sabay-sabay na sinanay sa pagtuklas ng bagay at mga dataset ng pag-uuri, ngunit nakuha din nito ang Darknet-19 bilang bagong baseline modelo.
Dahil ang YOLOv2 ay isa ring malaking tagumpay at mabilis na naging susunod na makabagong modelo ng pagkilala sa bagay, nagsimulang mag-eksperimento ang iba pang mga inhinyero sa algorithm at gumawa ng sarili nilang mga natatanging bersyon ng YOLO. Ang ilan sa mga ito ay tatalakayin sa iba't ibang punto sa papel.
3. YOLOv3
Sa papel"YOLOv3: Isang Incremental na Pagpapabuti,” Joseph Redmon at Ali Farhadi ay naglathala ng bagong bersyon ng algorithm noong 2018. Itinayo ito sa arkitektura ng Darknet-53. Pinalitan ng mga independiyenteng logistic classifier ang softmax activation mechanism sa YOLOv3.
Ang binary cross-entropy loss ay ginamit sa panahon ng pagsasanay. Ang Darknet-19 ay pinahusay at pinalitan ng pangalan na Darknet-53, na ngayon ay may 53 convolutional layers. Bukod doon, ang mga hula ay ginawa sa tatlong magkakaibang mga sukat, na nakatulong sa YOLOv3 na mapahusay ang katumpakan nito sa paghula ng maliliit na bagay.
Ang YOLOv3 ay ang panghuling bersyon ng YOLO ni Joseph Redmon, dahil pinili niyang huwag gumawa ng anumang karagdagang pagpapahusay sa YOLO (o maging sa lugar ng computer vision) upang maiwasan ang kanyang trabaho na magkaroon ng masamang impluwensya sa mundo. Ito ngayon ay kadalasang ginagamit bilang panimulang punto para sa pagbuo ng mga natatanging object-detection architecture.
4. Yolov4
Inilathala nina Alexey Bochkovskiy, Chien-Yao Wang, at Hong-Yuan Mark Liao ang "YOLOv4: Pinakamainam na Bilis at Katumpakan ng Object Detection” noong Abril 2020, na siyang pang-apat na pag-ulit ng YOLO algorithm.
Ang Weighted Residual Connections, Cross-Stage-Partial Connections, cross mini-batch normalization, self-adversarial training, mish activation, drop block, at CIoU loss ay ipinakilala lahat bilang bahagi ng SPDarknet53 architecture.
Ang YOLOv4 ay isang inapo ng pamilyang YOLO, gayunpaman, ito ay binuo ng magkahiwalay na mga siyentipiko (hindi sina Joseph Redmon at Ali Farhadi). SPDarknet53 backbone, spatial pyramid pooling, PANet path-aggregation bilang leeg, at YOLOv3 head ang bumubuo sa arkitektura nito.
Bilang resulta, kung ihahambing sa magulang nito, ang YOLOv3, ang YOLOv4 ay nakakamit ng 10% na mas mataas na Average Precision at 12% na mas mahusay na mga sukatan ng Frames Per Second.
5. YOLOv5
YOLOv5 ay isang open-source na proyekto na may kasamang hanay ng mga object identification model at algorithm batay sa YOLO model na na-pre-trained sa COCO dataset.
Ang YOLOv5 ay isang koleksyon ng mga modelo ng pagkakakilanlan ng bagay na may sukat na tambalan sinanay sa dataset ng COCO, na may madaling kakayahan para sa TTA, pagpupulong ng modelo, pagbuo ng hyperparameter, at pag-export sa ONNX, CoreML, at TFLite. Dahil ang YOLOv5 ay hindi nagpapatupad o bumuo ng anumang mga natatanging diskarte, ang pormal na papel ay hindi mailabas. Ito ay simpleng extension ng PyTorch ng YOLOv3.
Ginamit ng Ultranytics ang senaryo na ito para isapubliko ang "bagong YOLO" na bersyon sa ilalim ng sponsorship nito. Dahil mayroon ding limang pre-trained na modelong naa-access, ang homepage ng YOLOv5 ay medyo prangka at propesyonal na nakabalangkas at nakasulat, na may ilang mga aralin at mungkahi sa pagsasanay at paggamit ng mga modelong YOLOv5.
Mga limitasyon ng YOLO
Bagama't lumilitaw na ang YOLO ang pinakadakilang pamamaraan para sa paglutas pagtuklas ng bagay mga problema, mayroon itong isang bilang ng mga kakulangan. Dahil isang item lang ang makikilala ng bawat grid, nahihirapan ang YOLO na tuklasin at ihiwalay ang maliliit na bagay sa mga larawang nangyayari sa mga grupo. Ang maliliit na bagay sa mga pulutong, tulad ng isang pulutong ng mga langgam, ay mahirap para sa YOLO na makilala at mahanap.
Kung ihahambing sa mas mabagal na paraan ng pagkilala sa bagay tulad ng Mabilis na RCNN, ang YOLO ay nailalarawan din ng hindi gaanong katumpakan.
Simulan ang paggamit ng YOLOv5
Kung interesado kang makakita ng YOLOv5 na kumikilos, tingnan ang opisyal na GitHub at YOLOv5 sa PyTorch.
Konklusyon
Ang unang bersyon ng YOLOv5 ay napakabilis, gumaganap, at simpleng gamitin. Bagama't hindi nagdaragdag ang YOLOv5 ng anumang bagong arkitektura ng modelo sa pamilyang YOLO, nagbibigay ito ng bagong balangkas ng pagsasanay at deployment ng PyTorch na nagpapahusay sa estado ng sining para sa mga object detector.
Higit pa rito, ang YOLOv5 ay napaka-user-friendly at "out of the box" na handang gamitin sa mga pasadyang bagay.
Mag-iwan ng Sagot