7. Maskininlärning

De flesta detektorer i bildkapitlet var handkodade för ett specifikt mål: handinställda färgintervall för blobspårning, handhärledda viktmönster för kantfilter, fasta geometriska antaganden för linje- och cirkelsökarna. Varje algoritm täckte en sorts uppgift, och att lägga till ett nytt mål innebar att skriva en ny algoritm. Maskininlärning förändrar arbetsflödet. I stället för en algoritm per mål laddar applikationen en tränad modell – en stapel av vikter producerad utanför enheten på en stationär dator med många exempelbilder – och kör den på kameran. Samma motor som kör en ansiktsdetektor kör en handposeuppskattare, en kroppsposespårare, en objektklassificerare eller vad annat en modell tränades för.

Modulen ml är verktygslådan. Varje operation bygger på ett enda Model-objekt som laddar en modellfil från flashminnet, hanterar sina kvantiserade in- och utdatatensorer, dirigerar varje inferens till rätt motor på kameran och leder de resulterande tensorerna genom en valfri efterbehandlare som konverterar dem tillbaka till den resultatform applikationen kan agera på – rutor, nyckelpunkter, klasser eller vad nu modellen är till för.

Sammanfattning