Cursus
Het is al een tijd geleden dat Google een speciale API uitbracht, genaamd Vision API, voor het uitvoeren van taken op het gebied van computer vision. Computer vision is een vakgebied dat zich bezighoudt met hoe een computer een afbeelding verwerkt. Voor ons mensen is het vrij eenvoudig om bruikbare inzichten uit een afbeelding te halen, maar hoe doet een computer dat?
Stel, je geeft je computer een afbeelding van een hond en met behulp van software vertelt de computer je dat de aangeleverde afbeelding die van een hond is. Dáár komt computer vision om de hoek kijken. Computer vision is een compleet vakgebied op zich, en de Vision API biedt allerlei hulpmiddelen om taken op het gebied van computer vision heel eenvoudig uit te voeren. Het mooiste is dat ontwikkelaars zonder enige ervaring met computer vision de Vision API kunnen gebruiken door de documentatie door te nemen.
In deze tutorial maak je kennis met de Vision API en leer je hoe je die vanuit Python-code kunt aanroepen.
Let op: Wil je eerst meer weten over API’s in het algemeen (vanuit Python- en Machine Learning-perspectief) voordat je aan deze tutorial begint? Dan zijn dit uitstekende bronnen:
Wat is Google’s Vision API? Een meer diepgaande introductie
Google heeft zijn Machine Learning-modellen ingekapseld in een API zodat ontwikkelaars hun Vision-technologie kunnen gebruiken. De Vision API kan afbeeldingen snel in duizenden categorieën indelen en er zinvolle labels aan toekennen. Hij kan zelfs afzonderlijke objecten, gezichten en tekst in een afbeelding detecteren.
Op hoog niveau laat Google’s Vision API je twee dingen doen:
- De API rechtstreeks vanuit je code gebruiken voor krachtige beeldanalyse, en dat ook nog eens op schaal.
- Aangepaste modellen bouwen met de API om meer flexibiliteit voor jouw specifieke usecase te krijgen.
Deze API is bijzonder handig, omdat de behoefte aan “full‑stack”-beoefenaars tegenwoordig razendsnel toeneemt. Stel je een scenario voor waarin een full‑stack webontwikkelaar (dus iemand die zowel front‑end als back‑end webtechnologieën beheerst) wordt gevraagd een website te bouwen die afbeeldingen inneemt en het type detecteert. Dan is daar zeker de nodige kennis van computer vision voor nodig (als die kennis er nog niet is), omdat de ontwikkelaar de back‑endcode zo moet inrichten dat een afbeelding nauwkeurig gedetecteerd kan worden. Ga er ook van uit dat de deadline niet lang is.
In zo’n situatie is de kans groot dat ontwikkelaars de deadline missen als ze vanaf nul computer vision gaan leren en vervolgens de vereiste taken implementeren. Als hij/zij in plaats daarvan vooraf getrainde computervisionmodellen gebruikt en de onderliggende concepten gaandeweg leert tijdens de ontwikkeling, is dat veel praktischer. Precies in dit soort situaties komt de Vision API goed van pas. De API biedt veel state‑of‑the‑art, voorgetrainde modellen voor uiteenlopende, realistische bedrijfsusecases.
De term “full‑stack” wordt ook steeds vaker gekoppeld aan rollen zoals Machine Learning Engineer, Data Scientist, enzovoort. Van een full‑stack machine-learningpraktijker/data scientist wordt verwacht dat hij/zij end‑to‑end bedrijfsprocessen ontwerpt en ontwikkelt, of deze op z’n minst begrijpt. Dit omvat “productierijpe modellen maken” als een van de cruciale stappen, waarbij de betrokken persoon/het team het ontwikkelde model verpakt in een API of set API’s en deze in de productieomgeving uitrolt. De term productie varieert per usecase, maar het algemene idee/kader blijft hetzelfde. Met de Vision API kun je efficiënt aangepaste visionmodellen trainen met AutoML Vision BETA.
Mooi! Je zou nu een goed overzicht van de Vision API moeten hebben. Een leuk experiment dat je kunt doen op de Vision-homepage is je favoriete afbeeldingen analyseren en met behulp van Vision bruikbare inzichten afleiden. Zo pak je dat aan:
- Ga naar de Vision-homepage.
- Daar staat een sectie “Try the API”. Je kunt hierin een afbeelding naartoe slepen/uploaden.

- Zodra je een afbeelding aanlevert, krijg je een hoop informatie over de afbeelding:
Zoals je ziet, detecteerde Vision in no time allerlei feiten over de opgegeven afbeelding. Verken gerust ook de andere tabbladen om nog meer over de afbeelding te leren.
Stel je voor dat je deze taak op een set van miljarden afbeeldingen moet uitvoeren. Een API als deze gebruiken is dan ongetwijfeld heel waardevol. Laten we nu bekijken wat de Vision API te bieden heeft en enkele voorbeelden van realistische usecases die de API al bediend heeft.
Wat biedt de Vision API? Enkele specifieke usecases
De Vision API staat bekend om zijn nauwkeurige resultaten. De documentatie van de Vision API bevat een uitstekende verzameling tutorials die je heel gedetailleerd inzicht geven in de API. Maar op het eerste gezicht kan dit wat overweldigend lijken. Om het simpel te houden, leer je een paar usecases kennen die al door de Vision API zijn bediend.
- Optical Character Recognition (OCR): Dit is een klassiek voorbeeld van computer vision dat zich primair richt op het extraheren van tekst uit een afbeelding. De Vision API omvat veel state‑of‑the‑art benaderingen om dit te doen.
- Detectie van afbeeldingeigenschappen: Dit is de taak die je in de vorige sectie uitvoerde. Met de Vision API kun je algemene kenmerken van een afbeelding ophalen, zoals dominante kleur.
- Labeldetectie: Deze taak annoteert een afbeelding met een label (of “tag”) op basis van de inhoud. Een foto van een hond kan bijvoorbeeld het label “hond”, “dier” of een andere vergelijkbare annotatie opleveren. Dit is een essentiële stap binnen Content‑based Information Retrieval.
- Gezichtsdetectie: Gegeven een afbeelding of set afbeeldingen is de taak om de aanwezige gezichten te detecteren. Dit kent tal van grote toepassingen, zoals in bewakingssysteemomgevingen.
Dit zijn enkele uitstekende usecases waarop de Vision API naadloos presteert, en je kunt elk van bovenstaande in zeer korte tijd in je applicaties integreren. Wil je meer van dit soort usecases leren kennen, bekijk dan deze tutorials.
De Vision API biedt ondersteuning voor een breed scala aan talen zoals Go, C#, Java, PHP, Node.js, Python, Ruby. In de volgende secties zie je hoe je de Vision API in Python gebruikt.
Vision API-clientbibliotheek voor Python
De eerste stap om de Python-variant van de Vision API te gebruiken, is installatie. De beste manier om te installeren is via pip.
!pip install google-cloud-vision
Als de installatie is gelukt, is de volgende stap controleren of alles werkt.
from google.cloud import vision
Als de bovenstaande code regel zonder fouten draait, kun je verder. Google biedt een reeks fantastische tutorials over Vision API gebruiken in Python.
Je gaat nu een eenvoudige toepassing in Python bouwen die algemene eigenschappen van een afbeelding kan detecteren, zoals de dominante kleur.
Een casestudy met de Vision API in Python
Je applicatie neemt een pad naar een afbeelding als invoer en toont de algemene eigenschappen van de betreffende afbeelding. Dit is handig wanneer de afbeeldingen zich op de computer bevinden waarop de app wordt uitgevoerd. Maar wat als je een afbeelding van het internet moet lezen? De Vision API ondersteunt ook het lezen van afbeeldingen vanaf internet.
In deze casestudy pak je het eerste scenario aan. Maar het is slechts een kwestie van één regel code om de internetvariant te ondersteunen.
Zoals altijd begin je met het importeren van vision uit de module google.cloud.
from google.cloud import vision
De volgende stap is het aanroepen van ImageAnnotatorClient(), dat de hulpmiddelen bevat voor het extraheren van afbeeldingeigenschappen.
client = vision.ImageAnnotatorClient()
Je krijgt waarschijnlijk een fout als de omgevingsvariabele GOOGLE_APPLICATION_CREDENTIALS niet is ingesteld. Deze libraries gebruiken namelijk Application Default Credentials (ADC) om de inloggegevens van je applicatie te vinden. Wanneer je code dit soort libraries gebruikt, controleert de strategie of je inloggegevens beschikbaar zijn.
Volg deze link om te leren hoe je GOOGLE_APPLICATION_CREDENTIALS genereert. Het doel is een bestand client_secrets.json te genereren dat je gebruikt voor authenticatie.
Zodra client_secrets.json beschikbaar is, voer je de volgende code uit om de omgevingsvariabele GOOGLE_APPLICATION_CREDENTIALS in te stellen.
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
Als je nu de onderstaande code draait, zou je geen fout meer moeten krijgen.
client = vision.ImageAnnotatorClient()
Nu ga je code schrijven om een afbeelding te lezen via een opgegeven pad.

import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
Je hebt succesvol een afbeelding in je werkomgeving geladen. Nu instantieer je een object van het type vision.types.Image en geef je content=content als argument mee.
image = vision.types.Image(content=content)
Je bent nu alleen de laatste stappen verwijderd van je toepassing voor het detecteren van afbeeldingeigenschappen. In deze stappen ga je:
client.image_propertiesaanroepen met als argument(image=image).- De response van
image_properties()opslaan in een variabeleresponseen de afbeeldingeigenschappen extraheren door het argumentimage_properties_annotationvanresponseaan te roepen. - Verschillende eigenschappen van de afbeeldingen geformatteerd weergeven.
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
Je kunt opnieuw fouten tegenkomen als je de Vision API niet voor je applicatie hebt ingeschakeld. De API inschakelen is heel eenvoudig, en de foutmelding geeft instructies zodat je dit snel kunt doen.
Nadat je de API hebt ingeschakeld, moet je ook Billing activeren om de Vision API te gebruiken. Hulpmiddelen voor het detecteren van afbeeldingeigenschappen kosten slechts $0,60. Als dat geregeld is, wordt de code succesvol uitgevoerd en verschijnt de output.

Gefeliciteerd!
Je zag hoe eenvoudig het is om de Vision API te gebruiken, en wat voor hulpmiddelen deze biedt — ook nog eens tegen opmerkelijk lage kosten. Veel bedrijven en organisaties profiteren vandaag de dag van deze API, zowel voor zakelijke doeleinden als voor onderzoek. In deze tutorial heb je slechts aan de oppervlakte van de Vision API gekrast, maar dit is een goed startpunt om Machine Learning‑API’s in je applicaties te gebruiken.
Bekijk zeker de volledige suite van Machine Learning‑API’s die Google aanbiedt, bekend als CloudML.
Met deze eenvoudig aan te roepen API’s kun je allerlei coole applicaties bouwen. De links naar Vision API en CloudML bieden een geweldige verzameling tutorials, zodat je er makkelijk mee kunt spelen. Succes!
Ben je geïnteresseerd in meer over beeldverwerking? Volg dan DataCamp’s cursus Convolutional Neural Networks for Image Processing.
