论文部分内容阅读
本文创新设计实现了基于安卓系统和视觉智能分析的自主视力检测系统,让使用者自己可以独立完成视力检测,不再需要他人协助。视力测试过程中的指向方式遵循现行的视力检测方法,采用标准的E字母视力表。该系统具有成本低、易携带、方便操作、检测准确性高、可记录历史测试曲线等特点。其功能实现的核心技术为视觉智能,主要包括人脸检测、手势检测和标记物检测。
系统设计与实现
系统功能模块
基于图像分析的智能视力检测系统,主要包括以下5个模块。
图像采集模块:通过安卓设备实现实时图像的采集。
人脸检测模块:通过在采集到的图像中进行人脸检测判断是否有使用者,并根据人脸的位置确定使用者的站位是否合适,同时标定手势检测的有效范围。
手势识别模块:在标定的手势范围内,通过肤色检测得到手的轮廓并分析得到使用者当前的指向。
视力表显示模块:该模块与手势识别模块同时工作,在判断到有使用者后,根据视力检测算法,在安卓设备屏幕上显示相应的E对使用者进行测试,同时根据手势识别模块的结果更新显示的内容。
结果显示模块:接收视力表显示模块的期望指向和手势识别模块输出的实际指向,对比得出测试结果,对使用者每一次的指向结果和最终的测试结果进行屏幕显示。
系统关键技术
人脸检测方法。系统中使用Haar特征与AdaBoost分类器的组合实现人脸的初步检测。Haar特征是一种经典的常用于人脸检测的图像特征。提取出Haar特征向量后使用AdaBoost分类器就可以进行分类,判断一张图是否为人脸。初步得到人脸检测结果后,再根据检测结果框的大小及长宽比排除干扰结果,最后计算检测结果框中肤色区域的比例,到达一定的比例值则认为检测到一张人脸,进而可以进行之后的流程。
人手指向判断算法。首先根据人脸位置,从采集到的图片中将标定的手势检测识别范围切割出来。之后通过肤色检测的方法获得肤色块的轮廓,遍历找出最大轮廓,即为疑似手势轮廓。通过计算疑似轮廓的大小及长宽比判断是否为干扰。
判断为手势轮廓而不是干扰后,遍历手势轮廓上的所有点,轮廓上最突出的点,即对应使用者指向某一方向时的指尖点。将指尖点逆时针方向的一小段轮廓拟合成直线,计算直线与横轴的夹角,夹角小于分界角度(例如60°)则认为使用者指向横向(左右方向),否则认为指向竖向(上下方向)。
判断为横向后,检查轮廓重心的横向相对位置,其相对位置与指向相反,即重心在右半部分说明指向左,反向同理。判断为竖向后,检查轮廓重心的竖向相对位置,其相对位置也与指向相反,即重心在下半部分说明指向上,反向同理。
标记物指向判断算法。首先通过颜色识别标记物的轮廓。得到标记物轮廓后,通过长宽比我们就可以判断是指向横向还是竖向。之后再进行肤色识别,目标是识别持有标记物的手,通过手与标记物的相对位置就可以确定指向。例如根据长宽比判断为竖向后,若手在标记物下方则明显是指向上。
安卓系统的应用开发。本系统是基于安卓平台使用Java开发予以实现的。首先安装Java环境及JDK(Java SE Development Kit)开发工具;之后安装Eclipse作为Java开发的编程环境。再安装Eclipse的Android SDK与ADT(Android Development Tools)插件,使其能够支持安卓平台程序。最后准备OpenCv的Android SDK库用于实现图像相关的操作,至此完成系统主要程序部分开发的准备工作。
设计视力检测标识更新
在实现过程中参考现行的视力检测设计了视力检测标识更新方法,主要步骤如下。
标准E视力表共14行,第1次调用显示的E大小对应第8行,方向由1个1到4的随机数决定(对应上下左右),此后每次更新显示,方向均由新的随机数决定,之后不再说明方向,仅用行数说明大小。
循环地根据图像处理的结果判断指向是否正确。
连续2次正确则测试行数加1变为9,进入下降模式;连续2次错误则测试行数减1变为7,进入上升模式,否则继续显示当前行数8对应大小的E。
下降模式中,连续2次正确,若已经到达第14行,则测试结束返回14,否则测试行数加1继续下降,连续错误2次测试结束,返回当前行数减1,否则继续显示当前行数大小的E。
上升模式中,连续2次错误,若已经到达第1行,则测试结束返回1,否则测试行数减1继续上升,连续正确2次测试结束,返回当前行数,否则继续显示当前行数大小的E。
根据返回的行数就得到了对应的视力测试结果。
创新点
本项目基于安卓平台进行相应的软件开发,任何具备安装安卓系统的设备都可以安装,实现起来较为简单方便,易于普及。
智能化操作平台。可以自动检测被测试者;可以自动识别手势和标记物;可以及时声音播报视力检测结果。
使用者可以随时随地独立检测,即时显示测试结果。
具有历史检测结果记录档案的功能。
申请了一项发明专利——“基于图像分析的智能视力检测仪(201611140016.8)”。
未来研究方向
通过云计算平台形成大数据,可以对大量测试者进行数据分析,对测试者視力进行预测。对于测试者群体尤其是青少年群体,可以通过历史记录曲线、云计算,对青少年整体视力情况进行评价分析,督导青少年群体的视力改善。同时,可以与专业的医疗机构合作,长期跟踪,提醒测试者改善视力,提出诊治方法。对于个体测试者可以即时提供专业视力保护、诊治的服务,加强测试者与专业机构互动,完善用眼问题的预防和介入。
该项目获得第32届全国青少年科技创新大赛创新成果竞赛项目中学组工程学一等奖
专家评语
本项目利用视力模型、距离检测模型、手机的人脸检测和手势识别技术,实现视力的自我快速测量。建议结合云计算、大数据等方法,扩展提升功能。
系统设计与实现
系统功能模块
基于图像分析的智能视力检测系统,主要包括以下5个模块。
图像采集模块:通过安卓设备实现实时图像的采集。
人脸检测模块:通过在采集到的图像中进行人脸检测判断是否有使用者,并根据人脸的位置确定使用者的站位是否合适,同时标定手势检测的有效范围。
手势识别模块:在标定的手势范围内,通过肤色检测得到手的轮廓并分析得到使用者当前的指向。
视力表显示模块:该模块与手势识别模块同时工作,在判断到有使用者后,根据视力检测算法,在安卓设备屏幕上显示相应的E对使用者进行测试,同时根据手势识别模块的结果更新显示的内容。
结果显示模块:接收视力表显示模块的期望指向和手势识别模块输出的实际指向,对比得出测试结果,对使用者每一次的指向结果和最终的测试结果进行屏幕显示。
系统关键技术
人脸检测方法。系统中使用Haar特征与AdaBoost分类器的组合实现人脸的初步检测。Haar特征是一种经典的常用于人脸检测的图像特征。提取出Haar特征向量后使用AdaBoost分类器就可以进行分类,判断一张图是否为人脸。初步得到人脸检测结果后,再根据检测结果框的大小及长宽比排除干扰结果,最后计算检测结果框中肤色区域的比例,到达一定的比例值则认为检测到一张人脸,进而可以进行之后的流程。
人手指向判断算法。首先根据人脸位置,从采集到的图片中将标定的手势检测识别范围切割出来。之后通过肤色检测的方法获得肤色块的轮廓,遍历找出最大轮廓,即为疑似手势轮廓。通过计算疑似轮廓的大小及长宽比判断是否为干扰。
判断为手势轮廓而不是干扰后,遍历手势轮廓上的所有点,轮廓上最突出的点,即对应使用者指向某一方向时的指尖点。将指尖点逆时针方向的一小段轮廓拟合成直线,计算直线与横轴的夹角,夹角小于分界角度(例如60°)则认为使用者指向横向(左右方向),否则认为指向竖向(上下方向)。
判断为横向后,检查轮廓重心的横向相对位置,其相对位置与指向相反,即重心在右半部分说明指向左,反向同理。判断为竖向后,检查轮廓重心的竖向相对位置,其相对位置也与指向相反,即重心在下半部分说明指向上,反向同理。
标记物指向判断算法。首先通过颜色识别标记物的轮廓。得到标记物轮廓后,通过长宽比我们就可以判断是指向横向还是竖向。之后再进行肤色识别,目标是识别持有标记物的手,通过手与标记物的相对位置就可以确定指向。例如根据长宽比判断为竖向后,若手在标记物下方则明显是指向上。
安卓系统的应用开发。本系统是基于安卓平台使用Java开发予以实现的。首先安装Java环境及JDK(Java SE Development Kit)开发工具;之后安装Eclipse作为Java开发的编程环境。再安装Eclipse的Android SDK与ADT(Android Development Tools)插件,使其能够支持安卓平台程序。最后准备OpenCv的Android SDK库用于实现图像相关的操作,至此完成系统主要程序部分开发的准备工作。
设计视力检测标识更新
在实现过程中参考现行的视力检测设计了视力检测标识更新方法,主要步骤如下。
标准E视力表共14行,第1次调用显示的E大小对应第8行,方向由1个1到4的随机数决定(对应上下左右),此后每次更新显示,方向均由新的随机数决定,之后不再说明方向,仅用行数说明大小。
循环地根据图像处理的结果判断指向是否正确。
连续2次正确则测试行数加1变为9,进入下降模式;连续2次错误则测试行数减1变为7,进入上升模式,否则继续显示当前行数8对应大小的E。
下降模式中,连续2次正确,若已经到达第14行,则测试结束返回14,否则测试行数加1继续下降,连续错误2次测试结束,返回当前行数减1,否则继续显示当前行数大小的E。
上升模式中,连续2次错误,若已经到达第1行,则测试结束返回1,否则测试行数减1继续上升,连续正确2次测试结束,返回当前行数,否则继续显示当前行数大小的E。
根据返回的行数就得到了对应的视力测试结果。
创新点
本项目基于安卓平台进行相应的软件开发,任何具备安装安卓系统的设备都可以安装,实现起来较为简单方便,易于普及。
智能化操作平台。可以自动检测被测试者;可以自动识别手势和标记物;可以及时声音播报视力检测结果。
使用者可以随时随地独立检测,即时显示测试结果。
具有历史检测结果记录档案的功能。
申请了一项发明专利——“基于图像分析的智能视力检测仪(201611140016.8)”。
未来研究方向
通过云计算平台形成大数据,可以对大量测试者进行数据分析,对测试者視力进行预测。对于测试者群体尤其是青少年群体,可以通过历史记录曲线、云计算,对青少年整体视力情况进行评价分析,督导青少年群体的视力改善。同时,可以与专业的医疗机构合作,长期跟踪,提醒测试者改善视力,提出诊治方法。对于个体测试者可以即时提供专业视力保护、诊治的服务,加强测试者与专业机构互动,完善用眼问题的预防和介入。
该项目获得第32届全国青少年科技创新大赛创新成果竞赛项目中学组工程学一等奖
专家评语
本项目利用视力模型、距离检测模型、手机的人脸检测和手势识别技术,实现视力的自我快速测量。建议结合云计算、大数据等方法,扩展提升功能。