J'ai essayé d'implémenter le code pour apprendre plusieurs images à la fois dans la Watson Visual Recognition Collection en Java

introduction

Lorsque vous placez des données dans Watson Visual Recognition Collection, vous devez implémenter le code un par un, sauf pour l'écriture du code, ce qui est gênant. Cette fois, j'ai implémenté le code qui peut entraîner plusieurs images à la fois avec du code Java.

Construction de l'environnement d'exécution Java

  1. Installation du JDK Installez le JDK à partir de l'URL suivante. http://www.oracle.com/technetwork/java/javase/downloads/index.html

Veuillez vous référer à l'URL suivante pour la méthode d'installation. http://qiita.com/hiesiea/items/54e49dabfb5606edb54d#2-jdk%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB    2. Installez eclipse Installez eclipse à partir de l'URL suivante. http://www.eclipse.org/downloads/

Veuillez vous référer à l'URL suivante pour la méthode d'installation. http://qiita.com/hiesiea/items/54e49dabfb5606edb54d#3-eclipse%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB    3. Création d'un projet Maven Créez "Nouveau" -> "Projet" -> "Projet Maven" de l'éclipse. maven1.png

Obtenir le code, définir

  1. Télécharger le code Téléchargez le code à partir de l'URL ci-dessous. https://github.com/takana-at/VisualRecognition-training
    Après le téléchargement, décompressez le code.
  2. Placement du code Copiez la classe suivante dans le projet sample.app. ・AddToCollection.java ・AddToCollectionThread.java ・TrainingDefinition.java

Télécharger des données d'entraînement dans Visual Recognition Collection

Créer un service de reconnaissance visuelle

  1. Créez un service de reconnaissance visuelle sur Bluemix. Connectez-vous à Bluemix à partir de l'URL ci-dessous et créez un service "Catalogue" -> "Watson" -> "Reconnaissance visuelle". https://console.bluemix.net/

  2. Après avoir créé le service de reconnaissance visuelle, vérifiez {api_key} dans «Service Credentials» -> «Credentials-1» et notez-le. visual_recognition1.png

Créer une collection dans la reconnaissance visuelle

  1. Créez une collection dans le service de reconnaissance visuelle. Accédez à l'URL ci-dessous, entrez le api_key que vous avez noté précédemment dans "Paramètres" -> "api_key", entrez un nom arbitraire dans "nom", et cliquez sur "essayez-le!". https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3#!/visual45recognition/post_v3_collections

visual_recognition2.png    2. Lorsque la collection est créée, l'écran ci-dessous s'affiche.Notez le "collection_id". Assurez-vous également que «statut» est «Disponible». visual_recognition3.png

Exécuter du code Java

Exécutez AddToCollection.java.

  1. Modifiez le code dans AddToCollectionThread.java. Remplacez {api_key} dans le code de cette classe par api_key que vous avez noté précédemment.

  2. Placez l'image à télécharger. Pour les images, créez un dossier «trainImage» directement sous le projet, créez un dossier «image ID name» dans le dossier «trainImage» et placez l'image dans le dossier «image ID name». Cet ID d'image est utilisé pour trier par personne, placez donc la même personne dans un dossier avec le même nom d'ID d'image.

PROJECTNAME
|-trainImage
   |-IMGID_NAME
      |-IMG  
      |-IMG

Par exemple, les images de "m010469.jpg " et "m010462.jpg " sont stockées dans le dossier avec le nom d'ID d'image "femelle" comme indiqué ci-dessous. readd1.png

  1. Placez le fichier méta à télécharger. Pour les images, créez un dossier «trainMetafile» directement sous le projet, créez un dossier avec le même «nom d'ID d'image» que dans le dossier trainImage dans le dossier «trainMetafile» et créez un dossier avec le même «nom d'ID d'image» dans le dossier «nom d'ID d'image» pour la personne liée à cet ID d'image. Placez les informations dans un fichier json. À ce stade, le nom de fichier du fichier json doit être "Image ID name.json". Le fichier json stocké dans le dossier «trainMetafile» vous permet d'enregistrer des informations supplémentaires sur l'image stockée dans trainImage.
PROJECTNAME
|-trainMetafile
   |-IMGID_NAME
      |-IMGID_NAME.json

Par exemple, stockez le fichier json nommé "female.json" dans le dossier nommé "female" comme indiqué ci-dessous. readd2.png

Veuillez vous référer au code ci-dessous lors de la création d'un métafichier.

Exemple d'entrée de métafichier(femaleA.json)


{"name":"Femme A","img_name":"femaleA","img_url":"https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/300378"}
  1. Mettez ce qui suit dans l'argument et implémentez. 「./trainImage」 AddToCollection2.png

  2. Le résultat de l'exécution est le suivant. add4.png

Vérifier la collection

Vérifiez si les données d'entraînement ont été ajoutées à la collection.

  1. Accédez à l'URL suivante, saisissez les api_key et collection_id que vous avez saisis lorsque vous avez implémenté AddToCollection.java dans "Paramètres" -> "api_key" et "collection_id", et cliquez sur "Try it out!". https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3#!/visual45recognition/get_v3_collections_collection_id_images! List100image1.png

  2. Affichez la liste des images enregistrées dans la collection, et si les images enregistrées dans les «images» de la collection sont enregistrées, la formation est terminée. add6.png

Recommended Posts

J'ai essayé d'implémenter le code pour apprendre plusieurs images à la fois dans la Watson Visual Recognition Collection en Java
Comment appeler plusieurs noms à la fois dans la même catégorie
Appeler la reconnaissance visuelle dans Watson Java SDK
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
~ J'ai essayé d'apprendre la programmation fonctionnelle avec Java maintenant ~
En Java, je souhaite couper plusieurs caractères spécifiés uniquement du début et de la fin.
Puisque la lecture de JdbcCodeList de TERASOLUNA est lente, j'ai essayé d'enregistrer plusieurs à la fois.
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Java avec Visual Studio Code
[Java] J'ai essayé d'implémenter la combinaison.
[Java] Je veux vérifier que les éléments de la liste sont nuls ou vides [Collection Utils]
[Java] Je veux effectuer distinctement avec la clé dans l'objet
Exemple de code pour appeler l'API Yahoo! Local Search en Java
[Mots qui m'ont été écrits lorsque j'étais en première année ⑦] Ce que je veux que vous incluiez au moins avec l'extension Visual Studio Code
Devinez le code de caractère en Java
Comment apprendre JAVA en 7 jours
J'ai essayé d'implémenter la fonction de téléchargement d'images multiples dans Rails afin que plusieurs images puissent être glissées pour le message
J'ai appelé l'analyse de la syntaxe de l'API COTOHA 100 fois en Java pour mesurer les performances.
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
J'ai essayé de créer une méthode qui applique plusieurs filtres à la fois avec l'API Java Stream. Cela vous convient-il?
Référence Java à comprendre dans la figure
OCR en Java (reconnaissance de caractères à partir d'images)
J'ai essayé le nouveau yuan à Java
Comment obtenir la date avec Java
Je suis allé au Java Women's Club # 1
[Mac] Installer Java dans Visual Studio Code
Exemple de code source pour trouver le multiple commun minimum de plusieurs valeurs en Java
Exemple de code pour obtenir les valeurs de type SQL clés dans Java + MySQL 8.0