In veel computer vision-toepassingen zijn detectie-algoritmen het 'brood en boter', of het nu gaat om het detecteren van gezichten, mensen, voertuigen of andere objecten. Als u een computer vision-toepassing ontwikkelt, bent u waarschijnlijk bekend met enkele van de moderne detectie-algoritmen zoals single shot detector (SSD) of YOLO (You Only Look Once). Hoewel deze algoritmen voor veel toepassingen vrij goed werken, leveren de ultramoderne detectiemodellen een toename in prestaties, nauwkeurigheid en functionaliteit. Als embedded ontwikkelaar moet je primaire taak voor het gebruik van een detectie-algoritme het verzamelen en labelen van de trainingsgegevens voor het model zijn (hoewel je misschien een goede datawetenschapper nodig hebt om hierbij te helpen). Maar u krijgt ook de taak om het meest geschikte detectie-algoritme voor uw toepassing te selecteren – en het lijkt erop dat er regelmatig nieuwe opduiken. Deze blog geeft je enig inzicht in de voor- en nadelen van drie populaire algoritmen, waaronder SSD, YOLO en CenterNet.

Detectie begint met een sterke ruggengraat

Classificatiemodellen, bijvoorbeeld MobileNet en ResNet, bevatten over het algemeen twee delen: een feature-extractor (ook wel bekend als de backbone) en de classificatieheader (of output). Een volledig classificatiemodel heeft een classificatieheader nodig die de inferentieresultaten levert. In combinatie met een detectiemodel wordt de classificatieheader echter niet gebruikt, dus de uitvoer van de backbone wordt rechtstreeks ingevoerd in de kop van het detectiemodel.

Er zijn veel keuzes als het gaat om het selecteren van een backbone voor een detectiemodel, hoewel sommige detectiemodellen zijn ontworpen met specifieke backbones. YOLO is bijvoorbeeld meestal verbonden met een Darknet-backbone. SSD wordt meestal geassocieerd met MobileNet. CenterNet heeft meer flexibiliteit en de backbone, zoals ResNet, DLA, Hourglass en andere, wordt geselecteerd op basis van prestatie- en nauwkeurigheidseisen.

Meestal kunt u gratis backbones en detectiemodellen vinden in openbare modeldierentuinen. Deze zijn vooraf getraind met datasets, dus u hoeft ze niet helemaal opnieuw te trainen. Laat Google en anderen dit zware werk doen op hun enorme cloudgebaseerde machines. U wilt echter ook wat fine-tuning doen met gegevens die specifiek zijn voor uw toepassing. U hoeft waarschijnlijk maar een paar tijdperken te trainen voor deze fijnafstemming van de ruggengraat en detector. Het NXP eIQ™ ML-softwareontwikkelingsplatform is ideaal om deze finetuningfase mogelijk te maken. De eIQ-software met de eIQ Toolkit-workflowtool maakt gebruiksvriendelijke, end-to-end ML-toepassingsontwikkeling mogelijk, inclusief de mogelijkheid om vooraf getrainde modellen te importeren, deze te verfijnen met uw toepassingsspecifieke gegevens, de resultaten te valideren en te profileren , allemaal met de ondersteuning van de intuïtieve GUI van de eIQ Portal. OPMERKING: je kunt hier meer over lezen in NXP's blog Machine Learning Goes Mainstream NXP's eIQ ML Software Development Environment is nu slimmer en vriendelijker geworden.

YOLO- en SSD-functies

Op het fundamentele niveau is een belangrijk verschil tussen detectiealgoritmen hoe ze hun begrenzingskaders afleiden voor het lokaliseren van de interessegebieden. Zowel YOLO als SSD doen gelijktijdig voorspellingen voor zowel lokalisatie als classificatie. De verwerking begint met het extraheren van functies en gaat vervolgens verder met het gebruik van vooraf gedefinieerde ankers om de locatie van de begrenzingsvakken vast te stellen. De algoritmen voeren vervolgens begrenzingskaderregressies uit om kansen vast te stellen op basis van de door de gebruiker gedefinieerde drempel – met andere woorden, voor een bepaald begrenzend kader, hoe zeker is het algoritme dat het een object van belang bevat. En in een van de laatste stappen voert het algoritme non-max suppression (NMS) uit, wat een soort laagdoorlaatfilter is dat de vakjes met lage waarschijnlijkheidsscores verwijdert. (OPMERKING – alle ankerboxbenaderingen vertragen de verwerking omdat er veel extra stappen zijn om te verwerken.) Elk selectiekader is gekoppeld aan een lijst met labels, zoals persoon of boot, en hun waarschijnlijkheidsscores; deze zijn afgeleid van de classifier. Als elk selectiekader een object bevat met een bijbehorende lijst met labels, kunt u een drempelwaarde instellen om selectiekaders met een lage waarschijnlijkheid te elimineren. Voor een extreem voorbeeld: het blauwe selectiekader dat in figuur 1 wordt getoond, heeft alle labels (bijv. persoon, boot), maar met zeer lage waarschijnlijkheidsscores.

Figuur 1. Demonstratie van een extreem voorbeeld van een begrenzingsvak met een objectwaarschijnlijkheid van bijna nul.

De eerste versie van YOLO werd in 2015 gepubliceerd en betekende een grote stap voorwaarts voor objectdetectie. Latere versies in zijn evolutie hebben tal van functies, prestatie- en grootteverbeteringen gebracht. Ik zal hier niet verder in detail treden en het aan jou overlaten om de overvloed aan papieren over deze modellen te zoeken, maar ik wil wel op een paar dingen wijzen. Ten eerste hebben alle YOLO-versies Tiny-versies die schalen met een lagere resolutie gebruiken, waardoor de nauwkeurigheid mogelijk enigszins wordt verminderd, vooral voor kleinere objecten. Zoals de beschrijving aangeeft, zijn kleine versies kleiner en sneller te gebruiken. Ten tweede, en ik denk dat het duidelijk is om te zeggen – u moet altijd proberen de nieuwste versie te gebruiken, ervan uitgaande dat de implementaties stabiel zijn en dat het doelapparaat en het framework alle netwerkoperators ondersteunen.

To the point met CenterNet

Een belangrijk verkoopkenmerk van CenterNet is dat het een heatmap gebruikt om middelpunten van objecten te vinden, in plaats van ankers en vooraf gedefinieerde vakken. Het model heeft nog steeds een raamwerk nodig om de middelpunten van de heatmap (gaussiaanse pieken) op te slaan, maar het schaalt beter dan ankers omdat je het maximale aantal mogelijke objecten per afbeelding kunt instellen, waardoor berekeningen en overlappingen worden verminderd (Figuur 2).


Figuur 2. YOLO-begrenzingsvakken (links) vergelijken met CenterNet-heatmaps (rechts).

Met CenterNet is het extraheren van functies eenvoudiger omdat elke heatmap samen met de klasse wordt gegenereerd. Bovendien levert deze aanpak minder trainingstijd op en minder overhead voor nabewerking, aangezien de NMS niet nodig is. Een ander voordeel van CenterNet is de flexibiliteit om detecties van meerdere taken te ondersteunen. Met een enkele doorgang kan dit model pose-inschatting (belangrijkste punten), objecttracking, instantiesegmentatie en zelfs 3D-detectie uitvoeren.

Laat inbellen met Au-Zone's Optimized CenterNet

Het is mogelijk om CenterNet rechtstreeks vanuit een modeldierentuin te gebruiken, als u de tijd, het geduld en de kennis heeft om het model aan te passen en om te scholen voor uw gebruiksscenario's! Modeldierentuinen bieden modellen voor basisevaluatie en benchmarking, waaronder MobileNets, ResNets, SSD, YOLO, CenterNet, enz. Dit zijn referentie-implementaties die zijn getraind op een van de algemene openbare datasets om appels met appels te vergelijken (bijv. COCO, OpenImages , VOC). Om deze openbare modellen effectief in je eigen applicatie te gebruiken, moet je ze opnieuw trainen met je eigen dataset en heb je ook de broncode-implementatie nodig om tweaks te maken om het opnieuw te trainen. Met andere woorden, direct vanuit de dierentuin kun je deze niet trainen voor je eigen toepassing zonder een niet-triviale investering van tijd en moeite. Au-Zone heeft deze expertise en bespaart u tijd – en veel!

Na evaluatie van de standaard, kant-en-klare implementaties van CenterNet op verschillende architecturen, kwamen we tot de conclusie dat er aanzienlijke prestatieverbeteringen beschikbaar waren met een aangepaste implementatie van het standaardmodel dat is geoptimaliseerd voor implementatie op de NPU in de i.MX 8M Plus-toepassingsprocessors van NXP. Au-Zone heeft vele maanden in ontwerp en ontwikkeling geïnvesteerd om een ​​volledig geoptimaliseerde, productieklare versie te creëren die beter presteert dan de kant-en-klare versies gericht op ARM Cortex A (Figuur 3) en volledig opnieuw te trainen met uw datasets. Au-Zone biedt dit model aan als onderdeel van zijn ModelPack – zodat u zich kunt concentreren op uw trainingsgegevens en de andere delen van uw embedded vision-toepassing. De aangepaste implementatie van Au-Zone, geïmplementeerd op de NPU van de i.MX 8M Plus, levert aanzienlijk betere prestaties dan het standaard, kant-en-klare model dat wordt ingezet op de quad A53-kernen. In de praktijk is deze kloof nog groter, omdat je normaal gesproken niet 100% van de bandbreedte van de A53 zou besteden aan het uitvoeren van de inferentie.

Figuur 3. Standaard CenterNet op Quad A53 versus geoptimaliseerde implementatie op NPU

Brad Scott
Mede-oprichter en voorzitter, Au -Zone Technologieën

0

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *