Wait a moment...

機械学習ログ②:大量の不要素材を人力で間引く

nem2.75xem (1)
316
0
2019-09-10 23:02:41
機械学習ログ②:大量の不要素材を人力で間引く

◆筆者

 

 

かわいい赤ちゃんだよ。

 

かわいいね。

 

 

 

◆あらすじ

 

人の顔写真を入れると、かいあおりポケモンかどうかを教えてくれる『ポケモンけんしゅつマシン』をつくりました。

マシンの詳細については、他プラットフォームで恐縮ですがALISの記事をご参照ください。

 

リンクも記事も面倒だという方は下記ツイートの動画を見るとおおよそ雰囲気がつかめます。

 

 

本記事は、マシンのブラッシュアップログです。 前回はこちら

 

======

 

◆素材のスクリーニング

 

検出精度の向上をめざすにあたって、前回の記事で判明した学習データの問題点はこちら。

 

問題1:trainデータtestデータの絶対量が少なすぎる

問題2:trainデータとtestデータに重複する画像が多く含まれている

問題3:顔の検出という目的に対して、2層構造では層が少ない

 

そのうえで「現行の学習モデルの問題点を上から解決していこう!」と意気込み、前回は素材集めに着手しました。

素材集め手段として、動画の連続キャプチャを採用し、1ラベルあたりだいたい1000枚づつの素材を入手できました!

 

…と思っていましたが、よくよく考えると、キャプチャ画像はそのまま素材として使えるわけではなく、下記3stepを踏んでようやく学習データとなります。

 

step①:素材として使えないキャプチャ画像を間引く(ここは目でやります)

step②:学習データ用に顔部分を切り出す(ここはOpenCVでやります)

step③:trainデータとtestデータにいい感じに振り分ける(Kerasにいい感じのコマンドがあるみたい)

 

正直、①の手順は飛ばして全てオリャーとOpenCVに切出しをさせればよいのかもしれませんが、コピペで作ったはずの顔部分切出しプログラムがあまり安定して動作しておらず、謎に検出途中でエラーを吐いて中断してしまうので、切出しツールにあまり負荷をかけられないため①を目でやっています

 

 

目で見て削除した画像たち。複数人が写っており、検出対象がそこまでフォーカスされていません。

 

 

生き残った画像たち。検出対象のバストアップ画像を採用することで、シッカリ顔を検出してくれたらいいなと思っています。 

 

 

本日はあまり時間がとれないため、①の素材スクリーニングをやって終了かなという感じです。

深層学習への道のりは長い。

 

 

 

◆次のステップ

 

step②で使用するOpenCVの顔切出しソフトですが、これまでjpg画像からしか切出したことがなく、今回スクショ撮影したpng形式に対応できるのか不明です。

どハマりのにおいを感じつつ、せっせと素材をわけわけしていこうと思います。

 

また、素材の数を増やさずとも、OpenCVの顔画像データセットから転移学習させる形をとれば、少ない素材でも効果的な学習が期待できるという話も聞きましたので、並行してそちらも頭の片隅に置いておくことにしましょう。

 

 

前後の記事:

その①:【ご挨拶】Youtube動画を自動でスクショし学習素材を取得

その②:【前処理】大量の不要素材を人力で間引く ←★イマココ!

その③:【顔検出】フォルダ内の画像ファイル全てに顔検出を実行

その④:【お休み】次の手を考えながら焼肉を堪能しました

その⑤:【ハマり】TensorFlowのインストールに8時間を費やす

 

nemlogプログラマーズ同好会

nemlogプログラマーズ同好会

この記事を書いた人
2017年12月に仮想通貨取引をスタートした、ちいさなちいさな赤ちゃん。 小さなお手手で、投げ銭をたくさん集めているよ。かわいいね。