使用球员图像姿势的板球击球分类

本文介绍了如何利用计算机视觉技术,特别是姿势检测,来建立一个模型对板球击球进行分类。首先,通过detectron2检测球员的姿势,然后使用神经网络对这些姿势进行分类,最终实现对板球击球类型(如pull, cut, drive, sweep)的预测。文章详细阐述了数据预处理、模型训练和评估过程,展示了模型在有限数据集上的表现,并提出了提升模型性能的建议。" 45695443,4885563,状压DP解决hihoCoder 1170 机器人颜色变换问题,"['动态规划', '算法', '问题解决', '预处理技巧', '编程竞赛']
摘要由CSDN通过智能技术生成

介绍

姿势检测是计算机视觉 (CV) 技术的子集,可预测人或物体的轨迹和位置。这是通过查看给定人或物体的姿势和方向的组合来完成的。

目标

本文的目的是建立一个模型,该模型可以使用球员的姿势对板球击球进行分类。为此,将图像输入到模型中。它将检测图像中人的姿势,然后使用检测到的姿势,我们将分类它属于什么类型。

目录
  1. 安装依赖项

  2. 加载和预处理数据

  3. 数据增强

  4. 使用detectron2检测姿势

  5. 使用球员的姿势对板球击球进行分类

  6. 评估模型性能

安装 Cricket Shot 分类的依赖项

!pip install pyyaml==5.1
# install detectron2:
!pip install detectron2==0.1.3 -f 
     https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.5/index.html

加载和预处理板球击球分类的数据

我们将加载保存在驱动器上的数据集。因此,为此,我们将首先安装驱动器,然后提取简短的 zip 文件。

数据集链接:https://courses.analyticsvidhya.com/courses/take/Applied-Computer-Vision-using-Deep-Learning/downloads/14568149-dataset-cricket-shot-classification

# mount drive
from google.colab import drive
drive.mount('drive/')

zip 文件包含不同类型镜头的图像。接下来,我们获取文件夹的名称,它们是类别或不同类型的镜头。

# extract files
!unzip 'drive/My Drive/shot.zip'

接下来,我们使用 OS 库的 list ERR 函数来执行此操作。在这里,我们正在打印我们拥有的文件夹名称,我们有四个文件夹,即 pull, cut, drive and sweep.

import os
# specify path
path='shot/'
# list down the folders 
folders = os.listdir(path)
print(folders)

输出:['pull', 'cut', 'drive', 'sweep']

接下来,我们正在读取所有图像并将它们存储在一个名为 images 的列表中。我们还将标签存储在一个列表中,该列表是每个图像的类。这个类存储图像的文件夹的名称。我们将遍历每个文件夹并逐个读取图像,并将它们附加到创建的列表中。

# for dealing with images
import cv2
# create lists
images  = []
labels  = []
# for each folder
for folder in folders:
    # list down image names
    names=os.listdir(path+folder)
    # for each image
    for name in names:
        # read an image
        img=cv2.imread(path+folder+'/'+name)
        # append image to list
        images.append(img)       
        # append folder name (type of shot) to list
        labels.append(folder)

让我们使用 len 函数快速检查图像的数量。我们可以观察到有 290 张图像。

# number of images
len(images)

输出:290

现在,我们正在可视化数据集中的一些图像。所以对于每种类型的镜头。我们随机绘制五张图像。我们将使用matplotlib来可视化图像。random 函数将用于随机选择图像。

我们将创建一个子图,其中四行代表四个不同的类,五列代表五个示例。接下来对于每个类,我们将随机挑选五张图像并使用 cv2.imread 函数读取图像。读取图像后,你可以将这些图像转换为 RGB 格式并可视化这些图像。

# visualization library
import matplotlib.pyplot as plt
# for randomness
import random
# create subplots with 4 rows and 5 columns
fig, ax = plt.subplots(nrows=4, ncols=5, figsize=(15,15))
# randomly display 5 images for each shot for each folder
for i in range(len(folders)):
    # read image name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值