半自动面部&眼睛检测

时间:2013-12-09 17:01:15

标签: c++ matlab opencv imagej

对于分析,我们有一系列图像或电影。我的目标是为这些序列创建半自动面部和眼睛检测。序列由大约4000个图像组成,其中正面捕获的人稍微移动。我想半自动或手动处理这些图像,以获得面部和眼睛的两个/三个ROI。

我尝试过OpenCV的级联分类器,但对于我的序列,它们并不是健壮的(使用手动控制我们需要获得100%的速率)。级联分类器不给出位置,例如。当这个人稍微偏向一边时。

如果检测到错误或选择模板进行跟踪,是否有imagej,matlab或opencv / c ++的半自动方法来手动选择/更正rois?

2 个答案:

答案 0 :(得分:1)

如果您正在处理电影,可以合理地假设帧之间的运动较低。以下是一种可能的方法。

  1. 手动初始化第一帧(或获取用户输入以确认/编辑级联分类器检测到的位置)

  2. 对于下一帧,检查检测到的特征是否与原始位置相差太远。您还可以检查不同部分的位置是否以不合逻辑的方式移动。

  3. 如果步骤2中的处理建议错误,请停止并让用户更正积分。

  4. 注意:使用OpenCV级联,人脸检测通常是准确的。但是眼睛检测不是那么准确,你可能无法在某些帧中检测到双眼。有些项目使用AAM(主动外观模型)来稳健地跟踪面部,这可能对您有用。

答案 1 :(得分:1)

对于面部检测,请尝试以下50+ API列表:

http://blog.mashape.com/post/53379410412/list-of-50-face-detection-recognition-apis

用于眼睛检测你可以试试flandmark探测器: http://cmp.felk.cvut.cz/~uricamic/flandmark/

或STASM: http://www.milbo.users.sonic.net/stasm/