2
1

More than 3 years have passed since last update.

ZOZOTOWNの画像から、コーデの参考になる全身画像を機械学習で抽出する試み。

Last updated at Posted at 2021-03-31

概要

ZOZOTOWNの商品画像には、商品のみの画像コーデの画像があります。
これらの画像から全身が写ったコーデ画像のみを抽出したくなったため、MLを利用して試してみました。

商品のみの画像  コーデ画像
54033586b_8_d_500.jpg 54033586b_b_06_500.jpg

必要要件

コーデ画像として使える全身画像 = 首と足が含まれている画像
と考えました。

検討した手法

1.オブジェクト検出

オブジェクト検出は、画像の中に何があるのかを検出する手法です。(例:人間、車、犬、洋服など)
この手法を最初に検討しました。しかし人間や犬などのレベルでの検出はできるのですが、首や足などのレベルでの検出はできませんでした。そのため、別の手法を検討しました。(転移学習という方法を使って、このモデルを首や足などを検出できるように学習し直すことでも可能かと思われますが、それよりも効率的に使える手法を検討しました。)

ちなみにこの手法は、AWS Rekognitionで簡単に利用することができます。

AWS Rekognition

APIでMLを使った様々な画像処理を行えるサービスです。
1000枚/1$なので、まず試してみるという時に便利です。
画面収録 2020-12-09 15.05.48.mov.gif

2.姿勢推定

各関節を検出することで、画像や動画に写った人の姿勢を推定することができる機能です。
簡単に人の動きをモデル化できるので、ダンス動画の解析などに使われます。
首と足の関節が写っている場合に、コーデ画像であると判定するようにすれば使えそうです。

OpenPose

ボトムダウン型で姿勢推定ができるライブラリです。(トップダウンとボトムダウンの説明はこちら
openpose-sample.gif

(追記)記事にいただいたご意見から調べたこと

オブジェクト検出の転移学習によって体の部位を検出できないか?

調べてみましたが、基本的には人間の体の部位は動画や深度情報を活用していました。
Fast Detection and Modeling of Human-Body Parts from Monocular Video
Real-time Identification and Localization of Body Parts from Depth Images

実際に物体検出から、顔を認識する転移学習を行なっているものはありました。
Keras-SSDで転移学習-顔検出-
ただその他の体の部位の情報は多くないので、あまり有効な方法ではないかもしれません。(AWS Rekognitionで今度試してみたいと思います。)(そもそも姿勢検出でできるので、頑張る必要はないですが。)

姿勢推定の弱い部分

やはり向きや画像の範囲によっては、姿勢を検出できない場所があるようです
https://qiita.com/baba5246/items/7ed50689c67c0ad3882d

展望

実際にサーバーを動かす際の要求仕様を考えてみました
1. 複数の画像のURL(もしくは画像?)をサービスに送る
2. その中からコーデ画像のみを返す

参考になりそうなAWSのページ

2
1
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
2
1