2

虹彩の比較について助けが必要です。

私はすでに虹彩画像をセグメント化して正規化しています。ここで、特徴を抽出し、データベースに追加するか、単に特徴ベクトルのリストに追加して、それを他の特徴ベクトルと比較したいと考えています。そのような虹彩が既にデータベースにあるかどうかをアプリケーションで判断したいと考えています。もちろん、画像は異なります。それらは異なる光、角度などで行われました.

ガボール フィルターが役立つと考えたので、12 の異なるパラメーター値に変更しました。

Mat kernel = Imgproc.getGaborKernel(new Size(25, 25), sigma, theta, lambda, gamma, psi, CvType.CV_64F);
Scalar sum = Core.sumElems(kernel); //kerner normalization
Core.divide(kernel, sum, kernel);   
Imgproc.filter2D(floatSource, dest, CvType.CV_64F, kernel);

次に、この関数を使用して 12 個のハミング距離を計算します。

dist_ham = Core.norm(it1.next(), it2.next(), Core.NORM_HAMMING);

そして平均を取ります。

そして... うまくいきません。同じ虹彩または 2 つの異なる虹彩の 2 つの異なる画像を比較する場合、ハミング距離は似ています。アルゴリズムを改善するにはどうすればよいですか? 良い結果を得るには、openCV マザーに実装されているものを使用する必要がありますか? 私にとっては、どのアルゴリズムを使用するかは問題ではなく、良い結果を得たいだけです。そして私は少しビギナーです。

いくつかのサンプル画像: 人物 1 img1: 人物 1 img1ここに画像の説明を入力 の正規化された虹彩:ここに画像の説明を入力

Person one img2: person one img2 ここに画像の説明を入力 の正規化された虹彩:ここに画像の説明を入力

この例のハミング距離は約 29000 です (これは私が得た最小の距離です。ほとんどの場合、同じ人の虹彩で約 30000 - 31000 です) 異なる人のハミング距離は約 31000 です (テストされた画像によって異なります)

4

1 に答える 1

1

Daugman の論文などのアルゴリズム/数学を実装するだけで、これを行うことに成功しました。私の提案は、ガボール カーネルを実際に視覚化して、シグマやラムダなどのパラメータの意味のある組み合わせを見つけることです。OpenCV の GetGaborKernel は使用せず、手作りのものを使用しました。

于 2016-12-19T06:34:14.983 に答える