LoginSignup
3
2

More than 5 years have passed since last update.

Watson Visual Recognitionの顔検出機能を用いて、人の全身画像から顔部分のみの画像に加工してみた

Last updated at Posted at 2017-06-25

はじめに

Watson Visual RecognitionのDetect Faceという顔検出機能を使うと、人の年齢、性別、画像における顔の位置を読み取ることができます。
今回は、Detect Faceという顔検出機能を使って人の画像から顔の位置を検出し、顔部分のみの画像に加工するというコードをJavaで実装しました。

Javaの実行環境構築

  1. JDKのインストール
    JDKのインストールは下記URLから行います。
    http://www.oracle.com/technetwork/java/javase/downloads/index.html

 インストール方法は、下記URLを参考にしてください。
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. eclipseのインストール
eclipseのインストールは下記URLから行います。
http://www.eclipse.org/downloads/

 インストール方法は、下記URLを参考にしてください。
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. Maven projectの作成
eclipseの「New」→「Project」→「Maven Project」を作成します。
maven1.png

コードの入手、設定

  1. コードのダウンロード 下記のURLから、コードをダウンロードします。
    https://github.com/takana-at/VisualRecognition-training
    ダウンロードしたら、コードを展開します。
      
  2. コードの配置
    sample.appプロジェクトに下記クラスをコピーします。
     ・DetectFaces.java
     ・DetectFacesThread.java
     ・TrainingDefinition.java

Visual Recognitionの顔検出機能の実装

Visual Recognitionサービスの作成

  1. Bluemix上でVisual Recognitionのサービスを作成します。
    下記URLからBluemixにログインし、「カタログ」→「Watson」→「Visual Recognition」サービスを作成します。
    https://console.bluemix.net/

2. Visual Recognitionのサービスを作成したら、「サービス資格情報」→「Credentials-1」から、{api_key}を確認し、メモしておきます。

visual_recognition1.png

Javaのコードを実行する

今回は人の画像を、顔部分だけ切り取って保存するコードである DetectFaces.javaを実行します。

1. DetectFacesThread.javaのコードを変更します。
このクラスのコードの{api_key}を先ほどメモしたapi_keyに変更します。

2. 顔検出したい画像を配置します。
画像は、project直下に「trainImage」フォルダを作成し、「trainImage」フォルダ内に「画像ID名」のフォルダを作成し、「画像ID名」のフォルダに画像を配置してください。
この画像IDは、人物ごとに振り分けるために使用していますので、同一人物は同じ画像ID名のフォルダ内に配置してください。

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

たとえば、下記のように「femaleA」という画像ID名のフォルダに、「m010462.jpg」、「m010469.jpg」の画像を格納します。

reface1.png

※今回使用した画像
https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/300378
https://model.foto.ne.jp/free/product_info.php/cPath/24_252_256/products_id/302141

3. 引数には、下記を入れて実装します。
「./trainImage」
DetectFaces2.png

4. 実行結果は以下のようになります。
face2.png

5. 実行後は、プロジェクト直下にfaceImageフォルダに画像のIDのフォルダが作成され、その画像IDフォルダに画像が保存されます。

reface2.png

6. このfaceImage配下の画像は、trainImage配下の画像を顔部分だけ抽出し、リネームし、保存した画像になります。
【trainImage/female/m010462.jpg】
m010462.jpg
       ↓
【faceImage/female/m010462.jpg_face.jpg】
   m010462.jpg_face.jpg

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2