INPUT_IMG_PATHは、顔が映っているjpg画像のパスとなります。 ソースの用意5. OpenCVにあるHaarlike-Cascade顔検出器を使ってみました. 正面顔専用検出器ですが,角度と引数としてあるscaleFactor, minNeighborsを色々いじって斜め顔の検出も試してみました. 主にサッカー競技団体向けに営業、コンサルティングを行っております。 OUTPUT_IMG_PATHは、顔認識・顔検出した後の結果画像のパスです。, 上記のサンプルコードを実行すると、OUTPUT_IMG_PATHに画像ができているはずです。, 手前にいる顔の見えない女性以外は、すべて顔認識ができています。 We do our best for all of our stakeholders. Python, OpenCVでカスケード型分類器を使った顔検出と瞳検出(顔認識と瞳認識)を行う。以下に公式のチュートリアル(英語)がある。OpenCV: Face Detection using Haar Cascades ここでは、静止画: 画像ファイルを読み込んで顔検出と瞳検出 動画: カメラを使ってリアルタイムで顔検出と瞳検出 について … 映像・メディア事業推進部の上田です。現在は主に野球のメディア向けサービスやシステム開発に携わっています。, 当社では、データの中でも特にプレーデータと呼んでいる、試合中に起きる出来事をベースにしたデータの扱いを得意としています。例えば野球では投球・打球、サッカーではパス・シュート・クロスなど、発生した事象を1レコードとして記録したデータです。, また、昨今ではトラッキングやセンサリングなどプレー以外のデータを取得したり、機械学習を使ってデータを活用したりなど、様々な利用ができるようになっています。, 今回はその中でも画像データについて、「PythonとOpenCVを使い、画像の中から顔を高い精度で検出する」をテーマにご紹介します。, 以下のバージョンでやっていきます。OS:Windows10 Pro 1909Python :3.7.3OpenCV :3.4.2パッケージ管理ツール:Anaconda 2020.02Spyder:4.1.3, Anacondaでの OpenCV ライブラリのインストール方法はこちら。(https://anaconda.org/conda-forge/opencv), OpenCVの顔検出をするための、学習済みのファイル(haarcascade_frontalface_alt.xml)はこちら(https://github.com/opencv/opencv/tree/master/data/haarcascades)からダウンロードできます。任意のフォルダに置いておきましょう。今回は正面から見た顔検出器を使います。, いきなりですが、最終的なサンプルコードを記載します。コメントアウト(#)の個所に数字を振ってあります。後段の説明ではその数字を参照し、コード位置を確認してください。, 複数の画像をまとめて検出にかけるとき扱いやすくするため、globメソッドを使い、変数pic_fillesに指定したフォルダ内の.jpgファイルのパスをリスト化しておきます。そして、ダウンロードした学習済みのデータが入っているxmlファイルを読み込みます(#1)。, 検出すると、変数face_rectに検出した物体(長方形)の情報(X, Y, Width, Height)がnumpyのndarray配列で入ります。 X,Yは長方形の左上の座標点で、Width(幅)は座標(X,Y)から右方向の長さ、Height(高)は座標(X,Y)から下方向の長さです(#3)。, なお、常にWidth=Heightとなるので正方形で検出されます。また、1枚の画像から、複数の物体を検出します。上のサンプルコードでは、最初の検出の数値でforループを抜けるようにしてあります。, 今回は、事前加工として画像をグレースケール(白黒の画像)に変換しています(#4)。, パラメータについては、OpenCVの公式ドキュメントを見ると複数あることがわかりますが、今回はそのうち以下3種類を使います。, これらの最適な値を導くため、あらかじめ「1つの画像に1人の人間」という画像に対して、複数のパターンで検証しました。検出結果では長方形を赤色で塗り視認しやすくしています(#5)。, min_sizes = [400]scale_factors = [1.25]min_neis = [3], 40枚中、何らかの検出ができたのは7枚だけ。ただ、7枚全てで顔を適切に検出、顔以外の検出(誤検出)は0枚でした。, min_sizes = [15]scale_factors = [1.05]min_neis = [2], 40枚中、何らかの検出ができたのは39枚。うち32枚で顔を適切に検出、誤検出は7枚ありました。, 右上の写真(sample_31.jpg)だと、腕のあたりを顔として検出してしまっています。, いずれのパラメータも数値が大きいほど、 ・何らかの検出ができれば、正しく顔を検出しやすく、誤検出はしにくい ・ただし、検出無しも多くなる, そして数値を小さくすると、 ・何らかの検出ができた場合でも、顔も顔以外も検出しやすい ・ただし、検出無しとなることは減る, つまり、設定値が大きいほど厳しめの検出、小さいと緩めの検出、と言えそうです。この簡単な実験から、大きな数値から小さな数値に (厳しめから緩やかに) 順に処理をすれば、良い結果になりそうです。, min_sizes = [400, 350, 300, 250, 200, 150, 100, 50, 25, 15] scale_factors = [1.25, 1.2, 1.15, 1.1, 1.05] min_neis = [3, 2], 実際のプログラムではこのようにパラメータを設定し、厳しい検出の組み合わせから順に緩やかになるように検出してみました(#6)。, 結果は40枚中、何らかを検出できたのは39枚。うち38枚で顔を適切に検出、誤検出は1枚のみでした。, sample_28、29、33、38の4枚に対しては、パターン1では未検出、パターン2では誤検出していたところ、パターン3の組み合わせ処理では顔を正しく検出できるようになりました。, 残念ながら今回のパラメータではキャプチャ右上のsample_31.jpgは腕の検出となってしまいました。これは頭部にタオルを巻いていることが影響していると思われます。そして実際に野球、サッカー、バスケットボール選手の写真を使った検出でも、野球のように帽子を被った写真では未検出や誤検出が多い傾向がありました。, 未検出や誤検出を減らし顔のみを正しく検出することができれば、顔を検出した後の様々な処理が非常に楽になります。, 最後に、OpenCVの顔検出器のように公開されている学習済みモデルを使う際の、メリットとデメリットについて触れておきます。, メリット ・学習用のデータ(画像)を大量に集める必要がない ・機械学習の手法を学ぶ必要がない, デメリット ・手に入れたい結果にならない可能性がある (検出したい画像と学習済みデータにミスマッチがある場合や、適切なパラメータを見つけられない場合), 以上、「PythonとOpenCVを用いて、複数の画像の中から顔のみを正しく検出する」でした。(検証用の人物画像は、ぱくたそ(www.pakutaso.com)の画像を用いています), 配信サービス部の土屋です。主に野球の速報配信サービスに携わっています。 ©1999-2020 EXCEEDSYSTEM All rights reserved. うち32枚で顔を適切に検出、誤検出は7枚ありました。 右上の写真(sample_31.jpg)だと、腕のあたりを顔として検出してしまっています。 いずれのパラメータも数値が大きいほど、 ・何らかの検出ができれば、正しく顔を検出しやすく、誤検出はしにくい Selenium使用時にDriverServiceのコマンドプロンプトを表示しない方法, VSCode上の.NET Core開発でカレントディレクトリが取得できないときの対応, Visual Studioで出力先フォルダーにNuGetのxmlやpdbファイルを出力しない方法(xxproj編), 既存のXLSXファイルをNPOIで保存してEXCELで開くとファイルの回復確認が表示される問題への対応, Laravel-DataTablesのDataTableサービスでViewからControllerにパラメータを渡す方法, VSCodeのMarkdownPreviewEnhancedでPuppeteerを利用してPDF出力するとき用紙設定を行う方法, LinuxでVSCodeのVim拡張利用時にインサートモード終了で日本語入力をオフにする方法. Windows C#版 OpenCV、多くのサンプルが提供されています。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, こんにちは。エクシードシステム代表でフリーランスITエンジニアのY.Sakamotoです。このサイトはシステム開発に関連する日々の成果や、ちょっとした気づき等をアウトプットを兼ねてなるべく簡潔に情報共有する目的で運営しています。一人でも多くの方のお役に立てれば幸いです。また、本サイトで紹介するサンプルソースコードは、別途記載がなければ全てMIT Licenseですので、商用業務等でもお気軽にご利用いただけます。, エクシードシステムは、実践的で良質かつ豊富なIT技術を基盤に、経営戦略やマーケティングなど多角的な視点を踏まえたスピード感のあるサービスを提案・提供することを以って、お客様と共にビジネス目標の達成、および全てのステークホルダーのロイヤリティが向上することをゴールとして活動しています。. 今回はOpenCvSharpを使い、C#で顔認識(検出)を行なう方法を紹介します。 顔認識や顔検出は難しいことだと思っていませんか?実は、全くそんなことはありません。PythonでOpenCVを使えば、写真から人物の顔を認識・検出することが、とても簡単にできるのです。この記事を読めば、早ければ30分もかからずに、顔認証・顔検出が可能になります。 今までコードすら書いたこ…, データスタジアムのエンジニア二宮です。 当社でも大小様々なサーバーレスシステムの構築、とりわけAWS Lambdaの利用は増えてきていま…. これは、正常にカスケード分類器のファイルを読み込めていないことが原因です。, XML_PATHのパス設定が、適切ではないということになります。 適切にパスを設定すれば、このエラーは解決するはずです。, INPUT_IMG_PATHのパス設定が、適切ではないことが原因です。 OpenCVとC++とVisualStudioで顔認識してみる2.
.
野球 エナメル バッグ 4,
コンカ メンバー 訪問 4,
コンビ F2 足 置き 4,
よく 飛ぶ 中古ドライバー 9,
新潟市 育児休業給付金 延長 4,
Bts を嫌いになる 方法 43,
Pubg モバイル スマホ勢 4,
東芝 テレビ 製造年 調べ方 6,
アメックスプラチナ 特典 2019 7,
帆布 タープ 自作 8,
V60 クロスカントリー かっこいい 17,
電波人間の Rpg2 激 レア 確率 48,
Nec 電話機 着信音量 4,
シャドバ 融合 エルフ 23,
赤ちゃん コーナーガード 100均 4,
Pubg ベリル リコイル 5,
ココナラ イラスト トラブル 5,
Amazon Music 途中で止まる Pc 6,
ドバイ 金持ち インスタ 4,
委任状 欠席 理由 書き方 8,
春 月 苗字 22,
ペルソナ5 スクランブル 攻略本 28,
ぷよテトs フレンド対戦 やり方 5,
フォント 拡張子 変換 4,
キャンプ ファッション インスタ 8,
トッケビ 二次小説 大人 12,
Advanced Random Posts Widget 9,
アルコール 適量 計算 10,
ポケ森 ジャック キャンプ場に呼ぶ方法 18,
Ps4 Apex イヤホン 15,
Super Robot Taisen A Portable Cwcheat 11,
ペットボトル 冷凍庫 冷やす時間 4,
尿管 結石 便意 16,
Gba Rom Pack Game Boy Advance Full Set 7,
Ibus Mozc Raspberry Pi 4,
シンイ イミンホ かっこいい 7,
ツイン ソウル 40代 22,
マラソン 翌日 体重 4,
レモンガス 料金 鹿児島 8,
Mac Excel 連続データ ショートカット 7,
Wiiディスク 入らない 異音 5,
足首 ミサンガ 作り方 6,
アイズワン 新曲 ユーチューブ 8,
電気 資格 順番 4,
アゲハチョウ 卵 色 4,