Een beeldclassificatiemodel trainen met ML maken

Machinaal leren is geweldig, maar het kan moeilijk zijn om te implementeren in mobiele applicaties. Dit geldt vooral voor mensen zonder een data science diploma. Met Core ML maakt Apple het echter eenvoudig om machine learning toe te voegen aan je bestaande iOS-app met behulp van het gloednieuwe Create ML-platform voor het trainen van lichtgewicht, aangepaste neurale netwerken.

In een oogopslag

Wat is Machine Learning?

Machine learning is het gebruik van statistische analyse om computers te helpen bij het nemen van beslissingen en voorspellingen op basis van kenmerken die in die gegevens worden gevonden. Met andere woorden, het is de handeling van het laten analyseren door een computer van een gegevensstroom om er een abstract begrip van te vormen (een "model" genoemd), en dat model te gebruiken om te vergelijken met nieuwere gegevens.

Hoe gebruik je het?

Veel van uw favoriete apps op uw telefoon bevatten waarschijnlijk machine learning. Wanneer u bijvoorbeeld een bericht typt, voorspelt autocorrectie wat u op het punt staat te typen en gebruikt u vervolgens een machine-leermodel dat voortdurend wordt bijgewerkt terwijl u typt. Zelfs virtuele assistenten zoals Siri, Alexa en Google Assistant zijn volledig afhankelijk van machine learning om menselijk gedrag na te bootsen.

Ermee beginnen

Laten we eindelijk uw nieuw gevonden kennis over machinaal leren gebruiken om daadwerkelijk uw eerste model te bouwen! Je moet ervoor zorgen dat Xcode 10 is geïnstalleerd, samen met macOS Mojave op je ontwikkel-Mac. Bovendien neem ik aan dat je al ervaring hebt met de ontwikkeling van Swift, Xcode en iOS in het algemeen.

1. Dataset en afbeeldingen

In deze zelfstudie classificeren we afbeeldingen op basis van of ze een boom of een bloem hebben. Het is echter aan te bevelen om in plaats daarvan uw eigen afbeeldingen en objecten te volgen die u wilt classificeren. Om deze reden ontvangt u niet de bloem- en boomafbeeldingen die in dit voorbeeld worden gebruikt. 

Afbeeldingen zoeken

Als u problemen ondervindt bij het vinden van afbeeldingen (of als u niet genoeg van uw eigen afbeeldingen hebt), probeer dan PhotoDune of Google Afbeeldingen. Voor de doeleinden van leren, zou dit genoeg voor u moeten zijn om te beginnen. Probeer afbeeldingen te vinden met een duidelijk hoofdobject (bijvoorbeeld een sinaasappel, een boom) in plaats van meerdere (bijvoorbeeld trossen bananen, hele bossen) om verwarring bij het model te voorkomen. Natuurlijk kunt u later altijd meer complicaties toevoegen, nadat u enige ervaring hebt.

80:20 Data Science Rule

Op het gebied van data science is het een goede gewoonte om uw datasets op te delen in twee categorieën: een voor het trainen van het model en een voor het testen. Aangezien u uw werkelijke model de meeste aandacht wilt geven, moet 80% van uw gegevensset worden gebruikt voor training en u moet 20% besparen om te zorgen dat alles werkt zoals het hoort; dat is tenslotte ook belangrijk!

Het verschil splitsen

Met de 80:20-regel in gedachten, ga je gang en maak je twee mappen: Opleiding en testen, waar u het juiste aantal afbeeldingen in elk van de mappen plaatst. Zodra u 80% van uw gegevens in hebt Opleidingen 20% binnen testenhet is eindelijk tijd om ze op te splitsen per categorie. Voor mijn voorbeeld, zal ik twee genoemde mappen hebben bloemen en bomen in mijn Opleiding map en ik heb 20% van de afbeeldingen ongesorteerd in mijn map testen map.

2. Het model trainen

Laten we dus duiken en het model daadwerkelijk maken. Je zult verbaasd zijn als je hoort dat het grootste deel van je werk al klaar is! Nu hoeven we alleen maar wat code te schrijven en Swift en Xcode aan het werk te zetten om de magie voor ons te doen.

Een nieuwe speelplaats maken

Hoewel de meesten van ons gewend zijn om echte iOS-applicaties te maken, gaan we deze keer naar de speelplaats om onze machine learning-modellen te maken. Interessant, is het niet? Als je erover nadenkt, is het eigenlijk logisch: je hebt niet al die extra bestanden nodig, maar je hebt gewoon een schone lei nodig om Swift te vertellen hoe je je model moet maken. Ga je gang en maak een macOS-speelplaats om te beginnen.

Open eerst Xcode.

Maak vervolgens een nieuwe speelplaats.

En geef het een nuttige naam.

De drie lijnen

In tegenstelling tot wat je misschien hebt gedacht, heb je gewoon drie regels code nodig om je speeltuin klaar te maken om je model te trainen. Verwijder alle boilerplate-code die automatisch wordt gegenereerd en doe het volgende:

Importeer de CreateMLUI API om ML in je Swift-speelplaats te maken:

import CreateMLUI

Maak vervolgens een exemplaar van de MLImageClassifierBuilder en bel de showInLiveView (:) methode om met de klas te kunnen communiceren in een intuïtieve gebruikersinterface in uw speeltuin:

let builder = MLImageClassifierBuilder () builder.showInLiveView ()

Super goed! Dat is alles wat u hoeft te doen op het gebied van code. Nu bent u eindelijk klaar om uw afbeeldingen te slepen en neer te zetten om een ​​volledig functioneel Core ML-model te maken.

Drag and Drop

Nu hebben we een gebruikersinterface ontwikkeld waar we onze afbeeldingen kunnen toevoegen en de magie kunnen zien ontvouwen! Zoals eerder vermeld, heb ik zeven afbeeldingen van bloemen en zeven afbeeldingen van bomen. Dit is natuurlijk niet voldoende voor een supernauwkeurig model, maar het werkt.

Wanneer u de assistent-editor opent, ziet u een vak dat zegt Zet afbeeldingen neer om te beginnen met trainen, waar je je kunt slepen Opleiding map. Na een paar seconden ziet u wat uitvoer in uw speeltuin. Nu bent u klaar om uw nieuw gemaakte Core ML-model te testen.

3. Testen en exporteren

Nadat u uw model hebt getraind, kunt u het model eenvoudig testen en downloaden om het in uw apps te gebruiken. Je kunt het in je speeltuin testen zonder ooit een project te hoeven maken. Als je weet dat je model klaar is, kun je het in een iOS- of MacOS-app plaatsen.

Het model testen

Herinner de testen map die u hebt gemaakt? Ga je gang en sleep de hele map naar je speelplaats (waar je je hebt laten vallen Opleiding afbeeldingen eerder in de zelfstudie). Je zou je afbeeldingen in een lijst moeten zien verschijnen, samen met wat het model denkt dat elk van hen is. U zult misschien verbaasd zijn - zelfs met zo weinig gegevens kunt u nog steeds een redelijk nauwkeurig model krijgen.

Model downloaden

Als u tevreden bent met uw model, kunt u het exporteren in het Core ML-formaat en gebruiken in uw apps. Naast Beeldclassificator, ga je gang en klik op de naar beneden wijzende pijl om enkele velden te onthullen die u kunt wijzigen om de naam, auteur of beschrijving van uw model te wijzigen. Je kunt ook kiezen waar je het wilt downloaden.

Wanneer je op de blauwe knop springt Opslaan knop, jouw .mlmodel bestand verschijnt op de gewenste locatie. Als je geïnteresseerd bent, kun je ook de uitvoer in de speeltuin lezen om informatie te krijgen, zoals de precisie, het terugroepen en waar je model is opgeslagen.

Het model gebruiken

Deze tutorial gaat ervan uit dat je bekend bent met Core ML-modellen in het algemeen, maar ik zal in het kort uitleggen hoe het werkt. Voor meer informatie over het gebruik van het model zodra het in uw app staat, kunt u mijn andere zelfstudie lezen:

Om het model te gebruiken, sleept u het naar uw Xcode-project (zoals u een afbeelding of een audiobestand zou doen). Importeer Core ML vervolgens in het bestand waar u het wilt gebruiken. Met een paar extra stappen zou je in staat moeten zijn om het model te behandelen als een Swift-klasse en methoden te gebruiken zoals beschreven in mijn andere tutorial.

Voor meer informatie over hoe u dit kunt doen, kunt u ook de documentatie van Apple bezoeken en lezen hoe u machine learning in uw app kunt integreren.

Conclusie

In deze zelfstudie hebt u geleerd hoe u eenvoudig een aangepast neurolnetwerk voor beeldclassificatie kunt bouwen terwijl u slechts drie coderegels schrijft. U hebt dit model met uw eigen gegevens getraind en vervolgens 20% ervan gebruikt om het model te testen. Zodra het werkte, hebt u het geëxporteerd en toegevoegd aan uw eigen app.

Ik hoop dat je deze tutorial leuk vond en ik moedig je ten zeerste aan om enkele van onze andere machine learning-cursussen en tutorials hier te bekijken op Envato Tuts+! 

Als u opmerkingen of vragen heeft, aarzel dan niet om ze in het onderstaande gedeelte te laten staan.