OpenCV 检测手和比较图像
OpenCV detect hand and comparison images
我的应用程序的目的是拍一张照片手(手势)并将其与数据库中的图片进行比较。我使用的第一个选项是图像上的背景减法:
http://docs.opencv.org/trunk/doc/tutorials/video/background_subtraction/background_subtraction.html。
该解决方案有效,但有时,取决于第一张图片未正确切手。
第二个选项是检测肤色:http://bytefish.de/blog/opencv/skin_color_thresholding/
还是使用基于 xml 文件的手部检测更好?要比较我想使用此方法的图像:http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html
让我提醒你,我说的是比较它们作为手势的图像。我也看过有可能做直方图不是整个图片只在照片的主题上然后数据更可靠,但不知道怎么做。
我想将手势作为单个图像进行比较,我这里不是指序列。 1张图片用于与基线进行比较。手势检测是为了让某人例如。会响,现在我举个例子。 5 秒拍照并与底座进行比较,因为我不确定是否出现在手的镜头中。除非有别的办法。
最终是两张图片的对比,其中会有一些手势。
如果您的目标是执行手势识别,则应考虑到手势是图像序列。
因此,如果你想比较手势,你必须找到一种 "smart" 方法来比较整个序列,而不是单个图像,因为一帧可以属于不同的手势。
最先进的手势识别方法涉及提取两个连续帧之间的光流,然后计算光流直方图 (HOF)。计算视频序列中所有帧对的直方图后,您可以使用不同的策略来比较手势:
- 可以将序列中的所有HOF拼接起来,然后进行直方图交集比较两个序列
- 您可以使用 Bag of Word 范式 来创建 HOF 的表示
这里有一些指向这个策略的指针:
- Optical Flow
- 您可以查看这篇提取 HOF 的文章:“Histograms of Oriented Optical Flow and Binet-Cauchy Kernels on
用于识别人类行为的非线性动力系统[Bag of words]
- Bag of Words
但是,如果您的应用程序只需要比较两个图像,我建议为每个图像提取梯度直方图 (HOG),然后将它们与 直方图交集 测量,或者再次使用 Bag of words 范式(如果您正在寻找图像的更高级别表示,则更好)。 HOG 在 OpenCv 库中提供 link
我的应用程序的目的是拍一张照片手(手势)并将其与数据库中的图片进行比较。我使用的第一个选项是图像上的背景减法:
http://docs.opencv.org/trunk/doc/tutorials/video/background_subtraction/background_subtraction.html。
该解决方案有效,但有时,取决于第一张图片未正确切手。
第二个选项是检测肤色:http://bytefish.de/blog/opencv/skin_color_thresholding/
还是使用基于 xml 文件的手部检测更好?要比较我想使用此方法的图像:http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html
让我提醒你,我说的是比较它们作为手势的图像。我也看过有可能做直方图不是整个图片只在照片的主题上然后数据更可靠,但不知道怎么做。
我想将手势作为单个图像进行比较,我这里不是指序列。 1张图片用于与基线进行比较。手势检测是为了让某人例如。会响,现在我举个例子。 5 秒拍照并与底座进行比较,因为我不确定是否出现在手的镜头中。除非有别的办法。
最终是两张图片的对比,其中会有一些手势。
如果您的目标是执行手势识别,则应考虑到手势是图像序列。 因此,如果你想比较手势,你必须找到一种 "smart" 方法来比较整个序列,而不是单个图像,因为一帧可以属于不同的手势。
最先进的手势识别方法涉及提取两个连续帧之间的光流,然后计算光流直方图 (HOF)。计算视频序列中所有帧对的直方图后,您可以使用不同的策略来比较手势:
- 可以将序列中的所有HOF拼接起来,然后进行直方图交集比较两个序列
- 您可以使用 Bag of Word 范式 来创建 HOF 的表示
这里有一些指向这个策略的指针:
- Optical Flow
- 您可以查看这篇提取 HOF 的文章:“Histograms of Oriented Optical Flow and Binet-Cauchy Kernels on 用于识别人类行为的非线性动力系统[Bag of words]
- Bag of Words
但是,如果您的应用程序只需要比较两个图像,我建议为每个图像提取梯度直方图 (HOG),然后将它们与 直方图交集 测量,或者再次使用 Bag of words 范式(如果您正在寻找图像的更高级别表示,则更好)。 HOG 在 OpenCv 库中提供 link