{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "B74HkZjCxQ_6" }, "source": [ "\"Open" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "MwmrGv9exRAH" }, "source": [ "# 基于 MMAction2 进行时空行为检测任务\n", "欢迎使用 MMAction2! 这是一篇关于如何使用 MMAction2 进行时空行为检测的教程。在此教程中,我们会以 MultiSports 数据集为例,提供时空行为检测的完整步骤教程,包括\n", "- 准备时空行为检测数据集\n", "- 训练检测模型\n", "- 准备 AVA 格式的数据集\n", "- 训练时空行为检测模型\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "em5lgDTUxRAI" }, "source": [ "## 0. 安装 MMAction2 和 MMDetection" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bBM9DCrsxRAJ", "outputId": "b310311f-f05e-4a5c-b6e5-8e6ee7e0dfae" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting openmim\n", " Downloading openmim-0.3.7-py2.py3-none-any.whl (51 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.3/51.3 kB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: Click in /usr/local/lib/python3.10/dist-packages (from openmim) (8.1.3)\n", "Collecting colorama (from openmim)\n", " Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", "Collecting model-index (from openmim)\n", " Downloading model_index-0.1.11-py3-none-any.whl (34 kB)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from openmim) (1.5.3)\n", "Requirement already satisfied: pip>=19.3 in /usr/local/lib/python3.10/dist-packages (from openmim) (23.1.2)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from openmim) (2.27.1)\n", "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from openmim) (13.3.4)\n", "Requirement already satisfied: tabulate in /usr/local/lib/python3.10/dist-packages (from openmim) (0.8.10)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from model-index->openmim) (6.0)\n", "Requirement already satisfied: markdown in /usr/local/lib/python3.10/dist-packages (from model-index->openmim) (3.4.3)\n", "Collecting ordered-set (from model-index->openmim)\n", " Downloading ordered_set-4.1.0-py3-none-any.whl (7.6 kB)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->openmim) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->openmim) (2022.7.1)\n", "Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.10/dist-packages (from pandas->openmim) (1.22.4)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->openmim) (1.26.15)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->openmim) (2022.12.7)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->openmim) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->openmim) (3.4)\n", "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->openmim) (2.2.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->openmim) (2.14.0)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->openmim) (0.1.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->openmim) (1.16.0)\n", "Installing collected packages: ordered-set, colorama, model-index, openmim\n", "Successfully installed colorama-0.4.6 model-index-0.1.11 openmim-0.3.7 ordered-set-4.1.0\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Looking in links: https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/index.html\n", "Collecting mmengine\n", " Downloading mmengine-0.7.4-py3-none-any.whl (374 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m374.3/374.3 kB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting addict (from mmengine)\n", " Downloading addict-2.4.0-py3-none-any.whl (3.8 kB)\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from mmengine) (3.7.1)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mmengine) (1.22.4)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from mmengine) (6.0)\n", "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from mmengine) (13.3.4)\n", "Requirement already satisfied: termcolor in /usr/local/lib/python3.10/dist-packages (from mmengine) (2.3.0)\n", "Collecting yapf (from mmengine)\n", " Downloading yapf-0.40.0-py3-none-any.whl (250 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m250.3/250.3 kB\u001b[0m \u001b[31m29.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.10/dist-packages (from mmengine) (4.7.0.72)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (1.0.7)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (4.39.3)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (1.4.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (23.1)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (8.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine) (2.8.2)\n", "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine) (2.2.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine) (2.14.0)\n", "Collecting importlib-metadata>=6.6.0 (from yapf->mmengine)\n", " Downloading importlib_metadata-6.6.0-py3-none-any.whl (22 kB)\n", "Collecting platformdirs>=3.5.1 (from yapf->mmengine)\n", " Downloading platformdirs-3.5.3-py3-none-any.whl (15 kB)\n", "Requirement already satisfied: tomli>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from yapf->mmengine) (2.0.1)\n", "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=6.6.0->yapf->mmengine) (3.15.0)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->mmengine) (0.1.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->mmengine) (1.16.0)\n", "Installing collected packages: addict, platformdirs, importlib-metadata, yapf, mmengine\n", " Attempting uninstall: platformdirs\n", " Found existing installation: platformdirs 3.3.0\n", " Uninstalling platformdirs-3.3.0:\n", " Successfully uninstalled platformdirs-3.3.0\n", "Successfully installed addict-2.4.0 importlib-metadata-6.6.0 mmengine-0.7.4 platformdirs-3.5.3 yapf-0.40.0\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Looking in links: https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/index.html\n", "Collecting mmcv\n", " Downloading https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/mmcv-2.0.0-cp310-cp310-manylinux1_x86_64.whl (74.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m74.4/74.4 MB\u001b[0m \u001b[31m9.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: addict in /usr/local/lib/python3.10/dist-packages (from mmcv) (2.4.0)\n", "Requirement already satisfied: mmengine>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from mmcv) (0.7.4)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mmcv) (1.22.4)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from mmcv) (23.1)\n", "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from mmcv) (8.4.0)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from mmcv) (6.0)\n", "Requirement already satisfied: yapf in /usr/local/lib/python3.10/dist-packages (from mmcv) (0.40.0)\n", "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.10/dist-packages (from mmcv) (4.7.0.72)\n", "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from mmengine>=0.2.0->mmcv) (3.7.1)\n", "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from mmengine>=0.2.0->mmcv) (13.3.4)\n", "Requirement already satisfied: termcolor in /usr/local/lib/python3.10/dist-packages (from mmengine>=0.2.0->mmcv) (2.3.0)\n", "Requirement already satisfied: importlib-metadata>=6.6.0 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv) (6.6.0)\n", "Requirement already satisfied: platformdirs>=3.5.1 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv) (3.5.3)\n", "Requirement already satisfied: tomli>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv) (2.0.1)\n", "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=6.6.0->yapf->mmcv) (3.15.0)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (1.0.7)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (4.39.3)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (1.4.4)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmengine>=0.2.0->mmcv) (2.8.2)\n", "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine>=0.2.0->mmcv) (2.2.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine>=0.2.0->mmcv) (2.14.0)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->mmengine>=0.2.0->mmcv) (0.1.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->mmengine>=0.2.0->mmcv) (1.16.0)\n", "Installing collected packages: mmcv\n", "Successfully installed mmcv-2.0.0\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Looking in links: https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/index.html\n", "Collecting mmdet\n", " Downloading mmdet-3.0.0-py3-none-any.whl (1.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m23.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from mmdet) (3.7.1)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mmdet) (1.22.4)\n", "Requirement already satisfied: pycocotools in /usr/local/lib/python3.10/dist-packages (from mmdet) (2.0.6)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from mmdet) (1.10.1)\n", "Requirement already satisfied: shapely in /usr/local/lib/python3.10/dist-packages (from mmdet) (2.0.1)\n", "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from mmdet) (1.16.0)\n", "Collecting terminaltables (from mmdet)\n", " Downloading terminaltables-3.1.10-py2.py3-none-any.whl (15 kB)\n", "Requirement already satisfied: mmcv<2.1.0,>=2.0.0rc4 in /usr/local/lib/python3.10/dist-packages (from mmdet) (2.0.0)\n", "Requirement already satisfied: mmengine<1.0.0,>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from mmdet) (0.7.4)\n", "Requirement already satisfied: addict in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (2.4.0)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (23.1)\n", "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (8.4.0)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (6.0)\n", "Requirement already satisfied: yapf in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (0.40.0)\n", "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.10/dist-packages (from mmcv<2.1.0,>=2.0.0rc4->mmdet) (4.7.0.72)\n", "Requirement already satisfied: rich in /usr/local/lib/python3.10/dist-packages (from mmengine<1.0.0,>=0.7.1->mmdet) (13.3.4)\n", "Requirement already satisfied: termcolor in /usr/local/lib/python3.10/dist-packages (from mmengine<1.0.0,>=0.7.1->mmdet) (2.3.0)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (1.0.7)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (4.39.3)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (1.4.4)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmdet) (2.8.2)\n", "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine<1.0.0,>=0.7.1->mmdet) (2.2.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich->mmengine<1.0.0,>=0.7.1->mmdet) (2.14.0)\n", "Requirement already satisfied: importlib-metadata>=6.6.0 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv<2.1.0,>=2.0.0rc4->mmdet) (6.6.0)\n", "Requirement already satisfied: platformdirs>=3.5.1 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv<2.1.0,>=2.0.0rc4->mmdet) (3.5.3)\n", "Requirement already satisfied: tomli>=2.0.1 in /usr/local/lib/python3.10/dist-packages (from yapf->mmcv<2.1.0,>=2.0.0rc4->mmdet) (2.0.1)\n", "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=6.6.0->yapf->mmcv<2.1.0,>=2.0.0rc4->mmdet) (3.15.0)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->mmengine<1.0.0,>=0.7.1->mmdet) (0.1.2)\n", "Installing collected packages: terminaltables, mmdet\n", "Successfully installed mmdet-3.0.0 terminaltables-3.1.10\n", "Cloning into 'mmaction2'...\n", "remote: Enumerating objects: 22869, done.\u001b[K\n", "remote: Counting objects: 100% (1491/1491), done.\u001b[K\n", "remote: Compressing objects: 100% (801/801), done.\u001b[K\n", "remote: Total 22869 (delta 854), reused 1171 (delta 685), pack-reused 21378\u001b[K\n", "Receiving objects: 100% (22869/22869), 82.81 MiB | 27.92 MiB/s, done.\n", "Resolving deltas: 100% (15952/15952), done.\n", "/content/mmaction2\n", "Using pip 23.1.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10)\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Obtaining file:///content/mmaction2\n", " Running command python setup.py egg_info\n", " running egg_info\n", " creating /tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info\n", " writing /tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/PKG-INFO\n", " writing dependency_links to /tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/dependency_links.txt\n", " writing requirements to /tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/requires.txt\n", " writing top-level names to /tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/top_level.txt\n", " writing manifest file '/tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/SOURCES.txt'\n", " reading manifest file '/tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/SOURCES.txt'\n", " reading manifest template 'MANIFEST.in'\n", " warning: no files found matching 'mmaction/.mim/model-index.yml'\n", " warning: no files found matching '*.py' under directory 'mmaction/.mim/configs'\n", " warning: no files found matching '*.yml' under directory 'mmaction/.mim/configs'\n", " warning: no files found matching '*.sh' under directory 'mmaction/.mim/tools'\n", " warning: no files found matching '*.py' under directory 'mmaction/.mim/tools'\n", " adding license file 'LICENSE'\n", " writing manifest file '/tmp/pip-pip-egg-info-x4x7terp/mmaction2.egg-info/SOURCES.txt'\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting decord>=0.4.1 (from mmaction2==1.0.0)\n", " Downloading decord-0.6.0-py3-none-manylinux2010_x86_64.whl (13.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.6/13.6 MB\u001b[0m \u001b[31m98.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting einops (from mmaction2==1.0.0)\n", " Downloading einops-0.6.1-py3-none-any.whl (42 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m42.2/42.2 kB\u001b[0m \u001b[31m5.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (3.7.1)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (1.22.4)\n", "Requirement already satisfied: opencv-contrib-python in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (4.7.0.72)\n", "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (8.4.0)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (1.10.1)\n", "Requirement already satisfied: torch>=1.3 in /usr/local/lib/python3.10/dist-packages (from mmaction2==1.0.0) (2.0.1+cu118)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (3.12.0)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (4.5.0)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (1.11.1)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (3.1)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (3.1.2)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.3->mmaction2==1.0.0) (2.0.0)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.3->mmaction2==1.0.0) (3.25.2)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.3->mmaction2==1.0.0) (16.0.5)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (1.0.7)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (0.11.0)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (4.39.3)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (1.4.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (23.1)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib->mmaction2==1.0.0) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib->mmaction2==1.0.0) (1.16.0)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.3->mmaction2==1.0.0) (2.1.2)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.3->mmaction2==1.0.0) (1.3.0)\n", "Installing collected packages: einops, decord, mmaction2\n", " Running setup.py develop for mmaction2\n", " Running command python setup.py develop\n", " running develop\n", " /usr/local/lib/python3.10/dist-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated.\n", " !!\n", "\n", " ********************************************************************************\n", " Please avoid running ``setup.py`` and ``easy_install``.\n", " Instead, use pypa/build, pypa/installer, pypa/build or\n", " other standards-based tools.\n", "\n", " See https://github.com/pypa/setuptools/issues/917 for details.\n", " ********************************************************************************\n", "\n", " !!\n", " easy_install.initialize_options(self)\n", " /usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.\n", " !!\n", "\n", " ********************************************************************************\n", " Please avoid running ``setup.py`` directly.\n", " Instead, use pypa/build, pypa/installer, pypa/build or\n", " other standards-based tools.\n", "\n", " See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.\n", " ********************************************************************************\n", "\n", " !!\n", " self.initialize_options()\n", " running egg_info\n", " creating mmaction2.egg-info\n", " writing mmaction2.egg-info/PKG-INFO\n", " writing dependency_links to mmaction2.egg-info/dependency_links.txt\n", " writing requirements to mmaction2.egg-info/requires.txt\n", " writing top-level names to mmaction2.egg-info/top_level.txt\n", " writing manifest file 'mmaction2.egg-info/SOURCES.txt'\n", " reading manifest file 'mmaction2.egg-info/SOURCES.txt'\n", " reading manifest template 'MANIFEST.in'\n", " adding license file 'LICENSE'\n", " writing manifest file 'mmaction2.egg-info/SOURCES.txt'\n", " running build_ext\n", " Creating /usr/local/lib/python3.10/dist-packages/mmaction2.egg-link (link to .)\n", " Adding mmaction2 1.0.0 to easy-install.pth file\n", "\n", " Installed /content/mmaction2\n", "Successfully installed decord-0.6.0 einops-0.6.1 mmaction2-1.0.0\n", "/content/mmaction2/projects/stad_tutorial\n" ] } ], "source": [ "%pip install -U openmim\n", "!mim install mmengine\n", "!mim install mmcv\n", "!mim install mmdet\n", "\n", "!git clone https://github.com/open-mmlab/mmaction2.git\n", "\n", "%cd mmaction2\n", "%pip install -v -e .\n", "%cd projects/stad_tutorial" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "4M1PQASJxRAM" }, "source": [ "## 1. 准备时空行为检测数据集\n", "\n", "类似于检测任务需要提供检测框标注,时空行为检测任务需要对时间和空间同时定位,所以需要提供更复杂的 tube 标注。以 MultiSports 数据集的标注为例,`gttubes` 字段提供了视频中所有的目标动作标注,以下为一个标注片段:\n", "\n", "```\n", " 'gttubes': {\n", " 'aerobic_gymnastics/v_aqMgwPExjD0_c001': # video_key\n", " {\n", " 10: # 类别标号\n", " [\n", " array([[ 377., 904., 316., 1016., 584.], # 类别 10 的第 1 个 tube,\n", " [ 378., 882., 315., 1016., 579.], # shape (n, 5): 表示 n 帧,每帧标注中包括 (帧号,x1,y1, x2, y2)\n", " ...\n", " [ 398., 861., 304., 954., 549.]], dtype=float32),\n", "\n", " array([[ 399., 881., 308., 955., 542.], # 类别 10 的第 2 个 tube\n", " [ 400., 862., 303., 988., 539.],\n", " [ 401., 853., 292., 1000., 535.],\n", " ...])\n", " ...\n", "\n", " ] ,\n", " 9: # 类别标号\n", " [\n", " array(...), # 类别 9 的第 1 个 tube\n", " array(...), # 类别 9 的第 2 个 tube\n", " ...\n", " ]\n", " ...\n", " }\n", " }\n", "```\n", "\n", "标注文件中还需要提供其他字段的信息,完整的真值文件包括以下信息:\n", "```\n", "{\n", " 'labels': # 标签列表\n", " ['aerobic push up', 'aerobic explosive push up', ...],\n", " 'train_videos': # 训练视频列表\n", " [\n", " [\n", " 'aerobic_gymnastics/v_aqMgwPExjD0_c001',\n", " 'aerobic_gymnastics/v_yaKOumdXwbU_c019',\n", " ...\n", " ]\n", " ]\n", " 'test_videos': # 测试视频列表\n", " [\n", " [\n", " 'aerobic_gymnastics/v_crsi07chcV8_c004',\n", " 'aerobic_gymnastics/v_dFYr67eNMwA_c005',\n", " ...\n", " ]\n", " ]\n", " 'n_frames': # dict 文件,提供各个视频的帧数信息\n", " {\n", " 'aerobic_gymnastics/v_crsi07chcV8_c004': 725,\n", " 'aerobic_gymnastics/v_dFYr67eNMwA_c005': 750,\n", " ...\n", " }\n", " 'resolution': # dict 文件,提供各个视频的分辨率信息\n", " {\n", " 'aerobic_gymnastics/v_crsi07chcV8_c004': (720, 1280),\n", " 'aerobic_gymnastics/v_dFYr67eNMwA_c005': (720, 1280),\n", " ...\n", " }\n", " 'gt_tubes': # dict 文件,提供 tube 的检测框信息\n", " {\n", " ... # 格式参考上述说明\n", " }\n", "}\n", "```\n", "后续的实验基于 MultiSports-tiny 进行,我们从 MultiSports 中抽取了少量视频,用于演示整个流程。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fiJPDuR9xRAQ", "outputId": "8b3d8719-a9c0-4a59-d220-a3626fa34d3b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2023-06-15 06:41:29-- https://download.openmmlab.com/mmaction/v1.0/projects/stad_tutorial/multisports-tiny.tar\n", "Resolving download.openmmlab.com (download.openmmlab.com)... 8.48.85.214, 8.48.85.207, 8.48.85.208, ...\n", "Connecting to download.openmmlab.com (download.openmmlab.com)|8.48.85.214|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 82780160 (79M) [application/x-tar]\n", "Saving to: ‘data/multisports-tiny.tar’\n", "\n", "multisports-tiny.ta 100%[===================>] 78.95M 27.9MB/s in 2.8s \n", "\n", "2023-06-15 06:41:32 (27.9 MB/s) - ‘data/multisports-tiny.tar’ saved [82780160/82780160]\n", "\n", "multisports-tiny/multisports/\n", "multisports-tiny/multisports/test/\n", "multisports-tiny/multisports/test/aerobic_gymnastics/\n", "multisports-tiny/multisports/test/aerobic_gymnastics/v_7G_IpU0FxLU_c001.mp4\n", "multisports-tiny/multisports/annotations/\n", "multisports-tiny/multisports/annotations/multisports_GT.pkl\n", "multisports-tiny/multisports/trainval/\n", "multisports-tiny/multisports/trainval/aerobic_gymnastics/\n", "multisports-tiny/multisports/trainval/aerobic_gymnastics/v__wAgwttPYaQ_c001.mp4\n", "multisports-tiny/multisports/trainval/aerobic_gymnastics/v__wAgwttPYaQ_c003.mp4\n", "multisports-tiny/multisports/trainval/aerobic_gymnastics/v__wAgwttPYaQ_c002.mp4\n", "Reading package lists...\n", "Building dependency tree...\n", "Reading state information...\n", "The following NEW packages will be installed:\n", " tree\n", "0 upgraded, 1 newly installed, 0 to remove and 46 not upgraded.\n", "Need to get 43.0 kB of archives.\n", "After this operation, 115 kB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 tree amd64 1.8.0-1 [43.0 kB]\n", "Fetched 43.0 kB in 0s (253 kB/s)\n", "Selecting previously unselected package tree.\n", "(Reading database ... 122541 files and directories currently installed.)\n", "Preparing to unpack .../tree_1.8.0-1_amd64.deb ...\n", "Unpacking tree (1.8.0-1) ...\n", "Setting up tree (1.8.0-1) ...\n", "Processing triggers for man-db (2.9.1-1) ...\n", "\u001b[01;34mdata\u001b[00m\n", "├── \u001b[01;34mmultisports\u001b[00m\n", "│   ├── \u001b[01;34mannotations\u001b[00m\n", "│   │   └── \u001b[01;32mmultisports_GT.pkl\u001b[00m\n", "│   ├── \u001b[01;34mtest\u001b[00m\n", "│   │   └── \u001b[01;34maerobic_gymnastics\u001b[00m\n", "│   │   └── \u001b[01;32mv_7G_IpU0FxLU_c001.mp4\u001b[00m\n", "│   └── \u001b[01;34mtrainval\u001b[00m\n", "│   └── \u001b[01;34maerobic_gymnastics\u001b[00m\n", "│   ├── \u001b[01;32mv__wAgwttPYaQ_c001.mp4\u001b[00m\n", "│   ├── \u001b[01;32mv__wAgwttPYaQ_c002.mp4\u001b[00m\n", "│   └── \u001b[01;32mv__wAgwttPYaQ_c003.mp4\u001b[00m\n", "└── \u001b[01;31mmultisports-tiny.tar\u001b[00m\n", "\n", "6 directories, 6 files\n" ] } ], "source": [ "# 下载数据集\n", "!wget -P data -c https://download.openmmlab.com/mmaction/v1.0/projects/stad_tutorial/multisports-tiny.tar\n", "!tar -xvf data/multisports-tiny.tar --strip 1 -C data\n", "!apt-get -q install tree\n", "!tree data" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "XjG0dEE8xRAS" }, "source": [ "## 2. 训练检测模型\n", "\n", "在 SlowOnly + Det 的范式中,需要先训练人体检测器,再基于检测结果来预测行为。这一节中,我们基于上一节中的标注格式和 MMDetection 算法库训练检测模型。\n", "\n", "### 2.1 构建检测数据集标注(COCO 格式)\n", "\n", "基于时空行为检测数据集的标注信息,我们可以构建一个 COCO 格式的检测数据集,用于训练检测模型。我们提供了一个工具脚本对 MultiSports 格式的标注进行转换,如果需要基于其他格式转换,可以参考 MMDetection 提供的[自定义数据集](https://mmdetection.readthedocs.io/zh_CN/latest/advanced_guides/customize_dataset.html)文档。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "inBtClMIxRAV", "outputId": "3ac5199b-562f-48c4-da27-819d34069213" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[01;34mdata/multisports/annotations\u001b[00m\n", "├── multisports_det_anno_train.json\n", "├── multisports_det_anno_val.json\n", "└── \u001b[01;32mmultisports_GT.pkl\u001b[00m\n", "\n", "0 directories, 3 files\n" ] } ], "source": [ "!python tools/generate_mmdet_anno.py data/multisports/annotations/multisports_GT.pkl data/multisports/annotations/multisports_det_anno.json\n", "!tree data/multisports/annotations" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "TkPONRezxRAZ", "outputId": "0f8075a1-47fb-490d-9c88-4904f45363fb" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Will generate 3 rgb dir for aerobic_gymnastics.\n", "Generate v__wAgwttPYaQ_c003 rgb dir successfully.\n", "Generate v__wAgwttPYaQ_c002 rgb dir successfully.\n", "Generate v__wAgwttPYaQ_c001 rgb dir successfully.\n" ] } ], "source": [ "!python tools/generate_rgb.py" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "MP-umqqnxRAa" }, "source": [ "### 2.2 修改 config 文件\n", "\n", "我们以 faster-rcnn_x101-64x4d_fpn_1x_coco 为基础配置,做如下修改,在 MultiSports 数据集上进行训练。需要修改以下几个部分:\n", "- 模型的类别数量\n", "- 学习率调整策略\n", "- 优化器配置\n", "- 数据集/标注文件路径\n", "- 评测器配置\n", "- 预训练模型\n", "\n", "更详细的教程可以参考 MMDetection 提供的[准备配置文件](https://mmdetection.readthedocs.io/zh_CN/latest/user_guides/train.html#id9)文档。" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "yMw9MrI0xRAc", "outputId": "1f5ee99a-d4cb-45b0-df71-f0209a9b6275" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Copyright (c) OpenMMLab. All rights reserved.\n", "_base_ = './faster-rcnn_r50-caffe_fpn_ms-1x_coco.py'\n", "model = dict(roi_head=dict(bbox_head=dict(num_classes=1)))\n", "\n", "# take 2 epochs as an example\n", "train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=2, val_interval=1)\n", "\n", "# learning rate\n", "param_scheduler = [\n", " dict(type='ConstantLR', factor=1.0, by_epoch=False, begin=0, end=500)\n", "]\n", "\n", "# optimizer\n", "optim_wrapper = dict(\n", " type='OptimWrapper',\n", " optimizer=dict(type='SGD', lr=0.0050, momentum=0.9, weight_decay=0.0001))\n", "\n", "dataset_type = 'CocoDataset'\n", "# modify metainfo\n", "metainfo = {\n", " 'classes': ('person', ),\n", " 'palette': [\n", " (220, 20, 60),\n", " ]\n", "}\n", "\n", "# specify metainfo, dataset path\n", "data_root = 'data/multisports/'\n", "\n", "train_dataloader = dict(\n", " dataset=dict(\n", " data_root=data_root,\n", " ann_file='annotations/multisports_det_anno_train.json',\n", " data_prefix=dict(img='rawframes/'),\n", " metainfo=metainfo))\n", "\n", "val_dataloader = dict(\n", " dataset=dict(\n", " data_root=data_root,\n", " ann_file='annotations/multisports_det_anno_val.json',\n", " data_prefix=dict(img='rawframes/'),\n", " metainfo=metainfo))\n", "\n", "test_dataloader = dict(\n", " dataset=dict(\n", " data_root=data_root,\n", " ann_file='annotations/ms_infer_anno.json',\n", " data_prefix=dict(img='rawframes/'),\n", " metainfo=metainfo))\n", "\n", "# specify annotaition file path, modify metric items\n", "val_evaluator = dict(\n", " ann_file='data/multisports/annotations/multisports_det_anno_val.json',\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5],\n", ")\n", "\n", "test_evaluator = dict(\n", " ann_file='data/multisports/annotations/ms_infer_anno.json',\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5],\n", ")\n", "\n", "# specify pretrain checkpoint\n", "load_from = 'https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth' # noqa: E501\n" ] } ], "source": [ "!cat configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "S3Ux8echxRAe" }, "source": [ "### 2.3 训练检测模型" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "MYtjYFU5xRAf" }, "source": [ "利用 MIM 可以在当前路径直接训练 MMDetection 模型,这里提供最简单的单卡训练示例,更多训练命令可以参考 MIM [教程](https://github.com/open-mmlab/mim#command)。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "56m--2T8xRAg", "outputId": "d47ceca0-e930-4063-e25d-739a44410b86" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training command is /usr/bin/python3 /usr/local/lib/python3.10/dist-packages/mmdet/.mim/tools/train.py configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py --launcher none --work-dir work_dirs/det_model. \n", "06/15 06:42:40 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - \n", "------------------------------------------------------------\n", "System environment:\n", " sys.platform: linux\n", " Python: 3.10.12 (main, Jun 7 2023, 12:45:35) [GCC 9.4.0]\n", " CUDA available: True\n", " numpy_random_seed: 1318688827\n", " GPU 0: Tesla T4\n", " CUDA_HOME: /usr/local/cuda\n", " NVCC: Cuda compilation tools, release 11.8, V11.8.89\n", " GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0\n", " PyTorch: 2.0.1+cu118\n", " PyTorch compiling details: PyTorch built with:\n", " - GCC 9.3\n", " - C++ Version: 201703\n", " - Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications\n", " - Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\n", " - OpenMP 201511 (a.k.a. OpenMP 4.5)\n", " - LAPACK is enabled (usually provided by MKL)\n", " - NNPACK is enabled\n", " - CPU capability usage: AVX2\n", " - CUDA Runtime 11.8\n", " - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n", " - CuDNN 8.7\n", " - Magma 2.6.1\n", " - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.8, CUDNN_VERSION=8.7.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, \n", "\n", " TorchVision: 0.15.2+cu118\n", " OpenCV: 4.7.0\n", " MMEngine: 0.7.4\n", "\n", "Runtime environment:\n", " cudnn_benchmark: False\n", " mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}\n", " dist_cfg: {'backend': 'nccl'}\n", " seed: 1318688827\n", " Distributed launcher: none\n", " Distributed training: False\n", " GPU number: 1\n", "------------------------------------------------------------\n", "\n", "06/15 06:42:40 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Config:\n", "model = dict(\n", " type='FasterRCNN',\n", " data_preprocessor=dict(\n", " type='DetDataPreprocessor',\n", " mean=[103.53, 116.28, 123.675],\n", " std=[1.0, 1.0, 1.0],\n", " bgr_to_rgb=False,\n", " pad_size_divisor=32),\n", " backbone=dict(\n", " type='ResNet',\n", " depth=50,\n", " num_stages=4,\n", " out_indices=(0, 1, 2, 3),\n", " frozen_stages=1,\n", " norm_cfg=dict(type='BN', requires_grad=False),\n", " norm_eval=True,\n", " style='caffe',\n", " init_cfg=dict(\n", " type='Pretrained',\n", " checkpoint='open-mmlab://detectron2/resnet50_caffe')),\n", " neck=dict(\n", " type='FPN',\n", " in_channels=[256, 512, 1024, 2048],\n", " out_channels=256,\n", " num_outs=5),\n", " rpn_head=dict(\n", " type='RPNHead',\n", " in_channels=256,\n", " feat_channels=256,\n", " anchor_generator=dict(\n", " type='AnchorGenerator',\n", " scales=[8],\n", " ratios=[0.5, 1.0, 2.0],\n", " strides=[4, 8, 16, 32, 64]),\n", " bbox_coder=dict(\n", " type='DeltaXYWHBBoxCoder',\n", " target_means=[0.0, 0.0, 0.0, 0.0],\n", " target_stds=[1.0, 1.0, 1.0, 1.0]),\n", " loss_cls=dict(\n", " type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),\n", " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", " roi_head=dict(\n", " type='StandardRoIHead',\n", " bbox_roi_extractor=dict(\n", " type='SingleRoIExtractor',\n", " roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),\n", " out_channels=256,\n", " featmap_strides=[4, 8, 16, 32]),\n", " bbox_head=dict(\n", " type='Shared2FCBBoxHead',\n", " in_channels=256,\n", " fc_out_channels=1024,\n", " roi_feat_size=7,\n", " num_classes=1,\n", " bbox_coder=dict(\n", " type='DeltaXYWHBBoxCoder',\n", " target_means=[0.0, 0.0, 0.0, 0.0],\n", " target_stds=[0.1, 0.1, 0.2, 0.2]),\n", " reg_class_agnostic=False,\n", " loss_cls=dict(\n", " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),\n", " loss_bbox=dict(type='L1Loss', loss_weight=1.0))),\n", " train_cfg=dict(\n", " rpn=dict(\n", " assigner=dict(\n", " type='MaxIoUAssigner',\n", " pos_iou_thr=0.7,\n", " neg_iou_thr=0.3,\n", " min_pos_iou=0.3,\n", " match_low_quality=True,\n", " ignore_iof_thr=-1),\n", " sampler=dict(\n", " type='RandomSampler',\n", " num=256,\n", " pos_fraction=0.5,\n", " neg_pos_ub=-1,\n", " add_gt_as_proposals=False),\n", " allowed_border=-1,\n", " pos_weight=-1,\n", " debug=False),\n", " rpn_proposal=dict(\n", " nms_pre=2000,\n", " max_per_img=1000,\n", " nms=dict(type='nms', iou_threshold=0.7),\n", " min_bbox_size=0),\n", " rcnn=dict(\n", " assigner=dict(\n", " type='MaxIoUAssigner',\n", " pos_iou_thr=0.5,\n", " neg_iou_thr=0.5,\n", " min_pos_iou=0.5,\n", " match_low_quality=False,\n", " ignore_iof_thr=-1),\n", " sampler=dict(\n", " type='RandomSampler',\n", " num=512,\n", " pos_fraction=0.25,\n", " neg_pos_ub=-1,\n", " add_gt_as_proposals=True),\n", " pos_weight=-1,\n", " debug=False)),\n", " test_cfg=dict(\n", " rpn=dict(\n", " nms_pre=1000,\n", " max_per_img=1000,\n", " nms=dict(type='nms', iou_threshold=0.7),\n", " min_bbox_size=0),\n", " rcnn=dict(\n", " score_thr=0.05,\n", " nms=dict(type='nms', iou_threshold=0.5),\n", " max_per_img=100)))\n", "dataset_type = 'CocoDataset'\n", "data_root = 'data/multisports/'\n", "backend_args = None\n", "train_pipeline = [\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='RandomChoiceResize',\n", " scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", " (1333, 768), (1333, 800)],\n", " keep_ratio=True),\n", " dict(type='RandomFlip', prob=0.5),\n", " dict(type='PackDetInputs')\n", "]\n", "test_pipeline = [\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", "]\n", "train_dataloader = dict(\n", " batch_size=2,\n", " num_workers=2,\n", " persistent_workers=True,\n", " sampler=dict(type='DefaultSampler', shuffle=True),\n", " batch_sampler=dict(type='AspectRatioBatchSampler'),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/multisports_det_anno_train.json',\n", " data_prefix=dict(img='rawframes/'),\n", " filter_cfg=dict(filter_empty_gt=True, min_size=32),\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='RandomChoiceResize',\n", " scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", " (1333, 768), (1333, 800)],\n", " keep_ratio=True),\n", " dict(type='RandomFlip', prob=0.5),\n", " dict(type='PackDetInputs')\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "val_dataloader = dict(\n", " batch_size=1,\n", " num_workers=2,\n", " persistent_workers=True,\n", " drop_last=False,\n", " sampler=dict(type='DefaultSampler', shuffle=False),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/multisports_det_anno_val.json',\n", " data_prefix=dict(img='rawframes/'),\n", " test_mode=True,\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "test_dataloader = dict(\n", " batch_size=1,\n", " num_workers=2,\n", " persistent_workers=True,\n", " drop_last=False,\n", " sampler=dict(type='DefaultSampler', shuffle=False),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/ms_infer_anno.json',\n", " data_prefix=dict(img='rawframes/'),\n", " test_mode=True,\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "val_evaluator = dict(\n", " type='CocoMetric',\n", " ann_file='data/multisports/annotations/multisports_det_anno_val.json',\n", " metric='bbox',\n", " format_only=False,\n", " backend_args=None,\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5])\n", "test_evaluator = dict(\n", " type='CocoMetric',\n", " ann_file='data/multisports/annotations/ms_infer_anno.json',\n", " metric='bbox',\n", " format_only=False,\n", " backend_args=None,\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5])\n", "train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=2, val_interval=1)\n", "val_cfg = dict(type='ValLoop')\n", "test_cfg = dict(type='TestLoop')\n", "param_scheduler = [\n", " dict(type='ConstantLR', factor=1.0, by_epoch=False, begin=0, end=500)\n", "]\n", "optim_wrapper = dict(\n", " type='OptimWrapper',\n", " optimizer=dict(type='SGD', lr=0.005, momentum=0.9, weight_decay=0.0001))\n", "auto_scale_lr = dict(enable=False, base_batch_size=16)\n", "default_scope = 'mmdet'\n", "default_hooks = dict(\n", " timer=dict(type='IterTimerHook'),\n", " logger=dict(type='LoggerHook', interval=50),\n", " param_scheduler=dict(type='ParamSchedulerHook'),\n", " checkpoint=dict(type='CheckpointHook', interval=1),\n", " sampler_seed=dict(type='DistSamplerSeedHook'),\n", " visualization=dict(type='DetVisualizationHook'))\n", "env_cfg = dict(\n", " cudnn_benchmark=False,\n", " mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n", " dist_cfg=dict(backend='nccl'))\n", "vis_backends = [dict(type='LocalVisBackend')]\n", "visualizer = dict(\n", " type='DetLocalVisualizer',\n", " vis_backends=[dict(type='LocalVisBackend')],\n", " name='visualizer')\n", "log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)\n", "log_level = 'INFO'\n", "load_from = 'https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth'\n", "resume = False\n", "metainfo = dict(classes=('person', ), palette=[(220, 20, 60)])\n", "launcher = 'none'\n", "work_dir = 'work_dirs/det_model'\n", "\n", "06/15 06:42:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.\n", "06/15 06:42:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Hooks will be executed in the following order:\n", "before_run:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "before_train:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_train_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DistSamplerSeedHook \n", " -------------------- \n", "before_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train_epoch:\n", "(NORMAL ) IterTimerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_val_epoch:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "before_val_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_val_iter:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DetVisualizationHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_val_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train:\n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_test_epoch:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "before_test_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_test_iter:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DetVisualizationHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_test_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_run:\n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "loading annotations into memory...\n", "Done (t=0.00s)\n", "creating index...\n", "index created!\n", "loading annotations into memory...\n", "Done (t=0.00s)\n", "creating index...\n", "index created!\n", "loading annotations into memory...\n", "Done (t=0.00s)\n", "creating index...\n", "index created!\n", "06/15 06:42:50 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - load model from: open-mmlab://detectron2/resnet50_caffe\n", "06/15 06:42:50 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Loads checkpoint by openmmlab backend from path: open-mmlab://detectron2/resnet50_caffe\n", "Downloading: \"https://download.openmmlab.com/pretrain/third_party/resnet50_msra-5891d200.pth\" to /root/.cache/torch/hub/checkpoints/resnet50_msra-5891d200.pth\n", "100% 89.9M/89.9M [00:03<00:00, 31.4MB/s]\n", "06/15 06:42:53 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - The model and loaded state dict do not match exactly\n", "\n", "unexpected key in source state_dict: conv1.bias\n", "\n", "Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth\n", "Downloading: \"https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth\" to /root/.cache/torch/hub/checkpoints/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth\n", "100% 158M/158M [00:06<00:00, 24.4MB/s]\n", "06/15 06:43:00 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Load checkpoint from https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth\n", "06/15 06:43:00 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - \"FileClient\" will be deprecated in future. Please use io functions in https://mmengine.readthedocs.io/en/latest/api/fileio.html#file-io\n", "06/15 06:43:00 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - \"HardDiskBackend\" is the alias of \"LocalBackend\" and the former will be deprecated in future.\n", "06/15 06:43:00 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Checkpoints will be saved to /content/mmaction2/projects/stad_tutorial/work_dirs/det_model.\n", "06/15 06:43:33 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][ 50/118] lr: 5.0000e-03 eta: 0:02:00 time: 0.6468 data_time: 0.0127 memory: 3419 loss: 0.4823 loss_rpn_cls: 0.0063 loss_rpn_bbox: 0.0151 loss_cls: 0.1676 acc: 95.0195 loss_bbox: 0.2933\n", "06/15 06:43:57 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][100/118] lr: 5.0000e-03 eta: 0:01:17 time: 0.4922 data_time: 0.0077 memory: 3419 loss: 0.4234 loss_rpn_cls: 0.0031 loss_rpn_bbox: 0.0134 loss_cls: 0.1394 acc: 91.9922 loss_bbox: 0.2676\n", "06/15 06:44:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person_20230615_064239\n", "06/15 06:44:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 1 epochs\n", "06/15 06:44:15 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][ 50/120] eta: 0:00:08 time: 0.1269 data_time: 0.0112 memory: 3419 \n", "06/15 06:44:21 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][100/120] eta: 0:00:02 time: 0.1159 data_time: 0.0032 memory: 682 \n", "06/15 06:44:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Evaluating bbox...\n", "Loading and preparing results...\n", "DONE (t=0.00s)\n", "creating index...\n", "index created!\n", "Running per image evaluation...\n", "Evaluate annotation type *bbox*\n", "DONE (t=0.04s).\n", "Accumulating evaluation results...\n", "DONE (t=0.01s).\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = 0.913\n", " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = 0.817\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = 0.908\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = 0.960\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=300 ] = 0.960\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=1000 ] = 0.960\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = 1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = 0.960\n", "06/15 06:44:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - bbox_mAP_copypaste: 0.913 -1.000 -1.000 -1.000 0.817 0.908\n", "06/15 06:44:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][120/120] coco/bbox_mAP_50: -1.0000 coco/bbox_AR@100: 0.9600 data_time: 0.0065 time: 0.1205\n", "06/15 06:44:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][ 50/118] lr: 5.0000e-03 eta: 0:00:37 time: 0.5233 data_time: 0.0099 memory: 3419 loss: 0.3250 loss_rpn_cls: 0.0025 loss_rpn_bbox: 0.0107 loss_cls: 0.1116 acc: 95.2148 loss_bbox: 0.2002\n", "06/15 06:45:16 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][100/118] lr: 5.0000e-03 eta: 0:00:09 time: 0.5354 data_time: 0.0083 memory: 3419 loss: 0.3042 loss_rpn_cls: 0.0013 loss_rpn_bbox: 0.0105 loss_cls: 0.0946 acc: 94.9219 loss_bbox: 0.1978\n", "06/15 06:45:26 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person_20230615_064239\n", "06/15 06:45:26 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 2 epochs\n", "06/15 06:45:34 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][ 50/120] eta: 0:00:08 time: 0.1237 data_time: 0.0050 memory: 3419 \n", "06/15 06:45:40 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][100/120] eta: 0:00:02 time: 0.1225 data_time: 0.0058 memory: 682 \n", "06/15 06:45:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Evaluating bbox...\n", "Loading and preparing results...\n", "DONE (t=0.00s)\n", "creating index...\n", "index created!\n", "Running per image evaluation...\n", "Evaluate annotation type *bbox*\n", "DONE (t=0.07s).\n", "Accumulating evaluation results...\n", "DONE (t=0.01s).\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = 0.912\n", " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = 0.747\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = 0.916\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = 0.955\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=300 ] = 0.955\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=1000 ] = 0.955\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = 1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = 0.954\n", "06/15 06:45:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - bbox_mAP_copypaste: 0.912 -1.000 -1.000 -1.000 0.747 0.916\n", "06/15 06:45:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][120/120] coco/bbox_mAP_50: -1.0000 coco/bbox_AR@100: 0.9550 data_time: 0.0052 time: 0.1228\n", "\u001b[32mTraining finished successfully. \u001b[0m\n" ] } ], "source": [ "!mim train mmdet configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py \\\n", " --work-dir work_dirs/det_model" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "-pf9MnuUxRAh" }, "source": [ "### 2.4 生成 proposal bboxes\n", "\n", "在时空行为检测模型训练时,需要基于检测模型推理得到的 proposal,而不能基于标注的检测框。因此我们需要利用训练好的检测模型对整个数据集进行推理,得到 proposal 后转换为需要的格式,用于后续训练。\n", "\n", "#### 2.4.1 将数据集转换为 Coco 格式\n", "\n", "我们提供了脚本将 MultiSports 数据集转换成没有真值的标注格式,用于推理。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "nL2n0AKJxRAi", "outputId": "51907af1-7da3-4713-8e90-a61b052000aa" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[>>] 2350/2350, 1606.7 task/s, elapsed: 1s, ETA: 0s\n", "save json file: data/multisports/rawframes/../annotations/ms_infer_anno.json\n" ] } ], "source": [ "!echo 'person' > data/multisports/annotations/label_map.txt\n", "!python tools/images2coco.py \\\n", " data/multisports/rawframes \\\n", " data/multisports/annotations/label_map.txt \\\n", " ms_infer_anno.json" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "_REQniysxRAj" }, "source": [ "#### 2.4.2 推理生成 proposal file" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "ShnTsjs1xRAk" }, "source": [ "MMDetection 模型的推理同样基于 MIM,更多测试命令请参考 MIM [教程](https://github.com/open-mmlab/mim#command)。\n", "\n", "推理完成后,会将推理结果保存在 'data/multisports/ms_proposals.pkl'。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "DXnT4aArxRAm", "outputId": "565faf02-4b7f-49ab-f30f-b20e7eb09085" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Testing command is /usr/bin/python3 /usr/local/lib/python3.10/dist-packages/mmdet/.mim/tools/test.py configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py work_dirs/det_model/epoch_2.pth --launcher none --out data/multisports/annotations/ms_det_proposals.pkl. \n", "06/15 06:45:52 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - \n", "------------------------------------------------------------\n", "System environment:\n", " sys.platform: linux\n", " Python: 3.10.12 (main, Jun 7 2023, 12:45:35) [GCC 9.4.0]\n", " CUDA available: True\n", " numpy_random_seed: 1403639615\n", " GPU 0: Tesla T4\n", " CUDA_HOME: /usr/local/cuda\n", " NVCC: Cuda compilation tools, release 11.8, V11.8.89\n", " GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0\n", " PyTorch: 2.0.1+cu118\n", " PyTorch compiling details: PyTorch built with:\n", " - GCC 9.3\n", " - C++ Version: 201703\n", " - Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications\n", " - Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\n", " - OpenMP 201511 (a.k.a. OpenMP 4.5)\n", " - LAPACK is enabled (usually provided by MKL)\n", " - NNPACK is enabled\n", " - CPU capability usage: AVX2\n", " - CUDA Runtime 11.8\n", " - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n", " - CuDNN 8.7\n", " - Magma 2.6.1\n", " - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.8, CUDNN_VERSION=8.7.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, \n", "\n", " TorchVision: 0.15.2+cu118\n", " OpenCV: 4.7.0\n", " MMEngine: 0.7.4\n", "\n", "Runtime environment:\n", " cudnn_benchmark: False\n", " mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}\n", " dist_cfg: {'backend': 'nccl'}\n", " seed: 1403639615\n", " Distributed launcher: none\n", " Distributed training: False\n", " GPU number: 1\n", "------------------------------------------------------------\n", "\n", "06/15 06:45:52 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Config:\n", "model = dict(\n", " type='FasterRCNN',\n", " data_preprocessor=dict(\n", " type='DetDataPreprocessor',\n", " mean=[103.53, 116.28, 123.675],\n", " std=[1.0, 1.0, 1.0],\n", " bgr_to_rgb=False,\n", " pad_size_divisor=32),\n", " backbone=dict(\n", " type='ResNet',\n", " depth=50,\n", " num_stages=4,\n", " out_indices=(0, 1, 2, 3),\n", " frozen_stages=1,\n", " norm_cfg=dict(type='BN', requires_grad=False),\n", " norm_eval=True,\n", " style='caffe',\n", " init_cfg=dict(\n", " type='Pretrained',\n", " checkpoint='open-mmlab://detectron2/resnet50_caffe')),\n", " neck=dict(\n", " type='FPN',\n", " in_channels=[256, 512, 1024, 2048],\n", " out_channels=256,\n", " num_outs=5),\n", " rpn_head=dict(\n", " type='RPNHead',\n", " in_channels=256,\n", " feat_channels=256,\n", " anchor_generator=dict(\n", " type='AnchorGenerator',\n", " scales=[8],\n", " ratios=[0.5, 1.0, 2.0],\n", " strides=[4, 8, 16, 32, 64]),\n", " bbox_coder=dict(\n", " type='DeltaXYWHBBoxCoder',\n", " target_means=[0.0, 0.0, 0.0, 0.0],\n", " target_stds=[1.0, 1.0, 1.0, 1.0]),\n", " loss_cls=dict(\n", " type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),\n", " loss_bbox=dict(type='L1Loss', loss_weight=1.0)),\n", " roi_head=dict(\n", " type='StandardRoIHead',\n", " bbox_roi_extractor=dict(\n", " type='SingleRoIExtractor',\n", " roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),\n", " out_channels=256,\n", " featmap_strides=[4, 8, 16, 32]),\n", " bbox_head=dict(\n", " type='Shared2FCBBoxHead',\n", " in_channels=256,\n", " fc_out_channels=1024,\n", " roi_feat_size=7,\n", " num_classes=1,\n", " bbox_coder=dict(\n", " type='DeltaXYWHBBoxCoder',\n", " target_means=[0.0, 0.0, 0.0, 0.0],\n", " target_stds=[0.1, 0.1, 0.2, 0.2]),\n", " reg_class_agnostic=False,\n", " loss_cls=dict(\n", " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),\n", " loss_bbox=dict(type='L1Loss', loss_weight=1.0))),\n", " train_cfg=dict(\n", " rpn=dict(\n", " assigner=dict(\n", " type='MaxIoUAssigner',\n", " pos_iou_thr=0.7,\n", " neg_iou_thr=0.3,\n", " min_pos_iou=0.3,\n", " match_low_quality=True,\n", " ignore_iof_thr=-1),\n", " sampler=dict(\n", " type='RandomSampler',\n", " num=256,\n", " pos_fraction=0.5,\n", " neg_pos_ub=-1,\n", " add_gt_as_proposals=False),\n", " allowed_border=-1,\n", " pos_weight=-1,\n", " debug=False),\n", " rpn_proposal=dict(\n", " nms_pre=2000,\n", " max_per_img=1000,\n", " nms=dict(type='nms', iou_threshold=0.7),\n", " min_bbox_size=0),\n", " rcnn=dict(\n", " assigner=dict(\n", " type='MaxIoUAssigner',\n", " pos_iou_thr=0.5,\n", " neg_iou_thr=0.5,\n", " min_pos_iou=0.5,\n", " match_low_quality=False,\n", " ignore_iof_thr=-1),\n", " sampler=dict(\n", " type='RandomSampler',\n", " num=512,\n", " pos_fraction=0.25,\n", " neg_pos_ub=-1,\n", " add_gt_as_proposals=True),\n", " pos_weight=-1,\n", " debug=False)),\n", " test_cfg=dict(\n", " rpn=dict(\n", " nms_pre=1000,\n", " max_per_img=1000,\n", " nms=dict(type='nms', iou_threshold=0.7),\n", " min_bbox_size=0),\n", " rcnn=dict(\n", " score_thr=0.05,\n", " nms=dict(type='nms', iou_threshold=0.5),\n", " max_per_img=100)))\n", "dataset_type = 'CocoDataset'\n", "data_root = 'data/multisports/'\n", "backend_args = None\n", "train_pipeline = [\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='RandomChoiceResize',\n", " scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", " (1333, 768), (1333, 800)],\n", " keep_ratio=True),\n", " dict(type='RandomFlip', prob=0.5),\n", " dict(type='PackDetInputs')\n", "]\n", "test_pipeline = [\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", "]\n", "train_dataloader = dict(\n", " batch_size=2,\n", " num_workers=2,\n", " persistent_workers=True,\n", " sampler=dict(type='DefaultSampler', shuffle=True),\n", " batch_sampler=dict(type='AspectRatioBatchSampler'),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/multisports_det_anno_train.json',\n", " data_prefix=dict(img='rawframes/'),\n", " filter_cfg=dict(filter_empty_gt=True, min_size=32),\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='RandomChoiceResize',\n", " scales=[(1333, 640), (1333, 672), (1333, 704), (1333, 736),\n", " (1333, 768), (1333, 800)],\n", " keep_ratio=True),\n", " dict(type='RandomFlip', prob=0.5),\n", " dict(type='PackDetInputs')\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "val_dataloader = dict(\n", " batch_size=1,\n", " num_workers=2,\n", " persistent_workers=True,\n", " drop_last=False,\n", " sampler=dict(type='DefaultSampler', shuffle=False),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/multisports_det_anno_val.json',\n", " data_prefix=dict(img='rawframes/'),\n", " test_mode=True,\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "test_dataloader = dict(\n", " batch_size=1,\n", " num_workers=2,\n", " persistent_workers=True,\n", " drop_last=False,\n", " sampler=dict(type='DefaultSampler', shuffle=False),\n", " dataset=dict(\n", " type='CocoDataset',\n", " data_root='data/multisports/',\n", " ann_file='annotations/ms_infer_anno.json',\n", " data_prefix=dict(img='rawframes/'),\n", " test_mode=True,\n", " pipeline=[\n", " dict(type='LoadImageFromFile', backend_args=None),\n", " dict(type='Resize', scale=(1333, 800), keep_ratio=True),\n", " dict(type='LoadAnnotations', with_bbox=True),\n", " dict(\n", " type='PackDetInputs',\n", " meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',\n", " 'scale_factor'))\n", " ],\n", " backend_args=None,\n", " metainfo=dict(classes=('person', ), palette=[(220, 20, 60)])))\n", "val_evaluator = dict(\n", " type='CocoMetric',\n", " ann_file='data/multisports/annotations/multisports_det_anno_val.json',\n", " metric='bbox',\n", " format_only=False,\n", " backend_args=None,\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5])\n", "test_evaluator = dict(\n", " type='CocoMetric',\n", " ann_file='data/multisports/annotations/ms_infer_anno.json',\n", " metric='bbox',\n", " format_only=False,\n", " backend_args=None,\n", " metric_items=['mAP_50', 'AR@100'],\n", " iou_thrs=[0.5])\n", "train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=2, val_interval=1)\n", "val_cfg = dict(type='ValLoop')\n", "test_cfg = dict(type='TestLoop')\n", "param_scheduler = [\n", " dict(type='ConstantLR', factor=1.0, by_epoch=False, begin=0, end=500)\n", "]\n", "optim_wrapper = dict(\n", " type='OptimWrapper',\n", " optimizer=dict(type='SGD', lr=0.005, momentum=0.9, weight_decay=0.0001))\n", "auto_scale_lr = dict(enable=False, base_batch_size=16)\n", "default_scope = 'mmdet'\n", "default_hooks = dict(\n", " timer=dict(type='IterTimerHook'),\n", " logger=dict(type='LoggerHook', interval=50),\n", " param_scheduler=dict(type='ParamSchedulerHook'),\n", " checkpoint=dict(type='CheckpointHook', interval=1),\n", " sampler_seed=dict(type='DistSamplerSeedHook'),\n", " visualization=dict(type='DetVisualizationHook'))\n", "env_cfg = dict(\n", " cudnn_benchmark=False,\n", " mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n", " dist_cfg=dict(backend='nccl'))\n", "vis_backends = [dict(type='LocalVisBackend')]\n", "visualizer = dict(\n", " type='DetLocalVisualizer',\n", " vis_backends=[dict(type='LocalVisBackend')],\n", " name='visualizer')\n", "log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)\n", "log_level = 'INFO'\n", "load_from = 'work_dirs/det_model/epoch_2.pth'\n", "resume = False\n", "metainfo = dict(classes=('person', ), palette=[(220, 20, 60)])\n", "launcher = 'none'\n", "work_dir = './work_dirs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person'\n", "\n", "06/15 06:45:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.\n", "06/15 06:45:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Hooks will be executed in the following order:\n", "before_run:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "before_train:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_train_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DistSamplerSeedHook \n", " -------------------- \n", "before_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train_epoch:\n", "(NORMAL ) IterTimerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_val_epoch:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "before_val_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_val_iter:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DetVisualizationHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_val_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train:\n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_test_epoch:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "before_test_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_test_iter:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DetVisualizationHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_test_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_run:\n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "loading annotations into memory...\n", "Done (t=0.00s)\n", "creating index...\n", "index created!\n", "loading annotations into memory...\n", "Done (t=0.00s)\n", "creating index...\n", "index created!\n", "06/15 06:45:56 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - The prefix is not set in metric class DumpDetResults.\n", "Loads checkpoint by local backend from path: work_dirs/det_model/epoch_2.pth\n", "06/15 06:45:57 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Load checkpoint from work_dirs/det_model/epoch_2.pth\n", "06/15 06:46:04 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 50/2350] eta: 0:05:46 time: 0.1507 data_time: 0.0046 memory: 512 \n", "06/15 06:46:10 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 100/2350] eta: 0:05:06 time: 0.1217 data_time: 0.0059 memory: 512 \n", "06/15 06:46:16 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 150/2350] eta: 0:04:47 time: 0.1193 data_time: 0.0022 memory: 512 \n", "06/15 06:46:22 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 200/2350] eta: 0:04:34 time: 0.1197 data_time: 0.0023 memory: 512 \n", "06/15 06:46:29 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 250/2350] eta: 0:04:27 time: 0.1258 data_time: 0.0073 memory: 512 \n", "06/15 06:46:35 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 300/2350] eta: 0:04:19 time: 0.1215 data_time: 0.0026 memory: 512 \n", "06/15 06:46:41 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 350/2350] eta: 0:04:12 time: 0.1242 data_time: 0.0046 memory: 512 \n", "06/15 06:46:47 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 400/2350] eta: 0:04:04 time: 0.1218 data_time: 0.0029 memory: 512 \n", "06/15 06:46:53 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 450/2350] eta: 0:03:58 time: 0.1229 data_time: 0.0042 memory: 512 \n", "06/15 06:46:59 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 500/2350] eta: 0:03:51 time: 0.1229 data_time: 0.0048 memory: 512 \n", "06/15 06:47:05 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 550/2350] eta: 0:03:44 time: 0.1193 data_time: 0.0020 memory: 512 \n", "06/15 06:47:12 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 600/2350] eta: 0:03:37 time: 0.1234 data_time: 0.0060 memory: 512 \n", "06/15 06:47:17 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 650/2350] eta: 0:03:30 time: 0.1184 data_time: 0.0025 memory: 512 \n", "06/15 06:47:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 700/2350] eta: 0:03:24 time: 0.1200 data_time: 0.0041 memory: 512 \n", "06/15 06:47:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 750/2350] eta: 0:03:17 time: 0.1216 data_time: 0.0046 memory: 512 \n", "06/15 06:47:35 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 800/2350] eta: 0:03:11 time: 0.1184 data_time: 0.0024 memory: 512 \n", "06/15 06:47:42 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 850/2350] eta: 0:03:04 time: 0.1234 data_time: 0.0064 memory: 512 \n", "06/15 06:47:48 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 900/2350] eta: 0:02:58 time: 0.1196 data_time: 0.0028 memory: 512 \n", "06/15 06:47:54 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [ 950/2350] eta: 0:02:52 time: 0.1217 data_time: 0.0046 memory: 512 \n", "06/15 06:48:00 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1000/2350] eta: 0:02:45 time: 0.1220 data_time: 0.0046 memory: 512 \n", "06/15 06:48:06 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1050/2350] eta: 0:02:39 time: 0.1203 data_time: 0.0028 memory: 512 \n", "06/15 06:48:12 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1100/2350] eta: 0:02:33 time: 0.1231 data_time: 0.0055 memory: 512 \n", "06/15 06:48:18 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1150/2350] eta: 0:02:27 time: 0.1207 data_time: 0.0033 memory: 512 \n", "06/15 06:48:24 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1200/2350] eta: 0:02:21 time: 0.1217 data_time: 0.0049 memory: 512 \n", "06/15 06:48:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1250/2350] eta: 0:02:14 time: 0.1211 data_time: 0.0038 memory: 512 \n", "06/15 06:48:36 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1300/2350] eta: 0:02:08 time: 0.1242 data_time: 0.0070 memory: 512 \n", "06/15 06:48:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1350/2350] eta: 0:02:02 time: 0.1249 data_time: 0.0077 memory: 512 \n", "06/15 06:48:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1400/2350] eta: 0:01:56 time: 0.1181 data_time: 0.0022 memory: 512 \n", "06/15 06:48:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1450/2350] eta: 0:01:50 time: 0.1219 data_time: 0.0055 memory: 512 \n", "06/15 06:49:01 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1500/2350] eta: 0:01:44 time: 0.1198 data_time: 0.0034 memory: 512 \n", "06/15 06:49:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1550/2350] eta: 0:01:37 time: 0.1194 data_time: 0.0028 memory: 512 \n", "06/15 06:49:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1600/2350] eta: 0:01:31 time: 0.1228 data_time: 0.0059 memory: 512 \n", "06/15 06:49:19 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1650/2350] eta: 0:01:25 time: 0.1193 data_time: 0.0026 memory: 512 \n", "06/15 06:49:25 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1700/2350] eta: 0:01:19 time: 0.1232 data_time: 0.0060 memory: 512 \n", "06/15 06:49:31 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1750/2350] eta: 0:01:13 time: 0.1199 data_time: 0.0028 memory: 512 \n", "06/15 06:49:37 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1800/2350] eta: 0:01:07 time: 0.1205 data_time: 0.0035 memory: 512 \n", "06/15 06:49:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1850/2350] eta: 0:01:01 time: 0.1237 data_time: 0.0067 memory: 512 \n", "06/15 06:49:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1900/2350] eta: 0:00:54 time: 0.1190 data_time: 0.0024 memory: 512 \n", "06/15 06:49:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [1950/2350] eta: 0:00:48 time: 0.1238 data_time: 0.0069 memory: 512 \n", "06/15 06:50:01 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2000/2350] eta: 0:00:42 time: 0.1183 data_time: 0.0020 memory: 512 \n", "06/15 06:50:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2050/2350] eta: 0:00:36 time: 0.1212 data_time: 0.0049 memory: 512 \n", "06/15 06:50:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2100/2350] eta: 0:00:30 time: 0.1212 data_time: 0.0044 memory: 512 \n", "06/15 06:50:19 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2150/2350] eta: 0:00:24 time: 0.1180 data_time: 0.0019 memory: 512 \n", "06/15 06:50:25 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2200/2350] eta: 0:00:18 time: 0.1233 data_time: 0.0062 memory: 512 \n", "06/15 06:50:31 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2250/2350] eta: 0:00:12 time: 0.1186 data_time: 0.0021 memory: 512 \n", "06/15 06:50:37 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2300/2350] eta: 0:00:06 time: 0.1227 data_time: 0.0064 memory: 512 \n", "06/15 06:50:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2350/2350] eta: 0:00:00 time: 0.1196 data_time: 0.0033 memory: 512 \n", "06/15 06:50:44 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Evaluating bbox...\n", "Loading and preparing results...\n", "DONE (t=0.01s)\n", "creating index...\n", "index created!\n", "Running per image evaluation...\n", "Evaluate annotation type *bbox*\n", "DONE (t=0.37s).\n", "Accumulating evaluation results...\n", "DONE (t=0.28s).\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = -1.000\n", " Average Precision (AP) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=100 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=300 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= all | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= small | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area=medium | maxDets=1000 ] = -1.000\n", " Average Recall (AR) @[ IoU=0.50:0.50 | area= large | maxDets=1000 ] = -1.000\n", "06/15 06:50:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - bbox_mAP_copypaste: -1.000 -1.000 -1.000 -1.000 -1.000 -1.000\n", "06/15 06:50:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Results has been saved to data/multisports/annotations/ms_det_proposals.pkl.\n", "06/15 06:50:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(test) [2350/2350] coco/bbox_mAP_50: -1.0000 coco/bbox_AR@100: -1.0000 data_time: 0.0042 time: 0.1219\n", "\u001b[32mTesting finished successfully.\u001b[0m\n" ] } ], "source": [ "!mim test mmdet configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py \\\n", " --checkpoint work_dirs/det_model/epoch_2.pth \\\n", " --out data/multisports/annotations/ms_det_proposals.pkl" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "1zErF-nsxRAo" }, "source": [ "## 3. 训练时空行为检测模型\n", "\n", "### 3.1 转换标注文件以及 proposal 文件\n", "\n", "MultiSports 数据集提供的标注文件,以及 MMDetection 推理生成的 proposal 都需要进行格式转换,才能用于时空行为检测模型的训练。我们已经提供了相关的脚本工具,执行后即可生成指定格式" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "naAfcO4QxRAo", "outputId": "2a309bef-241f-44fc-8276-b2ea4735e37d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "loading test result...\n", "[>>] 2350/2350, 3582.6 task/s, elapsed: 1s, ETA: 0s\n", "\u001b[01;34mdata/multisports/annotations\u001b[00m\n", "├── label_map.txt\n", "├── ms_det_proposals.pkl\n", "├── ms_infer_anno.json\n", "├── multisports_det_anno_train.json\n", "├── multisports_det_anno_val.json\n", "├── \u001b[01;32mmultisports_GT.pkl\u001b[00m\n", "├── multisports_proposals_train.pkl\n", "├── multisports_proposals_val.pkl\n", "├── multisports_train.csv\n", "└── multisports_val.csv\n", "\n", "0 directories, 10 files\n" ] } ], "source": [ "# 转换 anno 文件\n", "!python ../../tools/data/multisports/parse_anno.py\n", "\n", "# 转换 proposal 文件\n", "!python tools/convert_proposals.py\n", "\n", "!tree data/multisports/annotations" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "balpcJEbxRAp" }, "source": [ "### 3.2 训练时空行为检测模型\n", "\n", "MMAction2 中已经支持训练 MultiSports 数据集,这里只需要修改 proposal 文件的路径即可, 详细配置可以参考 [config](configs/slowonly_k400_multisports.py) 文件。由于训练数据较少,配置中将在完整 MultiSports 数据集上训练得到的模型作为预训练模型,使用自定义数据集训练时不需要指定 `load_from` 配置。" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cIuQTmnuxRAq", "outputId": "253d7f08-3c89-4e31-c5f4-3880aed5d817" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training command is /usr/bin/python3 /content/mmaction2/mmaction/.mim/tools/train.py configs/slowonly_k400_multisports.py --launcher none --work-dir work_dirs/stad_model/. \n", "06/15 06:50:58 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - \n", "------------------------------------------------------------\n", "System environment:\n", " sys.platform: linux\n", " Python: 3.10.12 (main, Jun 7 2023, 12:45:35) [GCC 9.4.0]\n", " CUDA available: True\n", " numpy_random_seed: 546414243\n", " GPU 0: Tesla T4\n", " CUDA_HOME: /usr/local/cuda\n", " NVCC: Cuda compilation tools, release 11.8, V11.8.89\n", " GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0\n", " PyTorch: 2.0.1+cu118\n", " PyTorch compiling details: PyTorch built with:\n", " - GCC 9.3\n", " - C++ Version: 201703\n", " - Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications\n", " - Intel(R) MKL-DNN v2.7.3 (Git Hash 6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\n", " - OpenMP 201511 (a.k.a. OpenMP 4.5)\n", " - LAPACK is enabled (usually provided by MKL)\n", " - NNPACK is enabled\n", " - CPU capability usage: AVX2\n", " - CUDA Runtime 11.8\n", " - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n", " - CuDNN 8.7\n", " - Magma 2.6.1\n", " - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.8, CUDNN_VERSION=8.7.0, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wunused-local-typedefs -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, \n", "\n", " TorchVision: 0.15.2+cu118\n", " OpenCV: 4.7.0\n", " MMEngine: 0.7.4\n", "\n", "Runtime environment:\n", " cudnn_benchmark: False\n", " mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}\n", " dist_cfg: {'backend': 'nccl'}\n", " seed: 546414243\n", " diff_rank_seed: False\n", " deterministic: False\n", " Distributed launcher: none\n", " Distributed training: False\n", " GPU number: 1\n", "------------------------------------------------------------\n", "\n", "06/15 06:50:59 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Config:\n", "default_scope = 'mmaction'\n", "default_hooks = dict(\n", " runtime_info=dict(type='RuntimeInfoHook', _scope_='mmaction'),\n", " timer=dict(type='IterTimerHook', _scope_='mmaction'),\n", " logger=dict(\n", " type='LoggerHook', interval=20, ignore_last=False, _scope_='mmaction'),\n", " param_scheduler=dict(type='ParamSchedulerHook', _scope_='mmaction'),\n", " checkpoint=dict(\n", " type='CheckpointHook',\n", " interval=1,\n", " save_best='auto',\n", " _scope_='mmaction'),\n", " sampler_seed=dict(type='DistSamplerSeedHook', _scope_='mmaction'),\n", " sync_buffers=dict(type='SyncBuffersHook', _scope_='mmaction'))\n", "env_cfg = dict(\n", " cudnn_benchmark=False,\n", " mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n", " dist_cfg=dict(backend='nccl'))\n", "log_processor = dict(\n", " type='LogProcessor', window_size=20, by_epoch=True, _scope_='mmaction')\n", "vis_backends = [dict(type='LocalVisBackend', _scope_='mmaction')]\n", "visualizer = dict(\n", " type='ActionVisualizer',\n", " vis_backends=[dict(type='LocalVisBackend')],\n", " _scope_='mmaction')\n", "log_level = 'INFO'\n", "load_from = 'https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth'\n", "resume = False\n", "url = 'https://download.openmmlab.com/mmaction/v1.0/recognition/slowonly/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth'\n", "num_classes = 66\n", "model = dict(\n", " type='FastRCNN',\n", " _scope_='mmdet',\n", " init_cfg=dict(\n", " type='Pretrained',\n", " checkpoint=\n", " 'https://download.openmmlab.com/mmaction/v1.0/recognition/slowonly/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth'\n", " ),\n", " backbone=dict(\n", " type='mmaction.ResNet3dSlowOnly',\n", " depth=50,\n", " pretrained=None,\n", " pretrained2d=False,\n", " lateral=False,\n", " num_stages=4,\n", " conv1_kernel=(1, 7, 7),\n", " conv1_stride_t=1,\n", " pool1_stride_t=1,\n", " spatial_strides=(1, 2, 2, 1)),\n", " roi_head=dict(\n", " type='AVARoIHead',\n", " bbox_roi_extractor=dict(\n", " type='SingleRoIExtractor3D',\n", " roi_layer_type='RoIAlign',\n", " output_size=8,\n", " with_temporal_pool=True),\n", " bbox_head=dict(\n", " type='BBoxHeadAVA',\n", " in_channels=2048,\n", " num_classes=66,\n", " multilabel=False,\n", " dropout_ratio=0.5)),\n", " data_preprocessor=dict(\n", " type='mmaction.ActionDataPreprocessor',\n", " mean=[123.675, 116.28, 103.53],\n", " std=[58.395, 57.12, 57.375],\n", " format_shape='NCTHW'),\n", " train_cfg=dict(\n", " rcnn=dict(\n", " assigner=dict(\n", " type='MaxIoUAssignerAVA',\n", " pos_iou_thr=0.9,\n", " neg_iou_thr=0.9,\n", " min_pos_iou=0.9),\n", " sampler=dict(\n", " type='RandomSampler',\n", " num=32,\n", " pos_fraction=1,\n", " neg_pos_ub=-1,\n", " add_gt_as_proposals=True),\n", " pos_weight=1.0)),\n", " test_cfg=dict(rcnn=None))\n", "dataset_type = 'AVADataset'\n", "data_root = 'data/multisports/trainval'\n", "anno_root = 'data/multisports/annotations'\n", "ann_file_train = 'data/multisports/annotations/multisports_train.csv'\n", "ann_file_val = 'data/multisports/annotations/multisports_val.csv'\n", "gt_file = 'data/multisports/annotations/multisports_GT.pkl'\n", "proposal_file_train = 'data/multisports/annotations/multisports_proposals_train.pkl'\n", "proposal_file_val = 'data/multisports/annotations/multisports_proposals_val.pkl'\n", "file_client_args = dict(io_backend='disk')\n", "train_pipeline = [\n", " dict(type='DecordInit', io_backend='disk', _scope_='mmaction'),\n", " dict(\n", " type='SampleAVAFrames',\n", " clip_len=4,\n", " frame_interval=16,\n", " _scope_='mmaction'),\n", " dict(type='DecordDecode', _scope_='mmaction'),\n", " dict(type='RandomRescale', scale_range=(256, 320), _scope_='mmaction'),\n", " dict(type='RandomCrop', size=256, _scope_='mmaction'),\n", " dict(type='Flip', flip_ratio=0.5, _scope_='mmaction'),\n", " dict(\n", " type='FormatShape',\n", " input_format='NCTHW',\n", " collapse=True,\n", " _scope_='mmaction'),\n", " dict(type='PackActionInputs', _scope_='mmaction')\n", "]\n", "val_pipeline = [\n", " dict(type='DecordInit', io_backend='disk', _scope_='mmaction'),\n", " dict(\n", " type='SampleAVAFrames',\n", " clip_len=4,\n", " frame_interval=16,\n", " test_mode=True,\n", " _scope_='mmaction'),\n", " dict(type='DecordDecode', _scope_='mmaction'),\n", " dict(type='Resize', scale=(-1, 256), _scope_='mmaction'),\n", " dict(\n", " type='FormatShape',\n", " input_format='NCTHW',\n", " collapse=True,\n", " _scope_='mmaction'),\n", " dict(type='PackActionInputs', _scope_='mmaction')\n", "]\n", "train_dataloader = dict(\n", " batch_size=2,\n", " num_workers=2,\n", " persistent_workers=True,\n", " sampler=dict(type='DefaultSampler', shuffle=True, _scope_='mmaction'),\n", " dataset=dict(\n", " type='AVADataset',\n", " ann_file='data/multisports/annotations/multisports_train.csv',\n", " pipeline=[\n", " dict(type='DecordInit', io_backend='disk'),\n", " dict(type='SampleAVAFrames', clip_len=4, frame_interval=16),\n", " dict(type='DecordDecode'),\n", " dict(type='RandomRescale', scale_range=(256, 320)),\n", " dict(type='RandomCrop', size=256),\n", " dict(type='Flip', flip_ratio=0.5),\n", " dict(type='FormatShape', input_format='NCTHW', collapse=True),\n", " dict(type='PackActionInputs')\n", " ],\n", " num_classes=66,\n", " proposal_file=\n", " 'data/multisports/annotations/multisports_proposals_train.pkl',\n", " data_prefix=dict(img='data/multisports/trainval'),\n", " timestamp_start=1,\n", " start_index=0,\n", " use_frames=False,\n", " fps=1,\n", " _scope_='mmaction'))\n", "val_dataloader = dict(\n", " batch_size=1,\n", " num_workers=2,\n", " persistent_workers=True,\n", " sampler=dict(type='DefaultSampler', shuffle=False, _scope_='mmaction'),\n", " dataset=dict(\n", " type='AVADataset',\n", " ann_file='data/multisports/annotations/multisports_val.csv',\n", " pipeline=[\n", " dict(type='DecordInit', io_backend='disk'),\n", " dict(\n", " type='SampleAVAFrames',\n", " clip_len=4,\n", " frame_interval=16,\n", " test_mode=True),\n", " dict(type='DecordDecode'),\n", " dict(type='Resize', scale=(-1, 256)),\n", " dict(type='FormatShape', input_format='NCTHW', collapse=True),\n", " dict(type='PackActionInputs')\n", " ],\n", " num_classes=66,\n", " proposal_file=\n", " 'data/multisports/annotations/multisports_proposals_val.pkl',\n", " data_prefix=dict(img='data/multisports/trainval'),\n", " test_mode=True,\n", " timestamp_start=1,\n", " start_index=0,\n", " use_frames=False,\n", " fps=1,\n", " _scope_='mmaction'))\n", "test_dataloader = dict(\n", " batch_size=1,\n", " num_workers=8,\n", " persistent_workers=True,\n", " sampler=dict(type='DefaultSampler', shuffle=False, _scope_='mmaction'),\n", " dataset=dict(\n", " type='AVADataset',\n", " ann_file='data/multisports/annotations/multisports_val.csv',\n", " pipeline=[\n", " dict(type='DecordInit', io_backend='disk'),\n", " dict(\n", " type='SampleAVAFrames',\n", " clip_len=4,\n", " frame_interval=16,\n", " test_mode=True),\n", " dict(type='DecordDecode'),\n", " dict(type='Resize', scale=(-1, 256)),\n", " dict(type='FormatShape', input_format='NCTHW', collapse=True),\n", " dict(type='PackActionInputs')\n", " ],\n", " num_classes=66,\n", " proposal_file=\n", " 'data/multisports/annotations/multisports_dense_proposals_val.recall_96.13.pkl',\n", " data_prefix=dict(img='data/multisports/trainval'),\n", " test_mode=True,\n", " timestamp_start=1,\n", " start_index=0,\n", " use_frames=False,\n", " fps=1,\n", " _scope_='mmaction'))\n", "val_evaluator = dict(\n", " type='MultiSportsMetric',\n", " ann_file='data/multisports/annotations/multisports_GT.pkl',\n", " _scope_='mmaction')\n", "test_evaluator = dict(\n", " type='MultiSportsMetric',\n", " ann_file='data/multisports/annotations/multisports_GT.pkl',\n", " _scope_='mmaction')\n", "train_cfg = dict(\n", " type='EpochBasedTrainLoop',\n", " max_epochs=8,\n", " val_begin=1,\n", " val_interval=1,\n", " _scope_='mmaction')\n", "val_cfg = dict(type='ValLoop', _scope_='mmaction')\n", "test_cfg = dict(type='TestLoop', _scope_='mmaction')\n", "param_scheduler = [\n", " dict(\n", " type='LinearLR',\n", " start_factor=0.1,\n", " by_epoch=True,\n", " begin=0,\n", " end=5,\n", " _scope_='mmaction'),\n", " dict(\n", " type='MultiStepLR',\n", " begin=0,\n", " end=8,\n", " by_epoch=True,\n", " milestones=[6, 7],\n", " gamma=0.1,\n", " _scope_='mmaction')\n", "]\n", "optim_wrapper = dict(\n", " optimizer=dict(\n", " type='SGD',\n", " lr=0.01,\n", " momentum=0.9,\n", " weight_decay=1e-05,\n", " _scope_='mmaction'),\n", " clip_grad=dict(max_norm=5, norm_type=2))\n", "launcher = 'none'\n", "work_dir = 'work_dirs/stad_model/'\n", "randomness = dict(seed=None, diff_rank_seed=False, deterministic=False)\n", "\n", "06/15 06:51:03 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.\n", "06/15 06:51:03 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Hooks will be executed in the following order:\n", "before_run:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "before_train:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_train_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) DistSamplerSeedHook \n", " -------------------- \n", "before_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_train_iter:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train_epoch:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) SyncBuffersHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_val_epoch:\n", "(NORMAL ) IterTimerHook \n", "(NORMAL ) SyncBuffersHook \n", " -------------------- \n", "before_val_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_val_iter:\n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_val_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", "(LOW ) ParamSchedulerHook \n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "after_train:\n", "(VERY_LOW ) CheckpointHook \n", " -------------------- \n", "before_test_epoch:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "before_test_iter:\n", "(NORMAL ) IterTimerHook \n", " -------------------- \n", "after_test_iter:\n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_test_epoch:\n", "(VERY_HIGH ) RuntimeInfoHook \n", "(NORMAL ) IterTimerHook \n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "after_run:\n", "(BELOW_NORMAL) LoggerHook \n", " -------------------- \n", "06/15 06:51:05 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - 236 out of 236 frames are valid.\n", "06/15 06:51:05 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - 120 out of 120 frames are valid.\n", "06/15 06:51:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - load model from: https://download.openmmlab.com/mmaction/v1.0/recognition/slowonly/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth\n", "06/15 06:51:07 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Loads checkpoint by http backend from path: https://download.openmmlab.com/mmaction/v1.0/recognition/slowonly/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth\n", "Downloading: \"https://download.openmmlab.com/mmaction/v1.0/recognition/slowonly/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth\" to /root/.cache/torch/hub/checkpoints/slowonly_imagenet-pretrained-r50_8xb16-4x16x1-steplr-150e_kinetics400-rgb_20220901-e7b65fad.pth\n", "100% 124M/124M [00:05<00:00, 25.9MB/s]\n", "06/15 06:51:12 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - The model and loaded state dict do not match exactly\n", "\n", "unexpected key in source state_dict: cls_head.fc_cls.weight, cls_head.fc_cls.bias\n", "\n", "missing keys in source state_dict: roi_head.bbox_head.fc_cls.weight, roi_head.bbox_head.fc_cls.bias\n", "\n", "Loads checkpoint by http backend from path: https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth\n", "Downloading: \"https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth\" to /root/.cache/torch/hub/checkpoints/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth\n", "100% 122M/122M [00:04<00:00, 29.7MB/s]\n", "06/15 06:51:17 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Load checkpoint from https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth\n", "06/15 06:51:17 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - \"FileClient\" will be deprecated in future. Please use io functions in https://mmengine.readthedocs.io/en/latest/api/fileio.html#file-io\n", "06/15 06:51:17 - mmengine - \u001b[5m\u001b[4m\u001b[33mWARNING\u001b[0m - \"HardDiskBackend\" is the alias of \"LocalBackend\" and the former will be deprecated in future.\n", "06/15 06:51:17 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Checkpoints will be saved to /content/mmaction2/projects/stad_tutorial/work_dirs/stad_model.\n", "06/15 06:51:26 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][ 20/118] lr: 1.0000e-03 eta: 0:07:06 time: 0.4613 data_time: 0.0472 memory: 1381 grad_norm: 17.8613 loss: 1.1505 recall@thr=0.5: 0.6667 prec@thr=0.5: 0.6667 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 1.1505\n", "06/15 06:51:31 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][ 40/118] lr: 1.0000e-03 eta: 0:05:28 time: 0.2655 data_time: 0.0204 memory: 1381 grad_norm: 6.8642 loss: 0.5417 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.5417\n", "06/15 06:51:38 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][ 60/118] lr: 1.0000e-03 eta: 0:05:06 time: 0.3121 data_time: 0.0505 memory: 1381 grad_norm: 5.3190 loss: 0.6625 recall@thr=0.5: 0.9000 prec@thr=0.5: 0.9000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.6625\n", "06/15 06:51:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][ 80/118] lr: 1.0000e-03 eta: 0:04:44 time: 0.2771 data_time: 0.0255 memory: 1381 grad_norm: 3.0057 loss: 0.6646 recall@thr=0.5: 0.9231 prec@thr=0.5: 0.9231 recall@top3: 0.9231 prec@top3: 0.3077 recall@top5: 0.9231 prec@top5: 0.1846 loss_action_cls: 0.6646\n", "06/15 06:51:48 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][100/118] lr: 1.0000e-03 eta: 0:04:26 time: 0.2625 data_time: 0.0130 memory: 1381 grad_norm: 1.8442 loss: 0.5711 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.5711\n", "06/15 06:51:54 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:51:54 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [1][118/118] lr: 1.0000e-03 eta: 0:04:18 time: 0.2930 data_time: 0.0322 memory: 1381 grad_norm: 2.5183 loss: 0.6887 recall@thr=0.5: 0.6923 prec@thr=0.5: 0.6923 recall@top3: 0.6923 prec@top3: 0.2308 recall@top5: 0.6923 prec@top5: 0.1385 loss_action_cls: 0.6887\n", "06/15 06:51:54 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 1 epochs\n", "06/15 06:51:59 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][ 20/120] eta: 0:00:14 time: 0.1446 data_time: 0.0853 memory: 466 \n", "06/15 06:52:01 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][ 40/120] eta: 0:00:10 time: 0.1124 data_time: 0.0612 memory: 466 \n", "06/15 06:52:03 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][ 60/120] eta: 0:00:07 time: 0.1016 data_time: 0.0505 memory: 466 \n", "06/15 06:52:05 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][ 80/120] eta: 0:00:04 time: 0.1083 data_time: 0.0581 memory: 466 \n", "06/15 06:52:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][100/120] eta: 0:00:02 time: 0.1650 data_time: 0.1102 memory: 466 \n", "06/15 06:52:11 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][120/120] eta: 0:00:00 time: 0.1410 data_time: 0.0866 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 47.41\n", "aerobic split jump 30.01\n", "aerobic scissors leap 88.94\n", "aerobic turn 98.43\n", "mAP 66.20\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 25.00\n", "aerobic split jump 20.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 100.00\n", "mAP 56.25\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 100.00\n", "mAP 36.25\n", "06/15 06:52:12 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [1][120/120] mAP/frameAP: 66.1965 mAP/v_map@0.2: 56.2500 mAP/v_map@0.5: 36.2500 mAP/v_map_0.05:0.45: 50.4167 mAP/v_map_0.10:0.90: 37.7963 mAP/v_map_0.50:0.95: 26.8167 data_time: 0.0753 time: 0.1288\n", "06/15 06:52:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - The best checkpoint with 66.1965 mAP/frameAP at 1 epoch is saved to best_mAP_frameAP_epoch_1.pth.\n", "06/15 06:52:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][ 20/118] lr: 3.2500e-03 eta: 0:04:11 time: 0.3098 data_time: 0.0484 memory: 1381 grad_norm: 1.1745 loss: 0.4384 recall@thr=0.5: 0.7857 prec@thr=0.5: 0.7857 recall@top3: 0.9286 prec@top3: 0.3095 recall@top5: 0.9286 prec@top5: 0.1857 loss_action_cls: 0.4384\n", "06/15 06:52:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][ 40/118] lr: 3.2500e-03 eta: 0:04:06 time: 0.3245 data_time: 0.0667 memory: 1381 grad_norm: 1.0271 loss: 0.3960 recall@thr=0.5: 0.9333 prec@thr=0.5: 0.9333 recall@top3: 0.9333 prec@top3: 0.3111 recall@top5: 0.9333 prec@top5: 0.1867 loss_action_cls: 0.3960\n", "06/15 06:52:35 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][ 60/118] lr: 3.2500e-03 eta: 0:03:55 time: 0.2572 data_time: 0.0111 memory: 1381 grad_norm: 0.8150 loss: 0.3958 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3958\n", "06/15 06:52:41 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][ 80/118] lr: 3.2500e-03 eta: 0:03:47 time: 0.2843 data_time: 0.0167 memory: 1381 grad_norm: 1.4691 loss: 0.4575 recall@thr=0.5: 0.9333 prec@thr=0.5: 0.9333 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.4575\n", "06/15 06:52:47 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][100/118] lr: 3.2500e-03 eta: 0:03:41 time: 0.3118 data_time: 0.0559 memory: 1381 grad_norm: 1.9420 loss: 0.5529 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.5529\n", "06/15 06:52:52 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:52:52 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [2][118/118] lr: 3.2500e-03 eta: 0:03:33 time: 0.2532 data_time: 0.0082 memory: 1381 grad_norm: 1.6790 loss: 0.4253 recall@thr=0.5: 0.7500 prec@thr=0.5: 0.7500 recall@top3: 0.8333 prec@top3: 0.2778 recall@top5: 0.8333 prec@top5: 0.1667 loss_action_cls: 0.4253\n", "06/15 06:52:52 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 2 epochs\n", "06/15 06:52:56 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][ 20/120] eta: 0:00:15 time: 0.1515 data_time: 0.0968 memory: 466 \n", "06/15 06:53:00 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][ 40/120] eta: 0:00:12 time: 0.1679 data_time: 0.1143 memory: 466 \n", "06/15 06:53:02 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][ 60/120] eta: 0:00:08 time: 0.1134 data_time: 0.0631 memory: 466 \n", "06/15 06:53:04 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][ 80/120] eta: 0:00:05 time: 0.0961 data_time: 0.0459 memory: 466 \n", "06/15 06:53:06 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][100/120] eta: 0:00:02 time: 0.1063 data_time: 0.0549 memory: 466 \n", "06/15 06:53:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][120/120] eta: 0:00:00 time: 0.1017 data_time: 0.0522 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 42.09\n", "aerobic split jump 27.71\n", "aerobic scissors leap 90.02\n", "aerobic turn 95.76\n", "mAP 63.89\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 20.00\n", "aerobic scissors leap 100.00\n", "aerobic turn 100.00\n", "mAP 55.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 36.00\n", "aerobic turn 100.00\n", "mAP 34.00\n", "06/15 06:53:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [2][120/120] mAP/frameAP: 63.8934 mAP/v_map@0.2: 55.0000 mAP/v_map@0.5: 34.0000 mAP/v_map_0.05:0.45: 51.8889 mAP/v_map_0.10:0.90: 34.0278 mAP/v_map_0.50:0.95: 18.7250 data_time: 0.0710 time: 0.1226\n", "06/15 06:53:17 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][ 20/118] lr: 5.5000e-03 eta: 0:03:34 time: 0.4330 data_time: 0.1493 memory: 1381 grad_norm: 0.4795 loss: 0.5049 recall@thr=0.5: 0.8462 prec@thr=0.5: 0.8462 recall@top3: 0.8462 prec@top3: 0.2821 recall@top5: 0.8462 prec@top5: 0.1692 loss_action_cls: 0.5049\n", "06/15 06:53:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][ 40/118] lr: 5.5000e-03 eta: 0:03:27 time: 0.2948 data_time: 0.0370 memory: 1381 grad_norm: 0.8584 loss: 0.4820 recall@thr=0.5: 0.6154 prec@thr=0.5: 0.6154 recall@top3: 0.6154 prec@top3: 0.2051 recall@top5: 0.6154 prec@top5: 0.1231 loss_action_cls: 0.4820\n", "06/15 06:53:28 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][ 60/118] lr: 5.5000e-03 eta: 0:03:19 time: 0.2622 data_time: 0.0118 memory: 1381 grad_norm: 1.1041 loss: 0.2944 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2944\n", "06/15 06:53:35 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][ 80/118] lr: 5.5000e-03 eta: 0:03:13 time: 0.3111 data_time: 0.0470 memory: 1381 grad_norm: 0.8394 loss: 0.3393 recall@thr=0.5: 0.9091 prec@thr=0.5: 0.9091 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3393\n", "06/15 06:53:40 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][100/118] lr: 5.5000e-03 eta: 0:03:06 time: 0.2989 data_time: 0.0417 memory: 1381 grad_norm: 0.2155 loss: 0.4345 recall@thr=0.5: 0.8182 prec@thr=0.5: 0.8182 recall@top3: 0.8182 prec@top3: 0.2727 recall@top5: 0.8182 prec@top5: 0.1636 loss_action_cls: 0.4345\n", "06/15 06:53:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:53:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [3][118/118] lr: 5.5000e-03 eta: 0:02:59 time: 0.2576 data_time: 0.0112 memory: 1381 grad_norm: 0.2509 loss: 0.4634 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.4634\n", "06/15 06:53:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 3 epochs\n", "06/15 06:53:50 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][ 20/120] eta: 0:00:18 time: 0.1815 data_time: 0.1180 memory: 466 \n", "06/15 06:53:53 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][ 40/120] eta: 0:00:13 time: 0.1451 data_time: 0.0905 memory: 466 \n", "06/15 06:53:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][ 60/120] eta: 0:00:08 time: 0.1020 data_time: 0.0510 memory: 466 \n", "06/15 06:53:57 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][ 80/120] eta: 0:00:05 time: 0.1008 data_time: 0.0528 memory: 466 \n", "06/15 06:54:00 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][100/120] eta: 0:00:02 time: 0.1072 data_time: 0.0569 memory: 466 \n", "06/15 06:54:02 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][120/120] eta: 0:00:00 time: 0.1018 data_time: 0.0536 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 37.09\n", "aerobic split jump 27.98\n", "aerobic scissors leap 89.41\n", "aerobic turn 95.67\n", "mAP 62.54\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 20.00\n", "aerobic scissors leap 100.00\n", "aerobic turn 100.00\n", "mAP 55.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 36.00\n", "aerobic turn 100.00\n", "mAP 34.00\n", "06/15 06:54:02 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [3][120/120] mAP/frameAP: 62.5361 mAP/v_map@0.2: 55.0000 mAP/v_map@0.5: 34.0000 mAP/v_map_0.05:0.45: 51.2222 mAP/v_map_0.10:0.90: 34.1389 mAP/v_map_0.50:0.95: 18.7250 data_time: 0.0704 time: 0.1229\n", "06/15 06:54:10 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][ 20/118] lr: 7.7500e-03 eta: 0:02:55 time: 0.3717 data_time: 0.0993 memory: 1381 grad_norm: 0.2139 loss: 0.3119 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3119\n", "06/15 06:54:15 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][ 40/118] lr: 7.7500e-03 eta: 0:02:48 time: 0.2730 data_time: 0.0230 memory: 1381 grad_norm: 0.6102 loss: 0.4782 recall@thr=0.5: 0.9375 prec@thr=0.5: 0.9375 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.4782\n", "06/15 06:54:21 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][ 60/118] lr: 7.7500e-03 eta: 0:02:41 time: 0.2895 data_time: 0.0311 memory: 1381 grad_norm: 0.4057 loss: 0.3422 recall@thr=0.5: 0.9474 prec@thr=0.5: 0.9474 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3422\n", "06/15 06:54:27 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][ 80/118] lr: 7.7500e-03 eta: 0:02:36 time: 0.3170 data_time: 0.0490 memory: 1381 grad_norm: 0.3051 loss: 0.3628 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3628\n", "06/15 06:54:32 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][100/118] lr: 7.7500e-03 eta: 0:02:29 time: 0.2633 data_time: 0.0131 memory: 1381 grad_norm: 0.1671 loss: 0.3691 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3691\n", "06/15 06:54:37 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:54:37 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [4][118/118] lr: 7.7500e-03 eta: 0:02:23 time: 0.2721 data_time: 0.0181 memory: 1381 grad_norm: 0.1954 loss: 0.3076 recall@thr=0.5: 0.8571 prec@thr=0.5: 0.8571 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3076\n", "06/15 06:54:37 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 4 epochs\n", "06/15 06:54:43 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][ 20/120] eta: 0:00:14 time: 0.1431 data_time: 0.0854 memory: 466 \n", "06/15 06:54:45 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][ 40/120] eta: 0:00:10 time: 0.1086 data_time: 0.0584 memory: 466 \n", "06/15 06:54:47 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][ 60/120] eta: 0:00:07 time: 0.1056 data_time: 0.0552 memory: 466 \n", "06/15 06:54:49 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][ 80/120] eta: 0:00:04 time: 0.0922 data_time: 0.0399 memory: 466 \n", "06/15 06:54:51 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][100/120] eta: 0:00:02 time: 0.1166 data_time: 0.0671 memory: 466 \n", "06/15 06:54:54 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][120/120] eta: 0:00:00 time: 0.1468 data_time: 0.0927 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 25.62\n", "aerobic split jump 28.75\n", "aerobic scissors leap 89.02\n", "aerobic turn 93.30\n", "mAP 59.17\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 20.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 100.00\n", "mAP 50.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 100.00\n", "mAP 36.25\n", "06/15 06:54:55 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [4][120/120] mAP/frameAP: 59.1749 mAP/v_map@0.2: 50.0000 mAP/v_map@0.5: 36.2500 mAP/v_map_0.05:0.45: 46.9444 mAP/v_map_0.10:0.90: 28.9352 mAP/v_map_0.50:0.95: 14.6667 data_time: 0.0663 time: 0.1186\n", "06/15 06:55:01 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][ 20/118] lr: 1.0000e-02 eta: 0:02:17 time: 0.3090 data_time: 0.0513 memory: 1381 grad_norm: 0.2988 loss: 0.3067 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3067\n", "06/15 06:55:06 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][ 40/118] lr: 1.0000e-02 eta: 0:02:10 time: 0.2584 data_time: 0.0142 memory: 1381 grad_norm: 0.6702 loss: 0.3996 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3996\n", "06/15 06:55:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][ 60/118] lr: 1.0000e-02 eta: 0:02:04 time: 0.3286 data_time: 0.0617 memory: 1381 grad_norm: 0.4347 loss: 0.4374 recall@thr=0.5: 0.8462 prec@thr=0.5: 0.8462 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.4374\n", "06/15 06:55:19 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][ 80/118] lr: 1.0000e-02 eta: 0:01:58 time: 0.2774 data_time: 0.0247 memory: 1381 grad_norm: 0.4373 loss: 0.3679 recall@thr=0.5: 0.7500 prec@thr=0.5: 0.7500 recall@top3: 0.8750 prec@top3: 0.2917 recall@top5: 0.8750 prec@top5: 0.1750 loss_action_cls: 0.3679\n", "06/15 06:55:24 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][100/118] lr: 1.0000e-02 eta: 0:01:51 time: 0.2603 data_time: 0.0108 memory: 1381 grad_norm: 0.2507 loss: 0.3226 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3226\n", "06/15 06:55:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:55:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [5][118/118] lr: 1.0000e-02 eta: 0:01:46 time: 0.3256 data_time: 0.0497 memory: 1381 grad_norm: 0.0940 loss: 0.2914 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2914\n", "06/15 06:55:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 5 epochs\n", "06/15 06:55:34 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][ 20/120] eta: 0:00:11 time: 0.1166 data_time: 0.0625 memory: 466 \n", "06/15 06:55:36 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][ 40/120] eta: 0:00:09 time: 0.1119 data_time: 0.0618 memory: 466 \n", "06/15 06:55:38 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][ 60/120] eta: 0:00:06 time: 0.1012 data_time: 0.0504 memory: 466 \n", "06/15 06:55:40 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][ 80/120] eta: 0:00:04 time: 0.1017 data_time: 0.0537 memory: 466 \n", "06/15 06:55:44 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][100/120] eta: 0:00:02 time: 0.1766 data_time: 0.1239 memory: 466 \n", "06/15 06:55:46 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][120/120] eta: 0:00:00 time: 0.1421 data_time: 0.0884 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 17.82\n", "aerobic split jump 20.05\n", "aerobic scissors leap 89.00\n", "aerobic turn 91.20\n", "mAP 54.52\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 60.00\n", "mAP 35.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 26.67\n", "mAP 17.92\n", "06/15 06:55:47 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [5][120/120] mAP/frameAP: 54.5189 mAP/v_map@0.2: 35.0000 mAP/v_map@0.5: 17.9167 mAP/v_map_0.05:0.45: 31.2037 mAP/v_map_0.10:0.90: 19.0741 mAP/v_map_0.50:0.95: 9.5833 data_time: 0.0733 time: 0.1249\n", "06/15 06:55:53 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][ 20/118] lr: 1.0000e-02 eta: 0:01:40 time: 0.2867 data_time: 0.0385 memory: 1381 grad_norm: 0.1572 loss: 0.3008 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3008\n", "06/15 06:55:58 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][ 40/118] lr: 1.0000e-02 eta: 0:01:34 time: 0.2720 data_time: 0.0167 memory: 1381 grad_norm: 0.0803 loss: 0.2377 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2377\n", "06/15 06:56:05 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][ 60/118] lr: 1.0000e-02 eta: 0:01:28 time: 0.3423 data_time: 0.0840 memory: 1381 grad_norm: 0.3120 loss: 0.2442 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2442\n", "06/15 06:56:10 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][ 80/118] lr: 1.0000e-02 eta: 0:01:22 time: 0.2580 data_time: 0.0112 memory: 1381 grad_norm: 0.5726 loss: 0.3794 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3794\n", "06/15 06:56:16 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][100/118] lr: 1.0000e-02 eta: 0:01:16 time: 0.2949 data_time: 0.0347 memory: 1381 grad_norm: 0.1732 loss: 0.3004 recall@thr=0.5: 0.8750 prec@thr=0.5: 0.8750 recall@top3: 0.8750 prec@top3: 0.2917 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3004\n", "06/15 06:56:22 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:56:22 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [6][118/118] lr: 1.0000e-02 eta: 0:01:10 time: 0.3258 data_time: 0.0625 memory: 1381 grad_norm: 0.3709 loss: 0.3439 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3439\n", "06/15 06:56:22 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 6 epochs\n", "06/15 06:56:26 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][ 20/120] eta: 0:00:11 time: 0.1169 data_time: 0.0624 memory: 466 \n", "06/15 06:56:28 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][ 40/120] eta: 0:00:09 time: 0.1131 data_time: 0.0631 memory: 466 \n", "06/15 06:56:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][ 60/120] eta: 0:00:06 time: 0.1064 data_time: 0.0553 memory: 466 \n", "06/15 06:56:33 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][ 80/120] eta: 0:00:04 time: 0.1401 data_time: 0.0862 memory: 466 \n", "06/15 06:56:36 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][100/120] eta: 0:00:02 time: 0.1519 data_time: 0.0982 memory: 466 \n", "06/15 06:56:38 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][120/120] eta: 0:00:00 time: 0.0986 data_time: 0.0486 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 19.05\n", "aerobic split jump 22.20\n", "aerobic scissors leap 85.83\n", "aerobic turn 79.04\n", "mAP 51.53\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 0.00\n", "mAP 20.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 0.00\n", "mAP 11.25\n", "06/15 06:56:38 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [6][120/120] mAP/frameAP: 51.5300 mAP/v_map@0.2: 20.0000 mAP/v_map@0.5: 11.2500 mAP/v_map_0.05:0.45: 18.0556 mAP/v_map_0.10:0.90: 11.8519 mAP/v_map_0.50:0.95: 6.9167 data_time: 0.0688 time: 0.1209\n", "06/15 06:56:44 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][ 20/118] lr: 1.0000e-03 eta: 0:01:04 time: 0.2819 data_time: 0.0331 memory: 1381 grad_norm: 0.2811 loss: 0.2776 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2776\n", "06/15 06:56:50 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][ 40/118] lr: 1.0000e-03 eta: 0:00:58 time: 0.3114 data_time: 0.0473 memory: 1381 grad_norm: 0.1573 loss: 0.2043 recall@thr=0.5: 0.8182 prec@thr=0.5: 0.8182 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2043\n", "06/15 06:56:56 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][ 60/118] lr: 1.0000e-03 eta: 0:00:52 time: 0.2903 data_time: 0.0342 memory: 1381 grad_norm: 0.1343 loss: 0.3411 recall@thr=0.5: 0.8667 prec@thr=0.5: 0.8667 recall@top3: 0.8667 prec@top3: 0.2889 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3411\n", "06/15 06:57:01 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][ 80/118] lr: 1.0000e-03 eta: 0:00:46 time: 0.2623 data_time: 0.0128 memory: 1381 grad_norm: 0.1026 loss: 0.2895 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2895\n", "06/15 06:57:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][100/118] lr: 1.0000e-03 eta: 0:00:40 time: 0.3206 data_time: 0.0503 memory: 1381 grad_norm: 0.1911 loss: 0.3552 recall@thr=0.5: 0.7333 prec@thr=0.5: 0.7333 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3552\n", "06/15 06:57:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:57:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [7][118/118] lr: 1.0000e-03 eta: 0:00:35 time: 0.2884 data_time: 0.0335 memory: 1381 grad_norm: 0.1274 loss: 0.4391 recall@thr=0.5: 0.8571 prec@thr=0.5: 0.8571 recall@top3: 0.8571 prec@top3: 0.2857 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.4391\n", "06/15 06:57:13 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 7 epochs\n", "06/15 06:57:17 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][ 20/120] eta: 0:00:11 time: 0.1193 data_time: 0.0693 memory: 466 \n", "06/15 06:57:19 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][ 40/120] eta: 0:00:09 time: 0.1188 data_time: 0.0670 memory: 466 \n", "06/15 06:57:23 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][ 60/120] eta: 0:00:08 time: 0.1645 data_time: 0.1114 memory: 466 \n", "06/15 06:57:25 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][ 80/120] eta: 0:00:05 time: 0.1391 data_time: 0.0850 memory: 466 \n", "06/15 06:57:27 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][100/120] eta: 0:00:02 time: 0.1104 data_time: 0.0585 memory: 466 \n", "06/15 06:57:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][120/120] eta: 0:00:00 time: 0.1025 data_time: 0.0512 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 20.79\n", "aerobic split jump 20.11\n", "aerobic scissors leap 84.84\n", "aerobic turn 78.58\n", "mAP 51.08\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 20.00\n", "mAP 25.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 0.00\n", "mAP 11.25\n", "06/15 06:57:30 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [7][120/120] mAP/frameAP: 51.0794 mAP/v_map@0.2: 25.0000 mAP/v_map@0.5: 11.2500 mAP/v_map_0.05:0.45: 22.5000 mAP/v_map_0.10:0.90: 14.0741 mAP/v_map_0.50:0.95: 6.9167 data_time: 0.0735 time: 0.1255\n", "06/15 06:57:36 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][ 20/118] lr: 1.0000e-04 eta: 0:00:29 time: 0.2894 data_time: 0.0322 memory: 1381 grad_norm: 0.1227 loss: 0.3286 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3286\n", "06/15 06:57:44 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][ 40/118] lr: 1.0000e-04 eta: 0:00:23 time: 0.4105 data_time: 0.1257 memory: 1381 grad_norm: 0.1948 loss: 0.3202 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3202\n", "06/15 06:57:50 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][ 60/118] lr: 1.0000e-04 eta: 0:00:17 time: 0.3095 data_time: 0.0537 memory: 1381 grad_norm: 0.7997 loss: 0.2428 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2428\n", "06/15 06:57:56 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][ 80/118] lr: 1.0000e-04 eta: 0:00:11 time: 0.2918 data_time: 0.0330 memory: 1381 grad_norm: 0.8157 loss: 0.3045 recall@thr=0.5: 1.0000 prec@thr=0.5: 1.0000 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.3045\n", "06/15 06:58:03 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][100/118] lr: 1.0000e-04 eta: 0:00:05 time: 0.3443 data_time: 0.0786 memory: 1381 grad_norm: 0.0966 loss: 0.2605 recall@thr=0.5: 0.9375 prec@thr=0.5: 0.9375 recall@top3: 1.0000 prec@top3: 0.3333 recall@top5: 1.0000 prec@top5: 0.2000 loss_action_cls: 0.2605\n", "06/15 06:58:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Exp name: slowonly_k400_multisports_20230615_065057\n", "06/15 06:58:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(train) [8][118/118] lr: 1.0000e-04 eta: 0:00:00 time: 0.2611 data_time: 0.0148 memory: 1381 grad_norm: 0.3034 loss: 0.2694 recall@thr=0.5: 0.9231 prec@thr=0.5: 0.9231 recall@top3: 0.9231 prec@top3: 0.3077 recall@top5: 0.9231 prec@top5: 0.1846 loss_action_cls: 0.2694\n", "06/15 06:58:08 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Saving checkpoint at 8 epochs\n", "06/15 06:58:12 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][ 20/120] eta: 0:00:14 time: 0.1433 data_time: 0.0869 memory: 466 \n", "06/15 06:58:15 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][ 40/120] eta: 0:00:12 time: 0.1664 data_time: 0.1160 memory: 466 \n", "06/15 06:58:18 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][ 60/120] eta: 0:00:08 time: 0.1269 data_time: 0.0772 memory: 466 \n", "06/15 06:58:20 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][ 80/120] eta: 0:00:05 time: 0.0951 data_time: 0.0455 memory: 466 \n", "06/15 06:58:22 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][100/120] eta: 0:00:02 time: 0.1144 data_time: 0.0630 memory: 466 \n", "06/15 06:58:24 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][120/120] eta: 0:00:00 time: 0.1028 data_time: 0.0530 memory: 466 \n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluate aerobic kick jump\n", "do not evaluate aerobic off axis jump\n", "do not evaluate aerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluate aerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluate basketball save\n", "do not evaluate basketball jump ball\n", "frameAP_0.5\n", "\n", "aerobic straight jump 15.29\n", "aerobic split jump 20.74\n", "aerobic scissors leap 86.38\n", "aerobic turn 80.98\n", "mAP 50.85\n", "\u001b[2Klinking tubes... \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n", "\u001b[?25hno such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.2\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 80.00\n", "aerobic turn 20.00\n", "mAP 25.00\n", "no such label 0 aerobic push up\n", "no such label 1 aerobic explosive push up\n", "no such label 2 aerobic explosive support\n", "no such label 3 aerobic leg circle\n", "no such label 4 aerobic helicopter\n", "no such label 5 aerobic support\n", "no such label 6 aerobic v support\n", "no such label 7 aerobic horizontal support\n", "no such label 9 aerobic illusion\n", "no such label 10 aerobic bent leg(s) jump\n", "no such label 11 aerobic pike jump\n", "no such label 12 aerobic straddle jump\n", "do not evaluateaerobic kick jump\n", "do not evaluateaerobic off axis jump\n", "do not evaluateaerobic butterfly jump\n", "no such label 18 aerobic split\n", "do not evaluateaerobic balance turn\n", "no such label 21 volleyball serve\n", "no such label 22 volleyball block\n", "no such label 23 volleyball first pass\n", "no such label 24 volleyball defend\n", "no such label 25 volleyball protect\n", "no such label 26 volleyball second pass\n", "no such label 27 volleyball adjust\n", "no such label 28 volleyball save\n", "no such label 29 volleyball second attack\n", "no such label 30 volleyball spike\n", "no such label 31 volleyball dink\n", "no such label 32 volleyball no offensive attack\n", "no such label 33 football shoot\n", "no such label 34 football long pass\n", "no such label 35 football short pass\n", "no such label 36 football through pass\n", "no such label 37 football cross\n", "no such label 38 football dribble\n", "no such label 39 football trap\n", "no such label 40 football throw\n", "no such label 41 football diving\n", "no such label 42 football tackle\n", "no such label 43 football steal\n", "no such label 44 football clearance\n", "no such label 45 football block\n", "no such label 46 football press\n", "no such label 47 football aerial duels\n", "no such label 48 basketball pass\n", "no such label 49 basketball drive\n", "no such label 50 basketball dribble\n", "no such label 51 basketball 3-point shot\n", "no such label 52 basketball 2-point shot\n", "no such label 53 basketball free throw\n", "no such label 54 basketball block\n", "no such label 55 basketball offensive rebound\n", "no such label 56 basketball defensive rebound\n", "no such label 57 basketball pass steal\n", "no such label 58 basketball dribble steal\n", "no such label 59 basketball interfere shot\n", "no such label 60 basketball pick-and-roll defensive\n", "no such label 61 basketball sag\n", "no such label 62 basketball screen\n", "no such label 63 basketball pass-inbound\n", "do not evaluatebasketball save\n", "do not evaluatebasketball jump ball\n", "VideoAP_0.5\n", "\n", "aerobic straight jump 0.00\n", "aerobic split jump 0.00\n", "aerobic scissors leap 45.00\n", "aerobic turn 20.00\n", "mAP 16.25\n", "06/15 06:58:25 - mmengine - \u001b[4m\u001b[97mINFO\u001b[0m - Epoch(val) [8][120/120] mAP/frameAP: 50.8487 mAP/v_map@0.2: 25.0000 mAP/v_map@0.5: 16.2500 mAP/v_map_0.05:0.45: 23.0556 mAP/v_map_0.10:0.90: 15.1852 mAP/v_map_0.50:0.95: 8.4167 data_time: 0.0732 time: 0.1244\n", "\u001b[32mTraining finished successfully. \u001b[0m\n" ] } ], "source": [ "# 使用 MIM 训练模型\n", "!mim train mmaction2 configs/slowonly_k400_multisports.py \\\n", " --work-dir work_dirs/stad_model/" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "HCg6C9HYxRAt" }, "source": [ "## 4. 时空行为检测模型推理\n", "\n", "训练得到检测模型和时空行为检测模型后,我们可以利用时空行为检测 demo 进行推理,可视化模型效果。\n", "\n", "由于 tutorial 中使用的训练数据较少,模型性能较差,所以可视化时使用预先训练好的模型。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "id": "WW5-IJ7IxRAu" }, "source": [ "###" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "FofW_5RoxRAu", "outputId": "91217660-946d-48ab-f663-b0f7f2d6a6f6" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ALSA lib confmisc.c:767:(parse_card) cannot find card '0'\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory\n", "ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory\n", "ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory\n", "ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory\n", "ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default\n", "ALSA lib confmisc.c:767:(parse_card) cannot find card '0'\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory\n", "ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory\n", "ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name\n", "ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory\n", "ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory\n", "ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default\n", "Loads checkpoint by local backend from path: work_dirs/det_model/epoch_2.pth\n", "Performing Human Detection for each frame\n", "[>>] 99/99, 6.8 task/s, elapsed: 15s, ETA: 0s\n", "Loads checkpoint by http backend from path: https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth\n", "Performing SpatioTemporal Action Detection for each clip\n", "[>>] 99/99, 16.6 task/s, elapsed: 6s, ETA: 0sPerforming visualization\n", "Moviepy - Building video data/demo_spatiotemporal_det.mp4.\n", "Moviepy - Writing video data/demo_spatiotemporal_det.mp4\n", "\n", "Moviepy - Done !\n", "Moviepy - video ready data/demo_spatiotemporal_det.mp4\n" ] } ], "source": [ "!python ../../demo/demo_spatiotemporal_det.py \\\n", " data/multisports/test/aerobic_gymnastics/v_7G_IpU0FxLU_c001.mp4 \\\n", " data/demo_spatiotemporal_det.mp4 \\\n", " --config configs/slowonly_k400_multisports.py \\\n", " --checkpoint https://download.openmmlab.com/mmaction/v1.0/detection/slowonly/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb/slowonly_kinetics400-pretrained-r50_8xb16-4x16x1-8e_multisports-rgb_20230320-a1ca5e76.pth \\\n", " --det-config configs/faster-rcnn_r50-caffe_fpn_ms-1x_coco_ms_person.py \\\n", " --det-checkpoint work_dirs/det_model/epoch_2.pth \\\n", " --det-score-thr 0.85 \\\n", " --action-score-thr 0.8 \\\n", " --label-map ../../tools/data/multisports/label_map.txt \\\n", " --predict-stepsize 8 \\\n", " --output-stepsize 1 \\\n", " --output-fps 24" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 741 }, "id": "677FUWFRxRAv", "outputId": "f702d544-3492-494c-af81-9e90f43d6b6c" }, "outputs": [], "source": [ "# Show Video\n", "import moviepy.editor\n", "moviepy.editor.ipython_display(\"data/demo_spatiotemporal_det.mp4\")" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.0" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 0 }