OpenCV を利用した指紋照合山中裕美

1(指導教員: 金子 晃)

はじ めにを大きくし, 遠くなるほど重みを小さくなるように, 次のガウス分布の関数を用いて重みのレートを決定する.

指先の表皮模様である指紋は「万人不同」, 「終生不変」という特徴を持つ. 紋認証技術は犯罪捜査のみならず，ネットワーク社会における本人の確認方式として有用な為, 様々な研究開発が行なわれている.
指紋認証には画像処理技術が必要不可欠である.
OpenCV は，Intel によって開発され，Willow Garage社が開発を引き継いでいる画像処理向けのオープンソースライブラリである. これを用いて画像処理を手軽に行なえる．
本研究では OpenCV を用いて指紋認証における画像処理の実装を試みる. プログラミング言語は C++を使用する.
サンプル画像として NIST の Special Database が提供している指紋画像を利用した.

2f (x, y) = 2
1x + y2exp−2πσ 22σ 23.1 結果
指紋画像は小さいため, 拡大して使用した. それぞれのフィルタをかけたときの結果画像は次のようになった.
原画像
移動平均フ ィ ル タ

指紋認証の た め の 画像処理の 方針• 採取した指紋画像が粗いため, 様々な画像処理の試行により前処理を行う.
• 二値化, 細線化を行う.
• マニューシャを抽出する.
• 照合を行う.

3

前処理

メ ディ ア ンフ ィ ルタ

指紋画像には小さなノイズが含まれている. このまま細線化すると綺麗な流線にならないため, 前処理を行いできる限りノイズを少なくする.
平滑化, 雑音除去のために OpenCV の cvSmooth()の次の３種のフィルタを使用した。いずれもカーネル幅が３の時を説明する。
＜移動平均フ ィ ル タ ＞
移動平均フィルタにはすべての濃淡変動を一様に平滑化し、雑音低減やぼかし効果がある．
右のように注目画素の３ × ３近傍の平均値を輝度とする．

4ガ ウ シア ンフ ィ ルタ

二値化・ 細線化

4.1 二値化
指紋画像は指の圧力の差により画像の濃度に偏りがある. 閾値を自分で与える一般的な二値化 cvThreshold() では, 黒っぽい部分がすべて黒くなってしまい,白っぽい部分は見えなくなってしまう. これを解消するために, 適応的二値化を行なった. 適応的二値化
cvAdaptiveThreshold() は周辺画素の輝度値の平均を閾値として二値化を行う. 閾値はその画素ごとに自動的に決定される.
また, フィルタにかけたものをそれぞれを二値化してみると前処理なしではギザギザしていたり, 流線の中にノイズが残った.
二値化画像
適応的二値化＜メ デ ィ ア ン フ ィ ル タ ＞
メディアンフィルタには微小な濃淡変動のみを選択的に平滑化しエッジや線の保存をする効果がある.
注目画素の３ × ３近傍を小さい順にならべる.

[ 10,15,18,19,20,20,23,24 ]
その中間値を輝度とする．

＜ガ ウ シ ア ン フ ィ ル タ ＞
ガウシアンフィルタには高周波成分を除去する効果がある.
注目画素に近いほど, 平均値を計算するときの重み61

4.2 細線化
細線化は二値化画像から線幅 1 の中心線を抽出する処理である. 線幅を 1 にすることで後の処理を簡単にする. ここでは細線化画像を見やすくするために白黒反転させている.
前の三種のフィルタ処理の後それぞれ二値化を行なうと, メディアンは線の途切れが少くなり, ガウシアンは細かいノイズが最も消去されていた. 今回使用した
NIST の指紋画像の前処理にはメディアンフィルタとガウシアンフィルタを採用することにした.

56.2

マ ニ ュ ーシ ャ マ ッ チ ン グ

6.2.1 類似度測定の 方法
登録画像の対象領域のマニューシャの個数を M1 とする. 入力画像と登録画像のマニューシャの重ね合わせを行い, 重なったマニューシャの個数を M2 とする.
類似度を M2/M1 とした.
＜重ね 合わ せ に つ い て ＞
2 つの比較指紋画像の特徴点のみを取り出し, 一方の画像は端点を RGB(255,0,0), 分岐点を RGB(0,255,0)に配色. もう一方は逆の配色をし, 二つの画像をピクセル毎に足し合わせた. 2 色が交わり RGB(255,255,0) になった箇所の個数が 2 つの画像間で重なったマニューシャの個数となる. 尚, 特徴点を配色した円は直径を 6ピクセル分にしており, 比較画像のマニューシャの小さなずれを考慮している.

マ ニ ュ ーシ ャ 抽出

マニューシャとは指紋の中にある特徴点のことで端点と分岐点がある. 一つの指紋の中にあるマニューシャの位置関係などから照合を行なう.
次の方法で方法で指紋の細線化画像からマニューシャを抽出した.
8 連結の細線化画像における, 端点, 分岐点のパターンをテンプレートとして, テンプレートマッチングを行い, 細線化画像の特徴点にマーキングする.
cvMatchTemplate() によるテンプレートマッチン
グはテンプレートを入力画像上でスライドさせ, 類似度の高い場所を探すことができる.
抽出画像＜特徴点の 数え 方に つ い て ＞
特徴点の画像を細線化し, 一つの円が 1 ピクセルの点になるよう画像変換したのち, すべての点を合わせた面積を求め, その面積を特徴点の個数とした.

6.2.2 閾値の 決定
NIST には同一人物の同じ指の指紋が各 2 つずつ保存されている. 20 人分の指紋でマニューシャマッチン
グを行い, それぞれの類似度の結果のうち, 最も値が小さいものを閾値とする.
＜結果＞
類似度は最大のもので, 0.992424 という結果が得られたが, 最低のものは 0.223684 となった. 今回の方法
ではマニューシャ以外の特徴点が多いため, よい閾値を得られなかった.

6.2.3 指紋の 同定
類似度がある閾値以上であれば同一人物の指紋とする. 実装は今後の課題とする.

76

今後の 課題• 今回の問題点として, マニューシャではない端点,分岐点も特徴点と見なしているため, 2 枚の画像で無意味な点が多く, 指紋の同定の閾値が低くなった. 不必要な特徴点を除くことを考えなければならない.
• 今回行なった前処理の方法では, くっきりとした指紋画像でなければ綺麗な細線化画像を得られなかった. 前処理を改良してより滑らかな指紋画像を得るようにしたい.

照合

6.1 対象領域検出
マニューシャマッチングの前に大まかな対象画像, 対象領域の目星をつけなければいけない. 指紋の部分画像をテンプレートマッチングで登録画像から最も類似した領域を見つける.
cvTemplateMatching() はテンプレートを平行に走査する. 傾いた画像の場合も検出できるよう, 入力画像を 360 度回転させて最も類似したものを返すようにした.
検出画像

参考文献
[1] Gary Bradski,Adrian Kaebler, (訳) 松田晃一
(2009), 『詳解 OpenCV -コンピュータビジョンラ
イブラリを使った画像処理・認識』, オライリー・ジャパン.
[2] 奈良先端科学技術大学院大学, OpenCV プログラ
ミングブック制作チーム (2007), 『OpeenCV プ
ログラミングブック 第 2 版』, 毎日コミュニケーションズ.
[3] 瀬戸洋一 (2002), 『サイバーセキュリティにおける生体認証技術』, 共立出版.
[4] 「 画 像 処 理 ソ リュー ション 」,
http://imagingsolution.blog107.fc2.com/blog-entry-165.html

入力画像62