Naam: Yuri Burger
Huidige functie: Managing Director Software Development
A Pizza Delivery Problem
Eén van onze collega’s woont naast een park en elke zomer bellen pizzabezorgers bij hem aan om pizza te bezorgen voor mensen in het park. Dus hij dacht: ‘’ik ga mijn deurbel trainen om de pizzabezorgers te herkennen en middels de deurbel een gesprek voeren met de bezorger.’’ Denk bijvoorbeeld aan ‘’De pizza is niet voor mij, maar voor iemand in het park. Bel het nummer dat op je bon staat!.’’ In deze blogpost lees je meer over de basiskennis die nodig is voor het bouwen van beeldclassificatie. Op onze kennisdag zijn we hier gezamenlijk mee aan de slag gegaan en is deze kennis gedeeld.
Beeldherkenning is vaak gebaseerd op Machine Learning. Toch hoef je hier niet veel van te weten om er mee aan de slag te gaan. Het is namelijk een veelvoorkomende uitdaging en daarom kun je tegenwoordig terecht bij de standaard SaaS-diensten van praktisch elke cloud provider. Je moet een computer trainen om objecten (voorwerpen of mensen) in een afbeelding te kunnen herkennen. Dit doe je door simpelweg een aantal foto’s te geven waarop het object dat je probeert te identificeren te zien is. Bij voorkeur vanuit verschillend perspectief en hoe meer foto’s hoe beter de herkenning zal zijn!
Eerste hulp bij beeldherkenning
Om het hierboven beschreven pizza probleem op te lossen met behulp van beeldherkenning is enige kennis van neurale netwerken nodig. Neurale netwerken zijn een onderdeel van Machine Learning en bij uitstek geschikt voor het doen van voorspellingen op basis van ongestructureerde data, zoals tekst, beeld en geluid. Het werken met neurale netwerken kan best complex zijn en daarom is het werken met speciale tools aan te raden. Eén van de tools die je hierbij kan helpen is Tensorflow.
TensorFlow is een gratis Python-bibliotheek gebouwd door Google. Zoals de naam al aangeeft, werkt het met tensoren. Een tensor is een matrix. En dat is precies wat een afbeelding is: het is een matrix van pixels.
TensorFlow gebruikt neurale netwerken om te "leren". De neuronen worden getraind om een hypothese te bevestigen of te falsifiëren. In de praktijk betekent dit dat de afbeeldingen die je aan de Machine Learning "voedt", niet precies hetzelfde zullen zijn, maar hoogstwaarschijnlijk overeenkomsten zullen bevatten. Je kunt vervolgens de neurale netwerken gebruiken om die overeenkomsten te identificeren.
Moet ik dit dan helemaal zelf opzetten?
Nee dat hoeft gelukkig niet! Maar het is uiteraard wel een optie. Tijdens deze workshop hebben de deelnemers gewerkt met Azure Cognitive Services (tekst en spraak) en Tensorflow (beeld). Er zijn twee services die je kunnen helpen bij het bouwen van een beeldclassificatie:
1. Azure Computer Vision
Gebruik Computer Vision als je standaard objecten wilt identificeren, zoals katten, auto's, dozen, mensen, enzovoort. Je kunt het ook gebruiken voor Optical Character Recognition (OCR) en je kunt het gebruiken om volwassen, pittige en bloederige afbeeldingen te vinden. Je kan deze service gebruiken om te voorkomen dat gebruikers ze verwerken met je eigen software.
2. Azure Custom Vision
Gebruik Custom Vision op het moment dat je iets specifieks wilt identificeren, zoals uw kat, de auto van uw vriend, de postbode, enzovoort. Hou er rekening mee dat je ook andere Cognitive Services kunt gebruiken. Je kan de inhoud die bestemd is voor volwassenen identificeren met Azure Content voor volwassenen, OCR gebruiken om tekst uit een afbeelding te lezen of Azure Face voor gezichtsherkenning.
Ga zelf aan de slag!
Tijdens onze workshops en kennisdagen delen wij informatie over de nieuwste tools. Maar nog leuker: we gaan er ook echt mee aan de slag, itereren, verbeteren onze fouten en werken naar een mooi eindproduct toe. Wil je dit ook eens ervaren? Schrijf je in voor de aankomende kennisdag op 22 maart, óf kijk op de event pagina en meld je direct aan! Wil je nog meer over deze onderwerpen te weten komen? Lees dan dit artikel!
Gerelateerde vacatures
Gerelateerde blog posts
Dit is het verschil tussen een software engineer en een computer scientist
Deze blog is voor jou wanneer jij werkzaam bent als IT’er in de softwarebranche, maar het nog steeds lastig vindt om het precieze verschil tussen een software engineer en een computer scientist te identificeren.
5 manieren om jouw kennis als software developer te testen
Als software developer is het van cruciaal belang om voortdurend je kennis en vaardigheden op het gebied van programmeren te testen en te verbeteren. Lees snel de blog om erachter te komen hoe je jouw skills op de proef kunt stellen!
De 7 voordelen die jij meebrengt als een full stack developer
Als developer beschik je over een unieke kracht om de Nederlandse maatschappij vorm te geven en positieve veranderingen teweeg te brengen. Benieuwd hoe? Lees deze blog!