AI-basisprincipes
Wat is Computer Vision?
Wat is Computer Vision?
Computer vision-algoritmes zijn een van de meest transformatieve en krachtige AI-systemen ter wereld op dit moment. Computer vision-systemen worden gebruikt in autonome voertuigen, robotnavigatie, gezichtsherkenningssystemen en meer. Maar wat zijn computer vision-algoritmes precies? Hoe werken ze? Om deze vragen te beantwoorden, zullen we diep duiken in de theorie achter computer vision, computer vision-algoritmes en toepassingen voor computer vision-systemen.
Hoe Werken Computer Vision-Systemen?
Om volledig te begrijpen hoe computer vision-systemen werken, laten we eerst even stilstaan bij hoe mensen objecten herkennen. De beste verklaring die neuropsychologie heeft voor hoe we objecten herkennen, is een model dat de initiële fase van objectherkenning beschrijft als een fase waarin de basiscomponenten van objecten, zoals vorm, kleur en diepte, eerst door de hersenen worden geïnterpreteerd. De signalen van het oog die de hersenen binnenkomen, worden geanalyseerd om de randen van een object te halen en deze randen worden vervolgens samengevoegd tot een meer complexe weergave die de vorm van het object voltooit.
Computer vision-systemen werken heel erg vergelijkbaar met het menselijk visuele systeem, door eerst de randen van een object te onderscheiden en vervolgens deze randen samen te voegen tot de vorm van het object. Het grote verschil is dat computers, omdat ze afbeeldingen interpreteren als getallen, een manier nodig hebben om de individuele pixels die de afbeelding vormen te interpreteren. Het computer vision-systeem zal waarden toewijzen aan de pixels in de afbeelding en door het onderzoeken van het verschil in waarden tussen een regio van pixels en een andere regio van pixels, kan de computer randen onderscheiden. Als de afbeelding in kwestie bijvoorbeeld grijs is, dan zullen de waarden variëren van zwart (weergegeven door 0) tot wit (weergegeven door 255). Een plotselinge verandering in het bereik van waarden van pixels in de buurt van elkaar zal een rand aanduiden.
Deze basisprincipes van het vergelijken van pixelfuncties kunnen ook worden toegepast op gekleurde afbeeldingen, waarbij de computer de verschillen tussen de verschillende RGB-kleurkanalen vergelijkt. Nu we weten hoe een computer vision-systeem pixelfuncties onderzoekt om een afbeelding te interpreteren, laten we eens kijken naar de architectuur van een computer vision-systeem.
Convolutional Neural Networks (CNN’s)
Het primaire type AI dat wordt gebruikt in computer vision-taken is een type dat is gebaseerd op convolutional neural networks. Wat is een convolutie precies?
Convoluties zijn wiskundige processen die het netwerk gebruikt om het verschil in waarden tussen pixels te bepalen. Als je je een rooster van pixelfuncties voorstelt, stel je dan een kleiner rooster voor dat over dit hoofd-rooster wordt bewogen. De waarden onder het tweede rooster worden door het netwerk geanalyseerd, dus het netwerk onderzoekt slechts een handvol pixels tegelijk. Dit wordt vaak de “sliding windows”-techniek genoemd. De waarden die door het sliding window worden geanalyseerd, worden door het netwerk samengevat, wat helpt om de complexiteit van de afbeelding te verminderen en het makkelijker maakt voor het netwerk om patronen te extraheren.
Convolutional neural networks zijn verdeeld in twee verschillende secties, de convolutionale sectie en de volledig verbonden sectie. De convolutionale lagen van het netwerk zijn de functie-extractors, waarvan de taak is om de pixels in de afbeelding te analyseren en representaties van hen te vormen die de dicht verbonden lagen van het neurale netwerk kunnen leren van patronen. De convolutionale lagen beginnen met het onderzoeken van de pixels en het extraheren van de laagste functies van de afbeelding, zoals randen. Latere convolutionale lagen voegen de randen samen tot meer complexe vormen. Aan het einde zal het netwerk hopelijk een representatie van de randen en details van de afbeelding hebben die het kan doorgeven aan de volledig verbonden lagen.
Afbeeldingsannotatie
Terwijl een convolutional neural network patronen uit afbeeldingen kan extraheren zonder hulp, kan de nauwkeurigheid van het computer vision-systeem aanzienlijk worden verbeterd door afbeeldingen te annoteren. Afbeeldingsannotatie is het proces van metadata toevoegen aan de afbeelding die de classifier helpt om belangrijke objecten in de afbeelding te detecteren. Het gebruik van afbeeldingsannotatie is belangrijk wanneer computer vision-systemen zeer nauwkeurig moeten zijn, zoals wanneer ze een autonoom voertuig of robot besturen.
Er zijn verschillende manieren waarop afbeeldingen kunnen worden geannoteerd om de prestaties van een computer vision-classifier te verbeteren. Afbeeldingsannotatie wordt vaak gedaan met begrenzingsvakken, een vak dat de randen van het doelobject omvat en de computer vertelt om zijn aandacht te richten binnen het vak. Semantische segmentatie is een andere type afbeeldingsannotatie, die werkt door een afbeeldingsklasse toe te wijzen aan elke pixel in de afbeelding. Met andere woorden, elke pixel die “gras” of “bomen” kan zijn, wordt gelabeld als behorend tot die klassen. De techniek biedt pixelniveau-nauwkeurigheid, maar het creëren van semantische segmentatie-annotaties is complexer en tijdrovender dan het creëren van eenvoudige begrenzingsvakken. Andere annotatiemethoden, zoals lijnen en punten, bestaan ook.












