7. Machine Learning¶
De meeste detectoren in het hoofdstuk over afbeeldingen waren met de hand geprogrammeerd voor een specifiek doel: handmatig afgestemde kleurbereiken voor blob-tracking, handmatig afgeleide gewichtspatronen voor randfilters, vaste geometrische aannames voor de lijn- en cirkelvinders. Elk algoritme dekte één soort taak, en een nieuw doel toevoegen betekende een nieuw algoritme schrijven. Machine learning verandert de werkstroom. In plaats van één algoritme per doel laadt de applicatie een getraind model – een stapel gewichten die extern op een desktop met veel voorbeeldafbeeldingen is geproduceerd – en draait dit op de camera. Dezelfde engine die een gezichtsdetector draait, draait een handposeschatter, een lichaamsposevolger, een objectclassificator of waar een model ook maar voor getraind is.
De ml-module is de toolkit. Elke bewerking bouwt voort op één enkel Model-object dat een modelbestand uit het flashgeheugen laadt, de gekwantiseerde invoer- en uitvoertensoren ervan beheert, elke inferentie naar de juiste engine op de cam stuurt en de resulterende tensoren door een optionele post-processor leidt die ze terugzet in de resultaatvorm waarop de applicatie kan reageren – vakken, sleutelpunten, klassen of waar het model ook voor bedoeld is.
De ml-module
De inferentiepijplijn
Inferentie-engines
De uitvoer decoderen
Afronding