[go: up one dir, main page]

CN111914786B - Finger vein recognition method and system - Google Patents

Finger vein recognition method and system Download PDF

Info

Publication number
CN111914786B
CN111914786B CN202010802199.5A CN202010802199A CN111914786B CN 111914786 B CN111914786 B CN 111914786B CN 202010802199 A CN202010802199 A CN 202010802199A CN 111914786 B CN111914786 B CN 111914786B
Authority
CN
China
Prior art keywords
roi
finger vein
module
data
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010802199.5A
Other languages
Chinese (zh)
Other versions
CN111914786A (en
Inventor
李�杰
史艺丹
杨文耀
刘俊伟
杨先杰
聂泽东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Arts and Sciences
Original Assignee
Chongqing University of Arts and Sciences
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University of Arts and Sciences filed Critical Chongqing University of Arts and Sciences
Priority to CN202010802199.5A priority Critical patent/CN111914786B/en
Publication of CN111914786A publication Critical patent/CN111914786A/en
Application granted granted Critical
Publication of CN111914786B publication Critical patent/CN111914786B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/50Maintenance of biometric data or enrolment thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/14Vascular patterns
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Collating Specific Patterns (AREA)
  • Image Input (AREA)

Abstract

本发明公开一种基于ARM Cortex‑M3的手指静脉识别SOC系统和方法,实现了手指静脉识别系统的整个流程,包括手指静脉图像采集、ROI提取、灰度和尺寸归一化、特征提取、连通域去噪、特征匹配等过程,并将每个过程的图像处理结果通过LCD进行显示。通过ROI硬件提取模块对ROI识别进行硬件加速,提高手指静脉识别的速度。经过大量测试得出,本系统能完整实现手指静脉识别的功能,识别正确率约95%。采用FPGA对ROI提取模块进行加速,能将总的识别速度提高15%以上。该系统可以作为便携式手指静脉识别系统的方案进行产品研发,也可作为实验教学时的手指静脉识别的过程演示系统,有较高的实用价值。

Figure 202010802199

The present invention discloses a finger vein recognition SOC system and method based on ARM Cortex-M3, which realizes the whole process of the finger vein recognition system, including finger vein image collection, ROI extraction, grayscale and size normalization, feature extraction, and connection Domain denoising, feature matching and other processes, and the image processing results of each process are displayed on the LCD. The hardware acceleration of ROI recognition is carried out through the ROI hardware extraction module to improve the speed of finger vein recognition. After a large number of tests, it is concluded that this system can fully realize the function of finger vein recognition, and the recognition accuracy rate is about 95%. Using FPGA to accelerate the ROI extraction module can increase the total recognition speed by more than 15%. The system can be used as a portable finger vein recognition system for product development, and can also be used as a demonstration system for finger vein recognition in experimental teaching, which has high practical value.

Figure 202010802199

Description

一种手指静脉识别方法及其系统A finger vein recognition method and system thereof

技术领域technical field

本发明涉及手指静脉识别技术领域,特别是一种手指静脉识别方法及其系统。The invention relates to the technical field of finger vein recognition, in particular to a finger vein recognition method and system thereof.

背景技术Background technique

随着信息技术的发展,生物识别技术成为了互联网人工智能时代的一个关键技术。现今,对生物识别技术的研究越来越多,应用也越来越广泛。常见的生物识别技术有:指纹、人脸、虹膜、手指静脉等。虽然近十年对指静脉识别算法有较多的研究成果,但是目前市场上的指静脉识别产品并不多见。主要原因是指静脉识别算法较为复杂,导致硬件实现困难、识别时间长。With the development of information technology, biometric technology has become a key technology in the era of Internet artificial intelligence. Nowadays, there are more and more researches on biometric technology and more and more applications. Common biometric technologies include: fingerprints, faces, irises, finger veins, etc. Although there have been many research results on finger vein recognition algorithms in the past ten years, there are not many finger vein recognition products on the market at present. The main reason is that the vein recognition algorithm is relatively complex, which leads to difficulties in hardware implementation and long recognition time.

目前市场上的实现方案有三种:将整个识别算法在本地硬件上实现、将原始图像数据传到PC上实现、将原始图像数据发送到云服务器上进行实现。对于便携式手指静脉识别系统,采用PC和云服务器的方案不太方便。本地硬件实现的方案有微处理器(如ARM)和FPGA。嵌入式微处理器具有成本低、功耗小、开发简单等特点,但是由于其工作时是CPU一条条执行指令,对于具有许多乘法运算的图像处理算法,在运行时间上不具有优势。对于复杂算法,FPGA从实现难度和功耗上都不具有优势。There are currently three implementations on the market: implementing the entire recognition algorithm on local hardware, transmitting the original image data to a PC for implementation, and sending the original image data to a cloud server for implementation. For the portable finger vein recognition system, the solution of using PC and cloud server is not very convenient. Local hardware implementations include microprocessors (such as ARM) and FPGAs. The embedded microprocessor has the characteristics of low cost, low power consumption, and simple development. However, because the CPU executes instructions one by one when it works, it does not have an advantage in running time for image processing algorithms with many multiplication operations. For complex algorithms, FPGA has no advantages in terms of implementation difficulty and power consumption.

发明内容Contents of the invention

有鉴于此,本发明的目的在于提供手指静脉识别方法及其系统,该方法利用FPGA对ROI提取模块进行加速,提高了识别速度。In view of this, the object of the present invention is to provide a finger vein recognition method and system thereof, which utilizes FPGA to accelerate the ROI extraction module to improve the recognition speed.

为达到上述目的,本发明提供如下技术方案:To achieve the above object, the present invention provides the following technical solutions:

本发明提供的手指静脉识别方法,包括以下步骤:The finger vein recognition method provided by the present invention comprises the following steps:

采集指静脉图像;Collect finger vein images;

通过ROI硬件提取模块得到指静脉图像的感兴趣区域ROI数据;Obtain ROI data of the region of interest of the finger vein image through the ROI hardware extraction module;

从ROI硬件提取模块中读取ROI数据并对ROI数据的灰度尺寸进行归一化处理;Read the ROI data from the ROI hardware extraction module and normalize the gray size of the ROI data;

提取归一化处理的ROI数据的纹路特征;Extract the texture features of the normalized ROI data;

对纹路特征进行中值滤波和连通域去噪处理;Perform median filtering and connected domain denoising processing on texture features;

判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;Determine whether it is a registration process, if yes, store the texture feature data in FLASH;

如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;If not, then read out the stored texture feature data from the FLASH to carry out feature matching;

将特征匹配结果通过LCD显示。Display the feature matching result through LCD.

进一步,所述将ROI数据的灰度尺寸进行归一化处理、提取归一化处理的ROI数据的纹路特征以及对纹路特征进行中值滤波和连通域去噪处理的结果输入到LCD中进行显示。Further, the results of normalizing the gray scale of the ROI data, extracting the texture features of the normalized ROI data, and performing median filtering and connected domain denoising processing on the texture features are input into the LCD for display. .

进一步,所述ROI硬件提取模块采用FPGA实现对指静脉图像预处理,并将获取的指静脉图像感兴趣区域保存到FPGA的双端口RAM中。Further, the ROI hardware extraction module uses FPGA to preprocess the finger vein image, and saves the acquired ROI of the finger vein image into the dual-port RAM of the FPGA.

进一步,所述指静脉图像的采集的控制是通过系统控制模块中的寄存器存储的控制指令来控制相应图像采集设备来实现的;所述LCD显示模块的控制是通过系统控制模块中的寄存器存储的控制指令来控制相应LCD显示模块来实现的。Further, the control of the acquisition of the finger vein image is realized by controlling the corresponding image acquisition device through the control instruction stored in the register in the system control module; the control of the LCD display module is realized through the register storage in the system control module Control instructions to control the corresponding LCD display module to achieve.

本发明还提供了一种手指静脉识别系统,包括指静脉图像采集模块、ROI硬件提取模块、灰度尺寸归一化模块、纹路特征提取模块、滤波去噪模块、注册判断模块、LCD显示模块;The present invention also provides a finger vein recognition system, comprising a finger vein image acquisition module, an ROI hardware extraction module, a gray scale normalization module, a texture feature extraction module, a filter denoising module, a registration judgment module, and an LCD display module;

所述指静脉图像采集模块,用于采集指静脉图像;The finger vein image acquisition module is used to acquire finger vein images;

所述ROI硬件提取模块,用于提取指静脉图像的感兴趣区域;The ROI hardware extraction module is used to extract the region of interest of the finger vein image;

所述灰度尺寸归一化模块,用于从ROI硬件提取模块中读取感兴趣区域并对感兴趣区域的灰度尺寸进行归一化处理;The gray size normalization module is used to read the region of interest from the ROI hardware extraction module and normalize the gray size of the region of interest;

所述纹路特征提取模块,用于提取归一化处理的ROI数据的纹路特征;The texture feature extraction module is used to extract the texture features of the normalized ROI data;

所述滤波去噪模块,用于对纹路特征进行中值滤波和连通域去噪处理;The filtering and denoising module is used to perform median filtering and connected domain denoising processing on texture features;

所述注册判断模块,用于判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;The registration judging module is used to judge whether it is a registration process, if yes, store the texture feature data in the FLASH; if not, read the stored texture feature data from the FLASH to perform feature matching;

所述LCD显示模块,用于显示图像采集和处理过程的中间结果以及特征匹配结果。The LCD display module is used to display the intermediate results and feature matching results of image acquisition and processing.

进一步,还包括两级AHB总线,所述AHB总线包括第一级AHB总线和第二级AHB总线;Further, it also includes a two-level AHB bus, and the AHB bus includes a first-level AHB bus and a second-level AHB bus;

所述第一级AHB总线通过AHB_to_SRAM分别与指令存储器和数据存储器连接;The first-level AHB bus is respectively connected to the instruction memory and the data memory through AHB_to_SRAM;

所述DDR3与第一级AHB总线连接;The DDR3 is connected to the first level AHB bus;

所述UART依次通过APBInterconnect和AHP_to_APB与第一级AHB总线连接;The UART is connected to the first-level AHB bus through APBInterconnect and AHP_to_APB in turn;

所述第二级AHB总线通过系统控制模块分别与指静脉图像采集模块、ROI硬件提取模块、LCD显示模块、FLASH读写控制模块、双端口Block RAM连接;The second-level AHB bus is respectively connected with the finger vein image acquisition module, the ROI hardware extraction module, the LCD display module, the FLASH read-write control module, and the dual-port Block RAM through the system control module;

所述按键、LED指示灯和蜂鸣器通过GPIO同样挂接在第二级AHB总线上。The buttons, LED indicators and buzzer are also connected to the second-level AHB bus through GPIO.

进一步,所述系统控制模块中设置有硬件控制LCD显示寄存器、读Block RAM寄存器、摄像头控制寄存器、感兴趣区域提取控制寄存器、像素累加和下限阈值寄存器、像素累加和上限阈值寄存器、写FLASH寄存器、读FLASH寄存器、FLASH擦除寄存器;CPU通过配置相应寄存器控制相应设备的运行。Further, the system control module is provided with hardware control LCD display registers, reading Block RAM registers, camera control registers, region of interest extraction control registers, pixel accumulation and lower limit threshold registers, pixel accumulation and upper limit threshold registers, writing FLASH registers, Read the FLASH register and FLASH erase register; the CPU controls the operation of the corresponding device by configuring the corresponding register.

进一步,所述ROI硬件提取模块包括以下状态,分别为IDLE状态、FIRST_CUT状态、EDGE_POINT状态、CORRECTION状态、WIDTH_DEFINE状态、HIGHT_DEFINE状态和SECOND_CUT状态:Further, the ROI hardware extraction module includes the following states, respectively IDLE state, FIRST_CUT state, EDGE_POINT state, CORRECTION state, WIDTH_DEFINE state, HIGHT_DEFINE state and SECOND_CUT state:

所述在IDLE状态下,如果摄像头采集到手指静脉图像并且已经存储到了BlockRAM中,则进入FIRST_CUT状态;In the IDLE state, if the camera captures the finger vein image and has stored it in the BlockRAM, enter the FIRST_CUT state;

所述FIRST_CUT状态,用于对指静脉图像进行背景截取并将截取后的图像存储到Block RAM中;The FIRST_CUT state is used for performing background interception on the finger vein image and storing the intercepted image in the Block RAM;

所述EDGE_POINT状态,用于从Block RAM中读取图像数据并计算手指的边界点;The EDGE_POINT state is used to read image data from the Block RAM and calculate the boundary point of the finger;

所述CORRECTION状态,用于根据边界点来计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中,图像的平移校正实际就是各像素点存储地址的变化;The CORRECTION state is used to calculate the deflection angle of the finger and the value of each line that needs to be translated according to the boundary points, and then read the image data from the RAM in turn and store them back in the RAM after being translated. The translation correction of the image is actually the storage of each pixel change of address;

所述WIDTH_DEFINE状态,用于根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度;The WIDTH_DEFINE state is used to find the column numbers that need to be intercepted on the left and right sides of the finger image according to the boundary points after translation correction, so as to determine the width of the ROI area;

所述HIGHT_DEFINE状态,用于采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号;The HIGHT_DEFINE state is used to calculate the area of the distal joint of the finger by using the sliding window method, so as to determine the height of the ROI area, that is, it is necessary to calculate the line numbers of the upper and lower intercepts;

所述SECOND_CUT状态,用于根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据。The SECOND_CUT state is used to re-read and write the image data into the RAM according to the column numbers intercepted from left and right and the row numbers intercepted from top to bottom. Finally, the data stored in the RAM starting with 0 is the data of the ROI image.

本发明的有益效果在于:The beneficial effects of the present invention are:

本发明提供的基于ARM Cortex-M3的手指静脉识别SOC系统和方法,实现了手指静脉识别系统的整个流程,包括手指静脉图像采集、ROI提取、灰度和尺寸归一化、特征提取、连通域去噪、特征匹配等过程,并将每个过程的图像处理结果通过LCD进行显示。通过ROI硬件提取模块对ROI识别进行硬件加速器,提高手指静脉识别的速度。经过大量测试得出,本系统能完整实现手指静脉识别的功能,识别正确率约95%。采用FPGA对ROI提取模块进行加速,能将总的识别速度提高15%以上。该系统可以作为便携式手指静脉识别系统的方案进行产品研发,也可作为实验教学时的手指静脉识别的过程演示系统,有较高的实用价值。The finger vein recognition SOC system and method based on ARM Cortex-M3 provided by the present invention realizes the entire process of the finger vein recognition system, including finger vein image acquisition, ROI extraction, gray scale and size normalization, feature extraction, connected domain Denoising, feature matching and other processes, and the image processing results of each process are displayed on the LCD. Through the ROI hardware extraction module, the ROI recognition hardware accelerator is implemented to improve the speed of finger vein recognition. After a large number of tests, it is concluded that this system can fully realize the function of finger vein recognition, and the recognition accuracy rate is about 95%. Using FPGA to accelerate the ROI extraction module can increase the total recognition speed by more than 15%. The system can be used as a solution for portable finger vein recognition system for product development, and can also be used as a process demonstration system for finger vein recognition in experimental teaching, which has high practical value.

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。Other advantages, objects and features of the present invention will be set forth in the following description to some extent, and to some extent, will be obvious to those skilled in the art based on the investigation and research below, or can be obtained from It is taught in the practice of the present invention. The objects and other advantages of the invention may be realized and attained by the following specification.

附图说明Description of drawings

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:In order to make the purpose, technical scheme and beneficial effect of the present invention clearer, the present invention provides the following drawings for illustration:

图1为指静脉识别实现流程和软硬件划分。Figure 1 shows the implementation process of finger vein recognition and the division of software and hardware.

图2为系统软件流程图。Figure 2 is a flow chart of the system software.

图3为系统框图。Figure 3 is a block diagram of the system.

图4为基于Cortex-M3的SOC系统框图。Figure 4 is a block diagram of the SOC system based on Cortex-M3.

图5为L1AhbMtx的Master和Slave访问关系。Figure 5 shows the Master and Slave access relationship of L1AhbMtx.

图6为L2AhbMtx的Master和Slave访问关系。Figure 6 shows the Master and Slave access relationship of L2AhbMtx.

图7为ROI提取状态转换图。Fig. 7 is a state transition diagram of ROI extraction.

图8为ROI提取的算法流程。Figure 8 is the algorithm flow of ROI extraction.

具体实施方式Detailed ways

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments, so that those skilled in the art can better understand the present invention and implement it, but the examples given are not intended to limit the present invention.

如图1所示,本实施例提供的手指静脉识别方法,本方法是基于ARM Cortex-M3的手指静脉识别SOC方法,包括以下步骤:As shown in Figure 1, the finger vein recognition method provided by the present embodiment is a finger vein recognition SOC method based on ARM Cortex-M3, comprising the following steps:

采集指静脉图像;Collect finger vein images;

通过ROI硬件提取模块得到指静脉图像的ROI数据;Obtain the ROI data of the finger vein image by the ROI hardware extraction module;

从ROI硬件提取模块中读取ROI数据并对ROI数据的灰度尺寸进行归一化处理;Read the ROI data from the ROI hardware extraction module and normalize the gray size of the ROI data;

提取归一化处理的ROI数据的纹路特征;Extract the texture features of the normalized ROI data;

对纹路特征进行中值滤波和连通域去噪处理;Perform median filtering and connected domain denoising processing on texture features;

判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;Determine whether it is a registration process, if yes, store the texture feature data in FLASH;

如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;If not, then read out the stored texture feature data from the FLASH to carry out feature matching;

将特征匹配结果通过LCD显示。Display the feature matching result through LCD.

本实施例中每个过程的图像处理结果通过LCD进行显示,具体包括将ROI数据的灰度尺寸进行归一化处理、提取归一化处理的ROI数据的纹路特征以及对纹路特征进行中值滤波和连通域去噪处理的结果输入到LCD中进行显示;In this embodiment, the image processing results of each process are displayed through the LCD, specifically including normalizing the gray size of the ROI data, extracting the texture features of the normalized ROI data, and performing median filtering on the texture features and connected domain denoising processing results are input to the LCD for display;

所述ROI硬件提取模块采用FPGA对ROI提取模块加速实现对指静脉图像预处理,本实施例中的FPGA采用Xilinx公司的Artix-7系列的XC7A75T,采用CMSDK搭建Cortex-M3的SOC系统,ROI硬件提取模块用于获取指静脉图像的感兴趣区域并保存到FPGA的双端口RAM中;The ROI hardware extraction module adopts FPGA to accelerate the ROI extraction module to realize finger vein image preprocessing. The FPGA in this embodiment adopts the XC7A75T of the Artix-7 series of Xilinx Company, adopts CMSDK to build the SOC system of Cortex-M3, and the ROI hardware The extraction module is used to obtain the region of interest of the finger vein image and save it in the dual-port RAM of the FPGA;

本实施例提供的FLASH是MT25QL128,FLASH的读写控制模块采用硬件实现更方便,并且更节约时间,因此,FLASH读写控制采用硬件逻辑电路实现。The FLASH provided in this embodiment is MT25QL128. It is more convenient and time-saving to implement the read-write control module of the FLASH by using hardware. Therefore, the read-write control of the FLASH is implemented by hardware logic circuits.

如图2所示,本实施例中为了直观的显示出指静脉识别过程各个阶段图像处理的结果,LCD需要实时将处理后的图像显示出来,因此在图像采集和ROI提取阶段,LCD显示由硬件进行控制。As shown in Figure 2, in order to visually display the results of image processing in each stage of the finger vein recognition process in this embodiment, the LCD needs to display the processed image in real time, so in the image acquisition and ROI extraction stages, the LCD display is controlled by the hardware. Take control.

本实施例中指静脉图像的采集采用摄像头实时捕捉图像并显示,该摄像头是直接连接到FPGA的IO口上,节约了图像采集时间,摄像头的控制采用硬件实现,当摄像头模块检测到有手指伸入采集装置的卡槽后,则将采集到的图像保存到FPGA的双端口RAM中。In this embodiment, the collection of finger vein images adopts a camera to capture and display images in real time. The camera is directly connected to the IO port of the FPGA, which saves image acquisition time. The control of the camera is realized by hardware. When the camera module detects that a finger is inserted into the collection After the card slot of the device, the collected images are saved to the dual-port RAM of the FPGA.

如图3所示,本实施例提供的手指静脉识别系统是基于Xilinx Artix-7的SOC设计,包括外围电路,所述外围电路包括分别与FPGA连接的近红外LED发光电路、电源转换电路、按键电路、LED指示灯电路、蜂鸣器电路。As shown in Figure 3, the finger vein recognition system provided by the present embodiment is based on the SOC design of Xilinx Artix-7, and includes peripheral circuits, and the peripheral circuits include near-infrared LED light-emitting circuits, power conversion circuits, and buttons that are respectively connected to FPGAs. circuit, LED indicator circuit, buzzer circuit.

如图4所示,本实施例中采用DesignStart Eval的Cortex-M3内核进行开发,在ARM公司提供的CMSDK的总线和外设的基础上进行开发,所述总线包括两级AHB总线,即第一级AHB总线和第二级AHB总线。所述第一级AHB总线与内核处理器连接;As shown in Figure 4, in this embodiment, the Cortex-M3 core of DesignStart Eval is used for development, and the development is carried out on the basis of the CMSDK bus and peripherals provided by ARM Company. The bus includes two levels of AHB bus, that is, the first level AHB bus and second level AHB bus. The first-level AHB bus is connected to the core processor;

图中,I-code表示指令总线,主要用于从存储器中取指令;D-code表示数据总线,主要用于从存储器中取数据;System表示系统总线,主要用于访问系统外设模块。In the figure, I-code represents the instruction bus, which is mainly used to fetch instructions from the memory; D-code represents the data bus, which is mainly used to fetch data from the memory; System represents the system bus, which is mainly used to access system peripheral modules.

所述第一级AHB总线通过AHB桥与第二级AHB总线连接;所述第二级AHB总线通过系统控制模块分别与指静脉图像采集模块、ROI硬件提取模块、LCD显示模块、FLASH读写控制模块、双端口Block RAM连接;所述第二级AHB总线通过GPIO与按键、LED指示灯和蜂鸣器连接。The first-level AHB bus is connected to the second-level AHB bus through the AHB bridge; the second-level AHB bus is respectively connected to the finger vein image acquisition module, the ROI hardware extraction module, the LCD display module, and the FLASH read-write control module through the system control module. The module and the dual-port Block RAM are connected; the second-level AHB bus is connected with buttons, LED indicators and buzzers through GPIO.

本实施例提供的Cortex-M3内核中设置有指令存储器和数据存储器,所述指令存储器和指令数据存储器分别通过AHB_to_SRAM挂接在第一级AHB总线上;DDR3同样挂接在第一级AHB总线上;UART依次通过APB总线和AHB转APB桥APBInterconnect与第一级AHB总线连接;The Cortex-M3 kernel provided by this embodiment is provided with an instruction memory and a data memory, and the instruction memory and the instruction data memory are connected to the first-level AHB bus through AHB_to_SRAM respectively; DDR3 is also connected to the first-level AHB bus ; The UART is connected to the first-level AHB bus through the APB bus and the AHB-to-APB bridge APBInterconnect in turn;

其中,指令存储器,用于存储Cortex-M3内核运行的指令;指令数据存储器表示程序存储器,用于存储Cortex-M3内核运行的数据;DDR3表示内存,用于图像采集的缓存;UART表示通用异步收发器,即串口,用于将特征数据以及匹配结果发送到上位机(如电脑)上。Among them, the instruction memory is used to store the instructions operated by the Cortex-M3 core; the instruction data memory represents the program memory, which is used to store the data operated by the Cortex-M3 core; DDR3 represents the memory, which is used for the cache of image acquisition; UART represents the universal asynchronous transceiver The device, that is, the serial port, is used to send the feature data and matching results to the host computer (such as a computer).

所述指静脉图像采集模块、LCD显示控制模块、FLASH读写控制模块、双端口BlockRAM以及ROI硬件提取模块均通过系统控制模块挂接在第二级AHB总线上,按键、LED指示灯和蜂鸣器通过GPIO同样挂接在第二级AHB总线上。The finger vein image acquisition module, the LCD display control module, the FLASH read-write control module, the dual-port BlockRAM and the ROI hardware extraction module are all connected to the second-level AHB bus through the system control module. The device is also connected to the second-level AHB bus through GPIO.

其中,GPIO表示通用目的输入输出口,有16个端口,可以通过寄存器分别配置为输入或者输出模式。Among them, GPIO represents a general-purpose input and output port, and there are 16 ports, which can be configured as input or output modes through registers.

如图5所示,其中,第一级AHB总线设置有5个Slave接口(S0~S4)和5个Master接口(M0~M4),S0接口与Cortex-M3核的I-code bus连接,S1接口与Cortex-M3核的D-code bus连接,S3接口与Cortex-M3核的system bus连接,S3和S4预留,为了今后系统能扩展DMA模块和协处理器。M0和M1接口分别与指令存储器和指令数据存储器连接,M2与AHB转APB桥连接,M3与DDR连接,M4与AHB转AHB桥连接以扩展第二级AHB总线。各Slave和Master之间的访问关系如图4所示。As shown in Figure 5, the first-level AHB bus is provided with 5 Slave interfaces (S0~S4) and 5 Master interfaces (M0~M4), the S0 interface is connected to the I-code bus of the Cortex-M3 core, and the S1 The interface is connected to the D-code bus of the Cortex-M3 core, and the S3 interface is connected to the system bus of the Cortex-M3 core. S3 and S4 are reserved for future system expansion of DMA modules and coprocessors. The M0 and M1 interfaces are respectively connected to the instruction memory and the instruction data memory, M2 is connected to the AHB-to-APB bridge, M3 is connected to the DDR, and M4 is connected to the AHB-to-AHB bridge to expand the second-level AHB bus. The access relationship between each Slave and Master is shown in Figure 4.

如图6所示,第二级AHB总线设置有1个Slave接口(S0)和2个Master接口(M0、M1)。S0接口与AHB转AHB桥连接,M0接口与系统控制模块连接,M1接口GPIO连接,As shown in FIG. 6, the second-level AHB bus is provided with one Slave interface (S0) and two Master interfaces (M0, M1). The S0 interface is connected to the AHB to AHB bridge, the M0 interface is connected to the system control module, and the M1 interface is connected to the GPIO.

本实施例提供的Cortex-M3核要访问各个总线上的模块,必修给各个模块分配地址空间,分配的地址空间如表1所示。The Cortex-M3 core provided in this embodiment needs to access modules on each bus, and must allocate address space to each module. The allocated address space is shown in Table 1.

表1系统中各模块地址映射Table 1 Address mapping of each module in the system

Figure BDA0002627812940000061
Figure BDA0002627812940000061

本实施例提供的系统控制模块是连接软件和硬件的重要的控制中轴,将控制指令转换为硬件控制信号,从而实现对摄像头模块、ROI加速器模块、LCD显示模块和FLASH读写模块的控制。The system control module provided by this embodiment is an important control axis connecting software and hardware, and converts control instructions into hardware control signals, thereby realizing the control of the camera module, ROI accelerator module, LCD display module and FLASH read-write module.

本实施例提供的系统控制模块有9个寄存器,软件可以通过配置这9个寄存器来控制相应硬件的工作。这9个寄存器如表2所示。The system control module provided in this embodiment has 9 registers, and software can control the work of corresponding hardware by configuring these 9 registers. These 9 registers are shown in Table 2.

表2系统控制模块的寄存器列表Table 2 Register list of the system control module

Figure BDA0002627812940000071
Figure BDA0002627812940000071

本实施例还提供了一种用于控制指静脉图像识别芯片的寄存器设置方法,所述寄存器设置包括硬件控制LCD显示寄存器、读Block RAM寄存器、摄像头控制寄存器、感兴趣区域提取控制寄存器、像素累加和下限阈值寄存器、像素累加和上限阈值寄存器、写FLASH寄存器、读FLASH寄存器和FLASH擦除寄存器;具体设置如下:This embodiment also provides a register setting method for controlling the finger vein image recognition chip, the register setting includes a hardware control LCD display register, a block RAM read register, a camera control register, an area of interest extraction control register, and a pixel accumulation register. And lower limit threshold register, pixel accumulation and upper limit threshold register, write FLASH register, read FLASH register and FLASH erase register; the specific settings are as follows:

所述硬件控制LCD显示寄存器(LCD_HW_CTRL_DISP)配置有LCD硬件控制位;所述LCD硬件控制位配置为“1”时,启动硬件逻辑电路控制显示器LCD的信号并驱动LCD显示;所述LCD硬件控制位配置为“0”时,由软件控制LCD显示,其详细特征为:The hardware control LCD display register (LCD_HW_CTRL_DISP) is configured with an LCD hardware control bit; when the LCD hardware control bit is configured as "1", the hardware logic circuit is started to control the signal of the display LCD and drive the LCD display; the LCD hardware control bit When the configuration is "0", the LCD display is controlled by software, and its detailed features are:

Figure BDA0002627812940000072
Figure BDA0002627812940000072

Figure BDA0002627812940000073
Figure BDA0002627812940000073

地址为0x5000 0000,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0000, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x0000 0000,即默认由软件控制LCD进行显示。The reset value is 0x0000 0000, that is, the software controls the LCD to display by default.

位[31:1]为保留位。Bits[31:1] are reserved.

位[0]为LCD硬件控制位,取名lcd_hw_ctrl,该位可读可写,当该位配置为“1”时,由硬件控制LCD显示,该位配置为“0”时,由软件控制LCD显示。Bit [0] is the LCD hardware control bit, named lcd_hw_ctrl, this bit is readable and writable, when this bit is configured as "1", the LCD display is controlled by hardware, when this bit is configured as "0", the LCD is controlled by software show.

该寄存器的使用场景和配置方法为:当系统开启并处于注册和识别模式时,首先将0x1写入0x5000 0000地址,即将该寄存器的lcd_hw_ctrl位配置为“1”,启动FPGA的硬件逻辑电路控制LCD的LCD_CS、LCD_RS、LCD_WR、LCD_RD等信号并驱动LCD显示,从而将摄像头采集到的图像实时显示到LCD屏上。当软件检测到ROI提取完成后,将0x0写入0x50000000地址,即将该寄存器的lcd_hw_ctrl位配置为“0”,这时LCD显示的控制权交给软件,通过软件的方式控制LCD_CS、LCD_RS、LCD_WR、LCD_RD等信号并驱动LCD显示。ROI提取结果以及归一化、特征提取、连通域去噪、中值滤波、特征匹配结果的显示都由软件进行控制。The use scenario and configuration method of this register are: when the system is turned on and in the registration and identification mode, first write 0x1 to the address 0x5000 0000, that is, configure the lcd_hw_ctrl bit of the register to "1", and start the FPGA hardware logic circuit to control the LCD LCD_CS, LCD_RS, LCD_WR, LCD_RD and other signals and drive the LCD display, so that the images collected by the camera are displayed on the LCD screen in real time. When the software detects that the ROI extraction is completed, write 0x0 into the address 0x50000000, that is, configure the lcd_hw_ctrl bit of the register as "0", then the control right of the LCD display is given to the software, and the LCD_CS, LCD_RS, LCD_WR, LCD_CS, LCD_RS, LCD_WR, LCD_RD and other signals and drive LCD display. The display of ROI extraction results, normalization, feature extraction, connected domain denoising, median filtering, and feature matching results are all controlled by software.

所述读Block RAM寄存器配置有Block RAM读控制位、Block RAM地址位;The read Block RAM register is configured with a Block RAM read control bit and a Block RAM address bit;

所述Block RAM读控制位为“1”时,通过软件将Block RAM对应地址中的数据读回,该位配置为“0”时,不读取Block RAM;When the Block RAM read control bit is "1", the data in the corresponding address of the Block RAM is read back through software, and when the bit is configured as "0", the Block RAM is not read;

当Block RAM地址位为1时,将读取该位指定的地址中的数据;When the Block RAM address bit is 1, the data in the address specified by the bit will be read;

所述读Block RAM寄存器(READ_BRAM),用于从FPGA内部的Block RAM中读取数据,其使用分为读写两个步骤。当写该寄存器时,其详细特征为:The read Block RAM register (READ_BRAM) is used to read data from the Block RAM inside the FPGA, and its use is divided into two steps of reading and writing. When writing to this register, its detailed characteristics are:

Figure BDA0002627812940000081
Figure BDA0002627812940000081

Figure BDA0002627812940000082
Figure BDA0002627812940000082

地址为0x5000 0004,软件通过Cortex-M3内核写该地址将访问本寄存器。The address is 0x5000 0004, and the software will access this register by writing this address through the Cortex-M3 core.

复位值为0x0000 0000,即默认不读取FPGA内部的Block RAM。The reset value is 0x0000 0000, that is, the Block RAM inside the FPGA is not read by default.

位[31:21]为保留位。Bits[31:21] are reserved.

位[20]为Block RAM读控制位,取名bram_rd,该位只可写。当该位配置为“1”时,软件将Block RAM对应地址中的数据读回,该位配置为“0”时,不读取Block RAM。Bit [20] is the Block RAM read control bit, named bram_rd, this bit can only be written. When this bit is configured as "1", the software will read back the data in the corresponding address of the Block RAM; when this bit is configured as "0", the Block RAM will not be read.

位[19:17]为保留位。Bits[19:17] are reserved.

位[16:0]为Block RAM地址位,取名bram_addr,该位只可写。当bram_rd位为1时,将读取该位指定的地址中的数据。由于摄像头采集到的图像像素为320*240,所以该位所表示的地址最大值为320*240-1,即0x12BFF。Bits [16:0] are Block RAM address bits, named bram_addr, which can only be written. When the bram_rd bit is 1, the data at the address specified by this bit will be read. Since the image pixels captured by the camera are 320*240, the maximum value of the address represented by this bit is 320*240-1, which is 0x12BFF.

当读该寄存器时,其详细特征为When reading this register, its detailed characteristics are

Figure BDA0002627812940000091
Figure BDA0002627812940000091

Figure BDA0002627812940000092
Figure BDA0002627812940000092

地址为0x5000 0004,软件通过Cortex-M3内核读该地址将访问本寄存器。The address is 0x5000 0004, the software will access this register by reading this address through the Cortex-M3 core.

复位值为0x0000 0000,即默认读回的数据为0。The reset value is 0x0000 0000, that is, the default read-back data is 0.

位[31:8]为保留位。Bits[31:8] are reserved.

位[7:0]为读数据位,取名bram_data,该位只可读。读取的Block RAM对应地址的数据将存储在该位中。Bits [7:0] are read data bits, named bram_data, which can only be read. The data corresponding to the address of the read Block RAM will be stored in this bit.

该寄存器的使用场景和配置方法为:当FPGA中的ROI提取硬件加速器模块完成ROI数据提取后,ROI数据存储在FPGA中的Block RAM中,软件需要将ROI数据读回进行后续的算法处理,这时就需要通过配置该寄存器读取Block RAM中的数据。例如需要读取地址0x1234中的数据,则首先需要写该寄存器为0x00101234,然后读取该寄存器,其[7:0]位中的数据就是Block RAM地址0x1234的数据。The usage scenario and configuration method of this register are: after the ROI extraction hardware accelerator module in the FPGA completes the ROI data extraction, the ROI data is stored in the Block RAM in the FPGA, and the software needs to read the ROI data back for subsequent algorithm processing. When you need to configure this register to read the data in the Block RAM. For example, if you need to read the data in the address 0x1234, you first need to write the register to 0x00101234, and then read the register, the data in the bits [7:0] is the data in the Block RAM address 0x1234.

所述摄像头控制寄存器(CAMERA_CTRL)配置有图像像素累加和位、图像采集完成标志位、摄像头控制位;The camera control register (CAMERA_CTRL) is configured with an image pixel accumulation and bit, an image acquisition completion flag bit, and a camera control bit;

所述图像像素累加和位用于计算采集的每帧图像像素累加和,The cumulative sum of image pixels is used to calculate the cumulative sum of pixels of each frame of image collected,

所述图像采集完成标志位,用于当摄像头检测到有手指伸进图像采集装置的卡槽时,摄像头将图像信息存储进入Block RAM,并且将该位置“1”;The image acquisition completion flag is used to store the image information into the Block RAM and set the position to "1" when the camera detects that a finger is inserted into the card slot of the image acquisition device;

所述摄像头控制位的配置位为“1”时,启动摄像头采集图像,当配置位为“0”时,关闭摄像头;When the configuration bit of the camera control bit is "1", the camera is started to collect images, and when the configuration bit is "0", the camera is turned off;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000093
Figure BDA0002627812940000093

Figure BDA0002627812940000094
Figure BDA0002627812940000094

Figure BDA0002627812940000101
Figure BDA0002627812940000101

地址为0x5000 0008,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0008, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x0000 0000,即默认不开启摄像头。The reset value is 0x0000 0000, that is, the camera is not turned on by default.

位[31:29]为保留位。Bits[31:29] are reserved.

位[28:4]为图像像素累加和位,取名pix_color_sum。摄像头采集图像时,每帧图像后会更新该位的值,用于存储每帧图像的像素累加和。Bits [28:4] are the cumulative sum of image pixels, named pix_color_sum. When the camera captures images, the value of this bit will be updated after each frame of image to store the cumulative sum of pixels of each frame of image.

位[3:2]为保留位。Bits[3:2] are reserved.

位[1]为图像采集完成标志位,取名camera_finish_flag,当摄像头检测到有手指伸进图像采集装置的卡槽时,摄像头将图像信息存储进入Block RAM,并且将该位置“1”。Bit [1] is the image acquisition completion flag, named camera_finish_flag, when the camera detects that a finger is inserted into the card slot of the image acquisition device, the camera will store the image information into the Block RAM, and set the bit to "1".

位[0]为摄像头控制位,取名camera_ctrl,当配置该位为“1”时,启动摄像头采集图像,当配置该位为“0”时,关闭摄像头。Bit [0] is the camera control bit, named camera_ctrl, when the bit is configured as "1", the camera is started to collect images, and when the bit is configured as "0", the camera is turned off.

该寄存器的使用场景和配置方法为:当开启注册或识别模式时,首先配置该寄存器的camera_ctrl位为“1”,启动摄像头,当读取到该寄存器的camera_finish_flag位为“1”时,说明手指图像已采集到,写该寄存器的camera_ctrl位和camera_finish_flag位为0,以关闭摄像头和清零标志位。可以在摄像头开启时读取该寄存器的pix_color_sum的值,以得出在手指伸进卡槽和未伸进卡槽时图像的像素累加值,从而根据此值调整检测手指是否伸进卡槽的像素累加和阈值。The usage scenario and configuration method of this register are as follows: when the registration or recognition mode is turned on, first configure the camera_ctrl bit of the register to be "1", start the camera, and when the camera_finish_flag bit of the register is read as "1", it means that the finger The image has been captured, write the camera_ctrl bit and camera_finish_flag bit of this register to 0 to turn off the camera and clear the flag bit. The value of pix_color_sum of this register can be read when the camera is turned on to obtain the pixel accumulation value of the image when the finger is inserted into the card slot and not inserted into the card slot, so as to adjust the pixel for detecting whether the finger is inserted into the card slot according to this value Accumulate and Threshold.

所述感兴趣区域提取控制寄存器(ROI_CTRL)配置有感兴趣区域宽度位、感兴趣区域高度位、感兴趣区域提取完成标志位、感兴趣区域提取控制位;The ROI extraction control register (ROI_CTRL) is configured with ROI width bits, ROI height bits, ROI extraction completion flag bits, and ROI extraction control bits;

所述感兴趣区域宽度位;用于存储采集到的感兴趣区域的宽度数据;The ROI width bit; used to store the width data of the ROI collected;

所述感兴趣区域高度位;用于存储采集到的感兴趣区域的高度数据;The height bit of the region of interest; used to store the collected height data of the region of interest;

所述感兴趣区域提取完成标志位;当感兴趣区域提取完成,配置位为“1”;The region of interest extraction completion flag bit; when the region of interest extraction is completed, the configuration bit is "1";

所述感兴趣区域提取控制位;当配置位为“1”时,启动ROI硬件加速器模块进行感兴趣区域提取,当配置位为“0”时,关闭ROI模块;The region of interest extraction control bit; when the configuration bit is "1", the ROI hardware accelerator module is started to extract the region of interest, and when the configuration bit is "0", the ROI module is closed;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000102
Figure BDA0002627812940000102

Figure BDA0002627812940000103
Figure BDA0002627812940000103

Figure BDA0002627812940000111
Figure BDA0002627812940000111

地址为0x5000 000C,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 000C, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x0000 0000,即默认不开启ROI提取功能。The reset value is 0x0000 0000, that is, the ROI extraction function is disabled by default.

位[31:24]为感兴趣区域宽度位,即ROI_width。ROI提取之后,将把得到的感兴趣区域的宽度数据存储进入该位中。Bits [31:24] are the width bits of the region of interest, namely ROI_width. After the ROI is extracted, the obtained width data of the region of interest will be stored into this bit.

位[23:16]为感兴趣区域高度位,即ROI_height。ROI提取之后,将把得到的感兴趣区域的高度数据存储进入该位中。Bits [23:16] are height bits of the region of interest, ie ROI_height. After the ROI is extracted, the obtained height data of the region of interest will be stored into this bit.

位[15:2]为保留位。Bits[15:2] are reserved.

位[1]为感兴趣区域提取完成标志位,取名ROI_finish_flag,当FPGA中的ROI硬件加速器模块运行结束,即感兴趣区域提取完成,将该位置“1”。Bit [1] is the region of interest extraction completion flag, named ROI_finish_flag, when the ROI hardware accelerator module in the FPGA finishes running, that is, the region of interest extraction is completed, set the bit to "1".

位[0]为感兴趣区域提取控制位,取名ROI_ctrl,当配置该位为“1”时,启动ROI硬件加速器模块进行感兴趣区域提取,为“0”时,关闭ROI模块。Bit [0] is the region of interest extraction control bit, named ROI_ctrl, when the bit is configured as "1", the ROI hardware accelerator module is started to extract the region of interest, and when it is "0", the ROI module is turned off.

该寄存器的使用场景和配置方法为:当读取到摄像头控制寄存器(CAMERA_CTRL)的camera_finish_flag位为“1”时,说明手指图像已采集到,这时配置该寄存器的ROI_ctrl位为“1”,启动ROI硬件加速器模块开始进行ROI提取,当读取到该寄存器的ROI_finish_flag位为“1”时,说明感兴趣区域已经提取完成,写该寄存器的ROI_ctrl位和ROI_finish_flag位为0,以关闭ROI模块和清零标志位,这时可以读取该寄存器的ROI_width和ROI_height位得到提取出的感兴趣区域的宽度和高度,以便于后续算法处理时使用。The usage scenario and configuration method of this register are: when the camera_finish_flag bit of the camera control register (CAMERA_CTRL) is read as "1", it means that the finger image has been captured. The ROI hardware accelerator module starts ROI extraction. When the ROI_finish_flag bit of the register is read as "1", it indicates that the region of interest has been extracted. Write the ROI_ctrl bit and ROI_finish_flag bit of the register to 0 to close the ROI module and clear the ROI. Zero flag, at this time, you can read the ROI_width and ROI_height bits of this register to get the width and height of the extracted region of interest, so that it can be used in subsequent algorithm processing.

所述像素累加和下限阈值寄存器(PIX_SUM_MIN)配置有图像像素累加和下限阈值位;The pixel accumulation and the lower limit threshold register (PIX_SUM_MIN) are configured with image pixel accumulation and lower limit threshold bits;

所述图像像素累加和下限阈值位;用于存储采集到的图像的一帧像素累加下限阈值;The image pixel accumulation and lower limit threshold bit; a frame of pixel accumulation lower limit threshold for storing the collected image;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000112
Figure BDA0002627812940000112

Figure BDA0002627812940000113
Figure BDA0002627812940000113

地址为0x5000 0010,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0010, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 0040 0000,即默认为当每帧图像的像素累加和小于0x400000时没有手指伸进图像采集装置的卡槽。The reset value is 0x 0040 0000, that is, the default is that when the cumulative sum of pixels of each frame image is less than 0x400000, no finger is inserted into the card slot of the image acquisition device.

位[31:25]为保留位。Bits[31:25] are reserved.

位[24:0]为图像像素累加和下限阈值位,取名pix_sum_min,该位为可读可写。当摄像头捕获的图像的一帧像素累加和小于此阈值时,说明手指没有伸进卡槽,否则如果大于等于此阈值并且小于等于像素累加和上限阈值寄存器中的pix_sum_max位的值,则说明手指伸进了图像采集装置卡槽。Bits [24:0] are image pixel accumulation and lower limit threshold bits, named pix_sum_min, which are readable and writable. When the cumulative sum of pixels of a frame of the image captured by the camera is less than this threshold, it means that the finger is not inserted into the card slot; otherwise, if it is greater than or equal to this threshold and less than or equal to the value of the pix_sum_max bit in the pixel accumulation and upper limit threshold register, it means that the finger is inserted into the card slot of the image capture device.

该寄存器的使用场景和配置方法为:如果调试系统时发现手指伸进卡槽的检测不准确,则在开启摄像头时,通过读取摄像头控制寄存器(CAMERA_CTRL)中的pix_color_sum位,得出在近红外LED关闭时手指伸进卡槽和没有伸进卡槽时像素累加和的值,并根据此值配置该寄存器的pix_sum_min位以设置图像像素累加和下限阈值。The usage scenario and configuration method of this register are: if it is found that the detection of fingers extending into the card slot is inaccurate when debugging the system, then when the camera is turned on, by reading the pix_color_sum bit in the camera control register (CAMERA_CTRL), it is obtained that the near-infrared When the LED is turned off, the value of the sum of pixels when the finger is inserted into the card slot and when it is not inserted into the slot, and the pix_sum_min bit of this register is configured according to this value to set the threshold of the sum of image pixels.

所述像素累加和上限阈值寄存器(PIX_SUM_MAX)配置有图像像素累加和上限阈值位;Described pixel accumulation and upper limit threshold register (PIX_SUM_MAX) are configured with image pixel accumulation and upper limit threshold position;

所述图像像素累加和上限阈值位;用于存储采集到的图像的一帧像素累加上限阈值;The image pixel accumulation and upper limit threshold bit; used to store a frame of pixel accumulation upper limit threshold of the image collected;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000121
Figure BDA0002627812940000121

Figure BDA0002627812940000122
Figure BDA0002627812940000122

地址为0x5000 0014,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0014, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 00B0 0000,即默认为当每帧图像的像素累加和大于0xB00000时没有手指伸进图像采集装置的卡槽。The reset value is 0x 00B0 0000, that is, the default is that when the cumulative sum of pixels of each frame image is greater than 0xB00000, no finger is inserted into the card slot of the image acquisition device.

位[31:25]为保留位。Bits[31:25] are reserved.

位[24:0]为图像像素累加和上限阈值位,取名pix_sum_max,该位为可读可写。当摄像头捕获的图像的一帧像素累加和大于此阈值时,说明手指没有伸进卡槽,否则如果小于等于此阈值并且大于等于像素累加和下限阈值寄存器中的pix_sum_min位的值,则说明手指伸进了图像采集装置卡槽。Bits [24:0] are image pixel accumulation and upper limit threshold bits, named pix_sum_max, which are readable and writable. When the cumulative sum of pixels of a frame of the image captured by the camera is greater than this threshold, it means that the finger is not inserted into the card slot. Otherwise, if it is less than or equal to this threshold and greater than or equal to the value of the pix_sum_min bit in the pixel accumulation and lower limit threshold register, it means that the finger is extended. into the card slot of the image capture device.

该寄存器的使用场景和配置方法为:如果调试系统时发现手指伸进卡槽的检测不准确,则在开启摄像头时,通过读取摄像头控制寄存器(CAMERA_CTRL)中的pix_color_sum位,得出在近红外LED打开时手指伸进卡槽和没有伸进卡槽时像素累加和的值,并根据此值配置该寄存器的pix_sum_max位以设置图像像素累加和上限阈值。The usage scenario and configuration method of this register are: if it is found that the detection of fingers extending into the card slot is inaccurate when debugging the system, then when the camera is turned on, by reading the pix_color_sum bit in the camera control register (CAMERA_CTRL), it is obtained that the near-infrared The value of the sum of pixels when the finger is inserted into the card slot and not inserted into the card slot when the LED is turned on, and the pix_sum_max bit of this register is configured according to this value to set the upper threshold of the image pixel sum.

所述写FLASH寄存器(FLASH_WRITE),The write FLASH register (FLASH_WRITE),

配置有FLASH写数据位、FLASH写地址位;Configured with FLASH write data bit, FLASH write address bit;

所述FLASH写数据位,配置用于写入FLASH数据;The FLASH write data bit is configured to write FLASH data;

所述FLASH写地址位,配置用于写入FLASH的地址;The FLASH write address bit is configured to write the address of the FLASH;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000131
Figure BDA0002627812940000131

Figure BDA0002627812940000132
Figure BDA0002627812940000132

地址为0x5000 0018,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0018, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 0080 0000,即默认FLASH存储静脉纹路特征的起始地址为0x00800000。The reset value is 0x 0080 0000, that is, the starting address of the default FLASH storage vein pattern feature is 0x00800000.

位[31:24]为FLASH写数据位,取名flash_wdata,即需要写入FLASH的数据。该位为可读可写。Bits [31:24] are FLASH write data bits, named flash_wdata, that is, the data that needs to be written into FLASH. This bit is readable and writable.

位[23:0]为FLASH写地址位,取名flash_waddr,即需要写入FLASH的地址。该位为可读可写。Bits [23:0] are FLASH write address bits, named flash_waddr, that is, the address that needs to be written to FLASH. This bit is readable and writable.

该寄存器的使用场景和配置方法为:如果当前为注册模式,在进行静脉纹路的连通域去噪和中值滤波后,需要将特征数据存储进入FLASH中,这时软件通过配置该寄存器以将特征数据存储进入FLASH的对应地址中。例如特征数据的第3个像素值为0xFF,需要存储的地址为0x800003,则配置该寄存器为0xFF80 0003。本实施例中的FLASH选用MT25QL128,存储空间为16M字节,其地址范围为0x000000~0xFFFFFF,则从0x800000开始到最后还有8MB的存储空间,这8MB专门用于存储静脉纹路特征。一个静脉纹路特征为96*64字节,即6144字节。本实施例中每幅静脉纹路特征图像存储的首地址8KB对齐,则一共可以存储1024幅静脉纹路特征图像。第一幅特征存储首地址为0x800000,第二幅特征存储首地址为0x802000,第三幅特征存储首地址为0x804000,依此类推。The usage scenario and configuration method of this register are as follows: if the current registration mode is used, after the connected domain denoising and median filtering of the vein pattern, the feature data needs to be stored in the FLASH. The data is stored in the corresponding address of FLASH. For example, the third pixel value of feature data is 0xFF, and the address to be stored is 0x800003, then configure this register as 0xFF80 0003. The FLASH in this embodiment uses MT25QL128, the storage space is 16M bytes, and its address range is 0x000000~0xFFFFFF, and there is still 8MB of storage space from 0x800000 to the end, and this 8MB is specially used for storing vein pattern features. A vein texture feature is 96*64 bytes, that is, 6144 bytes. In this embodiment, the first address stored in each vein pattern feature image is 8 KB aligned, and a total of 1024 vein pattern feature images can be stored. The first feature storage address of the first feature is 0x800000, the first feature storage address of the second feature is 0x802000, the first feature storage address of the third feature is 0x804000, and so on.

所述读FLASH寄存器(FLASH_READ配置有FLASH读地址位;所述FLASH读地址位,配置用于读取的FLASH的地址址;The read FLASH register (FLASH_READ is configured with a FLASH read address bit; the FLASH read address bit is configured for the address address of the FLASH read;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000141
Figure BDA0002627812940000141

Figure BDA0002627812940000142
Figure BDA0002627812940000142

地址为0x5000 001C,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 001C, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 0080 0000,即默认读FLASH的起始地址为0x 00800000。The reset value is 0x 0080 0000, that is, the default starting address for reading FLASH is 0x 00800000.

位[31:25]为保留位。Bits[31:25] are reserved.

位[23:0]为FLASH读地址位,取名flash_raddr位,即需要读取的FLASH的地址。该位为只写。Bits [23:0] are the FLASH read address bits, named flash_raddr bit, that is, the address of the FLASH to be read. This bit is write only.

当读该寄存器时,其详细特征为When reading this register, its detailed characteristics are

Figure BDA0002627812940000143
Figure BDA0002627812940000143

Figure BDA0002627812940000144
Figure BDA0002627812940000144

地址为0x5000 001C,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 001C, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 0000 0000,即默认读取的FLASH的数据为0x0。The reset value is 0x 0000 0000, that is, the FLASH data read by default is 0x0.

位[31:8]为保留位。Bits[31:8] are reserved.

位[7:0]为FLASH读地址位,取名flash_rdata位,即读取的FLASH对应地址的数据。该位为只读。Bits [7:0] are the FLASH read address bits, named flash_rdata bits, that is, the data corresponding to the read FLASH address. This bit is read only.

该寄存器的使用场景和配置方法为:如果当前为识别模式,在进行静脉纹路的连通域去噪和中值滤波后,需要将之前存储进入FLASH中的特征数据读出以进行特征匹配,这时软件通过配置该寄存器以将FLASH对应地址的特征数据读出。例如需要读取FLASH地址0x801234中的数据,则首先需要写该寄存器为0x00801234,然后读取该寄存器,其[7:0]位中的数据就是FLASH地址0x801234中的数据。The usage scenario and configuration method of this register are as follows: if the current recognition mode is used, after the connected domain denoising and median filtering of the vein pattern, it is necessary to read out the feature data previously stored in the FLASH for feature matching. The software configures this register to read out the characteristic data of the FLASH corresponding address. For example, if you need to read the data in the FLASH address 0x801234, you first need to write the register to 0x00801234, and then read the register, the data in the bits [7:0] is the data in the FLASH address 0x801234.

所述读FLASH擦除器(FLASH_CLR)配置有擦除选择位、FLASH擦除的起始地址位;The read FLASH eraser (FLASH_CLR) is configured with an erase selection bit, a starting address bit for FLASH erasing;

所述擦除选择位当配置为“1”时,擦除FLASH中的全部静脉纹路特征,当配置为“0”时,只擦除flash_caddr地址开始的一幅纹路特征图像;When the erasing selection bit is configured as "1", all the vein pattern features in the FLASH are erased; when configured as "0", only a texture feature image starting from the flash_caddr address is erased;

其详细特征为Its detailed characteristics are

Figure BDA0002627812940000151
Figure BDA0002627812940000151

Figure BDA0002627812940000152
Figure BDA0002627812940000152

地址为0x5000 0020,软件通过Cortex-M3内核读写该地址将访问本寄存器。The address is 0x5000 0020, the software will access this register by reading and writing this address through the Cortex-M3 core.

复位值为0x 0080 0000,即默认FLASH的擦除地址为0x 00800000,且只擦除该地址开始的一幅纹路特征图像。The reset value is 0x 0080 0000, that is, the default FLASH erase address is 0x 00800000, and only one texture feature image starting from this address will be erased.

位[31:25]为保留位。Bits[31:25] are reserved.

位[24]为擦除选择位,取名CA,当该位配置为“1”时,擦除FLASH中的全部静脉纹路特征,当该位配置为“0”时,只擦除flash_caddr地址开始的一幅纹路特征图像。该位为只写。Bit [24] is the erase selection bit, named CA. When this bit is configured as "1", all the vein pattern features in FLASH will be erased. When this bit is configured as "0", only the flash_caddr address will be erased. A texture feature image of . This bit is write only.

位[23:0]为FLASH擦除的起始地址,取名flash_caddr位,即需要擦除的FLASH的首地址。该位为只写。Bits [23:0] are the starting address of FLASH erasing, named flash_caddr bit, that is, the first address of FLASH to be erased. This bit is write only.

该寄存器的使用场景和配置方法为:如果当前想删除FLASH中存储的静脉纹路特征,则需要配置该寄存器。如果配置该寄存器的CA位为“1”,则不管flash_caddr位的值为多少,将擦除FLASH中地址0x 00800000之后的所有特征数据。如果只想擦除某幅特征图像,则配置该寄存器的CA位为“0”,并且通过flash_caddr指定擦除的起始地址。将擦除掉以flash_caddr地址开始的8KB数据。此时flash_caddr位的配置需要8KB对齐。The usage scenario and configuration method of this register are: if you want to delete the vein pattern feature stored in FLASH, you need to configure this register. If the CA bit of this register is set to "1", no matter what the value of the flash_caddr bit is, all feature data after address 0x 00800000 in FLASH will be erased. If you only want to erase a certain characteristic image, configure the CA bit of this register as "0", and specify the starting address of erasing through flash_caddr. The 8KB data starting with flash_caddr address will be erased. At this time, the configuration of the flash_caddr bit requires 8KB alignment.

本实施例提供的摄像头控制器通过配置摄像头控制寄存器(CAMERA_CTRL)打开摄像头模块后,系统控制模块产生camera_start信号启动摄像头实时采集图像,并将采集到的图像数据存储进入Block RAM中,LCD控制器模块实时从Block RAM中读取数据进行显示。After the camera controller provided by this embodiment opens the camera module by configuring the camera control register (CAMERA_CTRL), the system control module generates a camera_start signal to start the camera to collect images in real time, and stores the collected image data into the Block RAM, and the LCD controller module Read data from Block RAM in real time for display.

本实施例中的摄像头控制器设置有用于检测手指是否伸进采集装置卡槽的手指位置检测模块,所述手指位置检测模块按照以下步骤检测:The camera controller in this embodiment is provided with a finger position detection module for detecting whether the finger is inserted into the card slot of the acquisition device, and the finger position detection module detects according to the following steps:

获取有手指时的静脉图像;Get vein images with fingers;

计算静脉图像的像素和;Calculate the pixel sum of the vein image;

判断静脉图像的像素和是否在预设阈值范围内,如果是,则手指伸进卡槽;Determine whether the pixel sum of the vein image is within the preset threshold range, if so, put your finger into the card slot;

如果否,则手指未伸进卡槽;If not, the finger is not inserted into the card slot;

移动手指在卡槽的位置,重复循环。Move your finger over the card slot and repeat the cycle.

本实施例提供的预设阈值默认范围如下:下限阈值为0x400000,上限阈值为0xB00000。The default range of the preset threshold provided in this embodiment is as follows: the lower threshold is 0x400000, and the upper threshold is 0xB00000.

当检测到图像的像素累加值在此区间内,说明有手指伸进卡槽,然后采集延时100帧后的图像作为手指静脉的原始图像并产生camera_finish信号作为采集结束的标志。延时100帧的作用是使图像稳定,图像像素的累加和可以通过寄存器CAMERA_CTRL的pix_color_sum位读出,检测手指的下限阈值和上限阈值可以通过寄存器PIX_SUM_MIN和PIX_SUM_MAX进行配置。When it is detected that the pixel accumulation value of the image is within this interval, it means that a finger has been inserted into the card slot, and then the image delayed by 100 frames is collected as the original image of the finger vein and the camera_finish signal is generated as a sign of the end of the collection. The effect of delaying 100 frames is to stabilize the image. The cumulative sum of image pixels can be read out through the pix_color_sum bit of the register CAMERA_CTRL, and the lower and upper thresholds for finger detection can be configured through the registers PIX_SUM_MIN and PIX_SUM_MAX.

如图7和图8所示,所述ROI硬件提取模块采用Verilog硬件描述语言编写ROI硬件加速器,当摄像头采集到手指静脉图像时,ROI硬件提取模块开始工作,As shown in Figure 7 and Figure 8, described ROI hardware extraction module adopts Verilog hardware description language to write ROI hardware accelerator, when camera collects finger vein image, ROI hardware extraction module begins to work,

本实施例中的ROI算法采用硬件描述语言Verilog进行FPGA开发,主程序采用有限状态机(Finite-state machine,FSM)进行设计,ROI的提取过程由7个状态来完成,分别为IDLE状态:即空闲状态;FIRST_CUT状态:即初次截取状态;EDGE_POINT状态:即手指边界点检测状态;CORRECTION状态:即旋转校正状态;WIDTH_DEFINE状态:即宽度定义状态;HIGHT_DEFINE状态:即高度定义状态;SECOND_CUT状态:即二次截取状态。The ROI algorithm in the present embodiment adopts hardware description language Verilog to carry out FPGA development, and main program adopts finite state machine (Finite-state machine, FSM) to design, and the extraction process of ROI is finished by 7 states, is IDLE state respectively: namely Idle state; FIRST_CUT state: initial interception state; EDGE_POINT state: finger boundary point detection state; CORRECTION state: rotation correction state; WIDTH_DEFINE state: width definition state; HIGHT_DEFINE state: height definition state; SECOND_CUT state: two Secondary interception status.

如图7所示,图7为ROI提取状态转换图,所述IDLE状态,当手指没有伸进卡槽时,一直处于该状态,将检测到手指伸进卡槽并将将图像存储进入Block RAM后,进入FIRST_CUT状态;As shown in Figure 7, Figure 7 is a ROI extraction state transition diagram, the IDLE state, when the finger is not inserted into the card slot, is always in this state, will detect that the finger is inserted into the card slot and store the image into the Block RAM After that, enter the FIRST_CUT state;

所述FIRST_CUT状态,用于对指静脉图像进行背景截取并将截取后的图像存储到Block RAM中;The FIRST_CUT state is used for performing background interception on the finger vein image and storing the intercepted image in the Block RAM;

FIRST_CUT状态的目的是截掉背景区域,减小图像大小,图像截取完成后进入EDGE_POINT状态,图像截取通过读写Block RAM完成;The purpose of the FIRST_CUT state is to cut off the background area and reduce the size of the image. After the image is cut, it enters the EDGE_POINT state. The image cut is completed by reading and writing Block RAM;

在EDGE_POINT状态下,依次从RAM中读取图像数据,并计算手指的4个边界点;In the EDGE_POINT state, read the image data from the RAM in turn, and calculate the 4 boundary points of the finger;

在CORRECTION状态下,首先根据上一状态求出的边界点,计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中,图像的平移校正实际就是各像素点存储地址的变化;In the CORRECTION state, first calculate the deflection angle of the finger and the value to be shifted for each line according to the boundary points obtained in the previous state, and then read the image data from the RAM in turn and store them back in the RAM after being shifted. The translation correction of the image is actually It is the change of the storage address of each pixel;

在WIDTH_DEFINE状态下,根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度;In the WIDTH_DEFINE state, according to the boundary points after translation correction, find out the column numbers that need to be intercepted on the left and right sides of the finger image to determine the width of the ROI area;

在HIGHT_DEFINE状态下,采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号;In the HIGHT_DEFINE state, use the sliding window method to find the area of the distal joint of the finger, so as to determine the height of the ROI area, that is, it is necessary to calculate the line number of the upper and lower intercepts;

在SECOND_CUT状态下,根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据;In the SECOND_CUT state, the image data is re-read and written into the RAM according to the column numbers intercepted on the left and right and the row numbers intercepted on the top and bottom. Finally, the data stored in the RAM starting with 0 is the data of the ROI image;

通过以上7个状态完成了ROI的提取,提取后的图像数据存储在Block RAM中,然后产生ROI_finish信号,以通知软件可以从RAM中读取数据并进行后续算法处理。The extraction of ROI is completed through the above 7 states, the extracted image data is stored in the Block RAM, and then the ROI_finish signal is generated to notify the software that the data can be read from the RAM for subsequent algorithm processing.

将ROI模块设计成硬件加速器在速度上的优势,采用软件方案实现同样的ROI算法。硬件和软件的时钟频率都采用36MHz,各个步骤的运行时间以及总的运行时间对比如表3所示。可以看出,采用FPGA实现本ROI方法,总的运行时间是3.822ms,采用软件方式需要78.547ms。在相同的时钟频率下,硬件要比软件快20倍以上。The ROI module is designed to take advantage of the speed of the hardware accelerator, and the software solution is used to implement the same ROI algorithm. The clock frequency of both hardware and software is 36MHz, and the running time of each step and the comparison of the total running time are shown in Table 3. It can be seen that the total running time of this ROI method is 3.822ms when FPGA is used, and 78.547ms is needed by software. At the same clock frequency, hardware is more than 20 times faster than software.

表3ROI模块软硬件实现方式运行时间对比(ms)Table 3 Comparison of running time of ROI module software and hardware implementation methods (ms)

Figure BDA0002627812940000171
Figure BDA0002627812940000171

本系统ROI之后的算法,如归一化、方向分割,连通域去噪等都是采用软件方式实现,经过MDK运行测试可知,后续算法共计需要运行时间约480ms,所以可以得出,将ROI模块进行硬件加速,可以将总的识别速度提高15%以上。Algorithms after the ROI of this system, such as normalization, direction segmentation, connected domain denoising, etc., are all implemented in software. After MDK running tests, it can be seen that the total running time of subsequent algorithms is about 480ms, so it can be concluded that the ROI module Hardware acceleration can increase the overall recognition speed by more than 15%.

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。The above-mentioned embodiments are only preferred embodiments for fully illustrating the present invention, and the protection scope of the present invention is not limited thereto. Equivalent substitutions or transformations made by those skilled in the art on the basis of the present invention are all within the protection scope of the present invention. The protection scope of the present invention shall be determined by the claims.

Claims (9)

1. Finger vein recognition system, its characterized in that: the device comprises a finger vein image acquisition module, an ROI hardware extraction module, a gray scale size normalization module, a texture feature extraction module, a filtering denoising module, a registration judgment module and an LCD display module;
the finger vein image acquisition module is used for acquiring finger vein images;
the ROI hardware extraction module is used for extracting a region of interest of the finger vein image;
the gray scale size normalization module is used for reading the region of interest from the ROI hardware extraction module and normalizing the gray scale size of the region of interest;
the texture feature extraction module is used for extracting texture features of the normalized ROI data;
the filtering denoising module is used for carrying out median filtering and connected domain denoising on the texture characteristics;
the registration judging module is used for judging whether the registration process is adopted, and if so, the line characteristic data are stored in FLASH; if not, reading the stored line characteristic data from the FLASH to perform characteristic matching;
the LCD display module is used for displaying intermediate results and characteristic matching results in the image acquisition and processing process;
the ROI hardware extraction module adopts an FPGA to preprocess the finger vein image, and saves the acquired finger vein image interested region into a dual-port RAM of the FPGA;
the control of the acquisition of the finger vein image is realized by controlling corresponding image acquisition equipment through a control instruction stored in a register in a system control module; the control of the LCD display modules is realized by controlling the corresponding LCD display modules through control instructions stored in registers in the system control modules;
the ROI hardware extraction module comprises the following states, namely an IDLE state, a first_CUT state, an EDGE_POINT state, a CORRECTION state, a WIDTH_DEFINE state, a HIGHT_DEFINE state and a SECOND_CUT state:
in the IDLE state, if the camera acquires finger vein images and the finger vein images are stored in the Block RAM, the first_CUT state is entered;
the first_cut state is used for carrying out background interception on the finger vein image and storing the intercepted image into a Block RAM;
the EDGE_POINT state is used for reading image data from the Block RAM and calculating the boundary POINTs of the fingers;
the correct state is used for calculating the finger deflection angle and the value of each line to be translated according to the boundary point, then sequentially reading image data from the RAM, and storing the image data back into the RAM after translation, wherein the translation CORRECTION of the image is actually the change of the storage address of each pixel point;
the WIDTH_DEFINE state is used for finding out column numbers to be intercepted on the left and right sides of the finger image according to the boundary points after translational correction so as to determine the WIDTH of the ROI;
the HIGHT_DEfine state is used for solving the region of the far-end joint of the finger by adopting a sliding window method so as to determine the height of the region of the ROI, namely, the line number which needs to be intercepted up and down is calculated;
the second_cut state is used for re-reading and writing the image data into the RAM according to the left-right intercepted column number and the up-down intercepted line number, and finally the data stored in the RAM with 0 as the initial address is the data of the ROI image.
2. The system of claim 1, wherein: the system also comprises a two-level AHB bus, wherein the AHB bus comprises a first-level AHB bus and a second-level AHB bus;
the first-stage AHB bus is respectively connected with the instruction memory and the data memory through the AHB_to_SRAM;
DDR3 is connected with the first-stage AHB bus;
UART is connected with the first-stage AHB bus through APBInterconnect and AHP_to_APB in sequence;
the second-stage AHB bus is respectively connected with the finger vein image acquisition module, the ROI hardware extraction module, the LCD display module, the FLASH read-write control module and the dual-port Block RAM through the system control module;
the key, the LED indicator light and the buzzer are also hung on the second-stage AHB bus through the GPIO.
3. The system of claim 1, wherein: the system also comprises a kernel processor, wherein the first-stage AHB bus is connected with the kernel processor.
4. The system of claim 1, wherein: the core processor adopts an ARM Cortex-M3 core processor.
5. The system of claim 1, wherein: the system control module is provided with a hardware control LCD display register, a read Block RAM register, a camera control register, an interested region extraction control register, a pixel accumulation and lower limit threshold value register, a pixel accumulation and upper limit threshold value register, a write FLASH register, a read FLASH register and a FLASH erasure register; and each register is provided with a control instruction for controlling corresponding equipment.
6. A method for performing finger vein recognition using the finger vein recognition system of any one of claims 1-5, characterized by: the method comprises the following steps:
collecting finger vein images;
obtaining ROI data of a region of interest of the finger vein image through an ROI hardware extraction module;
reading the ROI data from the ROI hardware extraction module and normalizing the gray scale of the ROI data;
extracting texture characteristics of the normalized ROI data;
carrying out median filtering and connected domain denoising treatment on the grain characteristics;
judging whether the registration process is adopted, if so, storing the texture feature data into FLASH;
if not, reading the stored line characteristic data from the FLASH to perform characteristic matching;
and displaying the feature matching result through an LCD.
7. The method of claim 6, wherein: and (3) carrying out normalization processing on the gray scale of the ROI data, extracting texture characteristics of the normalized ROI data, and inputting results of median filtering and connected domain denoising processing on the texture characteristics into an LCD for display.
8. The method of claim 6, wherein: the ROI hardware extraction module adopts an FPGA to preprocess the finger vein image, and saves the acquired finger vein image region of interest into a dual-port RAM of the FPGA.
9. The method of claim 6, wherein: the control of the acquisition of the finger vein image is realized by controlling corresponding image acquisition equipment through a control instruction stored in a register in a system control module; the control of the LCD display modules is realized by controlling the corresponding LCD display modules through control instructions stored in registers in the system control modules.
CN202010802199.5A 2020-08-11 2020-08-11 Finger vein recognition method and system Active CN111914786B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010802199.5A CN111914786B (en) 2020-08-11 2020-08-11 Finger vein recognition method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010802199.5A CN111914786B (en) 2020-08-11 2020-08-11 Finger vein recognition method and system

Publications (2)

Publication Number Publication Date
CN111914786A CN111914786A (en) 2020-11-10
CN111914786B true CN111914786B (en) 2023-05-23

Family

ID=73284078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010802199.5A Active CN111914786B (en) 2020-08-11 2020-08-11 Finger vein recognition method and system

Country Status (1)

Country Link
CN (1) CN111914786B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113269029B (en) * 2021-04-07 2022-09-13 张烨 Multi-modal and multi-characteristic finger vein image recognition method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784141A (en) * 2018-11-27 2019-05-21 中国船舶重工集团公司第七一八研究所 A kind of finger vena identification encryption system based on arm processor
CN110163119A (en) * 2019-04-30 2019-08-23 中国地质大学(武汉) A kind of finger vein identification method and system
CN110675310A (en) * 2019-07-02 2020-01-10 北京达佳互联信息技术有限公司 Video processing method and device, electronic equipment and storage medium
CN111368780A (en) * 2020-03-13 2020-07-03 浙江大华技术股份有限公司 Fingerprint and finger vein based combined identification processing method and system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747701B2 (en) * 2015-08-20 2017-08-29 General Electric Company Systems and methods for emission tomography quantitation
CN108430306B (en) * 2015-10-09 2021-06-22 瓦索普蒂奇医疗公司 System and method for rapid inspection of vasculature and particulate flow using laser speckle contrast imaging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784141A (en) * 2018-11-27 2019-05-21 中国船舶重工集团公司第七一八研究所 A kind of finger vena identification encryption system based on arm processor
CN110163119A (en) * 2019-04-30 2019-08-23 中国地质大学(武汉) A kind of finger vein identification method and system
CN110675310A (en) * 2019-07-02 2020-01-10 北京达佳互联信息技术有限公司 Video processing method and device, electronic equipment and storage medium
CN111368780A (en) * 2020-03-13 2020-07-03 浙江大华技术股份有限公司 Fingerprint and finger vein based combined identification processing method and system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"基于FPGA控制的NAND Flash存储设计";刘东海 等;《科学技术与工程》;第13卷(第34期);10349-10353 *
"嵌入式手指静脉图像采集系统的研制";杨金锋 等;"中国民航大学学报";第33卷(第1期);50-54 *

Also Published As

Publication number Publication date
CN111914786A (en) 2020-11-10

Similar Documents

Publication Publication Date Title
US11151363B2 (en) Expression recognition method, apparatus, electronic device, and storage medium
KR102292028B1 (en) Gesture recognition method, device, electronic device, and storage medium
CN101853071B (en) Gesture identification method and system based on visual sense
CN107590430A (en) Biopsy method, device, equipment and storage medium
CN105844654A (en) Augmented reality system and method based on Zynq software and hardware coprocessing
KR20160071781A (en) Method of detecting object in image and image processing device
CN109034023A (en) A kind of eye movement data determines method, apparatus, equipment and storage medium
CN105868698A (en) Embedded type fingerprint recognition system based on Cortex-M3 core
CN102214300B (en) Digital signal processor (DSP)-based hand shape recognition system
CN111914786B (en) Finger vein recognition method and system
CN105025264A (en) Portable Computer Video Surveillance System Based on FPGA and USB2.0
CN103035051B (en) A kind of embedded human face identification gate control system
CN201853209U (en) Real-time video image coordinate identifying system
CN111914787B (en) Register configuration method for finger vein recognition SOC system
CN101567078A (en) Dual-bus visual processing chip architecture
CN115274099A (en) A computer-aided diagnosis system and method for human-intelligence interaction
CN106529480A (en) Finger tip detection and gesture identification method and system based on depth information
CN103048256A (en) Measure and control device for electrorotation biological chip experiment and experiment system
CN109598712A (en) Quality determining method, device, server and the storage medium of plastic foam cutlery box
CN104123552B (en) It is a kind of can be with the translation glasses of automatic identification
CN114495132A (en) Character recognition method, device, equipment and storage medium
CN117746502B (en) Image annotation method, action recognition method, device and electronic device
CN203164097U (en) Measure and control device for testing electric rotary biochip and test system
CN112383713B (en) Driving method for automatically loading human face MIPI or human face USB camera
CN118898756A (en) Inverse image signal processing network training method, data generation method and product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant