[JAVA] En utilisant la fonction de détection de visage de Watson Visual Recognition, j'ai essayé de transformer une image corporelle entière d'une personne en une image de la partie du visage uniquement.

introduction

La fonction Détecter le visage de Watson Visual Recognition vous permet de lire l'âge, le sexe et la position du visage d'une personne dans l'image. Cette fois, nous avons implémenté un code en Java qui utilise une fonction de détection de visage appelée Detect Face pour détecter la position du visage à partir de l'image d'une personne et la traiter en une image de la partie du visage uniquement.

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. ・DetectFaces.java ・DetectFacesThread.java ・TrainingDefinition.java

Mise en œuvre de la fonction de détection de visage de la reconnaissance visuelle

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

Exécuter du code Java

Cette fois, exécutez DetectFaces.java, qui est un code qui coupe et enregistre uniquement la partie du visage de l'image d'une personne.

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

  2. Placez l'image dont vous souhaitez détecter le visage. 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, stockez les images de "m010462.jpg " et "m010469.jpg " dans le dossier avec le nom d'ID d'image "femaleA" comme indiqué ci-dessous.

reface1.png

  1. Mettez ce qui suit dans l'argument et implémentez. 「./trainImage」 DetectFaces2.png

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

  3. Après l'exécution, un dossier avec l'ID d'image sera créé dans le dossier faceImage directement sous le projet, et l'image sera enregistrée dans ce dossier d'ID d'image.

reface2.png

  1. L'image sous cette faceImage sera l'image enregistrée en extrayant uniquement la partie du visage de l'image sous trainImage, en la renommant. 【trainImage/female/m010462.jpg】 m010462.jpg        ↓ 【faceImage/female/m010462.jpg_face.jpg】    m010462.jpg_face.jpg

Recommended Posts

En utilisant la fonction de détection de visage de Watson Visual Recognition, j'ai essayé de transformer une image corporelle entière d'une personne en une image de la partie du visage uniquement.
J'ai essayé de créer une simple application Android de reconnaissance faciale en utilisant OpenCV
J'ai essayé de créer une fonction de message de l'extension Rails Tutorial (Partie 1): Créer un modèle
J'ai essayé d'utiliser la fonction Server Push de Servlet 4.0
J'ai essayé de faire une fonction de réponse de l'extension Rails Tutorial (Partie 3): Correction d'un malentendu des spécifications
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
J'ai essayé de créer une fonction de message pour l'extension Rails Tutorial (Partie 2): Créer un écran à afficher
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "J'ai essayé de créer une fenêtre avec Bootstrap 3"
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
J'ai essayé d'utiliser la fonction de cache d'Application Container Cloud Service
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
J'ai essayé d'implémenter une fonction équivalente à Felica Lite avec HCE-F d'Android
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot