windows或者Ubuntu环境下用python实现瞳孔定位
先通过级联分类器定位人眼的位置,在通过卷积运算函数进一步处理得到瞳孔位置,效果图如下:
级联分类器
在目前所有的大多数方法中,OpenCV自带的级联分类器是效率、准确率、实现方法简单这三个方面兼顾综合评分最高的方法。
具体的代码和实现可以参考这个博客: Opencv——级联分类器(AdaBoost)
简而言之就是由于找眼睛这个工作太具有普遍意义,已经有前辈给我们准备好了现成的库函数,直接用就行。
效果图如下所示:
需要注意的是这种方法虽然能够准确定位到人眼位置,主要是依据人眼的整体轮廓——上下眼皮形状和眼球的黑色,我指出这一点的原因是为了区别瞳孔定位,为了进一步的找到人眼中心眼球还需要接下来的处理。
图像的锐化和特征提取
在这一块儿方法比较多,目的也十分简单,我们要得到人眼的瞳孔位置就需要有个思路,再通过代码实现,至于代码不会的地方去查阅其他代码即可。
确定主要特征——通过颜色梯度确定眼球轮廓
我在刚学的时候总是以为黑色是图片的特征,所以我只需要找到图像里面最黑的部分就可以了。但是通过尝试后发现,一顿瞎操作啥用都没有。我发现单纯的找二值化后的数值根本没有用,或者说不具备普遍意义。
还是得多看论文,再学习过一些资料后我发现,这段图片中(人的眼球)关键特征不是单纯的颜色,而是颜色的变化。我看过一个前辈的博客中说到,图像的颜色变化如同波澜起伏的地势,这种突兀的变化无疑是平地里的大峡谷!
接下来我就只需要去确定这个特征即可,至于结果如何就需要一步步来了。提高准确度——去除干扰
我发现单纯的通过这种颜色的变化很难适用于大多数情况,我如何让这种颜色的变化不受外部环境的干扰呢?
其实很容易找到,主要的干扰只有两个
光线的变化导致的干扰 (类似于“红眼现象”)
眼睛的半闭状态(怕侵权,用了个小柴狗头像)
我举的例子比较极端化,但是很明显,人眼的特征消失了,我无法按照刚刚的思路解决问题了,如何改进这一现象呢?
最早的相机里面也出现过“红眼现象”,对于反光很好解决,一般来说来说,他们借助算法拟合周围像素点的颜色值来填补中间的反光,至于拟合方式就不在这里赘述了。
因为我们是定位,能够找到就可以了,所以——我们通过判断颜色梯度的变化过程能够发现瞳孔位置的特殊现象,无论反光多么严重,高亮总是出现在瞳孔最突出的位置,而且在V色域中特征很明细显,梯度变化是一个对称的过程。我尝试着用平滑+锐化处理后发现效果还是挺好的。
眼睛的半闭状态需要合适的处理眉毛这一块,因为眼睛已经稍微闭合,我们只需要找到眉毛位置,再沿着眉毛寻找下面紧挨着的眼睛即可,毕竟瞳孔和眼白还是很好区分的。
- 代码实现
主要的思路如上所示,因为这是本科毕业后实习项目,存档思路如上,代码部分还是比较简单的,而且传统方法处理图像比较依赖环境和光线,便不再去复现上述代码,如有需要还请评论区沟通。
windows或者Ubuntu环境下用python实现瞳孔定位相关推荐
- 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入
成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入 目录 解决问题 解决思路 解决方法 解决问题 .pyx格式文件,在window ...
- 在没有网的windows环境下安装Python模块
在安装python环境以及python的一些模块时,可能需要在没有网的windows环境下安装Python模块. python模块下载地址,几乎所有的模块都有:https://www.lfd.uci. ...
- 分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view
分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view ...
- ubuntu安装python环境_AirSim 无人驾驶教程(1)Airsim 在Ubuntu环境下的安装
AirSim 无人驾驶教程(1)Airsim 在Ubuntu环境下的安装 说实话我自己内心是不看好无人驾驶的短期普及的,但是通过对无人驾驶的研究可以实现对一些科学知识的掌握和探索.通过无人驾驶的仿真环 ...
- windows环境下利用python进行CGI配置
windows环境下利用python进行CGI配置(win10,visual stdio 2017中的python3.6) 写在前面,初学python,看到python的CGI编程这一章的时候尝试在教 ...
- Ubuntu环境下制作Windows U盘启动工具
Ubuntu环境下制作Windows U盘启动工具 第一次写这个,着实不会,权当自个儿记录一下吧.这两天准备学习语言,把elementaryOS改装Ubuntu ,装的时候迷糊眼一顿next,结果把原 ...
- Windows环境下用python嵌入式环境跑程序可太方便了
Windows环境下用python嵌入式环境跑程序可太方便了 1. 嵌入式包默认的文件夹设置 2. 建立python环境文件夹 3. 添加python索引包路径 4. 安装pip和requiremen ...
- linux中python安装_linux环境下的python安装过程图解(含setuptools)
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...
- 如何在UBUNTU环境下使用GAPPProxy
如何在UBUNTU环境下使用GAPPProxy 目前天朝对于网络这个大通道管理的很严谨,于是我们这些把网站流浪在海外的人们吃尽了苦头,尤其是YOUTUB完全不能访问最郁闷,在WINDOWS下大家可能用 ...
最新文章
- Raising Modulo Numbers
- 一文整理IEEE问题汇总【IEEE PDF Checker】(更新中)
- 如何全面的把握一个系统的异常处理
- ConstantSourceNode
- Seven Kinds of Testers - 七种类型的测试
- 用ASP设计购物推车
- 网络断网远程计算机会自动修复么,网络断网不怕,教你自己动手修复
- 电脑键盘部分按键失灵_笔记本键盘失灵怎么办,电脑键盘失灵-中关村在线
- 一年级有计算机教学吗,一年级信息技术教学计划范文
- 洛谷:P2142 高精度减法
- WIN7 安装使用远程服务器管理工具-如DHCP、AD域、HyperV、远程桌面
- Win7系统没有音量图标,系统图标为灰色打不开的解决方法
- unity之二维数组实现正六边形地图
- 分类算法SVM(支持向量机)
- Autosar代码包初识 3 - 创建RH850的GreenHills工程编译Autosar Demo工程
- 爬取热门微博数据2018.3.27更新
- Go语言函数作为 值 赋值给一个变量 和 函数作为参数传入另一个函数的写法你不想了解咩
- 疑似1.59亿LinkedIn领英客户数据库正在以99美元的价格被售卖
- excel表格中,公式生成的数据如何复制到另一个工作簿中?
- 10-245 A4-6查找订单表中特定顾客编号的相关信息
热门文章
- 关于Angular2.0 in-memory-web-api的GET http://localhost:3000/traceur 404 (Not Found)等错误的解决方法之一
- HBuilderX Wap2App(H5)打包APP去除顶部导航栏
- 一句话概括Kubernetes架构
- 晚上的静坐突然的一些感慨-2015年12月2日
- 利用ipconfig /renew重新获取IP地址,IPCONFIG/FLUSHDNS刷新缓存
- 微信小程序button的外观属性
- 彻底搞清楚Handler,再也不怕面试官
- 内存dump与休眠文件
- 昨日关注:Channel9 Wiki: Online Tutorials about Enterprise Library
- 去ioe mysql_去IOE过程中MySQL的业务背景