顔認識できなかったケースまとめディープラーニングを使わない顔認識Githubで公開されている「Face-Detection-OpenCV」を実行し、OpenCVでの顔認識の限界を探ってみました。このコードには、OpenCV(オープンシーヴィ)による、「非ディープラーニングの顔認識のテスト用コード」がまとまっています。最終的にHaar方式、LBP方式という2種類の顔認識を比較しています。Haar方式については、認識速度が遅く、壁に貼ったポスターの顔まで「顔」と認識してしまいました。LBP方式は、実際の人間の顔のみキレイに認識出来た上、認識にかかる時間が1/3以下。ここだけ見ると、「ああ、Haar方式って良いところないんだな。使わないようにしよう...」と思ってしまいます。念のため、別の画像で確認してみたいと思いました。今回は、Haar方式とLBP方式の顔認識の違いで遊んでみたいと思います!【関連記事】OpenCVインストール方法や環境構築に関してはこちらの記事をご覧くださいドキュメント内の指定箇所のみ繰り返し実行する今回は、毎回全コード実行するのは時間がかかるため、以下の方法で実行しました。Analysis」の部分のコードが、test5.jpgを読み込む箇所です。具体的には、C:\Users\<ユーザ名>\gitlocal\Face-Detection-OpenCV\dataのデータのうち、test5.jpgを差し替えています。画像差し替え後、この部分から処理を再実行しました。具体的には、該当箇所をクリックして選択状態にしてから、「Runボタン」をクリックです。このあと、顔認識結果が表示される箇所までRunボタン連打で進めて、別の画像に差し替えて実験しています。緑の枠が表示されている箇所が、「顔がある」と認識されている部分です。こちらの画像に関しては、きれいに認識できていますね。多少斜めになっていても、メガネをかけていても、顔と顔がくっついていても問題なく認識しているようです。サングラス、メガネ着用の人物の顔認識サングラスは認識出来ているのに、LBP方式ではメガネの女性の顔認識ができませんでした。...なぜ!?手が顔にかかっているからでしょうか?横顔の人物の顔認識んー、残念!Haar方式とLBP方式どちらも、横顔の人物は認識できませんでした。斜めや逆さの人物の顔認識Haar方式とLBP方式どちらも、斜めの人物の認識はできませんでした。一定角度以上傾くと認識できないのかもしれません。画像を回転させて複数認識処理するなどの工夫が必要なのかも知れません。Haar方式とLBP方式どちらも、デフォルメされた顔は認識できませんでした。「目鼻口がついていれば良い」というわけではなさそうです。動物の顔認識Haar方式とLBP方式どちらも、プレーリードッグの顔認識はできませんでした。猿など、人間に近い顔なら認識できるのでしょうか?ゴリラでやってみましょう。Haar方式だと、ゴリラの顔が認識出来ました。システム」ができるのでは?・・・などと、ウキウキして待っていましたが、認識できませんでした。動物の顔(類人猿は一部認識)デフォルメされた(イラスト等)顔このあたりを解決するには、「やはりディープラーニングを使おう」ということになるのでしょうね。今回は、OpenCVを使ったHaar方式とLBP方式による顔認証についてご紹介しました。社長と一杯飲みながらお話してみたい方はこちらミツオカフリーランスエンジニア様の募集はこちらにゃんこ師匠その他、お問い合わせはこちらミツオカお気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!一緒に働いてくれる仲間を募集しております!ライトコードでは、仲間を募集しております!当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。rightcodeエンジニア大募集中!私たちライトコードでは、エンジニアを募集しております。私服大歓迎のカジュアルな職場なので、お気軽にご応募ください!また、フリーエンジニアの方も募集しております。