c++ - 使用 OpenCV 进行对象检测和隔离

标签 c++ c opencv computer-vision object-detection

我已经开始使用 OpenCV 来检测不同的 body 部位(手、 ARM 、脸等),并取得了相当大的成功。

实现此目的的第一个也是最明显的方法是使用 Haar 或 LBP 级联分类器,但我想知道还有哪些其他选择。

我见过使用 HSV 图像检测颜色范围内像素的皮肤检测示例。但这无助于确定哪个位是哪个位!我还实现了一个 MOG2 背景减法,它可以帮助隔离一个移动的物体,但这只有在所需的物体是唯一一个移动的物体时才有效。

我使用凸包和缺陷勾勒出手和 ARM 的轮廓,但无法区分两者。是否有执行此操作的标准方法,或者是使用级联分类器的唯一可靠方法?

最佳答案

你可以试试HoG descriptors它于 2006 年开发。 它们对面部和行人非常有效。它们对单个 body 部位的效果不太好(仍然比 haar 特征好)。 在深度学习出现之前,它们被认为是最先进的。 (我认为是 2012 年左右)

paper中描述的系统展示时赢得了多项比赛。

Hog 在 OpenCV 中实现,但 DLib实现效果更好。

另见 this获取有关计算机视觉的大量有用信息。

关于c++ - 使用 OpenCV 进行对象检测和隔离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344825/

相关文章:

c++ - 接受标准输入或 CLI 参数的设计模式

c - 输出?质因数分解

c++ - OpenCV:cvtColor 函数在 Raspberry Pi 上导致错误

python - 使用 cv2.VideoCapture() 从 IP 摄像机读取流

opencv - 在数学上将全画幅鱼眼转换为等距柱状

c++ - 将 Mat 对象推回 vector 的安全方法

c++ - 在构造函数中从 std::istream 初始化 const 类数据成员

c++ - 根据模板枚举参数更改行为

c - 如何计算 --/++ 的值

c - 是否可以在文件中间停止从文件扫描?