大量の画像から顔の部分のみトリミングして保存する方法

OpenCVを使った顔抽出

前回の記事で、OpenCVを使った顔認識を紹介しました。

今回は大量の画像から顔の部分だけをトリミングして保存する方法を紹介します。

機械学習用画像の準備としても使えると思いますので、ぜひ参考にしてみてください。

 

テスト環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

python 3.5.2

opencv3 3.1.0

 

まずは1枚でチャレンジ

in_jpgには抽出元となる画像を保存したパスをしてください。

上記パスにインプットとなる画像を保存してから処理を実行すると、out_jpgにトリミングした顔画像を出力するようにしています。

 

出力結果は以下の通り。

しっかりと顔部分だけをトリミングすることに成功しました。

今回も新垣結衣さんの写真を使いました。

それではこのソースコードを大量の画像でも動くようにカスタマイズしていきたいと思います。

 

大量の画像からの顔抽出

ソースコードが雑なのはご容赦ください。

画像の枚数分だけfor文で動かすようにしています。

minSize=(1,1)としていますので、顔でない部分の抽出がされる可能性が高くなりますが、そこは割り切りましょう。

 

以下出力されてきた画像の一部です。

しっかりと顔部分のトリミングができました。

 

一方で、顔でない部分もいくつか抽出されてきました。

この辺りの画像は人力で削除するしかないですね。

 

OpenCVを上手く使えば、色々な画像編集が一瞬で出来そうですね。

特に人の顔の学習モデルを作成したい場合には重宝しそうです。

 

簡単に出来ますので、ぜひ試してみてください。

 

それではまた。

 

その他のPython記事はこちらから

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. 2018年 1月 04日

PAGE TOP