Wat is Machine Learning en hoe kan je het toepassen?

Apple heeft de laatste jaren hard gewerkt aan Machine Learning, maar wat is het eigenlijk en wat voor mogelijkheden biedt het? Martijn van der Wal en Hans Schaaps leggen het je uit.

Afbeelding Webuildapps

Wat is Machine Learning (ML)?

Machine Learning geeft ons de mogelijkheid om objecten te herkennen op basis van data in de vorm van beeld en/of audio. Met deze data kunnen beslissingen worden gemaakt. Dit wordt op de iPhone op verschillende plekken gebruikt zoals in de Photos en Camera apps. In de camera wordt voordat jij een foto maakt gekeken welke objecten er te vinden zijn in de foto, hoe ver deze objecten zijn, de hoeveelheid licht, allemaal om ervoor te zorgen dat er een mooie foto uit komt (computational photography). In de Photos app bouwt de Machine Learning een database op van herkende objecten en personen in de foto zodat je eenvoudig alle foto's met bijvoorbeeld een zonsondergang kunt terugvinden. Daarnaast gebruikt Siri het om te begrijpen wat je zegt als je tegen haar praat.

Apple heeft deze ontwikkelingen toegankelijker gemaakt voor ontwikkelaars om in hun eigen apps te gebruiken. Normaal gezien heb je veel kennis nodig om te begrijpen hoe Machine Learning werkt en hoe je een goed model kunt opzetten/trainen. Apple heeft veel van deze werkzaamheden al voor ons gedaan waardoor het voor ontwikkelaars makkelijker is om hiermee aan de slag te gaan.

Een ML model maken

Er zijn al veel ML modellen te vinden op het internet om in je app te gebruiken maar je kunt er ook zelf een maken. Voor deze blog hebben wij zelf een model gemaakt. Het doel was om een iPhone het verschil tussen een banaan en een plakband dispenser te laten herkennen. We wilden hiervoor Object Detection gebruiken. Object Detection kijkt of een object in een foto of videoframe zit. Als het model een object herkent geeft het model door op welke locatie in de foto dit object is herkend.

Om te beginnen zijn we op zoek gegaan naar afbeeldingen om het model te trainen. We hebben ongeveer 200 foto’s van bananen en 200 van plakband dispensers van het internet gedownload. Vervolgens hebben we per foto aangegeven waar in het plaatje het object zich bevond zodat het model daarvan kon leren. Het kan ook voorkomen dat een object meerdere keren op 1 foto voorkomt, in dat geval worden meerdere kaders gedefinieerd.

Daarna hebben we al het bewerkte beeldmateriaal gebruikt om het model te creëren in Create ML van Apple. Het trainen van het model duurde door de relatief kleine hoeveelheid foto's slechts enkele minuten.

Afbeelding Webuildapps

Resultaten

Onze resultaten waren redelijk, maar niet perfect.

Als we de banaan voor de camera hielden herkende de iPhone vanuit de meeste hoeken dat het inderdaad een banaan was, maar vanuit sommige hoeken ook weer niet. Bij de plakband dispenser was dit nog vaker het geval. Deze resultaten waren met name een gevolg van de door ons gebruikte foto’s. Het betrof in de meeste gevallen productfoto's die veelal vanuit dezelfde hoek genomen waren en het model herkende dan ook alleen vanuit die hoeken een object. Het fotomateriaal om het model te trainen moet dan ook eigenlijk foto's bevatten die vanaf elke kant van het object genomen zijn.

Gepubliceerd op 11 oktober 2019

Ook interessant om te lezen

Heb je advies nodig?

Samen inventariseren we jouw casus, de mogelijkheden, budget en tijdlijnen. Maak een afspraak voor een kennismaking.