Formation d'un modèle de classification d'images avec Create ML

L'apprentissage automatique est formidable, mais il peut être difficile à mettre en œuvre dans les applications mobiles. Cela est particulièrement vrai pour les personnes sans diplôme en informatique. Cependant, avec Core ML, Apple facilite l’ajout de l’apprentissage automatique à votre application iOS existante à l’aide de la toute nouvelle plate-forme Create ML pour la formation de réseaux neuronaux légers et personnalisés..

En un coup d'oeil

Qu'est-ce que l'apprentissage automatique??

L'apprentissage automatique consiste à utiliser l'analyse statistique pour aider les ordinateurs à prendre des décisions et à établir des prévisions en fonction des caractéristiques trouvées dans ces données. En d’autres termes, c’est le fait d’avoir un ordinateur qui analyse un flux de données pour en obtenir une compréhension abstraite (appelée "modèle"), et d’utiliser ce modèle pour comparer des données plus récentes..

Comment est-ce utilisé?

Beaucoup de vos applications préférées sur votre téléphone sont susceptibles d'intégrer l'apprentissage automatique. Par exemple, lorsque vous tapez un message, la correction automatique prédit ce que vous allez taper ensuite à l'aide d'un modèle d'apprentissage automatique qui est mis à jour en permanence au fur et à mesure de la frappe. Même les assistants virtuels, tels que Siri, Alexa et Google Assistant, dépendent entièrement de l'apprentissage automatique pour imiter un comportement semblable à celui d'un humain..

Commencer

Utilisons enfin vos nouvelles connaissances sur l’apprentissage automatique pour construire votre premier modèle! Vous devez vous assurer que Xcode 10 est installé et que macOS Mojave est exécuté sur votre Mac de développement. De plus, je présume que vous avez déjà une expérience du développement Swift, Xcode et iOS en général..

1. Jeu de données et images

Dans ce didacticiel, nous allons classer les images selon qu’elles ont un arbre ou une fleur. Cependant, il est recommandé de suivre vos propres images et objets que vous souhaitez classer à la place. Pour cette raison, les images de fleurs et d’arbres utilisées dans cet exemple ne vous seront pas fournies.. 

Trouver des images

Si vous rencontrez des difficultés pour trouver des images (ou si vous n'en avez pas assez de vos propres images), essayez PhotoDune ou Google Images. Pour les besoins de l'apprentissage, cela devrait être suffisant pour que vous puissiez commencer. Essayez de trouver des images qui ont un objet principal distinct (par exemple, une orange, un arbre) au lieu de plusieurs (par exemple, des grappes de bananes, des forêts entières) pour éviter de confondre le modèle avec lequel commencer. Bien sûr, vous pouvez toujours ajouter plus de complications plus tard, après avoir acquis une certaine expérience..

80:20 Règle de science des données

Dans le domaine de la science des données, il est recommandé de diviser vos jeux de données en deux catégories: une pour la formation du modèle et une pour les tests. Etant donné que vous voulez accorder plus d'attention à votre modèle actuel, vous devez utiliser 80% de votre jeu de données pour la formation et économiser 20% pour vous assurer que tout fonctionne comme il se doit; après tout, c'est important aussi!

Fractionner la différence

Avec la règle 80:20 en tête, allez-y et créez deux dossiers: Entraînement et Essai, où vous allez mettre la bonne quantité d'images dans chacun des dossiers. Une fois que vous avez 80% de vos données dans Entraînementet 20% dans Essaiil est enfin temps de les répartir par catégorie. Pour mon exemple, je vais avoir deux dossiers nommés Fleurs et Des arbres dans mon Entraînement dossier, et j'aurai 20% des images non triées dans mon Essai dossier.

2. Former le modèle

Alors, plongeons et créons le modèle. Vous serez peut-être surpris d'apprendre que la plus grande partie de votre travail est déjà terminée! Il ne nous reste plus qu'à écrire du code et à mettre Swift et Xcode au service de la magie.

Créer un nouveau terrain de jeu

Bien que la plupart d’entre nous aient l'habitude de créer de véritables applications iOS, nous nous dirigerons vers le terrain de jeu cette fois pour créer nos modèles d'apprentissage automatique. Intéressant, n'est-ce pas? Si vous y réfléchissez, cela semble logique: vous n'avez pas besoin de tous ces fichiers supplémentaires, vous avez simplement besoin d'une page blanche pour expliquer à Swift comment créer votre modèle. Allez-y et créez un terrain de jeu macOS pour commencer.

Tout d'abord, ouvrez Xcode.

Puis créez un nouveau terrain de jeu.

Et donnez-lui un nom utile.

Les trois lignes

Contrairement à ce que vous avez pu penser, il vous suffit de trois lignes de code pour préparer votre terrain de jeu à l’entraînement de votre modèle. Supprimez tout le code standard généré automatiquement, puis procédez comme suit:

Importer le CreateMLUI API pour activer la création de ML dans votre terrain de jeu Swift:

importer CreateMLUI

Ensuite, créez une instance du MLImageClassifierBuilder et appelez le showInLiveView (:) méthode pour pouvoir interagir avec la classe dans une interface utilisateur intuitive au sein de votre terrain de jeu:

let builder = MLImageClassifierBuilder () builder.showInLiveView ()

Génial! C'est tout ce que vous devez faire en termes de code. Vous êtes enfin prêt à faire glisser vos images pour créer un modèle Core ML entièrement fonctionnel..

Glisser déposer

Maintenant, nous avons développé une interface utilisateur où nous pouvons commencer à ajouter nos images et regarder la magie se dérouler! Comme mentionné précédemment, j'ai sept images de fleurs et sept images d'arbres. Bien sûr, cela ne suffira pas pour un modèle ultra-précis, mais cela fait l'affaire.

Lorsque vous ouvrez l'assistant éditeur, vous verrez une boîte qui dit Déposer des images pour commencer la formation, où vous pouvez faire glisser votre Entraînement dossier. Après quelques secondes, vous verrez une sortie dans votre terrain de jeu. Vous êtes maintenant prêt à tester votre nouveau modèle Core ML.

3. Tester et exporter

Une fois que vous avez fini de former votre modèle, il est facile de le tester et de le télécharger pour l'utiliser dans vos applications. Vous pouvez le tester directement dans votre terrain de jeu sans jamais avoir à créer de projet. Lorsque vous savez que votre modèle est prêt, vous pouvez le placer dans une application iOS (ou macOS)..

Tester le modèle

Se souvenir du Essai dossier que vous avez créé? Allez-y et faites glisser le dossier entier sur votre terrain de jeu (où vous avez déposé votre Entraînement images plus tôt dans le tutoriel). Vous devriez voir vos images apparaître dans une liste, avec ce que le modèle pense que chacune d’elles est. Vous pourriez être surpris - même avec si peu de données, vous pouvez toujours obtenir un modèle assez précis.

Télécharger le modèle

Lorsque vous êtes satisfait de votre modèle, vous pouvez l'exporter au format Core ML et l'utiliser dans vos applications. À côté de Classificateur d'image, allez-y et cliquez sur le flèche dirigée vers le bas pour révéler certains champs que vous pouvez modifier afin de changer le nom, l'auteur ou la description de votre modèle. Vous pouvez également choisir où le télécharger.

Quand vous frappez le bleu sauvegarder bouton, ton .mlmodel Le fichier apparaîtra à l’emplacement souhaité. Si cela vous intéresse, vous pouvez également lire la sortie dans la cour de récréation pour obtenir des informations telles que la précision, le rappel et l'emplacement de sauvegarde de votre modèle..

Utiliser le modèle

Ce tutoriel suppose que vous connaissez les modèles Core ML en général, mais je vais expliquer brièvement comment cela fonctionne. Pour plus d'informations sur l'utilisation du modèle une fois qu'il est dans votre application, vous pouvez lire mon autre tutoriel:

Pour utiliser le modèle, faites-le glisser dans votre projet Xcode (comme un fichier image ou un fichier audio). Ensuite, importez Core ML dans le fichier où vous souhaitez l’utiliser. Avec quelques étapes supplémentaires, vous devriez pouvoir traiter le modèle comme une classe Swift et appeler des méthodes dessus, comme décrit dans mon autre tutoriel..

Pour plus d'informations sur cette opération, vous pouvez également consulter la documentation d'Apple et savoir comment intégrer l'apprentissage automatique à votre application..

Conclusion

Dans ce didacticiel, vous avez appris à créer facilement un réseau neuronal de classification d’image personnalisé en n’écrivant que trois lignes de code. Vous avez formé ce modèle avec vos propres données, puis en avez utilisé 20% pour tester le modèle. Une fois que cela fonctionnait, vous l'avez exporté et ajouté à votre propre application..

J'espère que vous avez apprécié ce tutoriel et je vous encourage vivement à consulter certains de nos autres cours et didacticiels d'apprentissage automatique ici sur Envato Tuts.+! 

Si vous avez des commentaires ou des questions, n'hésitez pas à les laisser dans la section ci-dessous..