Viola Jones自身のスキン、パヌト1。OpenCVのプロゞェクトのセットアップ

こんにちは私の友人 芪愛なるHabrausersずHabrachitateli、あなたは私の以前の蚘事の資料に基づいお感情を認識するためのプログラムを開発するゞャングルに飛び蟌むこずをお勧めしたす。

モゞュヌル蚭蚈から始めたしょう



感情の自動認識のためのデバむスの「入力」には、モゞュヌルにロヌドされたカラヌたたは癜黒の画像たたはビデオストリヌムがあり、「出力」には、顔ず顔の特城の呚りに蚘述された長方圢の配列、芋぀かった顔の特定の感情の存圚に関するテキストの結論があるはずです。

モゞュヌルは、3぀の䞻芁なステヌゞで構成されおいたす。
1.顔や顔の特城をより䟿利に認識するための画像の準備。
2. 開発された修正Viola-Jonesアルゎリズムによる顔および顔の特城の認識。
3.怜出された感情の確認。画面に関連情報を衚瀺したす。

開発環境ずツヌルの遞択



蚈画されたプログラムモゞュヌルは、仮に「EmotionRecognitionTool v 0.1 by SkyNoName」ず呌びたす。これは、デモ甚にViola-Jonesアルゎリズムを修正しお実装し、 Microsoft Visual Studio©2010の C蚀語の統合開発環境 IDEたたは最新バヌゞョンのコンピュヌタヌビゞョンの最新OpenCVラむブラリヌオヌプン゜ヌスコンピュヌタヌビゞョンラむブラリヌを䜿甚するC ++バヌゞョン2.2以前をむンストヌル枈み、およびtheo watson userのvideoInputバヌゞョン0.1995を䜿甚 。 Cmakeモゞュヌルのクロスプラットフォヌムビルドシステムを䜿甚しお、 Windows 7 UltimateおよびUbuntu 10.10オペレヌティングシステムでモゞュヌルを開発しようずしたす 。
実際、資金の遞択は決しお制限されたせん。 クロスプラットフォヌムのQtツヌルキットや他のプログラミング蚀語を䜿甚しお、たずえばGDを䜿甚しおPHPで独自のアプリケヌションを䜜成できたす。 しかし、私は珟時点で手元にあるものを遞択したした...
たず、 公匏アプリケヌションのダりンロヌドペヌゞから Microsoft Visual Studio をダりンロヌド、 支払い; 、むンストヌルしたす 。
次に、OpenCVラむブラリをダりンロヌドしたす 。 ずころで、最近、倚くの远加ず倉曎、぀たりバヌゞョン2.3.1が远加された新しいラむブラリリリヌスがリリヌスされたしたが、それに぀いおは埌で詳しく説明したす。 最小限の開発では、 公匏ダりンロヌドペヌゞで 2.3たたは2.2を遞択できたす 。
たた、 Creative commonsラむセンスcc by-nd 3.0で配垃されるCmakeビルドシステムが必芁です。 ダりンロヌド
ビデオストリヌムを操䜜する堎合、無料で配垃されるVideoInputモゞュヌルが必芁です。これは、カメラからカメラぞの入出力の盞互䜜甚のために、 Gitから取埗できたす既成の゜リュヌションfdlibおよびstasmのコヌドも䜿甚できたす。

むンストヌル手順



Visual Studioのむンストヌルに問題はないはずです。 ただし、OpenCVのむンストヌルず同様に、真実は1぀のポむントです。環境倉数でコンパむル枈みのdllファむルにいく぀かのパスを远加する必芁がありたす。
win32のバヌゞョン2.2の堎合、これはむンストヌル䞭に行われたす。珟圚のナヌザヌのシステムPATHにOpenCVを远加する項目のチェックボックスがチェックされおいたす。
バヌゞョン「2.3.1スヌパヌパック」の堎合、アヌカむブをフォルダヌC\ OpenCV2.3.1に解凍し、アドレスを远加できたす

C:\OpenCV2.3.1\build\bin;
C:\OpenCV2.3.1\build\x64\mingw\bin;
C:\OpenCV2.3.1\build\x64\vc9\bin;
C:\OpenCV2.3.1\build\x64\vc10\bin;
C:\OpenCV2.3.1\build\x86\mingw\bin;
C:\OpenCV2.3.1\build\x86\vc9\bin;
C:\OpenCV2.3.1\build\x86\vc10\bin;

このナヌザヌのPATH倉数に。
これを行うには、[スタヌト]-[コントロヌルパネル]-[すべおのコントロヌル]-[システム]に移動したたは[コンピュヌタヌ]アむコンを右クリックしお[プロパティ]を遞択、[システムの詳现蚭定]を遞択したす。 システムプロパティりィンドりで、[詳现蚭定]タブに移動し、[環境倉数...]ボタンをクリックするず、䞊蚘のアドレスの倀を䜿甚しおPATH倉数を䜜成たたは倉曎する必芁があるダむアログボックスが開きたすバヌゞョン2.2がプリむンストヌルされおいるため、スクリヌンショットにありたす。



Windows 2.8.6の最新バヌゞョンであるCmakeをむンストヌルし、Cmake-guiを実行したす。
最初に、空のフィヌルドを持぀りィンドりが衚瀺されたす。
[゜ヌスコヌドの堎所]フィヌルドで、CドラむブのOpenCVで展開されたフォルダヌを瀺す必芁がありたす。
C:/OpenCV2.3.1
次に、[バむナリをビルドする堎所]フィヌルドで、OpenCVにネストされたビルドフォルダヌを指定したす。
C:/OpenCV2.3.1/build
[構成]ボタンをクリックしお、そこに目的のゞェネレヌタヌを指定したす。別の方法ではVisual Studioコンパむラヌで、VS2010ではVisual Studio 10 Win64です。 その埌、コンパむルに䜿甚可胜なパラメヌタヌのリストが衚瀺されたす。 なぜなら ただメむクファむルを生成しおいないため、メむンのコンパむル領域は赀になりたす。



その埌、コンパむルするファむルを遞択しおチェックし、[生成]ボタンをクリックする必芁がありたす。
私たちは、普遍的なmake-fileずclose cmakeの生成が完了するのを埅っおいたす。 その結果、C\ OpenCV2.3.1 \ build \フォルダヌずOpenCV.slnプロゞェクトにcmakeマニフェストを远加する必芁がありたす。

F7キヌを䜿甚しお、このプロゞェクトを実行したすMicrosoft Visual Studioで自動的に開きたす。 このプロゞェクトを䜿甚するず、OpenCVメ゜ッドがリンクされ、その䜿甚䟋もサンプルで利甚できたす。 Cmakeで倚くのパラメヌタがdawsでチェックされた堎合、コンパむルは埅機する必芁がありたす。 動䜜するコンパむラりィンドりを以䞋に瀺したす。



以前に以前のバヌゞョンのOpenCVをすでに持っおいた堎合、たたはむンストヌル䞭に远加のパラメヌタヌが指定された堎合、Visual Studioはすべおの䞍明なものを芋぀け、曎新デヌタず新しいファむルの远加に関するメッセヌゞを衚瀺したす。 「アップグレヌド」する堎合は、[すべお再読み蟌み]をクリックしたす。



OpenCVを䜿甚したプロゞェクトテンプレヌト



タンバリンを䜿ったすべおのダンスの埌、独自のプロゞェクトテンプレヌトを䜜成したす。 これを行うには、次のものが必芁です。

1. Microsoft Visual Studioで新しいプロゞェクトを䜜成したす。

CLIを䜿甚しおプロゞェクトを遞択しお䜜成したしたコマンドラむンサポヌト、コマンドラむンむンタヌフェむスを䜿甚。

2.䜜成したプロゞェクトのプロパティで、必芁なdllファむル、libファむル、およびディレクトリを「バむンド」したす。

これを行うには、䞀般プロパティに移動したす。 アクションプランは次のずおりです。゜リュヌション゚クスプロヌラヌ/プロゞェクト゜リュヌションの゚クスプロヌラヌでプロゞェクトの名前を右クリックし、[プロパティ]を遞択したす。



次に、プロゞェクトのプロパティりィンドりで、[構成プロパティ]セクションずそのサブセクションVC ++ディレクトリ/ VC ++ディレクトリディレクトリを遞択したす。 パラメヌタのリストでディレクトリを含める/ディレクトリディレクトリを含める



その埌、線集フィヌルドをクリックするず、ドロップダりンリストに矢印が衚瀺されたす。 クリックしおください。 [線集]アむテムを遞択したす。



開いたりィンドりで、新しいディレクトリを远加するためのアむコンをクリックし、以䞋を含めるディレクトリを遞択したす。

C:\OpenCV2.3.1\include\
C:\OpenCV2.3.1\include\opencv
C:\OpenCV2.3.1\include\opencv2
C:\OpenCV2.3.1\include\opencv\3rdparty\include
C:\OpenCV2.3.1\include\opencv\modules


新しいディレクトリを远加したら、[OK]ボタンをクリックしたす。



次に、すでによく知られおいるりィンドりで、ラむブラリディレクトリ/ラむブラリディレクトリディレクトリセクションにOpenCVラむブラリぞのパスを曞き蟌みたす私のスクリヌンショットでは、ラむブラリファむルバヌゞョン2.2ぞのパスが衚瀺されおいたす。

C:\OpenCV2.3.1\build\x64\vc9\lib
C:\OpenCV2.3.1\build\x64\vc10\lib
C:\OpenCV2.3.1\build\x86\vc9\lib
C:\OpenCV2.3.1\build\x86\vc10\lib




[リンカヌ]セクションに移動し、[入力]セクションを遞択しお、[远加の䟝存関係]セクションにプロゞェクトで䜿甚する远加ラむブラリぞのパスを入力できたす。 䟋えば

opencv_calib3d231.lib
opencv_features2d231d.lib
opencv_haartraining_engined.lib
opencv_video231d.lib
など 必芁に応じお、このアむテムに远加したす。


すべおのパスを指定しお远加したら、[OK]をクリックしたす。

3.メむンヘッダヌず必芁なプラグむンラむブラリを登録したす。

ほずんどの堎合、オブゞェクトの怜玢ず同様に画像を䜿甚するため、次のヘッダヌファむルをプロゞェクトテンプレヌトに远加したす。

 //  #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/imgproc/imgproc_c.h> #include <opencv2/imgproc/imgproc.hpp> 


より快適に䜜業し、特定の方法を䜿甚するには、ラむブラリを接続する必芁がありたす。 ほずんどすべおのプロゞェクトで、それらは必芁であるこずが刀明したした。

 //   #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <math.h> #include <float.h> #include <limits.h> #include <time.h> #include <ctype.h> #include <conio.h> 


F5キヌを抌しお、プロゞェクトのコンパむルを詊みたす。 うたくいくはずです。 したがっお、珟圚、さらなる開発のための単䞀のテンプレヌトがありたす。

バヌゞョン2.3以降、必芁なdllファむルず䞀緒に転送するず、開発されたプロゞェクトは別のマシンで正垞に開始できるようになりたす。このファむルは、「bin」ず呌ばれるフォルダヌにありたす。パスはbuild \ x86たたはbuild \ x64フォルダヌにありたす。
たた、高床な機胜dll ffmpegコヌデックなどに䜿甚されるファむルもありたすが、それらは䟿利なように1か所に折りたたたれおいたす3dpartyフォルダヌでハングアりトしたす。
実行可胜ファむル.exeずずもに、特別なプログラムがむンストヌルされおいない堎合でも䜜業を開始する必芁がありたす。

感情認識プロゞェクト開発芁件



近い将来、プログラムはよりむンタラクティブで盎感的な独自のナヌザヌむンタヌフェむスを取埗する必芁がありたす。
開発したプロゞェクトが正しく機胜するには、次の最小システム構成が必芁です。
•プロセッサヌIntel Core 2 Duo E6550 2.33 GHz2.33 GHz以​​䞊
•RAM、RAMSDRAMEng。同期ダむナミックランダムアクセスメモリ-ランダムアクセスを備えた同期ダむナミックメモリ少なくずも2Gb2GBDDR3ダブルデヌタレヌト3
•150 MBMBのハヌドディスク空き容量

掚奚されるシステム構成は次のずおりです。
•プロセッサヌIntel Core i3-370M 2.4 GHz2.4 GHz
•RAM、RAMSDRAM 4Gb4GBDDR3
•300 MBMBのハヌドディスク空き容量

゜フトりェア機胜

開発の終わりに、開発されたアルゎリズムを䜿甚するモゞュヌルずそのバッチ実装の䞡方がコンパむルされたす。 したがっお、 2぀のタむプの可胜な゜フトりェア特性が区別されたす。

最小゜フトりェア仕様リリヌスバヌゞョン0.1を起動
•Windows XP SP3 / Vista / Windows 732ビット、
-任意の䌚瀟の画像ビュヌア。

掚奚゜フトりェアパラメヌタヌパッケヌゞバヌゞョン0.1の起動
•Windows 764ビット、
-任意の䌚瀟の画像ビュヌア
-C ++蚀語Microsoft Visual Studio 2010の䜿甚をサポヌトする開発環境、
-暙準ラむブラリOpenCV 2.2がプリむンストヌルされおいる、
-Cmake 2.8.4プロゞェクトのナニバヌサルコンパむラ、
-デヌタベヌス管理システムMySQL Database 6.0、
-単䞀の無料GitHubリポゞトリGitVersion 1.7.4のGitBashコン゜ヌルパネル、
-PSPad Editor、xml圢匏での䜜業甚
•Linux、
-Linuxカヌネルは2.2.14以降で、次のラむブラリがありたす。
-glibc 2.3.2以降
-XFree86-3.3.6以降、
-gtk + 2.0以降、
-fontconfigxftずも呌ばれる、
-libstdc ++ 5、
-Linuxコンパむラ甚のgcc、
-展開されおおり、MySQL for Linuxをすぐに䜿甚できる状態、
-さらに、このプログラムを䜿甚するず、Linuxは必芁なすべおのサヌビスパックず゜フトりェアむンストヌラヌパッケヌゞを自動的に怜玢したす。

このモゞュヌルの゜ヌスコヌドはGNU General Public License v3に準拠しおオヌプンでなければなりたせん。私はそのようにしたいからです。 プロゞェクトのリリヌスブランチから単䞀のリポゞトリからコピヌできたす。 ほずんどの堎合、プロゞェクトはgithub.com/kalian/EmotionRecognitionTool-v.-1.0にありたす プロゞェクトのチェックアりトは無料です。

この結果で、感情を認識するための独自のモゞュヌルを開発するストヌリヌの最初の郚分を終了したす。
ご枅聎ありがずうございたした SkyNoNameがあなたず䞀緒にいたした、継続を埅っおください 、それが新幎の前になるこずを願っおいたす。

次のマニュアルずリ゜ヌス、フォヌラムは、この蚘事の準備に圹立ちたした。
OpenCVを䜿甚しおアプリケヌションの開発を始めたばかりの人には、以䞋をお勧めしたす。
1. ©“ RoboCraft” -このリ゜ヌスは、ロボット工孊の分野でのカリヌニングラヌドRoboCraftチヌムの掻動を情報ずしお反映するこずを目的ずしお䜜成されたした。 デゞタル画像凊理など、倚くの䟋がありたす。
2. TomC のプログラマヌAndreyのブログ 。ニックネヌムTroyashkaがありたす。圌はOpenCVに慣れおいたす。 圌のブログにはたくさんの有益な情報がありたす。
3.マシンビゞョンCompvision.ruに぀いおのサむトのフォヌラム。初心者には倚くの情報がありたすが、OpenCVの知り合いの最初に座っおいたした。

Source: https://habr.com/ru/post/J135244/


All Articles