我知道文章到了第二篇就没有看了,管你看不看,先写为敬。
这套系统怎么样的运作?
示意图
最重要的是分析引擎了,但是往前面看的话,是需要一个相对较好的输入的,这里集成了普通的CV和一个德国的工业相机的接口,其实要是接入别的相机也是可以的,因为代码我个人感觉是解耦了。
系统最大的优势就是对动物的实验也支持
关于系统的运作逻辑就是这样的,在启动分析引擎的基础上面,可以开启一些额外的分析功能。
那这个引擎如何的工作呢?
引擎按顺序处理视频的每一帧。
首先,用户选择角膜反射,然后选择瞳孔。该帧由高斯核进行二值化、过滤和平滑处理。然后,引擎利用走出算法来检测轮廓。这会产生一个点矩阵,该矩阵被过滤以丢弃错误匹配。使用角膜反射,去除角膜反射和瞳孔之间的任何重叠。最后,通过拟合模型对形状进行参数化:椭圆体(适用于啮齿动物、猫等)或圆形模型(人类、非人类灵长类动物、啮齿动物等),目标物种很容易改变,在开源的代码内部有实现过程。
因为输入帧的来源有很多,这里也集成了视频帧前处理的代码
也封装了一个比较高级的类来实现这个功能
这里为了方便就先看一个缩放的函数
这里是所有的接口里面都集成的一个函数,来给分析引擎传递帧
这个获取第一帧的函数写的比较有货,拆分了不太好看。
因为是可以后处理的,所以这里就是可以对多个来源的数据进行判断,至于调用接口的时候是使用的CV2的接口。
对每一帧都进行二值化的处理,以及通过传递出来的标志位进行分析帧的输出情况,当然里面也调用了别的函数,我没写到文章里面。
嘤嘤嘤,反正很卡就对了,怪不得人家用红外线呢
我不管,我直接出镜
为了获得良好的眼动追踪性能,眼动仪的二值化参数应针对输入流进行优化。
用户可以调整两个参数,即:
二进制阈值
瞳孔:R/ F- 角膜反射:W/S
高斯阈值
瞳孔:T/ G- 角膜反射:E/D
下篇文章说源码和使用时候需要注意的事情。