Why not register and get more from Qiita? Githubで公開されている「Face-Detection-OpenCV」を実行し、OpenCVでの顔認識の限界を探ってみました。, このコードには、OpenCV(オープンシーヴィ)による、「非ディープラーニングの顔認識のテスト用コード」がまとまっています。, Haar方式については、認識速度が遅く、壁に貼ったポスターの顔まで「顔」と認識してしまいました。, しかし、LBP方式は、実際の人間の顔のみキレイに認識出来た上、認識にかかる時間が1/3以下。, ここだけ見ると、「ああ、Haar方式って良いところないんだな。使わないようにしよう…」と思ってしまいます。, ドキュメント内の「Haar and LBP Results Analysis」の部分のコードが、test5.jpgを読み込む箇所です。, 具体的には、C:\Users\<ユーザ名>\gitlocal\Face-Detection-OpenCV\dataのデータのうち、test5.jpgを差し替えています。, 具体的には、該当箇所をクリックして選択状態にしてから、「Runボタン」をクリックです。, このあと、顔認識結果が表示される箇所までRunボタン連打で進めて、別の画像に差し替えて実験しています。, 多少斜めになっていても、メガネをかけていても、顔と顔がくっついていても問題なく認識しているようです。, サングラスは認識出来ているのに、LBP方式ではメガネの女性の顔認識ができませんでした。, そうなると、もし、そのような認識が可能であれば、「自動心霊写真検出システム」ができるのでは?, このあたりを解決するには、「やはりディープラーニングを使おう」ということになるのでしょうね。, 今回は、OpenCVを使ったHaar方式とLBP方式による顔認証についてご紹介しました。, (株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。 機械学習でのシステム開発依頼・お見積もりはこちらまでお願いします。 また、機械学習系エンジニアを積極採用中です!詳しくはこちらをご覧ください。, 当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。, また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!, なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。, 私たちライトコードでは、エンジニアを募集しております。 私服大歓迎のカジュアルな職場なので、お気軽にご応募ください! また、フリーエンジニアの方も募集しております。, 【福岡オフィス】〒812-0011 福岡県福岡市博多区博多駅前3-13-4 リアンプレミアム博多駅前ビル3F 【東京オフィス】〒101-0051 東京都千代田区神田神保町2-32 神保町フロント5F. OpenCVを使って顔や目、口などを検出する方法を紹介します。 OpenCVを使うと画像を利用した機械学習の前処理を行えるようになります。 機械学習は最初のハードルが高いので、慣れていない方にもわかりやすいように 基本的な使い方とハマりやすいポイント. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. このコードには、OpenCV(オープンシーヴィ)による、「非ディープラーニングの顔認識のテスト用コード」がまとまっています。 赤ちゃんのグレイ表示/顔認識テスト; 3人の赤ちゃんの顔認識テスト; 顔認識精度をパラメータ調整で向上させた例 Would love your thoughts, please comment. ※最新記事順 "minNeighbors value of detectMultiScale. // the preview size according to the "RicMoviePreviewXXXX" parameter, "/haarcascades/haarcascade_frontalface_default.xml", // show white LED when multiple faces are detected, ほとんどのArm IPが試し放題でスタートアップは年会費無料!?Arm Flexible Access, THETA の中で OpenCV を動かす【プレビューフレーム取得編】 - Qiita, THETA の中で OpenCV を動かす【プレビューフレーム応用編】 - Qiita, you can read useful information later efficiently. #image - CV_8U 型の行列.ここに格納されている画像中から物体が検出されます 設定値は Constants.java で定義されています。, カスケードファイルは 顔, 目, 笑顔, 上半身など 検出対象毎にファイルが分かれています。 openCVを使って顔検出する時に、「1.学習済モデル(cascadeファイル)をどれにするか?」、「2.detectMultiScaleメソッドのパラメータをどうするか?」は必ず通る迷いどころかと思います。検出精度を高めるには上記の2つは必須で、いちいちプログラムを書き換えて実行しているのは効率が悪いです。手っ取り早く検出精度を高めるための(プログラム変更せずに)パラメータ指定して実行する方法の紹介です。 また、顔の検出数と検出位置によって LED の点灯色を変えることができました。, 今回はお試し的な記事でしたが、複数人が等間隔に並んだことを検出したらシャッターを切るなど実用的なプラグインが作れると楽しそうです。, 株式会社リコーの技術者有志による、RICOH THETAプラグイン技術情報の提供を目的としたコミュニティです。. 興味を持たれた方は Twitter のフォローと THETA プラグイン開発コミュニティ(Slack) への参加もよろしくお願いします。, 顔検出には画像処理ライブラリ OpenCV のバージョン 3.4.5 を使用しました。, THETA の中で OpenCV を動かすための環境は THETAの中でOpenCVを動かす【プレビューフレーム取得編】 の記事で詳しく紹介されています。今回はそちらの記事の環境とサンプルコードを使用し、顔検出のための処理を追加しました。, 顔検出には Cascade Classifier クラスを使いました。 Cascade Classifier による顔検出の実装については 公式チュートリアル に分かりやすい例とともに紹介されています。, Cascade Classifier を使うには、カスケードファイルと呼ばれる検出対象の特徴がまとめて記述されているファイルを読み込む必要があります。, カスケードファイルは OpenCV の公式 SDK の中に含まれているのでこれを使います。以下の手順でダウンロードして配置しました。, サンプルコードのMainActivity.java には onCameraFrame() メソッドが用意されており、プレビュー映像のフレーム毎の処理を書くことができます。, 解像度とフレームレートを高くすると顔検出の計算量が大きくなり、動作が不安定になってしまうため、以下のように設定しました。, 解像度については、サンプルでもともと 640x320 となっています。 こんにちは、リコーの @yomura_です。 今回は RICOH THETA V に顔検出処理をさせてみました。 また、せっかくの 360° カメラなので、顔を検出した方向に応じて内蔵 LED の点灯色を変えるようにしてみました。 顔認識や顔検出は難しいことだと思っていませんか?実は、全くそんなことはありません。PythonでOpenCVを使えば、写真から人物の顔を認識・検出することが、とても簡単にできるのです。この記事を読めば、早ければ30分もかからずに、顔認証・顔検出が可能になります。 画像に写る人物の顔を検出する手法は様々ありますが、実際にKagglerのみなさんが使うことにしたものはOpenCVが多いように思います。今回はOpenCVで顔検出することについてです。, OpenCVのCascade Classifierは、検出したい物体に合わせてClassifierの重みを記録したXMLファイルを読み込んで画像を走査させることでその物体を検出しようとします。検出対象の物体ごとのXMLファイルは下記のOpenCVのgitHubサイトにて取得できます。, https://github.com/opencv/opencv/tree/master/data/haarcascades, 例えば、人間の顔の前面を検出する場合、Pythonコードで書くと下記のようになります。, 得られる「faces_frontal」には画像上の検出された顔の位置(起点x,yと幅h,w)が配列で記録されます。, なお、画像に写る顔は正面だけではなく横顔もあるため、上記の顔前面検出と同時に横顔(英語ではprofileという)画像検出も行う必要があります。その際に、注意点としては、使う「haarcascade_profileface.xml」は、顔の左側しか検出しないということです。ですので、検出対象とする画像を左右反転(flip)させて、その反転画像に対しても走査を行うことが重要です。これをしないと検出漏れがたくさん出ます。, Deep Learningで学習データを生成する作業と切っても切れない作業が「Augmentation(オーグメンテーション)」です。オーグメンテーションとは「水増し」という意味で、学習データの数が足りない場合に、既にある学習データに本質を損なわないような加工をして学習データを増やすことを意味します。本来はこの「水増し」が意味なのですが、学習データ生成で画像の明暗を変化させたり、拡大縮小するような作業も含めてオーグメンテーションと読んでいるように感じます。, 画像の学習データの生成では下記のような作業がよく行われ、後で作成するモデルの精度に寄与すると考えられています。, OpenCVは簡単に使え、この他にも様々な使い方ができる素晴らしいライブラリです。いろいろと遊んでみましょう。, Filed under: Coding, Deep Learning, Digital Imaging, Others, Software, Tags: Augmentation,Classifier,cv2.COLOR_BGR2GRAY,Deep Learning,detectMultiScale,Facial Recognition,flip,frontal,Haarcascades,noise,OpenCV,profile,Python,zoom, 本来の議論としては「民間が所得減ったから公務員も下げろ」ではなくて、原資となる税金収入の増減に連動せず人件費がかかる公務員は減らすor自動化しましょう、だと思います。安定した給料を得るのは問題ないよ。だけど支える民間に対して数が多い。https://news.yahoo.co.jp/articles/d5f34633266608c267c500a564d4245a2cce93f4, 欲しいものがあるたびにポチポチしないで「1週間カートに入れておいてそれでも欲しかったらポチる」とか「カートに入れておいてポチるのは2週間に一回」とか決めると無駄な出費が減るよ。, 「嘘をつく」ことを単に道義的問題としてNGと教えるのは不十分で、どんなコミュニケーションにも後工程があって、嘘をつくとその後工程が全てズレてしまうという「太極的なエコシステム感」を持って教える必要があります。後工程にも迷惑だし、巡り巡って自分に返ると。.