如何使用Open CV检测打哈欠
我正在开发iOS的应用程序,需要检测用户打哈欠。
我所做的是包括打开简历,并find使用哈尔级联面孔,然后find嘴里面(也使用hacascascade)。
我所遇到的麻烦是,我相信能够很容易地发现一个打哈欠就像做一些事情,比如(face.y – mouth.y)<something =打哈欠。
但是我所面临的问题是,面对面和面对面是“不稳定的”,我的意思是说每一次循环运行的X和Y面值和面值都是不一样的。
是否有任何我可以使用的“张口”哈斯级联,或者我怎么能知道什么时候用户张嘴?
一般来说,支持向量机(Support Vector Machine,SVM)用于愤怒,微笑,惊喜等仍然活跃发展的面部表情识别。 谷歌search给你很多关于这个话题的论文,(甚至我的一个同class同学做了他的最后一年的项目)。 为此,首先需要训练支持向量机并做到这一点,您需要打呵欠和正常面孔的样本图像。
打呵欠几乎与惊喜类似,两种情况下嘴巴张开。 我build议你看看下面的第3页: 使用支持向量机在video中进行实时的人脸表情识别 (如果你不能访问链接,谷歌纸的名称)
这篇论文(甚至是我的同学)使用了面部特征的位移vector 。 为此,您可以在脸上find一些特征点。 例如,在论文中,他们使用了眼睛瞳孔,眼睑的极端点,鼻尖,嘴唇的极端点(嘴唇)等,然后连续跟踪这些特征的位置并找出它们之间的欧氏距离。 它们被用来训练SVM。
下面看看两篇论文:
从面孔提取特征点
基于Gabor特征的Boosted分类器的全自动人脸特征点检测
看下面的图片我的意思是脸上的特征点:
在你的情况下 ,我认为你是在iPhone实时实施它。 所以也许你可以避免在眼睛的特征点(虽然不是一个好主意,因为当你打哈欠,眼睛变小)。 但与此相比,嘴唇上的特征点显示出更多的变化和优势。 所以,只用嘴唇来实施可能会节省时间。 (好吧,这一切都取决于你)。
嘴唇分割 :已经在SOF中讨论过,并检查了这个问题: OpenCV嘴唇分割
最后,我确定你可以在Google上find很多细节,因为它是一个活跃的开发领域,并且有很多论文。
另一种select :
这个地区的另一个select,我已经听过好几次了, Active Appearance Model
。 但我对此一无所知。 谷歌它自己。
OpenCV还具有人脸识别/检测function(请参阅openCV SDK附带的示例)。 我认为这将是一个更好的地方,因为哈尔瀑布并不真正分析你需要的面部表情。 尝试运行示例并亲自查看 – 您将获得有关检测到的眼睛/嘴巴等的实时数据。
祝你好运