【发布时间】:2022-01-12 07:29:03
【问题描述】:
我正在尝试为残疾人改进基于网络摄像头的 OpenCV 鼠标控制器(MFC C++ 应用程序):https://preability.com/face-controlled-mouse/ 光标移动,当一个人移动她/他的头时,在微笑时点击等等。
控制器找到面部区域,然后使用 goodFeaturesToTrack、cornerSubPix 和 calcOpticalFlowPyrLK。 一般来说,如果照明良好,我设法稳定光标。 我现在用的:
- 评估和过滤每个角点运动的方向。
- 为 cv::goodFeaturesToTrack() 将角点分布在整个面部区域也有所帮助。
- 光标位置的 EWMA(或卡尔曼)滤波器。
- 我已经为面部 ROI 包含了 equalizeHist()。探测器在弱光条件下的表现要好得多。
- 另外,我尝试了OpenCV的形态学运算,没有改进。
但是,角点仍然在不均匀的照明中起舞。 我可以看到类似的旧程序 eViacam 具有网络摄像头 Creavision 的预处理模块(也很旧),并且角点更稳定。
请告知输入 Mat 可以做什么?或者如何在合理的 CPU 负载下处理视频?
【问题讨论】:
标签: c++ opencv mfc tracking opticalflow