問題タブ [haar-classifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenCV - 側面/前面/背面の上半身 (首 + 頭)、頭 (前後から) を検出する必要がある - 分類子を適切にトレーニングする
これは私の初めての OpenCV Haar 分類器トレーニングであり、人を検出し、画像内の顔/頭/上半身 (頭 + 肩) をぼかす必要があり、カメラが動かない静止画像を撮影しています。
固定カメラで撮影したサンプル画像からポジティブ画像を抽出し始めました。画像にはさまざまな位置の人が含まれているため、レストランやバーを想像してみてください。
問題は、私のポジ画像には非常に明確なオブジェクトではなく、さまざまなオブジェクトのコレクション (頭、肩 + 頭、横頭、横肩 + 頭、後頭、後肩 + 頭) が含まれていることです。分類器を 6 フェーズでトレーニングし、50 個のポジティブ イメージと約 600 個のネガティブ イメージ (オンライン リポジトリから取得) のみを使用しました。分類子を画像に試してみましたが、画像からランダムな非オブジェクト部分のみが検出されました。
私の問題の背景を考えると、誰かがこの種の検出とトレーニングを行う正しい方向に私を向けることができるかどうか疑問に思っています-頭だけ、または肩と頭だけを検出する際に分類器を分離している可能性があります...または1 つの分類子に異なる位置を混在させても大丈夫ですか
OpenCV に付属しているさまざまな事前生成された分類器をすべて試しましたが、画像は実際には人よりも高い位置から撮影され、角度が生じるため、画像の成功率は非常に低くなります。
javascript - Haar.jsはopen cv xmlをjavascriptに変換します
このプロジェクトは中止されましたが、プロジェクト ファイルはまだ生きています。haar.js
プロジェクトを使用してメディア ファイル (ビデオまたは画像) の上半身を検出したいだけです。プロジェクト フォルダー内の現在のカスケードには上半身の分類子が含まれていないため、ツール ( haartojs.php
) を使用する必要があります。
私は次のことをしました:
- Windows用のphpをダウンロードしました。
- 開いている cv xml ファイルをルートにコピーしました。
- cmdコマンドを実行しました:
php haartojs.php --xml=myfile.xml
- ツールは機能しているようですが、出力ファイルがどこにも見つかりません。
また、私はphpファイルソースをチェックしました(私はphpエキスパートではありません)、ファイルを書き込むための兆候を示す行は見つかりませんでした。
どんな助けでも大歓迎です。
PHP ソース ファイル: https://github.com/foo123/HAAR.js/blob/master/cascades/haartojs.php
プロジェクトページ: https://github.com/foo123/HAAR.js
これは出力のスクリーンショットです。
android - Mac OS X での Haar カスケード トレーニング OpenCV
Samsung Galaxy S3 カメラを使用して白い紙の黒い点を検出できる単純な Android OpenCV プログラムを開発しようとしています。
これを行うために、OpenCV サンプルから顔検出プログラムをコピーしたところです。独自の Haar カスケードを追加して、顔の代わりにドットを検索したいと考えています。私はここに 2 日間ほど座っていましたが、役立つものは何も見つかりませんでした。すべて Windows または Linux で作成されています。
Mac で Haar カスケードを使用して独自の XML を作成する方法を誰か教えてもらえますか、それともそれを実装する他の (より簡単な) 方法はありますか?
c++ - opencv_haartraining を使用して haarcascade をトレーニングする方法
新しいサンプルで新しい haarcascade をトレーニングするために、opencv と haartraining を使用したいと考えています。私は、ポジとネガの画像のリストを含む Positives.dat と negative.dat を作成しました。次のステップでは、opencv_haartraining.exe を使用して haarcascade をトレーニングします。ただし、ここのドキュメントと混同しています。haartraining.exe をどのように使用できますか? ポジティブ ファイルとネガティブ ファイルのリストを作成しました。両方のファイル リストには、オブジェクトのみを含む 19x19 のポジ画像と 19x19 のネガ画像を含むフォルダーが含まれています。opencv_traincascade.exe または opencv_haartraining.exe を使用して分類器をトレーニングするために、opencv_createsamples で適切なファイルを作成したいと考えています。ここからの指示に従おうとしています:
情報を提供せずにそれらを使用しようとしています。オブジェクトには画像全体が含まれます。私は得ています:
matlab - MATLAB の trainCascadeObjectDetector でのメモリ不足エラー
トレーニング中に次のエラーが発生します。
ocvTrainCascade の使用エラー c:\temp\a3p0_3607_2384\win32\opencv\modules\core\src\alloc.cpp のエラー: メモリが不足しています。
trainCascadeObjectDetector のエラー (265 行目) ocvTrainCascade(filenameParams、trainerParams、cascadeParams、boostParams、...
CascadeTrainGUI/trainDetector のエラー (1965 行) trainCascadeObjectDetector([CTS.SessionName '.xml'], ...
uicontrol コールバックの評価中にエラーが発生しました
c++ - 1つのウィンドウで複数のオブジェクトを検出するOpenCV - 描画されていない
複数の Haar 分類子を使用して、1 つのウィンドウで複数のオブジェクトを検出する OpenCV プログラムがあります。最初のオブジェクトが検出され、楕円が正常に描画されますが、2 つのセカンダリ オブジェクトが検出されると、検出されるインスタンスごとに円が描画されるわけではありません (オブジェクトが検出されたときにコンソールに出力しています)。
次のように 3 つの分類子を指定しています。
次に、次を使用して分類子をロードしています。
次に、3 つのオブジェクトに対して 3 つのベクトルを作成します。
次に、次のコードを使用して、画面上のオブジェクトを検出して描画します。
cascade_one
firstObject
およびcascade_name
各オブジェクトの関連する名前を変更します。最初のオブジェクトは完全に機能しているのに、2 番目と 3 番目のオブジェクトはすべてを画面に描画していないにもかかわらず、複数の検出を出力しているのはなぜですか?
編集:
完全な検出および描画コード:
c++ - 静的カメラ画像(ビデオストリームを使用しない)で人を検出するための最良のアプローチ - OpenCVのHOG、Haar、BackgroundSubtract?
だから私は人検出静的カメラ画像を実装することを計画しています - カメラは決して動かないが、照明条件は変化します。人間は直立することも、座っていることもできます。
質問:
この場合、そのような設定で人を検出するには何が良いでしょうか?
Haarcascadeは主に顔と目を扱いますが、私の画像は、特にカメラに背を向けている人にとって、これらの特徴を検出するのが非常に難しい角度から撮影されています。
HOG の機能- これについてはよくわかりません
backgroundSubtractorMOG - 多くの画像を使用して「減算器を実行」して背景を構築しても、現在は非常に良い結果が得られないようです
人物が写っていないサンプル画像: