手のひら静脈認証(ミニハウツー)





運命の意志で、彼はロシアの大学に入学しました。 卒業証書では、バイオメトリック認証の分野の1つ-手のひらの静脈のパターンによる識別を調査することが決定されました。 初期段階では、保護のためにデバイスの動作モデルを提供することが計画されていました(ただし、すべてがそれほど単純ではないことが判明しました)。



そもそも、このメソッドが何であるかを理解し、実装の意味を犠牲にする必要がありました。 すでに記事に書かれているように
「静脈のパターンは、血液のヘモグロビンが赤外線を吸収するために形成されます。 その結果、反射の度合いが低下し、カメラ上で静脈が黒い線として見えます。 受信したデータに基づく特別なプログラムは、デジタルコンボリューションを作成します。 スキャンデバイスとの人間の接触なし。」


下の図は、酸素飽和血液と酸素を含まない血液からの赤外線の吸収のグラフを示しています。







メソッド選択


手のひらの静脈パターンの画像を取得するには、2つの方法があります。 反射法(反射)を使用すると、デバイスのすべてのコンポーネントを1つのハウジングに配置できます。これにより、サイズが小さくなります。 心理的障壁も軽減されます(手をどこにでも貼り付ける必要はありません)。 赤外線の送信方法(Transmission)は、手の甲に赤外線照明を設置することで、フィルター付きのカメラは手のひらの側面に設置され、手のひら全体を通過する赤外線を受信します。 伝送方法を使用すると、結果の画像がより詳細になります。









反射の方法は、手のひらの静脈のパターンの画像を取得するための基礎として選択されました。 最初に、デバイスの予備モデルを紙にスケッチしました。 デバイス自体から識別可能な手のひらまでの距離を測定し、手の表面の温度を測定し(統計のために、このような機能が必要でした)、IR照明をオンまたはオフにします。 カメラとして、Logitech B910ウェブカメラに立ち寄った。 デバイスモデルのテストでは、すでに4つのモデルがあり、以前の3つのカメラの欠点が明らかになりました。 最初のモデルは、 LinkSprite JPEGカラーカメラTTLインターフェイスカメラでした。 画像をPCに転送するプロセスは、ポート速度によって制限されていたため、放棄する必要がありました。 また、さらに2つのnonameウェブカメラがチェックされましたが、受信した画像の品質は非常に低かったです。 さらに、最新モデルのみを説明します。



コンポーネントのリストがコンパイルされました:

  1. Arduino Project Enclosure - Arduinoプロジェクト用の小さなエンクロージャー
  2. 赤外線温度計-MLX90614 -IR温度計
  3. USB HUB-カメラとArduinoを1本のケーブルに接続するため
  4. ORduino Nano -ATMega168
  5. 赤外線近接センサー-Sharp GP2Y0A21YK -IR距離センサー( 10〜80cm
  6. Logitech B910 HDウェブカメラ
  7. 2個のトランジスタ
  8. 2つの抵抗器4.7kOhm、6-470ohm
  9. 6個のIRダイオード850nm
  10. フォトトランジスタ(外部光によるデバイスの照度を測定するため、実験には参加しませんでしたが、計画されました)
  11. USB Bコネクタ
  12. IRフィルター850nm
  13. USBケーブル


ここの接続図(物理学/電気工学では、結果に責任を負いません)。 組み立てプロセスは、IRフィルターよりも小さな直径の円をハウジングの中心で切断することで構成されていました。 次に、フィルターを接着剤に接着しました(スーパーモーメント)。 最初は、スーパーモーメントの代わりに接着剤銃を使用しましたが、カメラは非常に熱く(Logitech B910の機能)、接着剤の保持が停止しました。 IR温度計用の穴が開けられました。 また、距離センサーの「マウント」は、IRフィルターのボックスから作成されました。 カメラは分解され、ケースとフレームを取り外すことで最小化され、ボードのみが残りました。 カメラのレンズからIRフィルターが取り外されましたが、IR光線は通過しませんでした(フィルターの取り外しプロセスについては、 こちらをご覧ください )。 さらに、カメラも接着剤で本体の底に取り付けられました。 カメラの周りに、対称的にIRダイオードを取り付けました。 カメラレンズのダイオード、身体の残骸から作ったレンズ、両面テープ、ケーシングのようなもの、IRフィルターからの照明がないように。



組立:







アセンブリでは、デバイスの形式は次のとおりです。







ソフトウェア



Arduino


デバイスのすべてのコンポーネント(カメラを除く)は、arduinoによって制御される必要があります。 これは、距離センサー、温度センサー、およびIR LEDです。 全体として、作業のアルゴリズムは次のとおりです。



さらに、値が一致する場合:





パソコン


デバイスから受信した画像は、さらに処理および認識される必要があります。 PCソフトウェアを作成するために、Matlabソフトウェア環境が選択されました。 認識ツールとして、標準のMatlab Neural Network Toolboxコンポーネントが使用されました。 ただし、トレーニングおよび認識のために画像を送信する前に、処理する必要があります。つまり、主要な機能を強調するためです。



デバイスから受信した画像:







以前のモデルの写真がどんなものか想像できますか? はい、それほど暑くありません。

その後、フィルターを検索して、静脈を強調するための画像を改善する試みがありました。 方法がわからないとき、何かが判明したとき、何かがわからなかったとき、それを行うのは難しい。 しかし、pudn.comで静脈を抽出するアルゴリズムにつまずいたので、希望はちらつきました。 それをダウンロードするために、最初にいくつかのベストプラクティスを共有する必要がありました。 phasymathematics(ファジーロジック)に関するmatlabで作成されたラボを送信する必要がありました。 1日後、私はダウンロードできる手紙(40ポイント)を受け取りました。 このアルゴリズムは、中王国の学生によって書かれました(皆さん、どなたでもありがとう)。



自分でアルゴリズムを調整した後:







悪くないでしょ? これは同じ画像ですが、すでに何かがあります。 これで、ベースを参照画像で満たし、ネットワークをトレーニングすることができます。 トレーニング後、画像の不変性は非常に小さいことがわかりました。 私の腕では静脈がはっきりと異なっており、一部の腕では画質が「それほどではない」と軽微に言えます。 各手について、100個の参照画像が収集されました。 ノイズの多い画像および手(肘、拳など)のない画像をネガティブサンプルとして使用しました。 サンプルには2人の手が含まれています。



トレーニング後、デバイスのテストを開始しました。 第二種のエラーには、あるべき場所があります。 基準との一致のしきい値を下げる必要がありました。 その結果、時々偽のパスがありました。 実際には、第2種のエラーは、デバイスの前での手の位置が不適切なため、または手の動きによる結果の画像のぼやけが原因で発生しました。 実験に十分な時間がありませんでした。



結論



ここでは、このトピックは興味深いものであり、時間と必要なスキルが不足しているため、完全には公開されていません。 また、「無生物の比較」のためにデバイスをチェックする時間もありませんでした。 フォトトランジスタ(照明用にカメラを調整するため)と温度センサーは関係していません(ただし、情報はそこから取得されましたが、いかなる方法でも考慮されませんでした)。



arduinoとmatlabのソースはありますが、表示するのは恥ずかしいです。私は非常に急いで時間をかけて書き直し、同時にデバイスをやり直しました。



使用したソース



  1. Nadort、A.バイオメトリック機能として使用される手の静脈パターン[テキスト]:修士課程プログラムの生命物理学​​の文学論文/ A. Nadort、-アムステルダム:Free UniversityのMedical Natural Sciences、2007.-1​​79 p。
  2. Fuksis、R。Palm Vein Biometrics Based on Palm Infrared Imaging and Complex Matched Filtering [Text]:The 12th ACM Workshop on Multimedia and Security / R.Fuksis、M.Pudzs、M.Greitans-Rome、2009.- 27 p。



All Articles