NIE JE YOLO AKO YOLO
Rozpoznávanie objektov je oblasťou počítačového videnia, ktorá umožňuje identifikovať a lokalizovať objekty na obrázkoch alebo videách. V posledných rokoch bol v tejto oblasti zaznamenaný významný pokrok, a to aj vďaka konvolučným neurónovým sieťam (CNN). Aj preto sa rozpoznávanie objektov stále viac a viac využíva v aplikáciách v reálnom svete. Od sledovacích systémov, autonómnych automobilov alebo analýz obrazov v medicíne.
Autor: Jakub Gedera, Software Engineer, Essential Data
Rozpoznávanie objektov je oblasťou počítačového videnia, ktorá umožňuje identifikovať a lokalizovať objekty na obrázkoch alebo videách. V posledných rokoch bol v tejto oblasti zaznamenaný významný pokrok, a to aj vďaka konvolučným neurónovým sieťam (CNN). Aj preto sa rozpoznávanie objektov stále viac a viac využíva v aplikáciách v reálnom svete. Od sledovacích systémov, autonómnych automobilov alebo analýz obrazov v medicíne.
V Essential Data na projekte pre zákazníka pracujeme s rozpoznávaním objektov. Využívali sme prístup, keď sme mali natrénovaný model na rozpoznávanie objektov, ktoré zákazník definoval. Problém nastal, keď sa zákazník rozhodol, že potrebuje rozpoznávať aj iné objekty. Trénovanie nového modelu nie je efektívnym riešením, pretože nie je flexibilné pre naše účely. Nie len z časového hľadiska ale aj preto, že zákazník nevie dopredu úplne presne povedať, ktoré objekty bude ešte v budúcnosti potrebovať rozpoznať. Hľadali sme vhodnejšie riešenie, až sme sa dopracovali k technike Zero Shot learning, ktorú v tomto príspevku predstavíme.
Spomenieme aj model YOLO World, ktorý bol predstavený len nedávno, a ktorý sme úspešne využili v praxi. Model YOLO-World bol vhodným nástrojom aj v našom projekte, kde sa požiadavky klienta na rozpoznanie rôznych objektov neustále menia, a aj budú meniť. Zároveň sme si v Essential Data ušetrili čas trénovaním a aktualizovaním modelu.
Ako rozpoznať objekty, ktoré sme nikdy predtým nevideli
Zero-shot learning v počítačovom videní je prístup, ktorý umožňuje rozpoznávanie aj takých objektov, ktoré sa neobjavili v trénovacej množine. Rozpoznávanie funguje na základe popisu objektu. Namiesto tradičných prístupov, ktoré sa spoliehajú na obrovské množstvo anotovaných datasetov, Zero shot learning umožňuje kategorizovanie dovtedy nevidených objektov. Tradičné modely rozpoznávania objektov, ako napríklad Faster R-CNN, SSD alebo YOLO, sú navrhnuté tak, aby identifikovali objekty v rámci vopred určenej množiny kategórií, ktoré boli definované pri trénovaní. To obmedzuje ich použitie na doménu, na ktorej boli natrénované. (1) Tu ale nastáva problém, s ktorým sme sa v praxi stretli aj my, keď zákazník zmenil svoju požiadavku a požadoval rozpoznanie nových objektov,ktoré sme nemali natrénované. Rozšírenie modelu o rozpoznanie nových objektov si vyžaduje natrénovanie nového modelu na novej vzorke dát a ich príprava, respektíve anotácia, je časovo náročná. Okrem toho nemusí byť k dispozícii dostatok dát, na ktorých by sme rozpoznanie objektu natrénovali. Prípadne, trénovacie datasety môžu byť nevyvážené a to znižuje presnosť modelov.
Zero-Shot learning prístup je užitočný, pretože rieši tieto problémy. Medzi prvé modely v tomto smere možno zaradiť modely GLIP a Grounding DINO. Hlavná myšlienka spočíva v tom, že model sa učí priraďovať jedinečné identifikátory k rôznym obrazovým vstupom na základe ich obsahu. Obrázok-popis. To zahrňuje rozpoznávanie podobnosti medzi rôznymi obrazmi a zatriedenie podľa podobnosti.
Aby sme ale nespomínali len výhody, oproti tradičným prístupom klasifikácie a detekcie, spomenieme aj jednu zásadnú nevýhodu. Modely sú často väčšie a výpočtovo náročnejšie, čo môže brániť použitiu v aplikáciách v reálnom svete. Našťastie, 31. januára 2024, Tencent AI Lab predstavil nový model z tejto kategórie modelov, YOLO World. Ten bol navrhnutý tak, aby vyriešil zásadné obmedzenie týchto modelov, rýchlosť.
Je použitie YOLO-World vhodné v reálnej aplikácii?
Podľa štúdie (YOLO-World: Real-Time Open-Vocabulary Object Detection 2)(2) YOLO-World model dosahuje rovnakú úspešnosť ako doteraz používané metódy v danej oblasti, pričom je rýchlejší 20-násobne.
Zrýchlenie dosiahol zmenou architektúry, keď skombinoval klasický YOLO prístup spolu s Faster-CNN. To otvára nové možnosti využitia rozpoznávania objektov v reálnom čase, keďže požadovaný výkon je najviac obmedzujúcim faktorom pre využitie Zero-shot learning prístupu v praxi . My sme YOLO-World model využili v real-time sledovacej aplikácii, keď zákazník dodefinoval svoju požiadavku, kde požadoval rozpoznanie nových objektov. Pri trénovaní definované objekty neboli a preto by bolo potrebné natrénovať nový model.
Čo ale v prípade, keď bude požadovať ďalšie zmeny a identifikáciu nových objektov? Opakované trénovanie nových modelov nie je riešením, a preto sme sa odvážili vyskúšať tento najnovší model v reálnej monitorovacej aplikácii. Pre naše účely je tento model postačujúci a flexibilný v prípade ďalších zmien.
Je to ale riešenie na všetko? Je YOLO-World model, ktorý uspokojí všetky potreby a už nebudeme musieť trénovať doménové modely? Nie. Stále existujú prípady, keď je vhodnejšie zvoliť tradičný prístup natrénovania rozpoznávania objektov pre konkrétnu doménovú oblasť. Zrejmým nedostatkom je rýchlosť, ktorá je rádovo lepšia, ako predchádzajúce Zero-shot modely, avšak stále zaostáva za štandardami. Rovnako je menej úspešný ako natrénované modely detektorov s vopred špecifikovanými triedami.
Existujú však aj prípady, keď sa použitie YOLO-World modelu javí ako užitočné. Ide o prípady, keď máme pod kontrolou prostredie, v ktorom vykonávame rozpoznávanie objektov. Tento predpoklad nám umožnil využiť tento model pre naše účely. Ďalším príkladom využitia tohto modelu je sledovanie výroby produktov. Rovnako aj tu je nepravdepodobné, aby neočakávaný objekt vstúpil do monitorovaného priestoru.
My sme to vyskúšali
Jednou z výziev, s ktorou zápasí nie len YOLO-World model, ale aj ostatné modely používané pri rozpoznávaní objektov je to, ako nastaviť prah, kedy bude objekt rozpoznaný. Pre väčšinu populárnych modelov počítačového videnia hodnota spoľahlivosti nad 80 % vo všeobecnosti predstavuje „vysokú spoľahlivosť“. YOLO World tento trend nenasleduje. Už hodnoty ako 5 %, 1 % alebo dokonca 0,1 % správne rozpoznávajú objekty. (3) Aby sa zabezpečilo správne rozpoznanie objektu, je potrebné nastaviť prah pre každý sledovaný objekt samostatne. Napríklad detegovanie osoby môže dosahovať najlepšie výsledky pri pravdepodobnosti nad 70%, zatiaľ čo pri inom objekte to kľudne môže byť len 10%.
Ďalším problémom, na ktorý je treba myslieť pri použití YOLO World modelu je to, že okrem predikcie jednotlivých objektov často predpovedá aj skupiny objektov. Navyše, tieto skupinové objekty majú často vysokú spoľahlivosť a preto ich nemožno filtrovať tradičnými metódami. Odporúčame preto odfiltrovať predikcie, ktoré majú plochu väčšiu ako určité percento z celého obrázka. Rovnako aj tu je vhodné definovať to pre každý objekt samostatne.
Predtým, ako sme tento model využili v praxi sme vykonali štúdiu, či je vhodný na rozpoznávanie objektov, ktoré zákazník požaduje. Implementácia bola hotová v priebehu pár minút. V prostredí Python sme nainštalovali potrebné závislosti a stiahli YOLO-World model. V ponuke sú 3 rôzne verzie, S, M a L, z ktorých každá má svoje ID. Následne je potrebné definovať triedy, ktoré chceme rozpoznať. V priloženej vzorovej časti kódu sú minimálne požiadavky pre fungujúci skript:
# model
model = YOLO(‚yolov8s-world.pt‘)
# object classes
classNames = [„ladder“, „person“, „mobile“]
model.set_classes(classNames)
Takto sme overili, či tento model spĺňa nové požiadavky zákazníka na rozpoznávanie rebríkov vo videu. A to všetko bez množstva prebdených nocí anotovaním nových dát. Keďže už nie je potrebné s každou zmenovou požiadavkou na rozpoznanie nových objektov pretrénovať a aktualizovať použitý model. Stačí doplniť objekt do množiny tried, ktoré chceme detegovať a aplikácia je pripravená.
Záver
YOLO-World model predstavuje sľubný prístup k rozpoznávaniu objektov v reálnom čase. Využitím pokročilých techník strojového učenia a počítačového videnia, tento model umožňuje rozpoznanie širokej škály objektov v reálnom čase bez predchádzajúcej znalosti rozpoznávaných objektov. Jeho presnosť a rýchlosť z neho robí cenný nástroj pre rôzne aplikácie vrátane sledovania alebo autonómnych systémov.
V Essential Data sme tento model využili na projekte SecureConnect Pro (4), Softvér, ktorý je navrhnutý na integráciu kamerových systémov, zabezpečovacích systémov a monitorovanie fyzických perimetrov.
Určite však je ešte potrebný ďalší výskum a vývoj, ktorý tento model, YOLO-World, optimalizuje, čím sa zabezpečí jeho robustnosť a škálovateľnosť v rôznych oblastiach využitia. Nám sa už podarilo aplikovať tento model v praxi, pretože nám to umožnili podmienky, v ktorých YOLO-World dokáže efektívne fungovať.
Zdroje:
1. Piotr Skalski, James Gallagher. (Feb 13, 2024). YOLO-World: Real-Time, Zero-Shot Object Detection. Roboflow Blog: https://blog.roboflow.com/what-is-yolo-world/
2. YOLO-World: Real-Time Open-Vocabulary Object Detection, T Cheng, L Song, Y Ge, W Liu, X Wang, Y Shan, CVPR 2024
3. Jacob Witt. (Feb 23, 2024). Tips and Tricks for Prompting YOLO World. Roboflow Blog: https://blog.roboflow.com/yolo-world-prompting-tips/
4. https://essential-data.sk/secureconnect-pro/