0

OpenCv を C++実装で使用して、顔認識用のソフトを構築しようとしています。私が抱えている問題は、1,000 万を超える多くの顔があり、INT タイプ (ベクトル /int/ ラベル) だけではラベル付けできないことです。long long int を使用してみましたが、しばらくトレーニングした後 (0.5 秒後) にこのエラーが発生します。

OpenCV エラー: 不正な引数 (ラベルは整数 (CV_32SC1) として指定する必要があります。4 を期待していましたが、7 でした。) 列車、ファイル /home/roka/opencv-2.4.6.1/modules/contrib/src/facerec.cpp、行「cv::Exception」のインスタンスをスローした後に呼び出される 349 終了 what(): /home/roka/opencv-2.4.6.1/modules/contrib/src/facerec.cpp:349: エラー: (-5) ラベルは整数として与えられます (CV_32SC1)。4 を期待していましたが、7 でした。

4

1 に答える 1

0

何百万もの顔を探している場合は、整数が小さすぎてラベルを付けることができないという問題よりも多くの問題があります。

固有顔のアプローチでは、トレーニングのために利用可能なすべてのデータを一度に与える必要があるため、単一のマシンに収まるよりもはるかに多くのメモリが必要になります。

そのデータをいくつかのチャンクに分割し、独立した測定値を組み合わせて使用​​できるアルゴリズム (つまり lbp ) を選択する必要があります。また、(ローカル認識からの) int ラベルをグローバルな bigint ラベルに再び変換する別のインデックスが必要になります。

于 2013-11-01T12:34:27.920 に答える