如何结合TensorFlow目标检测API和OpenCV分析足球视频

编者按:深度学习咨询顾问priya dwivedi演示了如何结合tensorflow目标检测api和opencv分析足球视频。
介绍
本届世界杯爆冷不少,谁能想到夺冠大热门德国会在小组赛出局?:(
作为数据科学家,我们可以对足球视频剪辑做些分析。使用深度学习和opencv我们可以从视频剪辑中提取有趣的洞见。下面展示了一个例子,澳大利亚对秘鲁,我们可以识别所有球员、裁判、足球,同时根据队服判定球员所属。所有这一切都可以实时完成。
本文的相关代码见github:priya-dwivedi/deep-learning/soccerteamprediction/
步骤概览
使用tensorflow的目标检测api,可以快速搭建目标检测模型。如果你不熟悉这套api,可以看下我之前写的介绍tensorflow目标检测api,以及如何使用该api搭建定制模型的博客文章。
api提供了在coco数据集上预训练的目标检测模型。coco数据集包含90种常见目标。
部分coco目标分类
在这个例子中,我们关心的分类是人、足球,coco数据集包含这两个目标。
api支持很多模型:
部分模型
这些模型在速度和精确性上有不同的折衷。由于我感兴趣的是实时分析,所以我选择了ssdlite mobilenet v2。
使用目标检测api识别出球员后,就可以使用opencv图像处理库来判定其所属球队。如果你没接触过opencv,可以先看下opencv的教程。
opencv可以识别特定颜色的掩码,我们可以用它识别红衣球员和黄衣球员。下图是一个opencv检测红色的例子。
检测红色
主要步骤
请对照相应的python代码阅读:
加载ssdlite mobilenet模型和分类列表。
使用cv2.videocapture()打开视频并逐帧读取。
在每一帧上检测目标。
ssdlite返回的结果是识别的分类及相应置信度、包围盒预测。置信度阈值为0.6。然后我们将置信度大于阈值的识别人员剪切出来。
提取出每个球员后,我们需要读取其球衣的颜色,并预测其归属。我们首先定义红色和黄色的颜色区间。接着使用cv2.inrange和cv2.bitwise创建颜色的掩码。统计检测出的红色和黄色像素的数目,以及占剪切图像总像素数的百分比,以检测球队。
最后整合代码,并使用cv2.imshow显示结果。
结语
很好。现在你看到了,深度学习和opencv的简单组合可以产生有趣的结果。在目标检测和归类球队之后,可以进行进一步的分析,例如:
当相机视角在澳大利亚球门区域时,你可以计算区域内的秘鲁球员和澳大利亚球员人数比。
你可以为每队分别绘制足迹的热图——例如显示秘鲁队主要占据的区域。
你可以绘制守门员的路径。
目标检测api提供了一些更精确但更慢的模型。你也可以试试它们。
如果你喜欢这篇文章,给我加❤️ :) 我希望你从github拉取代码亲自动手尝试。
另外,我提供深度学习咨询,喜欢解决有趣的问题。我帮助一些创业公司部署了创新的ai解决方案。如果你有需要协作的项目,请通过我的网站deeplearninganalytics.org或我的邮箱priya.toronto3@gmail.com联系我。

画画、写字、下围棋、组乐队样样在行 关于ABB机器人你了解多少呢
智能锁的“高温自动解锁”功能究竟是否有必要
自研编程语言:Unilang 的语言设计
小米支付将在今秋上线 与苹果三星争夺NFC支付市场
PROFIBUS DP总线I/O设备的开发研究
如何结合TensorFlow目标检测API和OpenCV分析足球视频
软银为何偏偏挑选了Cruise?为什么自动驾驶行业流行“拉帮结派”
计算机视觉中的重要研究方向
简单介绍下常见的杂波模型
笔记本氮化镓充电器和普通充电器区别在哪
4K超高清,看见更精彩的世界
高性价的蓝牙耳机推荐,必不可少的时尚配件
5G大规模天线系统结构组成及如何更好的服务系统需求
如何选择补偿式硅压力传感器
Wi-Gig在Wi-Fi的未来有一席之地吗?
语音通信中的自适应噪声对消系统原理与设计
NAND Flash应用分布概况
成都博高推出智慧医疗解决方案
RFID模块门禁系统设计
温度补偿涡街流量计的主要特点和技术参数