【案例分析】基于OpenCV的篮球目标检测追踪与进球预测

这篇具有很好参考价值的文章主要介绍了【案例分析】基于OpenCV的篮球目标检测追踪与进球预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.背景分析与挖掘目标

        1.1背景概要

目前,模式识别中的运动视觉分析处在高速发展阶段,诸如国家863计划的无标记仿人乒乓球机器人[1]等项目,均表现出该领域的发展前景。其核心是利用计算机视觉技术从图像序列中检测、跟踪、识别人或物,并对其行为进行理解与描述。

此外,对于飞行物体的轨迹追踪与预测对体育、军事、工业等领域均具有重要的研究意义和应用价值,其中涉及的目标感知、运动跟踪和建模、运动规划和执行也是各类体育项目未来优化的关键技术。如文献[2]讨论了目标表观建模方面的一些研究进展,文献[3]对多种跟踪算法进行了实验对比与分析;部分文献在总结时,对目标检测与跟踪部分只进行了简要概述,如文献[4]分别综述了行为理解和智能监控的研究进展,在其底层部分简要地介绍了目标的检测与跟踪,没有给出针对该领域较全面的整理。然而,随着时代的发展,目标检测与跟踪技术也在突飞猛进,近几年来该领域的研究成果可谓日新月异,各种优秀算法也是层出不穷。[5]但专门针对篮球的运动目标的检测和跟踪,目前尚未有文章有所描述,希望在这方面进行一些分析。 

        1.2数据挖掘目标

篮球作为得分判断相对简易的运动项目,不同于乒乓球单一的落点和轨迹追踪,往往针对高速球类的判断[6],也不同于足球这样大范围的球门射点判断,针对于选手在不同环境下的决策选择。因篮球和篮筐大小相近,没有很好的运动轨迹不容易造成进球,因此其更注重最终是否能够进球,也往往是观众最激动、选手最关心、教练组最关注的目标点,以此为目标进行进球轨迹的建模以及预测就是本题的分析目标。

本文希望通过不同类型的篮球出球方式,判断不同轨迹下未来数十帧的运动趋势,并以此来判断是否最终可以得到进球。期待这样的模型建立可以适配到不同的球员信息,可以以此为模板进行篮球投射轨迹的优化,提升进球率。

2.素材收集与整理

我们进行多种投篮素材组合检验的形式,让模型可以匹配更多的投进/没投进情况,方便我们后续进行分析处理,总共收集5个MP4视频素材,分别考虑一下情况:

1.不触板框(不接触篮筐和篮板)

2.触框弹出(篮筐前弹出)

3.触框弹出(篮筐后弹出)

4.空心投进(不影响运动轨迹)

5.触框投进(影响运动轨迹)

为方便模型建立,我们不考虑接触篮板的任何情况,因为会涉及触板角度、材料刚性、反馈强度等因素的影响,最终使结果影响条件过多不方便建模。

在读入视频素材成功时,可以得到浏览的图像。由于图像太大,且速度过快,我们使用cv2.resize调整整体大小为0.7*0.7,并cv2.waitKey()设置刷新图像延迟为100ms。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 1 裁剪图像效果

3.目标检测与追踪

        3.1篮球目标检测

经过运动过程的简化,我们仅考虑本文获取的视频素材环境,因此在运动过程中我们可以肯定,整体环境及其参与的物体元素没有发生改变,仅有篮球为主动移动物体。

在可查询到的文献中有帧间差分法、光流法、背景差分法等三种主流的方法来进行物体的提取。

第一种帧间差分法,是通过对视频图像序列中相邻的两个或三个图像进行差分运算,来获得运动物体轮廓。因此帧差法算法简单、计算量小适用于动态变化环境但其检测精度不高分割运动对象的完整性差

第二种光流法,是给图像中的每一个像素赋予一个速度矢量,这就形成了一个图像运动场,在运动的一个特定时刻,图像上的点与三维物体上的点一一对应,这种对应关系可由投影关系得到,根据各个像素的速度矢量特征,可以对图像进行动态分析。[7]

因此,由于光流法计算复杂,采用的是迭代法求解光流的计算时间比较长,一个是很难满足实际应用中的实时处理的要求,且算力也较大简单环境没必要进行此类方法,具有不需要知道图像先验知识的优点但其计算量过大不适于实时检测本文也没有采用这种算法。

第三种是背景差分法,需要有一张背景图像,然后对视频图像和此背景图像进行差分运算,用一张新的图像保存差分结果的绝对值。[8]

而后对差分图像进行判断,若像素的值大于一个特定的闭值,则认为视频图像中在相同位置的象素属于运动目标区域;若象素的值小于或者等于一个特定的闭值,则认为视频图像中在相同位置的象素属于背景区域。

但因背景差分法作用于像素,在这个低层次的处理中,操作的对象是单个的象素,由于缺乏对整体图像的完整“理解”,检测结果很客易受噪声和各种突变的影响,使检测结果的准确度大大下降。[9]

本文由于场景稳定,数据量较少且需算法较为准确,最终选择适合利用简单的颜色判别法进行球的定位判断,且辅以高斯滤波提升球泛化度,降低球表面其他颜色与光反射的干扰,并使画面整体噪点降低,提升识别准确率。

视频转瞬即逝,且在移动过程中难以捕捉,我们就截取其中一帧含有球的图像,后进行颜色的捕获,以单帧的图像识别来作为模板方便后续的物体追踪,即为上述已经完成裁剪的Ball.png文件。

且在我们裁剪的过程中不难看出球的颜色和背景、贴地瓷砖、篮板颜色均较为相近,由于地面的运动不会对整体运动轨迹产生干扰,我们可以直接通过裁剪去掉下半部分的图像,防止颜色捕获的影响。因此可以裁剪图像矩阵的[0:900, :]即整个图像除去地瓷砖的上半部分。

查询球的颜色需要用到cvzone的ColorFinder,相比于opencv原本的包效果更佳。开始调试时,我们选择ColorFinder(True)以此可以帮助我们调整颜色获取区间,发现球的颜色,在后续发现球的颜色后,我们可以调整为ColorFinder(False)。

设置一个hsvvals属性的随机值,而后我们可以进行调整来得到合适的阈值,初始调节效果、最终捕获效果和掩模[10]的对比如下:

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

(1)默认HSV属性效果

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 2 调整HSV属性值捕获篮球

因此,最终我们找到了合适的属性值,来捕获球的颜色,且图像中可以排除背景、篮板等近似的颜色,如下表所示:

表 1 最佳HSV属性

HSV属性

属性值

Hue Min

3

Hue Max

14

Sat Min

112

Sat Max

255

Val Min

0

Val Max

255

        3.2篮球目标追踪

我们利用findContours可以得到球的定位方法,并利用minArea设置像素值为200来缩小检测范围,降低噪声的干扰,可以通过追踪球的颜色,得到对球的定位追踪。[11]

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 3 目标追踪效果

我们期望得到运动过程的实际曲线和预测的未来轨迹,因此我们假设球为一个质点,也就是可以泛化成其中心点,将其设置为绿色,并在运动过程中类似打点计时器的效果,来明显地展示绿点的动态,用线条来表现球质点的运动点移动。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 4 球体质点轨迹追踪

在显示过程中往往我们只能显示一帧上的动效,而实际我们却需要整个运动状态下的所有点轨迹,因此我们可以设置其为一个列表进行迭代,以方便我们后续查阅显示其值。并运用for循环语句对所有动态点,及其之前点连线,进行绘制展示,并对初始第一个零位置进行特殊处理配置。

4.轨迹判断与进球预测

我们希望通过多项式回归的方法来进行轨迹判断,并运用阈值判断。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 5 多项式模型

我们可以得到形如下式的多项式方程,【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

或者我们运用较为常见的形态,【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

在拟合效果上,因抛物线的基本形态呈现的有初速落体运动,动效模拟优于普通的线性方程形式,【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪因此更方便我们最终拟合成合适的曲线。

并且也需要我们可以预测,未来十帧甚至二十帧以上的曲线图。

我们可以引入numpy包的polyfit函数来拟合二阶多项式的系数,利用for循环内的球定位坐标列表,最终可以得到二阶、一阶和常数项的系数,即对应的A、B、C。

而后遍历所有的x值,可以结合相应的系数得到其y值,确定二者就确定下该位置的坐标,因此可以预测出未来的曲线形式。

下面列举没进球与进球两类视频的轨迹判断,对比其前中后期的轨迹预测,可以发现在前期往往轨迹不好判断为稳态,在中期最高点左右的区域更有利于未来的轨迹预测,判断进球也更为精准。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 6 两种类型的分阶段轨迹判断

可以进行轨迹判断后,我们需要在球达到篮筐方向前,预测出球是否会最终进入框内,可以转换判断为是否会经过下图所示橙色区域内。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 7 进球阈值判别

最终我们在y值为590时,如果x值在[330, 430]范围内,则判定为进球,我们可以运用一元二次方程求根公式【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪,得到最终的x值与阈值进行比对,本文运用numpy包的roots函数进行实现。

5.结果分析与总结

最终我们可以在物体运动到轨迹最高点位置,或者接近最高点时,物体整体轨迹固定,所有的五个视频均可以准确预测篮球是否进球。

【案例分析】基于OpenCV的篮球目标检测追踪与进球预测,案例分析,opencv,目标检测,目标跟踪

图 8 进球预测

目前得到的多重轨迹测试,模型的拟合效果均达到预期。在图像预处理阶段本文利用研究高斯模糊对常见噪声进行消除,在目标检测阶段考虑目标检测的轻量化和有效性,采用改进的颜色判别法对运动目标检测进行仿真实验。

并对颜色干扰项进行图像切割,并捕获HSV色彩空间的篮球颜色属性,得到最终的目标检测结果,得到有效抑制干扰的球体跟踪模型。

而后缩小检测范围提高检测精度,并以质点思想带入,描绘篮球已知轨迹,方便后续分析预测。以多项式回归的公式拟合,计算过往轨迹的坐标数列取得合适的系数描绘未来数帧的轨迹,最终以拟合结果判断是否落入目标网中,取得是否进球的依据,有良好的可行性和简洁性。

论文通过实验验证了改进后的运动目标检测与跟踪算法,准确度达到100%,具有良好有效性,对球类追踪和进球预判等体育领域具有广泛的应用价值。

参考文献

[1]章逸丰. 快速飞行物体的状态估计和轨迹预测[D].浙江大学,2015.

[2] Zhang S P, Yao H X, Sun X, Lu X S.Sparse coding based visual tracking:review and experimental comparison.Pattern Recognition, 2013, 46 (7) :1772-1788

[3] Smeulders A W M, Chu D M, Cucchiara R, Calderara S, Dehghan A, Shah M.Visual tracking:an experimental survey.IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36 (7) :1442-1468

[4]黄凯奇,陈晓棠,康运锋,谭铁牛.智能视频监控技术综述[J].计算机学报,2015,38(06):1093-1118.

[5]尹宏鹏,陈波,柴毅,刘兆栋.基于视觉的目标检测与跟踪综述[J].自动化学报,2016,42(10):1466-1489.DOI:10.16383/j.aas.2016.c150823.

[6]张远辉. 基于实时视觉的乒乓球机器人标定和轨迹跟踪技术研究[D].浙江大学,2009.

[7]郭春生,王盼.一种基于码本模型的运动目标检测算法[J].中国图象图形学报,2010,15(07):1079-1083.

[8]惠婉玉,吴玉秀.图像去噪滤波方法的对比研究[J].洛阳理工学院学报(自然科学版),2021,31(01):71-76.

[9]吴晓阳. 基于OpenCV的运动目标检测与跟踪[D].浙江大学,2008.

[10]张国权,李战明,李向伟,魏伟一.HSV空间中彩色图像分割研究[J].计算机工程与应用,2010,46(26):179-181.

[11] 王科俊,郭庆昌,庄大燕.基于差分法与改进活动轮廓模型的追踪算法[J].计算机工程,2008(02):212-214+231.文章来源地址https://www.toymoban.com/news/detail-762740.html

到了这里,关于【案例分析】基于OpenCV的篮球目标检测追踪与进球预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Hadoop的数据分析案例-陌陌聊天软件数据分析

    目录 前言 一、使用的工具 二、操作步骤 1.数据来源 2.数据内容分析  3.加载数据  4.数据清洗ETL  5.数据分析 8.数据可视化 本文章是使用基于Hadoop的数据仓库Hive针对陌陌聊天软件进行数据分析并可视化。 Vmware Workstation Pro Centos 7 64bit FinalShell 3.9.2.2 DataGrip 2020.1 x64 Tableau 2021.

    2024年02月06日
    浏览(46)
  • 数据分析案例-基于PCA主成分分析法对葡萄酒数据进行分析

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 2.1分析目标 2.2数据集介绍 2.3技术工具 3.算法理论 4.实验过程

    2024年02月03日
    浏览(45)
  • 数据分析案例-基于因子分析探究各省份中心城市经济发展状况

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、实验背景 二、实验内容及数据 2.1 概述 2.2 变量介绍 三、实验步骤 3.1 导入模块

    2023年04月15日
    浏览(46)
  • 数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、项目介绍 二、数据集介绍 三、实验过程 3.1导入数据() ​3.2数据预处理 3.3数据

    2024年02月07日
    浏览(50)
  • 数据分析案例-基于亚马逊智能产品评论的探索性数据分析

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、实验背景 1.1背景概述 1.2实验目的 二、数据描述 2.1数据来源 2.2变量介绍 三、实验

    2024年02月22日
    浏览(53)
  • 【matalab】基于Octave的信号处理与滤波分析案例

    GNU Octave是一款开源软件,类似于MATLAB,广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例,说明如何在Octave中生成一个有噪声的信号,并设计一个滤波器来去除噪声。 首先,确保安装了Octave。可以从Octave官网下载并安装:GNU Octave 案例步骤如下: 1. 生成一

    2024年02月19日
    浏览(37)
  • 基于R语言、MATLAB、Python机器学习方法与案例分析

    目录   基于R语言机器学习方法与案例分析 基于MATLAB机器学习、深度学习在图像处理中的实践技术应用 全套Python机器学习核心技术与案例分析实践应用   基于R语言机器学习方法与案例分析 机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,

    2024年02月07日
    浏览(34)
  • 大数据分析案例-基于XGBoost算法预测航空机票价格

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2023年04月08日
    浏览(53)
  • 大数据分析案例-基于随机森林算法构建新闻文本分类模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月02日
    浏览(58)
  • 大数据分析案例-基于决策树算法构建员工离职预测模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 2.1项目说明

    2024年01月24日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包