今天跟大家唠唠我最近实践的“凯文-杜兰特”项目,这名字听起来唬人,就是个练手的小玩意儿。
事情是这样的,前阵子看球,杜兰特不是又伤了吗?好像是扭了脚踝,说是要歇几周。我就寻思着,这哥们儿也太不容易了,技术是真就是这身体……然后突然冒出一个想法,能不能用点啥技术,模拟一下杜兰特的投篮动作,或者分析下他的伤病啥的?
说干就干!
我找了一堆杜兰特的比赛视频,各种角度,各种动作,高清的、模糊的,只要能找到的都扒下来。然后就开始一帧一帧的看,一帧一帧的截。
截完图,就开始琢磨,怎么把这些图片变成数据。一开始想用人体姿态识别的AI,但想想太麻烦了,我这小电脑估计跑不动。就改成最笨的办法,自己手动标记关键点,比如手肘、膝盖、脚踝啥的,然后记录坐标。
这活儿是真的枯燥,对着屏幕一天下来,眼睛都快瞎了。但没办法,谁让我自己挖的坑。
数据有了,就开始用Python写代码,把这些坐标点画出来,连成线,看看能不能还原杜兰特的投篮动作。
刚开始效果很差,那个人体模型扭曲得不成样子,简直就是个“抽象派杜兰特”。后来发现是坐标点标记的不够精确,而且不同视频的角度不一样,需要做一些校正。
我就又回去重新标记,还加了一些关键点,比如手指、篮球的位置啥的。然后又学了点线性代数的知识,用矩阵变换来校正角度。
折腾了好几天,总算有点样子了。虽然还不能完全还原杜兰特的动作,但至少能看出个大概了。
后来我又想,能不能用这些数据来分析下杜兰特的伤病?比如看看他的关节活动范围是不是比别人小,或者他的落地姿势是不是有问题。
但这方面我不太懂,就找了一些相关的论文来看,还咨询了一个学医的朋友。朋友说,这种分析需要专业的设备和数据,光靠视频截图是不够的。
想想也是,我这也就是个玩具项目,能做到现在这样已经不错了。
我就把这个项目做成了一个简单的动画,可以模拟杜兰特的投篮动作。虽然不能解决他的伤病问题,但至少能让我更了解他的技术特点。
整个过程下来,学到了不少东西。比如,数据处理真的很重要,坐标点稍微偏一点,结果就差很多。再比如,数学是真有用,矩阵变换在图像处理里简直是神器。
也认识到自己的不足,很多专业知识还是需要学习的。
这回“凯文-杜兰特”项目虽然没啥实际用处,但让我体验了一把数据分析的乐趣,也让我对篮球和技术有了更深的理解。下次有机会,希望能做一些更有意义的项目。

