基于 OpenCv 和 Python 的手指识别及追踪

2018 年 8 月 19 日 算法与数学之美

本文为 AI 研习社编译的技术博客,原标题 Finger Detection and Tracking using OpenCV and Python,作者为Jason Brownlee


详细代码参考:https://github.com/amarlearning/opencv


手指追踪是许多计算机视觉应用的重要特征。在该应用中,使用基于直方图的方法将手与背景帧分离。 使用阈值处理和滤波技术来进行背景消除以获得最佳结果。


我在手指识别时遇到的挑战之一是将手与背景区分开并识别手指的尖端。我将向您展示我用于手指跟踪的技术,我在此项目中使用了该技术。如果想要查看手指识别和跟踪的实际操作,请观看我上传的视频。



在要跟踪用户手部移动的应用程序中,肤色在要跟踪用户手部移动的应用程序中,肤色直方图将非常有用。使用直方图从图像中剔除背景,仅留下包含肤色的图像部分。


检测皮肤的一种更简单的方法是找到特定 RGB 或 HSV 范围内的像素。如果您想了解更多有关此方法的信息,请点击此处(https://docs.opencv.org/3.4.2/df/d9d/tutorial_py_colorspaces.html)。


上述方法的问题在于改变光线条件和肤色可能会使皮肤检测的结果很糟糕。另一方面,直方图往往更准确,并且直方图能够考虑到当前的光照条件。



在框架中绘制一个绿色的长方形并且用户将他们的手放置在长方形中。应用程序提取用户手掌的肤色,然后绘制成一个直方图。


绘制长方形的过程遵循以下函数:



这个过程非常简单——我创建了四行代码来表示每个长方形的坐标。


hand_rect_one_x

hand_rect_one_y

hand_rect_two_x

hand_rect_two_y


这四行代码不断迭代以在框架内使用:cv2.rectangle 绘制生成长方形;这里的total_rectangle表示行列的长度9。


现在用户理解了在哪里放置他们的手掌,接下来成功的关键步骤是从这些长方形中提取像素,然后基于像素生成 HSV 直方图



函数把输入框架转换成 HSV 直方图。使用 Numpy 库生成一张图像。图像大小为[90*10],颜色通道数为 3。我们将其命名为 ROI (Region of Interest). 它从绿色的长方形中提取了 900 个像素值,然后将它们放入 ROI 矩阵中。cv2.calcHist 基于 ROI 矩阵给肤色创建了一个直方图并且 cv2.normalize 使用 norm 类型对矩阵进行归一化 cv2.NORM_MINMAX 。现在我们可以用直方图来检测框架中的皮肤区域。


现在用户理解了将他们的手掌放在哪里,下一步就是从这些长方形中提取像素然后用它们生成HSV直方图。


现在基于肤色直方图我们可以找到包含皮肤的框架区域,OpenCV 提供了一个简便的方法,cv2.calvBackProject,该方法使用直方图来分离图像中的特征。我通过这个函数来把肤色直方图应用到框架中。如果你想获取更多关于 back project 的信息,可以通过链接1(https://docs.opencv.org/master/dc/df6/tutorial_py_histogram_backprojection.html)和链接2(https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/back_projection/back_projection.html)来获取。


......

翻译 | 余杭  Lamaric

来源 | 雷锋网

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

投稿邮箱:math_alg@163.com

登录查看更多
0

相关内容

一个跨平台的计算机视觉处理库,全称是Open Source Computer Vision。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
最新《自然场景中文本检测与识别》综述论文,26页pdf
专知会员服务
69+阅读 · 2020年6月10日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
139+阅读 · 2020年2月16日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
用PyTorch做物体检测和追踪
AI研习社
12+阅读 · 2019年1月6日
多目标追踪器:用 OpenCV 实现多目标追踪(C++/Python)
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
Arxiv
8+阅读 · 2018年11月21日
Arxiv
3+阅读 · 2017年12月18日
Arxiv
4+阅读 · 2017年11月4日
VIP会员
相关资讯
用PyTorch做物体检测和追踪
AI研习社
12+阅读 · 2019年1月6日
多目标追踪器:用 OpenCV 实现多目标追踪(C++/Python)
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
Top
微信扫码咨询专知VIP会员