見出し画像

顔検出器のパラメータ調整

スマホで撮った画像はそのまま取り込むには画像サイズが大きすぎるので、顔部分のみを切り取ってリサイズするフローを開発しています。

必要なもの
・顔検出するためのライブラリ
・OpenCV
・サンプル複数

まず、スマホで撮られている写真そのままでは画像が暗く、検出できないパターンが多い。加工されていたり、ライトが当たっていればよいが、即席で撮った写真なんかは大抵は暗いまま。

そして背景が写っていたりすると誤検出も多くなる。顔と間違ってしまうようなディテールも多くある。そこでパラメータの調整なのだが、信頼度を厳しくすると本来の顔部分すらスルーしてしまうし、ゆるくすると誤検出が増えるというジレンマ。ちょうどいいところを狙いたいのだが、こればかりはユーザーの送ってくる写真から傾向と対策すればいいのだろうけど。ある程度のユーザー数が増えてきた段階で、おことわりを入れないといけないだろう。

今回採用したライブラリは、OpenCVに標準で付属する
「haarcascade_frontalface_default.xml」
を使用した。いろいろ使ってみたが、これが一番精度が出ているように感じた。※画像によっては他のものが精度が出る場合がありますので、一概には言えませんが。

そしてパラメータを
scaleFactor=1.2
minNeighbors=10
minSize=(256,256)
にセットした。
scaleFactorは最初1.11にしたが1.2に。
minNeighborsは最初3にしたが誤検出が多く10に。
minSizeはこれ以上小さいものは検出しないというサイズに。

これで最初より誤検出は減ったが、それでも送られてくる画像すべてに対応できるわけではないのが難しいところです。

とりあえず動作確認のためにネット上の画像でテスト。

顔以外も写っている桐谷さん。

顔部分だけ切り取られた桐谷さん。
Photoshopじゃないですよ。Pythonですよ。

うん。顔とはっきりわかる画像ならうまくいく。そもそも修正されているし、明るさもばっちりだもんね。みんながこのクオリティで送ってくれるわけじゃないの。わかっちゃいるんだけど。

でもね。ある程度納得できる時点で本番実装していかないといつまでも改良なんて出来ないから、批判覚悟しつつそれでも前に進めるよう勇気100倍にしていこう。

あ、カバー画像は妻です。無断使用です。使ったら失敗したの。だから失敗した画像を使ったのです。なにいってんだ?見られたらどうするって?口元まで写さなきゃわからんでしょ。たぶん。

これが結婚するメリットだ!(キリッ)

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

1
子供が出来たことがきっかけで人工知能に目覚める。点と線と面で捉える育児とAIは似ているため、学習のコツは生身の人間から学ぶ。思い通りにいかないことが当たり前。11歳年下の女房と娘、犬2匹。小学生からパソコンにハマり、専修学校、郵便局公務員、メーカーでネット直販、25歳で起業。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。