CN111914786A - 一种手指静脉识别方法及其*** - Google Patents
一种手指静脉识别方法及其*** Download PDFInfo
- Publication number
- CN111914786A CN111914786A CN202010802199.5A CN202010802199A CN111914786A CN 111914786 A CN111914786 A CN 111914786A CN 202010802199 A CN202010802199 A CN 202010802199A CN 111914786 A CN111914786 A CN 111914786A
- Authority
- CN
- China
- Prior art keywords
- roi
- finger vein
- module
- register
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/50—Maintenance of biometric data or enrolment thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/14—Vascular patterns
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Input (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明公开一种基于ARM Cortex‑M3的手指静脉识别SOC***和方法,实现了手指静脉识别***的整个流程,包括手指静脉图像采集、ROI提取、灰度和尺寸归一化、特征提取、连通域去噪、特征匹配等过程,并将每个过程的图像处理结果通过LCD进行显示。通过ROI硬件提取模块对ROI识别进行硬件加速,提高手指静脉识别的速度。经过大量测试得出,本***能完整实现手指静脉识别的功能,识别正确率约95%。采用FPGA对ROI提取模块进行加速,能将总的识别速度提高15%以上。该***可以作为便携式手指静脉识别***的方案进行产品研发,也可作为实验教学时的手指静脉识别的过程演示***,有较高的实用价值。
Description
技术领域
本发明涉及手指静脉识别技术领域,特别是一种手指静脉识别方法及其***。
背景技术
随着信息技术的发展,生物识别技术成为了互联网人工智能时代的一个关键技术。现今,对生物识别技术的研究越来越多,应用也越来越广泛。常见的生物识别技术有:指纹、人脸、虹膜、手指静脉等。虽然近十年对指静脉识别算法有较多的研究成果,但是目前市场上的指静脉识别产品并不多见。主要原因是指静脉识别算法较为复杂,导致硬件实现困难、识别时间长。
目前市场上的实现方案有三种:将整个识别算法在本地硬件上实现、将原始图像数据传到PC上实现、将原始图像数据发送到云服务器上进行实现。对于便携式手指静脉识别***,采用PC和云服务器的方案不太方便。本地硬件实现的方案有微处理器(如ARM)和FPGA。嵌入式微处理器具有成本低、功耗小、开发简单等特点,但是由于其工作时是CPU一条条执行指令,对于具有许多乘法运算的图像处理算法,在运行时间上不具有优势。对于复杂算法,FPGA从实现难度和功耗上都不具有优势。
发明内容
有鉴于此,本发明的目的在于提供手指静脉识别方法及其***,该方法利用FPGA对ROI提取模块进行加速,提高了识别速度。
为达到上述目的,本发明提供如下技术方案:
本发明提供的手指静脉识别方法,包括以下步骤:
采集指静脉图像;
通过ROI硬件提取模块得到指静脉图像的感兴趣区域ROI数据;
从ROI硬件提取模块中读取ROI数据并对ROI数据的灰度尺寸进行归一化处理;
提取归一化处理的ROI数据的纹路特征;
对纹路特征进行中值滤波和连通域去噪处理;
判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;
如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;
将特征匹配结果通过LCD显示。
进一步,所述将ROI数据的灰度尺寸进行归一化处理、提取归一化处理的ROI数据的纹路特征以及对纹路特征进行中值滤波和连通域去噪处理的结果输入到LCD中进行显示。
进一步,所述ROI硬件提取模块采用FPGA实现对指静脉图像预处理,并将获取的指静脉图像感兴趣区域保存到FPGA的双端口RAM中。
进一步,所述指静脉图像的采集的控制是通过***控制模块中的寄存器存储的控制指令来控制相应图像采集设备来实现的;所述LCD显示模块的控制是通过***控制模块中的寄存器存储的控制指令来控制相应LCD显示模块来实现的。
本发明还提供了一种手指静脉识别***,包括指静脉图像采集模块、ROI硬件提取模块、灰度尺寸归一化模块、纹路特征提取模块、滤波去噪模块、注册判断模块、LCD显示模块;
所述指静脉图像采集模块,用于采集指静脉图像;
所述ROI硬件提取模块,用于提取指静脉图像的感兴趣区域;
所述灰度尺寸归一化模块,用于从ROI硬件提取模块中读取感兴趣区域并对感兴趣区域的灰度尺寸进行归一化处理;
所述纹路特征提取模块,用于提取归一化处理的ROI数据的纹路特征;
所述滤波去噪模块,用于对纹路特征进行中值滤波和连通域去噪处理;
所述注册判断模块,用于判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;
所述LCD显示模块,用于显示图像采集和处理过程的中间结果以及特征匹配结果。
进一步,还包括两级AHB总线,所述AHB总线包括第一级AHB总线和第二级AHB总线;
所述第一级AHB总线通过AHB_to_SRAM分别与指令存储器和数据存储器连接;
所述DDR3与第一级AHB总线连接;
所述UART依次通过APBInterconnect和AHP_to_APB与第一级AHB总线连接;
所述第二级AHB总线通过***控制模块分别与指静脉图像采集模块、ROI硬件提取模块、LCD显示模块、FLASH读写控制模块、双端口Block RAM连接;
所述按键、LED指示灯和蜂鸣器通过GPIO同样挂接在第二级AHB总线上。
进一步,所述***控制模块中设置有硬件控制LCD显示寄存器、读Block RAM寄存器、摄像头控制寄存器、感兴趣区域提取控制寄存器、像素累加和下限阈值寄存器、像素累加和上限阈值寄存器、写FLASH寄存器、读FLASH寄存器、FLASH擦除寄存器;CPU通过配置相应寄存器控制相应设备的运行。
进一步,所述ROI硬件提取模块包括以下状态,分别为IDLE状态、FIRST_CUT状态、EDGE_POINT状态、CORRECTION状态、WIDTH_DEFINE状态、HIGHT_DEFINE状态和SECOND_CUT状态:
所述在IDLE状态下,如果摄像头采集到手指静脉图像并且已经存储到了BlockRAM中,则进入FIRST_CUT状态;
所述FIRST_CUT状态,用于对指静脉图像进行背景截取并将截取后的图像存储到Block RAM中;
所述EDGE_POINT状态,用于从Block RAM中读取图像数据并计算手指的边界点;
所述CORRECTION状态,用于根据边界点来计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中,图像的平移校正实际就是各像素点存储地址的变化;
所述WIDTH_DEFINE状态,用于根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度;
所述HIGHT_DEFINE状态,用于采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号;
所述SECOND_CUT状态,用于根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据。
本发明的有益效果在于:
本发明提供的基于ARM Cortex-M3的手指静脉识别SOC***和方法,实现了手指静脉识别***的整个流程,包括手指静脉图像采集、ROI提取、灰度和尺寸归一化、特征提取、连通域去噪、特征匹配等过程,并将每个过程的图像处理结果通过LCD进行显示。通过ROI硬件提取模块对ROI识别进行硬件加速器,提高手指静脉识别的速度。经过大量测试得出,本***能完整实现手指静脉识别的功能,识别正确率约95%。采用FPGA对ROI提取模块进行加速,能将总的识别速度提高15%以上。该***可以作为便携式手指静脉识别***的方案进行产品研发,也可作为实验教学时的手指静脉识别的过程演示***,有较高的实用价值。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为指静脉识别实现流程和软硬件划分。
图2为***软件流程图。
图3为***框图。
图4为基于Cortex-M3的SOC***框图。
图5为L1AhbMtx的Master和Slave访问关系。
图6为L2AhbMtx的Master和Slave访问关系。
图7为ROI提取状态转换图。
图8为ROI提取的算法流程。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本实施例提供的手指静脉识别方法,本方法是基于ARM Cortex-M3的手指静脉识别SOC方法,包括以下步骤:
采集指静脉图像;
通过ROI硬件提取模块得到指静脉图像的ROI数据;
从ROI硬件提取模块中读取ROI数据并对ROI数据的灰度尺寸进行归一化处理;
提取归一化处理的ROI数据的纹路特征;
对纹路特征进行中值滤波和连通域去噪处理;
判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;
如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;
将特征匹配结果通过LCD显示。
本实施例中每个过程的图像处理结果通过LCD进行显示,具体包括将ROI数据的灰度尺寸进行归一化处理、提取归一化处理的ROI数据的纹路特征以及对纹路特征进行中值滤波和连通域去噪处理的结果输入到LCD中进行显示;
所述ROI硬件提取模块采用FPGA对ROI提取模块加速实现对指静脉图像预处理,本实施例中的FPGA采用Xilinx公司的Artix-7系列的XC7A75T,采用CMSDK搭建Cortex-M3的SOC***,ROI硬件提取模块用于获取指静脉图像的感兴趣区域并保存到FPGA的双端口RAM中;
本实施例提供的FLASH是MT25QL128,FLASH的读写控制模块采用硬件实现更方便,并且更节约时间,因此,FLASH读写控制采用硬件逻辑电路实现。
如图2所示,本实施例中为了直观的显示出指静脉识别过程各个阶段图像处理的结果,LCD需要实时将处理后的图像显示出来,因此在图像采集和ROI提取阶段,LCD显示由硬件进行控制。
本实施例中指静脉图像的采集采用摄像头实时捕捉图像并显示,该摄像头是直接连接到FPGA的IO口上,节约了图像采集时间,摄像头的控制采用硬件实现,当摄像头模块检测到有手指伸入采集装置的卡槽后,则将采集到的图像保存到FPGA的双端口RAM中。
如图3所示,本实施例提供的手指静脉识别***是基于Xilinx Artix-7的SOC设计,包括***电路,所述***电路包括分别与FPGA连接的近红外LED发光电路、电源转换电路、按键电路、LED指示灯电路、蜂鸣器电路。
如图4所示,本实施例中采用DesignStart Eval的Cortex-M3内核进行开发,在ARM公司提供的CMSDK的总线和外设的基础上进行开发,所述总线包括两级AHB总线,即第一级AHB总线和第二级AHB总线。所述第一级AHB总线与内核处理器连接;
图中,I-code表示指令总线,主要用于从存储器中取指令;D-code表示数据总线,主要用于从存储器中取数据;System表示***总线,主要用于访问***外设模块。
所述第一级AHB总线通过AHB桥与第二级AHB总线连接;所述第二级AHB总线通过***控制模块分别与指静脉图像采集模块、ROI硬件提取模块、LCD显示模块、FLASH读写控制模块、双端口Block RAM连接;所述第二级AHB总线通过GPIO与按键、LED指示灯和蜂鸣器连接。
本实施例提供的Cortex-M3内核中设置有指令存储器和数据存储器,所述指令存储器和指令数据存储器分别通过AHB_to_SRAM挂接在第一级AHB总线上;DDR3同样挂接在第一级AHB总线上;UART依次通过APB总线和AHB转APB桥APBInterconnect与第一级AHB总线连接;
其中,指令存储器,用于存储Cortex-M3内核运行的指令;指令数据存储器表示程序存储器,用于存储Cortex-M3内核运行的数据;DDR3表示内存,用于图像采集的缓存;UART表示通用异步收发器,即串口,用于将特征数据以及匹配结果发送到上位机(如电脑)上。
所述指静脉图像采集模块、LCD显示控制模块、FLASH读写控制模块、双端口BlockRAM以及ROI硬件提取模块均通过***控制模块挂接在第二级AHB总线上,按键、LED指示灯和蜂鸣器通过GPIO同样挂接在第二级AHB总线上。
其中,GPIO表示通用目的输入输出口,有16个端口,可以通过寄存器分别配置为输入或者输出模式。
如图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所示。
如图6所示,第二级AHB总线设置有1个Slave接口(S0)和2个Master接口(M0、M1)。S0接口与AHB转AHB桥连接,M0接口与***控制模块连接,M1接口GPIO连接,
本实施例提供的Cortex-M3核要访问各个总线上的模块,必修给各个模块分配地址空间,分配的地址空间如表1所示。
表1***中各模块地址映射
本实施例提供的***控制模块是连接软件和硬件的重要的控制中轴,将控制指令转换为硬件控制信号,从而实现对摄像头模块、ROI加速器模块、LCD显示模块和FLASH读写模块的控制。
本实施例提供的***控制模块有9个寄存器,软件可以通过配置这9个寄存器来控制相应硬件的工作。这9个寄存器如表2所示。
表2***控制模块的寄存器列表
本实施例还提供了一种用于控制指静脉图像识别芯片的寄存器设置方法,所述寄存器设置包括硬件控制LCD显示寄存器、读Block RAM寄存器、摄像头控制寄存器、感兴趣区域提取控制寄存器、像素累加和下限阈值寄存器、像素累加和上限阈值寄存器、写FLASH寄存器、读FLASH寄存器和FLASH擦除寄存器;具体设置如下:
所述硬件控制LCD显示寄存器(LCD_HW_CTRL_DISP)配置有LCD硬件控制位;所述LCD硬件控制位配置为“1”时,启动硬件逻辑电路控制显示器LCD的信号并驱动LCD显示;所述LCD硬件控制位配置为“0”时,由软件控制LCD显示,其详细特征为:
地址为0x5000 0000,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x0000 0000,即默认由软件控制LCD进行显示。
位[31:1]为保留位。
位[0]为LCD硬件控制位,取名lcd_hw_ctrl,该位可读可写,当该位配置为“1”时,由硬件控制LCD显示,该位配置为“0”时,由软件控制LCD显示。
该寄存器的使用场景和配置方法为:当***开启并处于注册和识别模式时,首先将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提取结果以及归一化、特征提取、连通域去噪、中值滤波、特征匹配结果的显示都由软件进行控制。
所述读Block RAM寄存器配置有Block RAM读控制位、Block RAM地址位;
所述Block RAM读控制位为“1”时,通过软件将Block RAM对应地址中的数据读回,该位配置为“0”时,不读取Block RAM;
当Block RAM地址位为1时,将读取该位指定的地址中的数据;
所述读Block RAM寄存器(READ_BRAM),用于从FPGA内部的Block RAM中读取数据,其使用分为读写两个步骤。当写该寄存器时,其详细特征为:
地址为0x5000 0004,软件通过Cortex-M3内核写该地址将访问本寄存器。
复位值为0x0000 0000,即默认不读取FPGA内部的Block RAM。
位[31:21]为保留位。
位[20]为Block RAM读控制位,取名bram_rd,该位只可写。当该位配置为“1”时,软件将Block RAM对应地址中的数据读回,该位配置为“0”时,不读取Block RAM。
位[19:17]为保留位。
位[16:0]为Block RAM地址位,取名bram_addr,该位只可写。当bram_rd位为1时,将读取该位指定的地址中的数据。由于摄像头采集到的图像像素为320*240,所以该位所表示的地址最大值为320*240-1,即0x12BFF。
当读该寄存器时,其详细特征为
地址为0x5000 0004,软件通过Cortex-M3内核读该地址将访问本寄存器。
复位值为0x0000 0000,即默认读回的数据为0。
位[31:8]为保留位。
位[7:0]为读数据位,取名bram_data,该位只可读。读取的Block RAM对应地址的数据将存储在该位中。
该寄存器的使用场景和配置方法为:当FPGA中的ROI提取硬件加速器模块完成ROI数据提取后,ROI数据存储在FPGA中的Block RAM中,软件需要将ROI数据读回进行后续的算法处理,这时就需要通过配置该寄存器读取Block RAM中的数据。例如需要读取地址0x1234中的数据,则首先需要写该寄存器为0x00101234,然后读取该寄存器,其[7:0]位中的数据就是Block RAM地址0x1234的数据。
所述摄像头控制寄存器(CAMERA_CTRL)配置有图像像素累加和位、图像采集完成标志位、摄像头控制位;
所述图像像素累加和位用于计算采集的每帧图像像素累加和,
所述图像采集完成标志位,用于当摄像头检测到有手指伸进图像采集装置的卡槽时,摄像头将图像信息存储进入Block RAM,并且将该位置“1”;
所述摄像头控制位的配置位为“1”时,启动摄像头采集图像,当配置位为“0”时,关闭摄像头;
其详细特征为
地址为0x5000 0008,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x0000 0000,即默认不开启摄像头。
位[31:29]为保留位。
位[28:4]为图像像素累加和位,取名pix_color_sum。摄像头采集图像时,每帧图像后会更新该位的值,用于存储每帧图像的像素累加和。
位[3:2]为保留位。
位[1]为图像采集完成标志位,取名camera_finish_flag,当摄像头检测到有手指伸进图像采集装置的卡槽时,摄像头将图像信息存储进入Block RAM,并且将该位置“1”。
位[0]为摄像头控制位,取名camera_ctrl,当配置该位为“1”时,启动摄像头采集图像,当配置该位为“0”时,关闭摄像头。
该寄存器的使用场景和配置方法为:当开启注册或识别模式时,首先配置该寄存器的camera_ctrl位为“1”,启动摄像头,当读取到该寄存器的camera_finish_flag位为“1”时,说明手指图像已采集到,写该寄存器的camera_ctrl位和camera_finish_flag位为0,以关闭摄像头和清零标志位。可以在摄像头开启时读取该寄存器的pix_color_sum的值,以得出在手指伸进卡槽和未伸进卡槽时图像的像素累加值,从而根据此值调整检测手指是否伸进卡槽的像素累加和阈值。
所述感兴趣区域提取控制寄存器(ROI_CTRL)配置有感兴趣区域宽度位、感兴趣区域高度位、感兴趣区域提取完成标志位、感兴趣区域提取控制位;
所述感兴趣区域宽度位;用于存储采集到的感兴趣区域的宽度数据;
所述感兴趣区域高度位;用于存储采集到的感兴趣区域的高度数据;
所述感兴趣区域提取完成标志位;当感兴趣区域提取完成,配置位为“1”;
所述感兴趣区域提取控制位;当配置位为“1”时,启动ROI硬件加速器模块进行感兴趣区域提取,当配置位为“0”时,关闭ROI模块;
其详细特征为
地址为0x5000 000C,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x0000 0000,即默认不开启ROI提取功能。
位[31:24]为感兴趣区域宽度位,即ROI_width。ROI提取之后,将把得到的感兴趣区域的宽度数据存储进入该位中。
位[23:16]为感兴趣区域高度位,即ROI_height。ROI提取之后,将把得到的感兴趣区域的高度数据存储进入该位中。
位[15:2]为保留位。
位[1]为感兴趣区域提取完成标志位,取名ROI_finish_flag,当FPGA中的ROI硬件加速器模块运行结束,即感兴趣区域提取完成,将该位置“1”。
位[0]为感兴趣区域提取控制位,取名ROI_ctrl,当配置该位为“1”时,启动ROI硬件加速器模块进行感兴趣区域提取,为“0”时,关闭ROI模块。
该寄存器的使用场景和配置方法为:当读取到摄像头控制寄存器(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位得到提取出的感兴趣区域的宽度和高度,以便于后续算法处理时使用。
所述像素累加和下限阈值寄存器(PIX_SUM_MIN)配置有图像像素累加和下限阈值位;
所述图像像素累加和下限阈值位;用于存储采集到的图像的一帧像素累加下限阈值;
其详细特征为
地址为0x5000 0010,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 0040 0000,即默认为当每帧图像的像素累加和小于0x400000时没有手指伸进图像采集装置的卡槽。
位[31:25]为保留位。
位[24:0]为图像像素累加和下限阈值位,取名pix_sum_min,该位为可读可写。当摄像头捕获的图像的一帧像素累加和小于此阈值时,说明手指没有伸进卡槽,否则如果大于等于此阈值并且小于等于像素累加和上限阈值寄存器中的pix_sum_max位的值,则说明手指伸进了图像采集装置卡槽。
该寄存器的使用场景和配置方法为:如果调试***时发现手指伸进卡槽的检测不准确,则在开启摄像头时,通过读取摄像头控制寄存器(CAMERA_CTRL)中的pix_color_sum位,得出在近红外LED关闭时手指伸进卡槽和没有伸进卡槽时像素累加和的值,并根据此值配置该寄存器的pix_sum_min位以设置图像像素累加和下限阈值。
所述像素累加和上限阈值寄存器(PIX_SUM_MAX)配置有图像像素累加和上限阈值位;
所述图像像素累加和上限阈值位;用于存储采集到的图像的一帧像素累加上限阈值;
其详细特征为
地址为0x5000 0014,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 00B0 0000,即默认为当每帧图像的像素累加和大于0xB00000时没有手指伸进图像采集装置的卡槽。
位[31:25]为保留位。
位[24:0]为图像像素累加和上限阈值位,取名pix_sum_max,该位为可读可写。当摄像头捕获的图像的一帧像素累加和大于此阈值时,说明手指没有伸进卡槽,否则如果小于等于此阈值并且大于等于像素累加和下限阈值寄存器中的pix_sum_min位的值,则说明手指伸进了图像采集装置卡槽。
该寄存器的使用场景和配置方法为:如果调试***时发现手指伸进卡槽的检测不准确,则在开启摄像头时,通过读取摄像头控制寄存器(CAMERA_CTRL)中的pix_color_sum位,得出在近红外LED打开时手指伸进卡槽和没有伸进卡槽时像素累加和的值,并根据此值配置该寄存器的pix_sum_max位以设置图像像素累加和上限阈值。
所述写FLASH寄存器(FLASH_WRITE),
配置有FLASH写数据位、FLASH写地址位;
所述FLASH写数据位,配置用于写入FLASH数据;
所述FLASH写地址位,配置用于写入FLASH的地址;
其详细特征为
地址为0x5000 0018,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 0080 0000,即默认FLASH存储静脉纹路特征的起始地址为0x00800000。
位[31:24]为FLASH写数据位,取名flash_wdata,即需要写入FLASH的数据。该位为可读可写。
位[23:0]为FLASH写地址位,取名flash_waddr,即需要写入FLASH的地址。该位为可读可写。
该寄存器的使用场景和配置方法为:如果当前为注册模式,在进行静脉纹路的连通域去噪和中值滤波后,需要将特征数据存储进入FLASH中,这时软件通过配置该寄存器以将特征数据存储进入FLASH的对应地址中。例如特征数据的第3个像素值为0xFF,需要存储的地址为0x800003,则配置该寄存器为0xFF80 0003。本实施例中的FLASH选用MT25QL128,存储空间为16M字节,其地址范围为0x000000~0xFFFFFF,则从0x800000开始到最后还有8MB的存储空间,这8MB专门用于存储静脉纹路特征。一个静脉纹路特征为96*64字节,即6144字节。本实施例中每幅静脉纹路特征图像存储的首地址8KB对齐,则一共可以存储1024幅静脉纹路特征图像。第一幅特征存储首地址为0x800000,第二幅特征存储首地址为0x802000,第三幅特征存储首地址为0x804000,依此类推。
所述读FLASH寄存器(FLASH_READ配置有FLASH读地址位;所述FLASH读地址位,配置用于读取的FLASH的地址址;
其详细特征为
地址为0x5000 001C,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 0080 0000,即默认读FLASH的起始地址为0x 00800000。
位[31:25]为保留位。
位[23:0]为FLASH读地址位,取名flash_raddr位,即需要读取的FLASH的地址。该位为只写。
当读该寄存器时,其详细特征为
地址为0x5000 001C,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 0000 0000,即默认读取的FLASH的数据为0x0。
位[31:8]为保留位。
位[7:0]为FLASH读地址位,取名flash_rdata位,即读取的FLASH对应地址的数据。该位为只读。
该寄存器的使用场景和配置方法为:如果当前为识别模式,在进行静脉纹路的连通域去噪和中值滤波后,需要将之前存储进入FLASH中的特征数据读出以进行特征匹配,这时软件通过配置该寄存器以将FLASH对应地址的特征数据读出。例如需要读取FLASH地址0x801234中的数据,则首先需要写该寄存器为0x00801234,然后读取该寄存器,其[7:0]位中的数据就是FLASH地址0x801234中的数据。
所述读FLASH擦除器(FLASH_CLR)配置有擦除选择位、FLASH擦除的起始地址位;
所述擦除选择位当配置为“1”时,擦除FLASH中的全部静脉纹路特征,当配置为“0”时,只擦除flash_caddr地址开始的一幅纹路特征图像;
其详细特征为
地址为0x5000 0020,软件通过Cortex-M3内核读写该地址将访问本寄存器。
复位值为0x 0080 0000,即默认FLASH的擦除地址为0x 00800000,且只擦除该地址开始的一幅纹路特征图像。
位[31:25]为保留位。
位[24]为擦除选择位,取名CA,当该位配置为“1”时,擦除FLASH中的全部静脉纹路特征,当该位配置为“0”时,只擦除flash_caddr地址开始的一幅纹路特征图像。该位为只写。
位[23:0]为FLASH擦除的起始地址,取名flash_caddr位,即需要擦除的FLASH的首地址。该位为只写。
该寄存器的使用场景和配置方法为:如果当前想删除FLASH中存储的静脉纹路特征,则需要配置该寄存器。如果配置该寄存器的CA位为“1”,则不管flash_caddr位的值为多少,将擦除FLASH中地址0x 00800000之后的所有特征数据。如果只想擦除某幅特征图像,则配置该寄存器的CA位为“0”,并且通过flash_caddr指定擦除的起始地址。将擦除掉以flash_caddr地址开始的8KB数据。此时flash_caddr位的配置需要8KB对齐。
本实施例提供的摄像头控制器通过配置摄像头控制寄存器(CAMERA_CTRL)打开摄像头模块后,***控制模块产生camera_start信号启动摄像头实时采集图像,并将采集到的图像数据存储进入Block RAM中,LCD控制器模块实时从Block RAM中读取数据进行显示。
本实施例中的摄像头控制器设置有用于检测手指是否伸进采集装置卡槽的手指位置检测模块,所述手指位置检测模块按照以下步骤检测:
获取有手指时的静脉图像;
计算静脉图像的像素和;
判断静脉图像的像素和是否在预设阈值范围内,如果是,则手指伸进卡槽;
如果否,则手指未伸进卡槽;
移动手指在卡槽的位置,重复循环。
本实施例提供的预设阈值默认范围如下:下限阈值为0x400000,上限阈值为0xB00000。
当检测到图像的像素累加值在此区间内,说明有手指伸进卡槽,然后采集延时100帧后的图像作为手指静脉的原始图像并产生camera_finish信号作为采集结束的标志。延时100帧的作用是使图像稳定,图像像素的累加和可以通过寄存器CAMERA_CTRL的pix_color_sum位读出,检测手指的下限阈值和上限阈值可以通过寄存器PIX_SUM_MIN和PIX_SUM_MAX进行配置。
如图7和图8所示,所述ROI硬件提取模块采用Verilog硬件描述语言编写ROI硬件加速器,当摄像头采集到手指静脉图像时,ROI硬件提取模块开始工作,
本实施例中的ROI算法采用硬件描述语言Verilog进行FPGA开发,主程序采用有限状态机(Finite-state machine,FSM)进行设计,ROI的提取过程由7个状态来完成,分别为IDLE状态:即空闲状态;FIRST_CUT状态:即初次截取状态;EDGE_POINT状态:即手指边界点检测状态;CORRECTION状态:即旋转校正状态;WIDTH_DEFINE状态:即宽度定义状态;HIGHT_DEFINE状态:即高度定义状态;SECOND_CUT状态:即二次截取状态。
如图7所示,图7为ROI提取状态转换图,所述IDLE状态,当手指没有伸进卡槽时,一直处于该状态,将检测到手指伸进卡槽并将将图像存储进入Block RAM后,进入FIRST_CUT状态;
所述FIRST_CUT状态,用于对指静脉图像进行背景截取并将截取后的图像存储到Block RAM中;
FIRST_CUT状态的目的是截掉背景区域,减小图像大小,图像截取完成后进入EDGE_POINT状态,图像截取通过读写Block RAM完成;
在EDGE_POINT状态下,依次从RAM中读取图像数据,并计算手指的4个边界点;
在CORRECTION状态下,首先根据上一状态求出的边界点,计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中,图像的平移校正实际就是各像素点存储地址的变化;
在WIDTH_DEFINE状态下,根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度;
在HIGHT_DEFINE状态下,采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号;
在SECOND_CUT状态下,根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据;
通过以上7个状态完成了ROI的提取,提取后的图像数据存储在Block RAM中,然后产生ROI_finish信号,以通知软件可以从RAM中读取数据并进行后续算法处理。
将ROI模块设计成硬件加速器在速度上的优势,采用软件方案实现同样的ROI算法。硬件和软件的时钟频率都采用36MHz,各个步骤的运行时间以及总的运行时间对比如表3所示。可以看出,采用FPGA实现本ROI方法,总的运行时间是3.822ms,采用软件方式需要78.547ms。在相同的时钟频率下,硬件要比软件快20倍以上。
表3ROI模块软硬件实现方式运行时间对比(ms)
本***ROI之后的算法,如归一化、方向分割,连通域去噪等都是采用软件方式实现,经过MDK运行测试可知,后续算法共计需要运行时间约480ms,所以可以得出,将ROI模块进行硬件加速,可以将总的识别速度提高15%以上。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (10)
1.手指静脉识别方法,其特征在于:包括以下步骤:
采集指静脉图像;
通过ROI硬件提取模块得到指静脉图像的感兴趣区域ROI数据;
从ROI硬件提取模块中读取ROI数据并对ROI数据的灰度尺寸进行归一化处理;
提取归一化处理的ROI数据的纹路特征;
对纹路特征进行中值滤波和连通域去噪处理;
判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;
如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;
将特征匹配结果通过LCD显示。
2.如权利要求1所述的方法,其特征在于:所述将ROI数据的灰度尺寸进行归一化处理、提取归一化处理的ROI数据的纹路特征以及对纹路特征进行中值滤波和连通域去噪处理的结果输入到LCD中进行显示。
3.如权利要求1所述的方法,其特征在于:所述ROI硬件提取模块采用FPGA实现对指静脉图像预处理,并将获取的指静脉图像感兴趣区域保存到FPGA的双端口RAM中。
4.如权利要求1所述的方法,其特征在于:所述指静脉图像的采集的控制是通过***控制模块中的寄存器存储的控制指令来控制相应图像采集设备来实现的;所述LCD显示模块的控制是通过***控制模块中的寄存器存储的控制指令来控制相应LCD显示模块来实现的。
5.手指静脉识别***,其特征在于:包括指静脉图像采集模块、ROI硬件提取模块、灰度尺寸归一化模块、纹路特征提取模块、滤波去噪模块、注册判断模块、LCD显示模块;
所述指静脉图像采集模块,用于采集指静脉图像;
所述ROI硬件提取模块,用于提取指静脉图像的感兴趣区域;
所述灰度尺寸归一化模块,用于从ROI硬件提取模块中读取感兴趣区域并对感兴趣区域的灰度尺寸进行归一化处理;
所述纹路特征提取模块,用于提取归一化处理的ROI数据的纹路特征;
所述滤波去噪模块,用于对纹路特征进行中值滤波和连通域去噪处理;
所述注册判断模块,用于判断是否为注册过程,如果是,则将纹路特征数据存储到FLASH中;如果否,则从FLASH中读出已经存储的纹路特征数据进行特征匹配;
所述LCD显示模块,用于显示图像采集和处理过程的中间结果以及特征匹配结果。
6.如权利要求5所述的***,其特征在于:还包括两级AHB总线,所述AHB总线包括第一级AHB总线和第二级AHB总线;
所述第一级AHB总线通过AHB_to_SRAM分别与指令存储器和数据存储器连接;
所述DDR3与第一级AHB总线连接;
所述UART依次通过APBInterconnect和AHP_to_APB与第一级AHB总线连接;
所述第二级AHB总线通过***控制模块分别与指静脉图像采集模块、ROI硬件提取模块、LCD显示模块、FLASH读写控制模块、双端口Block RAM连接;
所述按键、LED指示灯和蜂鸣器通过GPIO同样挂接在第二级AHB总线上。
7.如权利要求6所述的***,其特征在于:还包括内核处理器,所述第一级AHB总线与内核处理器连接。
8.如权利要求6所述的***,其特征在于:所述内核处理器采用ARM Cortex-M3内核处理器。
9.如权利要求5所述的***,其特征在于:所述***控制模块中设置有硬件控制LCD显示寄存器、读Block RAM寄存器、摄像头控制寄存器、感兴趣区域提取控制寄存器、像素累加和下限阈值寄存器、像素累加和上限阈值寄存器、写FLASH寄存器、读FLASH寄存器、FLASH擦除寄存器;所述各寄存器中设置有用于控制相应设备的控制指令。
10.如权利要求5所述的***,其特征在于:所述ROI硬件提取模块包括以下状态,分别为IDLE状态、FIRST_CUT状态、EDGE_POINT状态、CORRECTION状态、WIDTH_DEFINE状态、HIGHT_DEFINE状态和SECOND_CUT状态:
所述在IDLE状态下,如果摄像头采集到手指静脉图像并且已经存储到了Block RAM中,则进入FIRST_CUT状态;
所述FIRST_CUT状态,用于对指静脉图像进行背景截取并将截取后的图像存储到BlockRAM中;
所述EDGE_POINT状态,用于从Block RAM中读取图像数据并计算手指的边界点;
所述CORRECTION状态,用于根据边界点来计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中,图像的平移校正实际就是各像素点存储地址的变化;
所述WIDTH_DEFINE状态,用于根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度;
所述HIGHT_DEFINE状态,用于采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号;
所述SECOND_CUT状态,用于根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010802199.5A CN111914786B (zh) | 2020-08-11 | 2020-08-11 | 一种手指静脉识别方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010802199.5A CN111914786B (zh) | 2020-08-11 | 2020-08-11 | 一种手指静脉识别方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914786A true CN111914786A (zh) | 2020-11-10 |
CN111914786B CN111914786B (zh) | 2023-05-23 |
Family
ID=73284078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010802199.5A Active CN111914786B (zh) | 2020-08-11 | 2020-08-11 | 一种手指静脉识别方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111914786B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113269029A (zh) * | 2021-04-07 | 2021-08-17 | 张烨 | 一种多模态及多特征的指静脉图像识别方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170053423A1 (en) * | 2015-08-20 | 2017-02-23 | General Electric Company | Systems and methods for emission tomography quantitation |
US20180296103A1 (en) * | 2015-10-09 | 2018-10-18 | Vasoptic Medical, Inc. | System and method for rapid examination of vasculature and particulate flow using laser speckle contrast imaging |
CN109784141A (zh) * | 2018-11-27 | 2019-05-21 | 中国船舶重工集团公司第七一八研究所 | 一种基于arm处理器的手指静脉识别加密*** |
CN110163119A (zh) * | 2019-04-30 | 2019-08-23 | 中国地质大学(武汉) | 一种手指静脉识别方法及*** |
CN110675310A (zh) * | 2019-07-02 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN111368780A (zh) * | 2020-03-13 | 2020-07-03 | 浙江大华技术股份有限公司 | 一种基于指纹和指静脉的联合识别处理方法及*** |
-
2020
- 2020-08-11 CN CN202010802199.5A patent/CN111914786B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170053423A1 (en) * | 2015-08-20 | 2017-02-23 | General Electric Company | Systems and methods for emission tomography quantitation |
US20180296103A1 (en) * | 2015-10-09 | 2018-10-18 | Vasoptic Medical, Inc. | System and method for rapid examination of vasculature and particulate flow using laser speckle contrast imaging |
CN109784141A (zh) * | 2018-11-27 | 2019-05-21 | 中国船舶重工集团公司第七一八研究所 | 一种基于arm处理器的手指静脉识别加密*** |
CN110163119A (zh) * | 2019-04-30 | 2019-08-23 | 中国地质大学(武汉) | 一种手指静脉识别方法及*** |
CN110675310A (zh) * | 2019-07-02 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN111368780A (zh) * | 2020-03-13 | 2020-07-03 | 浙江大华技术股份有限公司 | 一种基于指纹和指静脉的联合识别处理方法及*** |
Non-Patent Citations (2)
Title |
---|
刘东海 等: ""基于FPGA控制的NAND Flash存储设计"", 《科学技术与工程》 * |
杨金锋 等: ""嵌入式手指静脉图像采集***的研制"", "中国民航大学学报" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113269029A (zh) * | 2021-04-07 | 2021-08-17 | 张烨 | 一种多模态及多特征的指静脉图像识别方法 |
CN113269029B (zh) * | 2021-04-07 | 2022-09-13 | 张烨 | 一种多模态及多特征的指静脉图像识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111914786B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151363B2 (en) | Expression recognition method, apparatus, electronic device, and storage medium | |
CN107545241B (zh) | 神经网络模型训练及活体检测方法、装置及存储介质 | |
CN107609463B (zh) | 活体检测方法、装置、设备及存储介质 | |
CN111105412B (zh) | 一种用于肠道息肉检测识别的智能辅助*** | |
CN105844654A (zh) | 一种基于Zynq软硬件协同处理的增强现实***及方法 | |
CN205608814U (zh) | 一种基于Zynq软硬件协同处理的增强现实*** | |
CN103310419B (zh) | 一种小目标图像处理装置 | |
CN105025264A (zh) | 基于fpga与usb2.0的便携式计算机视频监控*** | |
CN106775440A (zh) | 数据储存装置与数据储存方法 | |
CN111914786B (zh) | 一种手指静脉识别方法及其*** | |
WO2022247403A1 (zh) | 关键点检测方法、电子设备、程序及存储介质 | |
WO2020108436A1 (zh) | 舌面图像分割装置、方法及计算机存储介质 | |
CN111914787B (zh) | 一种用于指静脉识别soc***的寄存器配置方法 | |
CN112578987A (zh) | 屏外交互式触摸一体机及其交互方法 | |
CN110063753B (zh) | 超声图像中测量胎儿头围的方法与装置 | |
CN109815353B (zh) | 一种基于类中心的人脸检索方法及*** | |
CN102039738A (zh) | 高速装订机页面在线模糊识别*** | |
CN109255789B (zh) | 基于计算机处理的图像分割*** | |
Sonoda et al. | A letter input system based on handwriting gestures | |
CN112383713B (zh) | 自动加载人脸mipi或者人脸usb摄像头的驱动方法 | |
CN112464753B (zh) | 图像中关键点的检测方法、检测装置及终端设备 | |
CN111242835B (zh) | 基于zynq和gpu的特征边缘检测***和方法 | |
CN207503284U (zh) | 图像边缘检测*** | |
CN114973394A (zh) | 手势动作识别方法、装置、电子设备及计算机存储介质 | |
CN109934082B (zh) | 一种基于头像识别的分组方法及装置 |
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 |