文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.09.015
中文引用格式:孙琪皓,詹杰,张浩. 基于图像识别的无键盘电子锁设计[J].电子技术应用,2016,42(9):58-61.
英文引用格式:Sun Qihao,Zhan Jie,Zhang Hao. No keyboard electronic lock design based on image recognition[J].Application of Electronic Technique,2016,42(9):58-61.
0 引言
随着生活水平的提高,人们对锁的要求也不断增加,既要安全可靠,又要使用方便,电子锁[1]的出现满足了人们的需求。电子锁是一种以电子方式来识别、处理信息、控制执行机构来关闭和开启锁的一种新型锁具,已经在住宅、酒店、宾馆、写字楼中得到了广泛应用。电子锁的类型多种多样,早期有应用TM卡[2]、CM卡的密码锁,还有应用人体生物特征的人脸、虹膜、指纹等的新一代电子锁。采用电子卡片形式密码锁和机械锁的区别不大,采用人体生理特征的安全性好,但成本较高。随着科技的发展,该生物识别技术的安全性也遇到了挑战。针对市场的需求,设计了一种基于图像识别的解锁系统[3-4],由射频触发图像识别,省去常规的密码键盘。该锁具具有安装方便、易于移植、被破解率低的特点。
1 系统方案
如图1所示,该系统由锁具和无线钥匙两部分组成。无线钥匙发射出的激光点称为游标,能发出射频信号,带有激光光源。锁具由处理器、激光发射器、摄像头、LCD显示屏、无线通信模块及掉电存储设备组成。激光发射器可发射出3束激光,组成一个直角坐标系辅助系统对游标进行定位。无线钥匙由一个微控制器、按键和激光发射器组成,由用户控制,在系统中输入密码。无线通信模块负责无线钥匙与锁具之间的通信。摄像头采集激光定位坐标系和激光游标的图像[5-6],发送给处理器进行分析。LCD显示屏[7]辅助显示摄像头采集到的图像,并显示处理器解析图像后获得的密码值。系统还具有防掉电功能,防止在系统断电情况下丢失用户自定义的密码。
图1 系统框架图
工作过程如下:当用户使用无线钥匙时,触发系统进入开锁流程,生成定位激光坐标系,用户移动游标(无线钥匙发射出的激光点)到特定位置后,无线钥匙发送采集信号给处理器,处理器随后控制摄像头采集一幅图像,并对图像进行解析,得到一位密码值。重复此过程可完成多位密码值输入。
为了防止无线钥匙被复制,导致系统被侵入的情况发生,系统使用轮询密码配对设置,以保持无线配对信号安全。为了防止系统故障问题,留下一个串行接口用于紧急处理,防止钥匙丢失或忘记密码。
2 系统软件设计
2.1 图像识别处理
锁具应用环境千差万别,环境光强大小不一,而且摄像头采集的图像是彩色图像。彩色图像包含的信息十分庞大,不利于单片机进行处理和分析,因此需要对采集到的图像进行一系列处理。下面介绍主要处理过程:
(1)图像二值化
将彩色图像转换为具有色彩深度的黑白图像,转换公式为:
灰度值转换为二值化图像时还需要进行阈值切割,将灰度值小于阈值的像素点设为0,否则设为255。因此选取合适的阈值对于图像二值化十分重要,采用Otsu最大类间法进行最佳阈值的选取。Otsu算法按照灰度值的特性将图像分为两部分,当这两部分之间的类间方差最大时,说明构成图像的两部分之间差别也最大,此时将图像分为两部分的值为最佳阈值。
每一个灰度值i出现的概率为:
G0和G1类出现的概率为:
G0和G1类出现的均值为:
类间方差为:
此时最佳阈值的取值即为使得类间方差最大的t值。
(2)图像滤波处理
图像识别需对图像进行预处理,即滤除图像中的杂波干扰,突出前景像素。
图像腐蚀算法[8-9]处理过的图像对比如图2所示。
图2 图像应用腐蚀算法对比
(3)区域连通算法
激光点和游标点在二值化图像上表现为聚合在一起的前景像素,称作连通域区域。经过滤波处理后的二值化图像只有前景像素和背景像素两种值,当图像中有多个连通区域时处理器并不能区分各连通区域。连通区域算法[10]能为各连通区域分配一个唯一标号,这样就可统计连通区域的数目,还能通过算法分析连通区域特征。图像通过连通区域算法处理前后对比如图3所示。
图3 区域连通算法
(4)连通域定位
经过连通区域算法处理后,每一个连通域有一个独立的标号,找出各标号x轴、y轴最大和最小坐标,取平均值后可代替该连通区域位置。采集的图像由于摄像头拍摄角度,定位点坐标系偏移等问题而发生变化,如图4所示,当采集图像发生偏移时游标cur相对于激光定位坐标系原点b的坐标为(3,3)。若采集图像内激光定位坐标系发生了偏移,如图4(b)所示,cur相对于原点O坐标未变情况下,cur相对于激光定位坐标系原点b位置已发生改变,需要对此进行修正。
图4 图像偏移定位示意图
2.2 系统流程
系统上电后,首先对系统各外设进行初始化,随后系统检测游标按键是否按下,若键按下则开始密码输入过程。处理过程如下:首先打开激光发射器于平面生成定位坐标系,摄像头采集一幅图像发送给控制器,控制器对图像进行二值化、腐蚀算法滤除杂波后得到较为明确的坐标系图像,通过Two-Pass连通区域算法将图像中相邻的像素赋予相同标号,计算出该标号区域的中心位置。重复以上过程即可获得设定的密码输入值。系统流程图如图5所示。
图5 系统流程图
3 系统测试
3.1 算法仿真
模拟算法采用Python语言编写,使用Pyserial库采集从单片机发送来的图片数据,并保存为.txt文件,.txt文件经处理后使用Pillow库在电脑端将图片显示出来。
算法仿真时,硬件设备将采集到的彩色图像通过灰度值算法转换为灰度值图像,并将其发送至电脑PC端,此时系统采样到的原图如图6所示。
图6 仿真灰度值原图
选取不同阈值时所得到的二值化图像如图7所示。图7(a)中当阈值选择太小时图像中出现大量杂波,对目标面有较大干扰。图7(b)为阈值选择过大时图像,此时图像上方连通区域仅剩几个像素点,若选取阈值更大时则该连通区域被判定为背景,从而丢失定位坐标系。图7(c)为使用Otsu最大类差间法获取阈值得到的二值化图像,图像中目标清晰,杂波少。
(a)阈值过小 (b)阈值过大 (c)最佳阈值
图7 二值化阈值选择对比
对二值化图像进行腐蚀滤波,连通区域标记后图像对比如图8所示。图8(b)为腐蚀算法处理后图像,比图8(a)中各连通区域少了一层像素点。在显示程序对图像数据中不同标号的像素点赋予不同颜色,效果如图8(c)所示。
(a)二值化图像 (b)腐蚀处理 (c)two-pass算法标记
图8 腐蚀算法和连通区域算法效果验证
3.2 调试实验
软件算法仿真成功后,下载程序进行硬件调试并搭建平台。
通过调试平台采集到一个密码输入图像如图9所示。图中两幅图为单个密码值输入过程中使用不同方式拍摄的对比图。图9(a)为使用手机拍摄到的图像,为了直观显示按键值对比,图中对激光坐标系内各位置添加辅助线进行了划分。图9(b)为无线键盘电子锁系统摄像头采集的图像,LCD显示屏中图像为通过算法处理后的图像。由于手机拍摄角度与电子锁摄像头处在对立角度,所以两图中最亮的区域不同。图9(b)中a、b、c分别为激光定位坐标系定位点,b点为原点,a点为y轴方向,c点为x轴方向,cur为游标,各点的坐标值已给出,此时通过系统图像识别算法处理解译后所得值为1。
图9(a)中游标激光点偏离按键1中心点,距边界不远处,此时系统依旧能识别出正确的按键值,表明当前系统所需功能已基本完成,使用时将游标定位在各按键中心点附近可以保证系统识别的正确率。
(a)采集时图像 (b)识别后图像
图9 单次密码输入
系统预设密码值为“123456”,用户可自行更改,图10(a)为输入5位密码值时图像。当密码输入正确时,图像如图10(b)所示,显示“Key Correct”;否则显示密码错误,需重新输入密码。
(a)输入密码过程 (b)输入密码正确
图10 密码输入过程
4 分析与总结
无密码键盘的非接触式电子锁,采用了图像识别技术提升了锁具的安全性和隐蔽性。经调试测试,该套系统能完成解锁的需求,但对于实际生产运用还需进一步调试改进;如在不同环境下图像识别的准确度还需大量实验改进;使用者是否能正确地确定游标区域,还需不需要设计一些辅助措施;电子系统出现故障如何处理等。这也是下一步需努力的方向。
参考文献
[1] 任葛荣.可编程智能电子锁控制器的设计与实现[D].广州:华南理工大学,2011.
[2] 丁明勇,李昔华.TM卡智能电子锁与门禁系统研制[J].重庆工商大学学报(自然科学版),2004(5):488-490.
[3] 张家怡.图像识别的技术现状和发展趋势[J].电脑知识与技术,2010,21(6):6045-6046.
[4] 徐莹.纸币图像识别技术研究[D].成都:西南石油大学,2012.
[5] 陶杰,王欣.基于STM32F407和OV7670的低端视频监控系统[J].单片机与嵌入式系统应用,2014(3):60-63.
[6] 曾浩,张祺,郑斯凯.基于STM32F407的图像远程采集终端[J].工业控制计算机,2014(11):81-83.
[7] 黄杰勇,何冬.基于STM32F407的液晶控制器设计[J].现代计算机(专业版),2015(10):66-69.
[8] 杨琨,曾立波,王殿成.数学形态学腐蚀膨胀运算的快速算法[J].计算机工程与应用,2005(34):54-56.
[9] 李晓飞,马大玮,粘永健,等.图像腐蚀和膨胀的算法研究[J].影像技术,2005(1):37-39.
[10] 牛连强,彭敏,孙忠礼,等.利用游程集合的标号传播实现快速连通域标记[J].计算机辅助设计与图形学学报,2015(1):128-135,156.