Automatic Rating | 全自動仕分け

自作の全自動仕分けアプリ
自作の画像表示アプリを写真セレクトに使おうと考え、「レーティング機能」を実装して写真のセレクトを行える様にはしてあった。 でも、大量の写真をセレクトするのは罰ゲームより辛い...僕にとっては...

そこで、上半身(バストアップ)検出機能と顔検出機能と眼検出機能を組み込んで、人物スポーツ写真の「全自動仕分け」アプリにしてみた。


この写真はNG写真 ちゃんと☆ゼロ個だ
人物スポーツ写真の基本は眼にピントを合わせて良い構図で良い表情の写真を撮る事。 でも、様々な事情から顔や眼にAFフレームを合わせられない場合が多い。 特に選手の動きが激しい場合は演算量が多くて不安定なロックオンAFより拡張フレキシブルスポットの方が総合的に合焦率が高い。 また、ロックオンを使っても顔にAFフレームが来るとは限らない。

AFフレームが胸に当たっていても人間がピント確認を行うのは顔や眼なので、全自動仕分けアプリも人体・顔・眼を高精度に検出出来なきゃならないのね。

上の写真はロックオンAFで撮影した写真だけど、SONY ILCE-9 はお尻が大好きなので腰にピントを合わせられてしまった。 全自動仕分けアプリは顔・眼を検出し、ピントを評価してダメ写真だとはじいている。


この写真は☆3個 でも、構図・状況的にはじきたい写真だが...
僕が作ったAIの思慮パターンを以下に記載しておく。
  1. 人体・顔・眼を検出し、最も主被写体と思われる座標を特定する。
    スポーツ写真では顔が大きく傾いていたりするので、写真をアフィン変換して斜め方向もチェックする必要がある。
  2. 特定された座標で画像をフーリエ変換して周波数特性を算出する。
    設定したISO感度などによってノイズ量が異なるので、フーリエ変換前にメディアンフィルターなどを掛ける必要がある。
  3. フーリエ変換結果を精査する。
    360度方向の周波数特性を確認し、高周波・中周波・低周波と分類し、「僕が合焦判断する感じ」で判定を下す。
  4. レーティングを付ける
    非合焦は☆ゼロ個で、合焦してるなら☆1個が基本。
    さらに、顔が検出されたら☆1個追加で、眼が検出されたら☆1個追加で、ガチピンなら☆1個追加という様にレーティングを付けます。
    結果、最大☆数は4個という事になる。
AIとはいえ、こんな事をちまちま実行していると結構な時間が掛かってしまう。 僕の旧式パソコンでは異常に時間が掛かるので、最新の高速パソコンにしないと厳しい。

さて、この選手を撮影した総駒数は240駒で、
 ☆0個:26駒(ダメ写真)
 ☆1個:62駒(ピントはOK)
 ☆2個:22駒
 ☆3個:79駒
 ☆4個:51駒(顔・眼が有ってガチピン)
という結果だった。
☆2個以上をチェックするなら152駒/240駒なので、63%までしか絞り込まれていない。 これでは最初から手動でやる方が速そうだけど、選手が何十人もいる場合は寝ている間に絞り込んでくれると有難いかも知れない。

SONY ILCE-9 で撮影してもこの程度に使える写真があるなら、操作性は別にしてEOSやNIKONを使う必要は無いだろう。


まとめ
Deep Learning は時間と忍耐が必要
人体検出や顔検出のディープラーニングには時間が掛かり過ぎる。 僕の現在の顔検出用分類器は1万4千顔を学習させているけど、僕の旧式パソコンでは1回の学習時間に2週間以上かかる。 目標は2万顔だけど、心が折れそうだ。

さて、苦労して作ってきたAIだけど、写真の構図は考慮されていない。 後ろ向きとか顔が写っていない写真やピンボケ写真ははじけるけど、変な構図の写真ははじけない。

良い構図を選ぶAIも作らなきゃならないので、先は長い...僕が生きてるうちに作れるかどうか...

Sponsored Link
Sponsored Link
Sponsored Link