1.要写毕业论文了,但是很纠结,不知道是单片机方面比较好写还是图像
个人感觉单片机方向的论文比较好写也比较简单,而且也比较容易做出实物答辩的时候拿高分,比如说做一个mp3什么的,只要熟悉下SPI协议,处理器用STM32F103x系列,然后再买一个VS1003b的mp3解码芯片,很容易就可以做一个mp3出来,不仅看起来高大上,做起来也很简单,晚上的教程一堆一堆的,拈来可得
图形学方面的本人入坑五六年,说来说去除了数学还是数学,赶论文很多地方自己都不明白,拿脸部识别来说ANN,SVM,Adaboost,哪个不要花个把来月琢磨,而且还是建立在有一定底子的基础上,代码参考OpenCV,除非觉得自己有把握,不建议本科或者非图形学专业的论文搞,难度我就不说了,谁学谁知道
2.毕业设计题目:指纹识别算法及其在保险箱系统中的应用,开题报告该
手指上的指纹表征了一个人的身份特征。
1788年Mayer首次提出没有两个人的指纹完全相同,1823年Purkinie首次把指纹纹形分成9类,1889年Henry提出了指纹细节特征识别理论,奠定了现代指纹学的基础。但采用人工比对的方法,效率低、速度慢。
20世纪60年代,开始用计算机图像处理和模式识别方法进行指纹分析,这就是自动指纹识别系统(简称AFIS)[1]。20世纪70年代末80年代初,刑事侦察用自动指纹识别系统(policeAFIS,PAFIS)投入实际运用。
20世纪90年代,AFIS进入民用,称为民用自动指纹识别系统(civilAFIS,CAFIS)。本文试图从指纹特征分析着手,阐述指纹作为人体身份识别的原理方法、指纹识别的主要技术指标和测试方法,以及实际应用的现实性与可靠性[2-4]。
1 指纹识别的原理和方法 1.1 指纹的特征与分类 指纹识别学是一门古老的学科,它是基于人体指纹特征的相对稳定与唯一这一统计学结果发展起来的。实际应用中,根据需求的不同,可以将人体的指纹特征分为:永久性特征、非永久性特征和生命特征[5]。
永久性特征包括细节特征(中心点、三角点、端点、叉点、桥接点等)和辅助特征(纹型、纹密度、纹曲率等元素),在人的一生中永不会改变,在手指前端的典型区域中最为明显,分布也最均匀[1]。细节特征是实现指纹精确比对的基础,而纹形特征、纹理特征等则是指纹分类及检索的重要依据。
人类指纹的纹形特征根据其形态的不同通常可以分为“弓型、箕型、斗型”三大类型,以及“孤形、帐形、正箕形、反箕形、环形、螺形、囊形、双箕形和杂形”等9种形态[1]。纹理特征则是由平均纹密度、纹密度分布、平均纹曲率、纹曲率分布等纹理参数构成。
纹理特征多用于计算机指纹识别算法的多维分类及检索。 非永久性特征由孤立点、短线、褶皱、疤痕以及由此造成的断点、叉点等元素构成的指纹特征,这类指纹有可能产生、愈合、发展甚至消失[1]。
指纹的生命特征与被测对象的生命存在与否密切相关。但它与人体生命现象的关系和规律仍有待进一步认识。
目前它已经成为现代民用指纹识别应用中越来越受关注的热点之一。 1.2 指纹识别的原理和方法 指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。
通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。
通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。
通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果[5-6]。采集设备(即取像设备)分成几类:光学、半导体传感器和其他。
2 指纹识别技术的主要指标和测试方法 2.1 算法的精确度 指纹识别系统性能指标在很大程度上取决于所采用算法性能。为了便于采用量化的方法表示其性能,引入了下列两个指标。
拒识率(false rejection rate,FRR):是指将相同的指纹误认为是不同的,而加以拒绝的出错概率。FRR=(拒识的指纹数目/考察的指纹总数目)*100%。
误识率(false accept rate,FAR):是指将不同的指纹误认为是相同的指纹,而加以接收的出错概率。FAR=(错判的指纹数目/考察的指纹总数目)*100%。
对于一个已有的系统而言,通过设定不同的系统阈值,就可以看出这两个指标是互为相关的,FRR与FAR成反比关系。这很容易理解,“把关”越严,误识的可能性就越低,但是拒识的可能性就越高。
2.2 误识率和拒识率的测试方法 测试这两个指标,通常采用循环测试方法[7]。即给定一组图像,然后依次两两组合,提交进行比对,统计总的提交比对的次数以及发生错误的次数,并计算出出错的比例,就是FRR和FAR。
针对FAR=0.0001%的指标,应采用不少于1 415幅不同的指纹图像作循环测试,总测试次数为1 000 405次,如果测试中发生一次错误比对成功,则FAR=1/1 000 405;针对FRR=0.1%,应采用不少于46幅属于同一指纹的图像组合配对进行测试,则总提交测试的次数为1 035次数,如果发生一次错误拒绝,则FRR=1/1 035。测试所采用的样本数越多,结果越准确。
作为测试样本的指纹图像应满足可登记的条件。 2.3 系统参数 拒登率(error registration rate,ERR):指的是指纹设备出现不能登录及处理的指纹的概率,ERR过高将会严重影响设备的使用范围,通常要求小于1%。
登录时间:指纹设备登录一枚指纹所需的时间,通常单次登录的时间要求不超过2 s。 比对时间:指纹设备对两组指纹特征模版进行比对所耗费的时间,通常要求不超过1 s。
工作温度:指纹设备正常工作时所允许的温度变化范围,一般是0~40 ℃。 工作湿度:指纹设备正常工作时所允许的相对湿度变化范围,一般是30%~95%。
3 指纹识别技术的应用 指纹识别技术已经成熟,其应用日益普遍,除了刑事侦察用之外,在民用方面已非常广泛,如指纹门禁系统、指纹考勤系统、银行指纹储蓄系。
3.单片机加密 毕业论文
摘要:单片机系统产品的加密和解密技术永远是一个矛盾的统一体。
然而,为了更好的保护好自己的单片机技术成果和知识产权,加大解密成本,研究新型加密技术仍是保护成果的主要手段之一。文中在讨论了传统的单处系统加密和解密技术的基础上,提出了一种实用而有效的动态加密技术的实现方案。
关键词:单片机系统 动态加密技术 FPGA 1 概述 随着单片机技术的发展和广泛应用,许多使用单片机的高新技术产品诸如智能化仪器、仪表、小型工业控制系统等都面临着一个令人头痛的问题,那就是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失,同时也极大地挫伤了开发商的积极性。
创新开发是一个公司竞争力的关键,如何保护好自己的劳动成果,除用法律手段外,在产品面市前作好加密是一个必不可少的环节。 单片机系统一般都采用MCU+EPROM模式。
通常EPROM都是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zilog公司的Z80、Z84系列、Motorola公司的MC68HC系列以及Microchip公司的PIC16C系列等。虽然有许多的MCU都带有加密位,但现在已大多能破解。
因此,单靠MCU本身加密位来进行加密已极不可靠的。 2 常用加密技术分析 常用的单片机加密技术无非是硬件加密和软件加密两种。
软件加密不能防止别人复制,只能增加别人解剖分析的难度,但对高手而言,这不足为虑。所以,这里讨论的加密主要是硬件加密。
总结起来,主要是以下三大类。 2.1 总线乱置法 总线乱置法通常是将MCU和EPROM之间的数据线和地址线的顺序乱置。
总线乱置法通常包括下面几种: (1)将数据或地址总线的某些线位交换或求反; (2)将数据或地址总线中的某些线进行异或。例如,D5'=D5,D6'=D5+6等; (3)把(1)(2)结合起来以构成较复杂的电路; (4)采用EPROM时,把地址总线(或数据总线)与系统程序的存储器地址(或数据)的对应关系按密钥交换。
例如,用一片2764芯片存储密钥,把地址的高8位重新按密钥编码,也就是说,把原程序的页号顺序打乱; (5)采用GAL器件,利用GAL的加密片来对硬件电路进行加密。 2.2 RAM替代法 用电池对RAM进行掉电数据保护。
即先将一系列数据写入RAM并接上电池,然后将其余的芯片插上。这样,当单片微机系统运行后,CPU首先从RAM读出数据,这些数据可以是CPU执行程序的条件判别依据,也可以是CPU将要执行的程序。
如果数据正确,整个系统正常运行。反之,系统不能运行。
2.3 利用MCU本身的加密位进行加密 现在很多的MCU都带有加密位,其中最成功的加密方法是总线烧毁法,此法在AT89C51中运行用得最成功。即把单片机数据总线的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程序的正确代码。
此外还有破坏EA引脚的方法。 一般来说,上述的加密方法各有优点,但都存在致命的缺点:第一种方法有两个主要缺点:一是密钥放在哪里才能不被破译;二是用仿真器很容易就能把源程序截取出来。
第二种方法同样可以用仿真器把数据区调出来,另外还可以把RAM接上电池,取下来放在仿真器上读出来。第三种方法用来加密小程序是成功的,但由于总线已被破坏,因而不能再使用总线来扩展接口芯片和存储器。
同时,片内存储器也不再具有重复编程特性。 3 常用解密方法分析 加密和解密长期以来就是一对矛盾。
要做好加密,必须先了解现在的解密水平及手段。目前的解密手段大致可分为下面四种。
3.1 恢复加密位法 该方法能破解常规用E2COMS工艺的存储加密位芯片。它包括两个系列: 第一是MCU系列,例如MCS51系列(包括89C、97C、W78E/77E系列等)、Z84E系列、PIC16C/12C系列、MC68HC系列等。
第二是PLD,如CPLD的GAL,PALCE的16V8、20V8、22V10,Altera的EPM7032、EMP7064、EMP7128,Lattice的LSP1016、LSP1024和Atmel的ATV750/2500等。 3.2 逻辑分析法 该方法主要采用示波器、逻辑分析仪和MDU解密仪等分析工具分配一些逻辑较简单的可编程器件的逻辑功能。
3.3 仿真器软件跟踪分析法 此方法适用于破解一些未带加密功能的单片机系统(如8031,Z80等系统),而对于有加密功能的单片机系统,则可先破解其单片机的源程序,然后进行仿真分析。 3.4 芯片揭盖分析法 现在市场上十万门以下的芯片多功能通过揭盖来进行逆向分析,但此破解法费用甚高。
此法适用于破解专门的ASIC芯片。 综上所述,一般芯片及常规加密手段很难实现有效加密。
严格来说,要做到绝对的加密是不可能的。选好适当的芯片,采用合适的加密技术,使仿制者面对需付高昂的解密费而却步,那就意味着加密工作的成功。
4 动态加密技术原理 动态加密技术的主要思路是:在程序看到的是虚地址,而虚地址对应的存储器的实地址由CPU程序运行时通过FPGA赋予。其原理如图1所示。
举例说明,若调用子程序CALL Function时,对应于同一个子程序调用,第一次调用的是真正的Function,绝对地址可能在1000H。而在第二次调用Function时,实地址可能是2000H,功能可能根本与Function不相同,这样,只要在调用前。
4.单片机开发,指纹识别模块,光学的指纹识别模块好还是电容式指纹识
仅供参考。
FPM10A光学指纹模块简要使用说明1.引脚 FPM10A使用1。0MM FPC 上接插座引出了5个引脚,在板子上有标1的位置为第一引脚。
五个引脚的作用依次为: 1 为 VCC 电源的正极接 3。 6V– 5。
5V的电压均可。2 为 GND 电源的负极接地。
3 为 TXD 串口的发送。4 为 RXD 串口的接收。
5 为 NC 悬空不需要使用。 2.串口 FPM10A使用标准的串口与外界通信,默认的波特率为57600,可以进行更改,请参考通信协议。
可以与任何单片机,ARM,DSP等带串口的设备进行连接,请注意电平转换,连接电脑需要进行电平转换,比如MAX232电路。 3。
3V 5V的单片机可以直接连接。3.关于模块的检测 模块成功上电后,指纹采集窗口会闪一下,表示自检正常,如果不闪,请仔细检查电源,是否接反,接错等。
4.指纹模块的温度 指纹模块使用120MHZ的DSP全速工作,工作时芯片有一些热,经过严格的测试,这是没有问题的可以放心使用,在不使用的时候可以关闭电源,以降低功耗。 volatile unsigned char UART1_FINGERPRINT_RECEVICE_BUFFER[24];//FINGERPRINT通信协议定义unsigned char FP_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //协议包头unsigned char FP_Get_Img[6] = {0x01,0x00,0x03,0x01,0x0,0x05}; //获得指纹图像unsigned char FP_Templete_Num[6] ={0x01,0x00,0x03,0x1D,0x00,0x21 }; //获得模版总数unsigned char FP_Search[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x03,0xA1,0x0,0xB2}; //搜索指纹搜索范围0 - 929unsigned char FP_Search_0_9[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x0,0x13,0x0,0x21}; //搜索0-9号指纹unsigned char FP_Img_To_Buffer1[7]={0x01,0x0,0x04,0x02,0x01,0x0,0x08}; //将图像放入到BUFFER1unsigned char FP_Img_To_Buffer2[7]={0x01,0x0,0x04,0x02,0x02,0x0,0x09}; //将图像放入到BUFFER2unsigned char FP_Reg_Model[6]={0x01,0x0,0x03,0x05,0x0,0x09}; //将BUFFER1跟BUFFER2合成特征模版unsigned char FP_Delet_All_Model[6]={0x01,0x0,0x03,0x0d,0x00,0x11};//删除指纹模块里所有的模版volatile unsigned char FP_Save_Finger[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0B,0x00,0x19};//将BUFFER1中的特征码存放到指定的位置volatile unsigned char FP_Delete_Model[10]={0x01,0x00,0x07,0x0C,0x0,0x0,0x0,0x1,0x0,0x0}; //删除指定的模版//volatile unsigned char FINGER_NUM;/*------------------ FINGERPRINT命令字 --------------------------*///FINGERPRINT_获得指纹图像命令void FINGERPRINT_Cmd_Get_Img(void){ unsigned char i; for(i=0;i>8; FP_Delete_Model[5]=(uiID_temp&0x00FF); for(i=0;i>8; FP_Delete_Model[9]=uiSum_temp&0x00FF;for(i=0;i> 8; //存放校验数据 FP_Save_Finger[8]= temp & 0x0000FF; for(i=0;i UART1_Send_Byte(FP_Pack_Head[i]); //发送包头 for(i=0;i UART1_Send_Byte(FP_Save_Finger[i]); //发送命令 将图像转换成 特征码 存放在 CHAR_buffer1}//接收反馈数据缓冲void FINGERPRINT_Recevice_Data(unsigned char ucLength){ unsigned char i; for (i=0;i UART1_FINGERPRINT_RECEVICE_BUFFER[i] = UART1_Receive_Byte();}。
转载请注明出处众文网 » 单片机指纹识别毕业论文