Back to Blogs
Blog Img

​Machine vision: hoe neurale netwerken beelden steeds beter begrijpen

In ons webinar ‘Machine vision: learning increasingly complex real-world scenarios with limited annotated data’ heeft computer vision-expert John Beuving uitgelegd hoe neurale netwerken op basis van deep learning steeds beter in staat zijn om afbeeldingen en video’s te begrijpen. In deze samenvatting van het webinar zetten we de belangrijkste feiten en lessen uiteen.

John Beuving weet waarover hij het heeft: hij draait al een kleine twee decennia mee in de computer vision-wereld. In 2003 begon hij bij Siemens Mobile. Via Dacolian en DySI Analytics kwam hij bij SmarterVision terecht, waar hij als computer vision-expert en CTO sociaal relevante computer vision-oplossingen ontwikkelt. Hij promoveerde in Delft op model-free tracking; sinds kort bouwt hij als vrijwilliger bij de NGO Sensing Clues machine vision-oplossingen voor het behoud van flora en fauna.

Missie: afbeeldingen en video’s begrijpen

Beuving legt in het webinar eerst uit hoe SmarterVision computer vision inzet voor bijvoorbeeld het monitoren van bruggen, het detecteren van smokkelen naar de gevangenis op basis van camerabeelden en het opsporen van epileptische aanvallen bij jonge kinderen op een niet-invasieve manier.

De software-stack die SmarterVision daarvoor gebruikt omvat onder meer:

-Image classification: het classificeren van een hele afbeelding.

-Object detection: het identificeren van objecten en de positie daarvan.

-Sementic segmentation: welke pixels horen er bij een object?

-Instance segmentation: het identificeren van verschillende instanties van objecten.

-Pose estimation: de verschillende houdingen van objecten analyseren.

-Tracking: het traceren van objecten binnen een serie afbeeldingen.

Video levert extra uitdagingen op ten opzichte van losse afbeeldingen, legt Beuving uit. “Je moet namelijk niet alleen bepalen wat er gebeurt in een video, maar ook wanneer het precies begint en eindigt.” Het lastige daarbij is met name het vraagstuk hoe je software of detectie creëert voor events die niet vaak gebeuren? Smokkelwaren die over een gevangenismuur worden gegooid zijn een goed voorbeeld: het gebeurt zelden, dus is er nauwelijks beeld van.

Deep learning-revolutie

Deep learning, oftewel een vorm van machine learning die is gebaseerd op artificiële neurale netwerken, biedt uitkomst. Sinds 2014 is deep learning enorm verbeterd, met name dankzij betere grafische processors, grotere beschikbare datasets (zo bevat ImageNet miljoenen afbeeldingen voor visual object recognition software die handmatig zijn geannoteerd) en geavanceerde leermethodes voor deep learning waaronder dropout en batch normalization.

Beuving: “Deep learning-modellen zijn data-inefficiënt. Wil je de prestaties verbeteren? Dan heb je heel veel geannoteerde data nodig, maar er is maar een beperkte hoeveelheid beschikbaar. Er komen weliswaar gigantische hoeveelheden data binnen, alleen al op YouTube meer dan 80 jaar video per dag, maar dat is vooral ongeannoteerd. We willen leren van data, maar we kunnen niet alles labelen. Gelukkig worden de grenzen steeds verder opgerekt dankzij onderzoek. Nieuwe technieken en datasets zorgen ervoor dat we met dezelfde hoeveelheid data een beter begrip van video hebben.”

De dataparadox

Alleen: nog steeds is er veel data nodig. Het liefst zouden we nog meer begrijpen met nog minder – of zelfs helemaal geen – data. Daar komt de dataparadox om de hoek kijken: hoe meer we begrijpen van een afbeelding of video, hoe moeilijker het is om meer data te krijgen. Complicerende factor daarbij is dat veel beeldmateriaal uniek is: voor zeldzame of moeilijke situaties is het lastig om meer data te krijgen.

Dataprobleem oplossen: meer data

De eerste stap is eigenlijk altijd: zorg dat je meer geannoteerde data hebt. Dé go to-manier daarvoor is momenteel supervised learning, waarbij een mens alle datapunten labelt. Vervolgens wordt een classificator getraind op basis van deze datapunten.

Data genereren via GAN’s en game engines

De supervisie is te limiteren door data te genereren. Dat kan bijvoorbeeld aan de hand van game engines en generative adversarial networks (GAN’s). Game engines, oftewel de softwareontwikkelingsomgevingen waarmee videogames worden gebouwd, kun je onder andere inzetten voor het genereren van synthetische data die je kunt gebruiken om te trainen op foreground detection en tracking. Vooral met de game engine Unity boek je fantastische resultaten.

Een generative adversarial network leert om afbeeldingen te genereren die dezelfde kenmerken hebben als de afbeeldingen in de trainingsset, waardoor je afbeeldingen van hoge kwaliteit kunt creëren. Dit is ook de onderliggende techniek voor het maken van deepfakes.

Semiautomatische supervised learning

Bij semiautomatische methodes voor supervised learning zoals pseudo-labeling, active learning en point annotations hoeft de gebruiker niet alle datapunten zelf te analyseren. Pseudo-labeling wil zeggen dat je de supervisie beperkt of vereenvoudigt door de informatiefste data te vinden. Je traint het model met een batch gelabelde data, het getrainde model voorspelt labels voor de ongelabelde data en vervolgens wordt het model getraind met de pseudo-gelabelde en gelabelde datasets samen.

Van active learning is sprake als menselijke experts alle moeilijke datapunten labelen. De classificator wordt daarna opnieuw getraind met de nieuwe datapunten. De point annotations-methode voor video is gebaseerd op object detection, waarbij je met beperkte supervisie acties kunt lokaliseren. In een video worden allerlei objecten over tijd gevolgd, met één klik kun je een object over die hele serie van losse beelden annoteren. Het grote nadeel van al deze semiautomatische methodes: ze werken helaas niet goed voor ongebalanceerde datasets.

Meta learning

Meta learning is een relatief nieuw concept waarbij snel kan worden geleerd met minder data. Het idee erachter is dat mensen en dieren zo snel leren door contexten te observeren, waarbij ook andere zintuigen en fysieke eigenschappen van objecten worden meegenomen. Het kan daarbij gaan om few shot learning en zero shot learning.

Bij few shot learning heb je enkele samples per klasse nodig in je data om de machine te kunnen laten leren over de klasse. Het model kijkt onder andere naar overeenkomsten tussen de verschillende klassen. Dit is een veelbelovende techniek, niet in de laatste plaats omdat je de neurale netwerken ook kunt gebruiken voor andere supportsets. Zero shot learning wil zeggen dat je helemaal geen samples in je trainingsset hebt. Het model classificeert categorieën die nog niet zijn gezien; de data wordt geclassificeerd op basis van niet-gelabelde voorbeelden.

Self-supervised learning

Dé hype binnen computer vision, zo stelt Beuving, is momenteel self-supervised learning. Daarbij wordt ongeannoteerde data automatisch geannoteerd zodat een niet-supervised dataset op een supervised manier wordt getraind. De kern is self-labeling: data annoteert zichzelf én leert van zichzelf.

Dat kan op verschillende manieren, zoals:

- Het neurale netwerk moet voorspellen hoe het ontbrekende deel van de afbeelding eruitziet.

- Bij de techniek exemplar worden er meerdere voorbeelden gegenereerd door aanpassingen te doen zoals schalen, roteren en veranderingen van contrast of kleuren.

- Jigsaw: de afbeelding is opgedeeld in puzzelstukjes, door de puzzelstukjes goed te leggen leert het netwerk visuele concepten.

- Bij video’s kun je de toekomst voorspellen door te leren van het verleden.

Anomaly detection

Het opsporen van alles dat afwijkt van bepaalde waardes staat centraal bij anomaly detection, wat een alternatieve manier is om het dataprobleem op te lossen. De generator leert concepten uit de echte wereld, terwijl de discriminator abnormaliteiten detecteert op basis van de input.

In de praktijk

“Wat we momenteel veel gebruiken, is online active learning met een human in the loop”, besluit Beuving het webinar. “De basis wordt gelegd door self-supervised pre-training, een menselijke expert doet daarna het active learning-stuk.”

Het standaardadvies voor bedrijven van de computer vision-veteraan luidt: zorg altijd eerst dat je meer data krijgt. “Als je genoeg data ter beschikking hebt, probeer dan self-supervised learning omdat het zo veelbelovend is. Finetune dit vervolgens met meta learning-methodes of active learning. Anomaly detection kun je inzetten als terugvaloptie.”

Lees ook ons interview met John Beuving over toepassingen en trends op het gebied van machine vision.