关于在视频中找到学生[英] About finding pupil in a video

本文是小编为大家收集整理的关于关于在视频中找到学生的处理方法,想解了关于在视频中找到学生的问题怎么解决?关于在视频中找到学生问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我现在正在开展眼睛跟踪项目.在这个项目中,我正在网络摄像头视频中跟踪眼睛(分辨率为640x480).

我可以在每个框架中找到并跟踪眼睛,但是我需要找到学生.我读了很多论文,其中大多数是指艾伦·尤尔(Alan Yuille)的可变形模板方法来提取和跟踪眼睛功能.谁能用任何语言(MATLAB/OPENCV)帮助我使用此方法的代码?

我尝试了不同的阈值,但是由于眼睛区域的分辨率低,它的工作原理不太好.我将非常感谢在视频中找到学生甚至虹膜的任何帮助.

示例图像

推荐答案

您需要做的是将网络摄像头转换为近红外凸轮.在线有很多教程. 尝试这个.

从NIR凸轮上拍摄的图像将看起来像这样 -

在此处输入图像说明

您可以使用openCV,然后将其用于阈值.

在此处输入图像说明

然后使用Erode函数.

在此处输入图像说明

在此之后,用一些颜色填充图像作为种子点.

在此处输入图像说明

消除孔并反转图像.

在此处输入图像说明

使用距离转换为最近的非零值.

在此处输入图像说明

找到最大值的坐标并绘制一个圆.

在此处输入图像说明

其他推荐答案

如果您仍在研究此问题,请查看我的OptiMeyes项目: https://github. com/lukeallen/optimeyes

它将Python与OpenCV一起使用,并与640x480网络摄像头的图像相当良好.您也可以在该页面上查看"理论纸"和演示视频. (这是今年早些时候在斯坦福大学的集体项目;这不是很精致,但我们尝试评论该代码.)

其他推荐答案

根据跟踪学生的应用程序,我会找到一个为眼睛的边界框,然后在该框中找到最暗的像素.

一些psuedocode:

box left_location = findlefteye()
box right_location = findrighteye()
image_matrix left = image[left_location]
image_matrix right = image[right_location]
image_matrix average = left + right
pixel min = min(average)
pixel left_pupil = left_location.corner + min
pixel right_pupil = right_location.corner + min

本文地址:https://www.itbaoku.cn/post/359358.html