简体   繁体   English

使用C#的指纹识别软件

[英]fingerprint reader software using C#

I am planning to verify the user input for my application using the biometric input. 我打算使用生物识别输入验证我的应用程序的用户输入。 I did some research on net and came up with following options of biometric input: 我做了一些关于网络的研究,并提出了以下生物识别输入选项:

  1. Fingerprint 指纹
  2. Facial Recognition 面部识别
  3. Retinal Scan 视网膜扫描
  4. Iris Scan 虹膜扫描
  5. Voice Recognition 语音识别
  6. Signature Verification 签名验证

Out of which I felt the fingerprint as most suitable options. 其中我觉得指纹是最合适的选择。 But the problem with this is the API of the fingerprint device will vary with its hardware. 但问题是指纹设备的API会因其硬件而异。 So most probably I think I will need to code against the multiple devices API, which I don't find friendly. 所以我很可能认为我需要针对多个设备API进行编码,我发现这些API并不友好。

I intend to do the programming stuffs in C#. 我打算用C#做编程。 Is there any way out of this. 有没有办法解决这个问题。 As I am new to this I'm clueless. 因为我是新手,所以我很无能为力。 What is the way to attack this problem and how vast is the project scope and what should be my approach for this project. 攻击这个问题的方法是什么,项目范围有多大,我的方法应该是什么。

The problem is not unique to fingerprint readers, it will apply to all other options in your list and many other peripherals. 该问题并非指纹识别器所独有,它将适用于列表中的所有其他选项以及许多其他外围设备。 In fact a standard API is the exception. 实际上,标准API是例外。

So you will have to look for somebody selling a library for this or writing your own (COM and/or Interop). 因此,你必须寻找为此出售图书馆或自己编写图书馆的人(COM和/或Interop)。 And rolling your own will usually not be small or simple project. 滚动你自己通常不会是小型或简单的项目。

Your program will have a list of supported devices, excluding the rest. 您的程序将包含受支持设备的列表,不包括其余设备。

A colleague of mine was tasked with building a biometric based staff clock-in system for the company we both worked for. 我的一位同事的任务是为我们共同工作的公司建立一个基于生物识别的员工钟表系统。 We, IT, choose Fingerprints as the biometric source. 我们,IT,选择指纹作为生物识别源。 He researched and used this library from Bayometric - Griaule Fingerprint SDK along with some cheap MS print readers. 他研究并使用了Bayometric - Griaule Fingerprint SDK的这个库以及一些廉价的MS打印读卡器。 From what he showed me and talked about at the time, does lead me to believe that this .net library had a nice API and was easy to work with. 从他向我展示并在当时谈到的内容,确实让我相信这个.net库有一个很好的API并且很容易使用。

The biometric system is still being used today, some 5 years later. 生物识别系统今天仍在使用,大约5年后。

I work in the biometric field, and I use C# for a lot of the fingerprint stuff I do. 我在生物识别领域工作,我使用C#来处理很多指纹。 My company had to develop a fingerprint device abstraction library for this very reason. 出于这个原因,我的公司不得不开发一个指纹设备抽象库。 Consider that all fingerprint scanners only REALLY need one call: getImage . 考虑到所有指纹扫描仪只需要一次调用: getImage Knowing this, my company wrote a library which initializes and sets up each device, creates a generic wrapper, assigns a unique ID, and throws it into a big list that you can enumerate over. 知道了这一点,我的公司编写了一个库,用于初始化和设置每个设备,创建一个通用的包装器,分配一个唯一的ID,并将其放入一个可以枚举的大列表中。

Then from the C# side all you have to do is "pick" a device (all you have to go on is a unique ID and maybe a manufacturer) and then use it. 然后从C#方面你所要做的就是“选择”一个设备(你只需要一个唯一的ID,也许是制造商),然后使用它。 The image data that comes back has to be decided on in advance so that you know what you're going to get every time 必须事先确定返回的图像数据,以便您知道每次都会得到什么

The main problem with this approach is that a lot of devices these days have various gimmicks (eg programmable flashing lights), and by abstracting the devices away you lost the ability to access these special abilities. 这种方法的主要问题是,现在很多设备都有各种噱头(例如可编程闪光灯),通过抽象设备,你失去了获取这些特殊能力的能力。 Furthermore, some devices actually return multiple channels of data (various spectrums of light for example) and you have to throw away all but one channel so that the application can remain device agnostic, which is a hard decision. 此外,一些设备实际上返回多个数据通道(例如,各种光谱)并且您必须丢弃除一个通道之外的所有通道,以便应用程序可以保持与设备无关,这是一个艰难的决定。

Finally keep this in mind: if you do minutiae extraction, the device you use unfortunately WILL impact which minutiae are detected. 最后记住这一点:如果你进行细节提取,不幸的是你使用的设备会影响检测到的细节。 Some devices are "tuned" for certain algorithms, and so enrolling with device A and matching with device B may not work at all despite having picture-perfect fingerprints. 某些设备针对某些算法进行了“调整”,因此尽管具有图像完美的指纹,但是使用设备A注册并与设备B匹配可能根本不起作用。

There is a similar question here: finger print reader for .net windows forms / WPF or silverlight client 这里有一个类似的问题: .net windows窗体/ WPF或silverlight客户端的指纹读取器

Check the links in the answers 检查答案中的链接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM