078-2034021 algemeen@3bplus.nl

Mensen gebruiken hun zicht om obstakels te vermijden, objecten te bereiken en honderden andere taken uit te voeren. Computer Vision is het veld (binnen Artificial Intelligence; AI) dat probeert om computers ook “zicht” wil geven. In dit artikel vertellen we je hoe Computer Vision (CV) werkt.

Wil je eerst meer weten over wat Computer Vision precies is? In dit artikel geven we een definitie van CV

Het verband tussen machine learning en Computer Vision

Om goed uit te kunnen leggen hoe Computer Vision werkt, doen we even een stapje terug. Een uitleg is namelijk niet compleet zonder een korte bespreking van machine learning.

Artificial Intelligence (AI) is intelligentie tentoongesteld door machines. Het is lastig of zelfs onmogelijk om formele regels met voldoende complexiteit op te stellen die onze wereld accuraat beschrijven. Het is zodoende nodig om AI-systemen de mogelijkheid te geven hun eigen kennis te vergaren door patronen uit data te halen. Deze vaardigheid staat bekend als machine learning. Machine learning verwijst naar elk systeem waar de prestatie van een machine bij het uitvoeren van een taak beter wordt door meer ervaring op te doen in het uitvoeren van die taak.

Bij veel Computer Vision-taken wordt gebruik gemaakt van machine learning.

Tekst gaat verder onder de afbeelding.

pixels computer vision

Van pixels naar binaire gegevens

Computers “zien” geen afbeeldingen zoals mensen dat doen; ze zien alleen nummers. De pixels waaruit een afbeelding is opgebouwd, hebben elk een numerieke waarde. Een beeld wordt pixel voor pixel geconverteerd naar een getal. Computer Vision zet een beeld dus eerst om in binaire gegevens (combinaties van nullen en enen). Dat is wat een CV-toepassing “ziet”: een matrix gevuld met getallen die elk een klein deel van het totale beeld vertegenwoordigen.

CV vergeleken met een peuter

Stel dat we vogels willen herkennen met ons Computer Vision-systeem. Het systeem krijgt talloze foto’s te zien, waarvan sommige vogels tonen. Het is aan het systeem om te bepalen of er een vogel te zien is.

Om te beginnen moeten we ons CV-systeem voeden met data. Vergelijk het met een peuter, waarvan het eerste woord ‘vogel’ is. De peuter leert wat een vogel is (en wat geen vogel is) door te wijzen op objecten en het woord ‘vogel’ te zeggen. De ouder zegt ‘Ja, dat is een vogel’ of ‘Nee, dat is geen vogel’. Naarmate de peuter op objecten wijst, wordt hij zich meer bewust van de eigenschappen die alle vogels bezitten. Wat de peuter doet, is de complexe abstractie (het begrip ‘vogel’) te verduidelijken door een hiërarchie te bouwen waarin elk niveau van abstractie wordt gecreëerd met kennis die is verkregen uit de voorafgaande laag van de hiërarchie.

Waarom is Computer Vision zo ingewikkeld?

Elke ouder kan zich de hierboven beschreven fase wel herinneren, waarin peuters constant “wat is dat?” vragen. De peuter bouwt daarmee een verzameling van woorden (definities) en herinneringen, die hem laten verwerken wat hij ziet. “Verwerken” betekent in deze context te herkennen wat gezien wordt, en om vervolgens beslissingen te nemen en actie te ondernemen.

Alhoewel het op papier vrij simpel klinkt, is de verwerking van de peuter een enorm complex systeem! Zo erg zelfs dat het modelleren van een CV-systeem naar de menselijke ervaring van perceptie bijna onmogelijk maakt. Echter, met de vooruitgang in machine learning worden systemen steeds meer bedreven in het definiëren, categoriseren en onthouden van objecten.

Het trainen van CV-systemen

Het Computer Vision-systeem moet net als een kind getraind worden met data. Zonder voorafgaande training kan het CV-systeem niet “weten” hoe verschillende objecten eruit zien. Daarom worden duizenden (zelfs miljoenen) afbeeldingen van vogels aan het systeem gepresenteerd, zodat het geleidelijk het verschil kan leren tussen bijvoorbeeld een vogel en een vliegtuig.  Anders gezegd: door een voldoende aantal afbeeldingen te voeren in ons CV-systeem, kan het de exacte nuances op pixelniveau begrijpen die de afzonderlijke componenten van het grotere beeld definiëren. Het zal leren hoe het randen moet herkennen, en hoe bepaalde combinaties van randen, die verschillen in kleur en contrast, gecombineerd worden tot vormen, zoals snavels en vleugels.

Het systeem maakt gebruik van de informatie in de data om een featureset voor ‘vogel’ te maken. Het systeem kan in eerste instantie voorspellen dat alles met twee poten en vleugels het label ‘vogel’ moet krijgen. Uiteraard is het programma niet bewust van de labels ‘twee poten’ of ‘vleugels’, het zoekt simpelweg naar patronen in de numerieke waardes van de pixels. Denk aan randen en hoeken (het kenmerk van een snavel). Donker aan één kant, helder aan de andere kant – gebaseerd op die numerieke waardes van pixels. Het systeem reageert steeds beter op concepten van grotere complexiteit en abstractie, tot een overeen komt met ons concept van ‘vogel’.

Herhalen, herhalen, herhalen

Herhalingen blijven doorgaan totdat de output een acceptabel niveau van nauwkeurigheid heeft bereikt. Bij elke iteratie wordt het voorspellende model dat de computer maakt, complexer en nauwkeuriger. Het systeem ontwikkelt met al die training dus een idee van wat een foto van een vogel zoal bevat. Wanneer je het systeem een nieuwe afbeelding laat zien en wilt weten of het een vogel bevat, vergelijkt het systeem elke pixel van dat beeld met al die andere beelden van vogels waarmee het getraind is. Als de invoer voldoet aan een minimumdrempel van vergelijkbare pixels, verklaart de AI dat het ook in de nieuwe afbeelding om een vogel gaat.

Meer lezen over dit onderwerp?

Misschien vind je deze artikelen ook interessant:

De voordelen van 3D Computer Vision ten opzichte van 2D Computer Vision
Het slimme apparaten ABC
Machine learning, neurale netwerken en deep learning uitgelegd
De keten van slimme oplossingen: sensoren, IoT, Big Data en AI

Bronnen

Skan AI
The Next Web
Content Era Tech Space

Share This