# SOCCERNETV2
```bash
conda create -n SoccerNet python pip
pip install SoccerNet
```
## Structure of the data data for each game
- SoccerNet main folder
- Leagues (england_epl/europe_uefa-champions-league/france_ligue-1/...)
- Seasons (2014-2015/2015-2016/2016-2017)
- Games (format: "{Date} - {Time} - {HomeTeam} {Score} {AwayTeam}")
- SoccerNet-v2 - Labels / Manual Annotations
- **video.ini**: information on start/duration for each half of the game in the HQ video, in second
- **Labels-v2.json**: Labels from SoccerNet-v2 - action spotting
- **Labels-cameras.json**: Labels from SoccerNet-v1 - camera shot segmentation
- SoccerNet-v2 - Videos / Automatically Extracted Features
- **1_224p.mkv**: 224p video 1st half - timmed with start/duration from HQ video - resolution 224*398 - 25 fps
- **2_224p.mkv**: 224p video 2nd half - timmed with start/duration from HQ video - resolution 224*398 - 25 fps
- **1_720p.mkv**: 720p video 1st half - timmed with start/duration from HQ video - resolution 720*1280 - 25 fps
- **2_720p.mkv**: 720p video 2nd half - timmed with start/duration from HQ video - resolution 720*1280 - 25 fps
- **1_ResNET_TF2.npy**: ResNET features @2fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **2_ResNET_TF2.npy**: ResNET features @2fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **1_ResNET_TF2_PCA512.npy**: ResNET features @2fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA
- **2_ResNET_TF2_PCA512.npy**: ResNET features @2fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA
- **1_ResNET_5fps_TF2.npy**: ResNET features @5fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **2_ResNET_5fps_TF2.npy**: ResNET features @5fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **1_ResNET_5fps_TF2_PCA512.npy**: ResNET features @5fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA
- **2_ResNET_5fps_TF2_PCA512.npy**: ResNET features @5fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA
- **1_ResNET_25fps_TF2.npy**: ResNET features @25fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **2_ResNET_25fps_TF2.npy**: ResNET features @25fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)
- **1_player_boundingbox_maskrcnn.json**: Player Bounding Boxes @2fps for 1st half, extracted with MaskRCNN
- **2_player_boundingbox_maskrcnn.json**: Player Bounding Boxes @2fps for 2nd half, extracted with MaskRCNN
- **1_field_calib_ccbv.json**: Field Camera Calibration @2fps for 1st half, extracted with CCBV
- **2_field_calib_ccbv.json**: Field Camera Calibration @2fps for 2nd half, extracted with CCBV
- **1_baidu_soccer_embeddings.npy**: Frame Embeddings for 1st half from [https://github.com/baidu-research/vidpress-sports](https://github.com/baidu-research/vidpress-sports)
- **2_baidu_soccer_embeddings.npy**: Frame Embeddings for 2nd half from [https://github.com/baidu-research/vidpress-sports](https://github.com/baidu-research/vidpress-sports)
- Legacy from SoccerNet-v1
- **Labels.json**: Labels from SoccerNet-v1 - action spotting for goals/cards/subs only
- **1_C3D.npy**: C3D features @2fps for 1st half from SoccerNet-v1
- **2_C3D.npy**: C3D features @2fps for 2nd half from SoccerNet-v1
- **1_C3D_PCA512.npy**: C3D features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
- **2_C3D_PCA512.npy**: C3D features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
- **1_I3D.npy**: I3D features @2fps for 1st half from SoccerNet-v1
- **2_I3D.npy**: I3D features @2fps for 2nd half from SoccerNet-v1
- **1_I3D_PCA512.npy**: I3D features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
- **2_I3D_PCA512.npy**: I3D features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
- **1_ResNET.npy**: ResNET features @2fps for 1st half from SoccerNet-v1
- **2_ResNET.npy**: ResNET features @2fps for 2nd half from SoccerNet-v1
- **1_ResNET_PCA512.npy**: ResNET features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
- **2_ResNET_PCA512.npy**: ResNET features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA
## How to Download Games (Python)
```python
from SoccerNet.Downloader import SoccerNetDownloader
mySoccerNetDownloader = SoccerNetDownloader(LocalDirectory="path/to/soccernet")
# Download SoccerNet labels
mySoccerNetDownloader.downloadGames(files=["Labels.json"], split=["train","valid","test"]) # download labels
mySoccerNetDownloader.downloadGames(files=["Labels-v2.json"], split=["train","valid","test"]) # download labels SN v2
mySoccerNetDownloader.downloadGames(files=["Labels-cameras.json"], split=["train","valid","test"]) # download labels for camera shot
# Download SoccerNet features
mySoccerNetDownloader.downloadGames(files=["1_ResNET_TF2.npy", "2_ResNET_TF2.npy"], split=["train","valid","test"]) # download Features
mySoccerNetDownloader.downloadGames(files=["1_ResNET_TF2_PCA512.npy", "2_ResNET_TF2_PCA512.npy"], split=["train","valid","test"]) # download Features reduced with PCA
mySoccerNetDownloader.downloadGames(files=["1_player_boundingbox_maskrcnn.json", "2_player_boundingbox_maskrcnn.json"], split=["train","valid","test"]) # download Player Bounding Boxes inferred with MaskRCNN
mySoccerNetDownloader.downloadGames(files=["1_field_calib_ccbv.json", "2_field_calib_ccbv.json"], split=["train","valid","test"]) # download Field Calibration inferred with CCBV
mySoccerNetDownloader.downloadGames(files=["1_baidu_soccer_embeddings.npy","2_baidu_soccer_embeddings.npy"], split=["train","valid","test"]) # download Frame Embeddings from https://github.com/baidu-research/vidpress-sports
# Download SoccerNet videos (require password from NDA to download videos)
mySoccerNetDownloader.password = input("Password for videos? (contact the author):\n")
mySoccerNetDownloader.downloadGames(files=["1_224p.mkv", "2_224p.mkv"], split=["train","valid","test"]) # download 224p Videos
mySoccerNetDownloader.downloadGames(files=["1_720p.mkv", "2_720p.mkv"], split=["train","valid","test"]) # download 720p Videos
# Download SoccerNet Challenge set (require password from NDA to download videos)
mySoccerNetDownloader.downloadGames(files=["1_ResNET_TF2.npy", "2_ResNET_TF2.npy"], split=["challenge"]) # download ResNET Features
mySoccerNetDownloader.downloadGames(files=["1_ResNET_TF2_PCA512.npy", "2_ResNET_TF2_PCA512.npy"], split=["challenge"]) # download ResNET Features reduced with PCA
mySoccerNetDownloader.downloadGames(files=["1_224p.mkv", "2_224p.mkv"], split=["challenge"]) # download 224p Videos (require password from NDA)
mySoccerNetDownloader.downloadGames(files=["1_720p.mkv", "2_720p.mkv"], split=["challenge"]) # download 720p Videos (require password from NDA)
mySoccerNetDownloader.downloadGames(files=["1_player_boundingbox_maskrcnn.json", "2_player_boundingbox_maskrcnn.json"], split=["challenge"]) # download Player Bounding Boxes inferred with MaskRCNN
mySoccerNetDownloader.downloadGames(files=["1_field_calib_ccbv.json", "2_field_calib_ccbv.json"], split=["challenge"]) # download Field Calibration inferred with CCBV
mySoccerNetDownloader.downloadGames(files=["1_baidu_soccer_embeddings.npy","2_baidu_soccer_embeddings.npy"], split=["challenge"]) # download Frame Embeddings from https://github.com/baidu-research/vidpress-sports
```
## How to read the list Games (Python)
```python
from SoccerNet.utils import getListGames
print(getListGames(split="train")) # return list of games recommended for training
print(getListGames(split="valid")) # return list of games recommended for validation
print(getListGames(split="test")) # return list of games recommended for testing
print(getListGames(split="challenge")) # return list of games recommended for challenge
print(getListGames(split=["train", "valid", "test", "challenge"])) # return list of games for training, validation and testing
print(getListGames(split="v1")) # return list of games from SoccerNetv1 (train/valid/test)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/SilvioGiancola/SoccerNetv2",
"name": "SoccerNet",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "SoccerNet,SDK,Spotting,Football,Soccer,Video",
"author": "Silvio Giancola",
"author_email": "silvio.giancola@kaust.edu.sa",
"download_url": "https://files.pythonhosted.org/packages/2d/04/3845b296e379c79fc2daa6d28563c82cd46c9ca84606086cfdbe9704f130/SoccerNet-0.1.46.tar.gz",
"platform": null,
"description": "# SOCCERNETV2\n\n```bash\nconda create -n SoccerNet python pip\npip install SoccerNet\n```\n\n## Structure of the data data for each game\n\n- SoccerNet main folder\n - Leagues (england_epl/europe_uefa-champions-league/france_ligue-1/...)\n - Seasons (2014-2015/2015-2016/2016-2017)\n - Games (format: \"{Date} - {Time} - {HomeTeam} {Score} {AwayTeam}\")\n - SoccerNet-v2 - Labels / Manual Annotations\n - **video.ini**: information on start/duration for each half of the game in the HQ video, in second\n - **Labels-v2.json**: Labels from SoccerNet-v2 - action spotting\n - **Labels-cameras.json**: Labels from SoccerNet-v1 - camera shot segmentation\n\n - SoccerNet-v2 - Videos / Automatically Extracted Features\n - **1_224p.mkv**: 224p video 1st half - timmed with start/duration from HQ video - resolution 224*398 - 25 fps\n - **2_224p.mkv**: 224p video 2nd half - timmed with start/duration from HQ video - resolution 224*398 - 25 fps\n - **1_720p.mkv**: 720p video 1st half - timmed with start/duration from HQ video - resolution 720*1280 - 25 fps\n - **2_720p.mkv**: 720p video 2nd half - timmed with start/duration from HQ video - resolution 720*1280 - 25 fps\n - **1_ResNET_TF2.npy**: ResNET features @2fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **2_ResNET_TF2.npy**: ResNET features @2fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **1_ResNET_TF2_PCA512.npy**: ResNET features @2fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA\n - **2_ResNET_TF2_PCA512.npy**: ResNET features @2fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA\n - **1_ResNET_5fps_TF2.npy**: ResNET features @5fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **2_ResNET_5fps_TF2.npy**: ResNET features @5fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **1_ResNET_5fps_TF2_PCA512.npy**: ResNET features @5fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA\n - **2_ResNET_5fps_TF2_PCA512.npy**: ResNET features @5fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit), with dimensionality reduced to 512 using PCA\n - **1_ResNET_25fps_TF2.npy**: ResNET features @25fps for 1st half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **2_ResNET_25fps_TF2.npy**: ResNET features @25fps for 2nd half from SoccerNet-v2, [extracted using TF2](https://github.com/SilvioGiancola/SoccerNetv2-DevKit)\n - **1_player_boundingbox_maskrcnn.json**: Player Bounding Boxes @2fps for 1st half, extracted with MaskRCNN\n - **2_player_boundingbox_maskrcnn.json**: Player Bounding Boxes @2fps for 2nd half, extracted with MaskRCNN\n - **1_field_calib_ccbv.json**: Field Camera Calibration @2fps for 1st half, extracted with CCBV\n - **2_field_calib_ccbv.json**: Field Camera Calibration @2fps for 2nd half, extracted with CCBV\n - **1_baidu_soccer_embeddings.npy**: Frame Embeddings for 1st half from [https://github.com/baidu-research/vidpress-sports](https://github.com/baidu-research/vidpress-sports)\n - **2_baidu_soccer_embeddings.npy**: Frame Embeddings for 2nd half from [https://github.com/baidu-research/vidpress-sports](https://github.com/baidu-research/vidpress-sports)\n\n - Legacy from SoccerNet-v1\n - **Labels.json**: Labels from SoccerNet-v1 - action spotting for goals/cards/subs only\n - **1_C3D.npy**: C3D features @2fps for 1st half from SoccerNet-v1\n - **2_C3D.npy**: C3D features @2fps for 2nd half from SoccerNet-v1\n - **1_C3D_PCA512.npy**: C3D features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n - **2_C3D_PCA512.npy**: C3D features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n - **1_I3D.npy**: I3D features @2fps for 1st half from SoccerNet-v1\n - **2_I3D.npy**: I3D features @2fps for 2nd half from SoccerNet-v1\n - **1_I3D_PCA512.npy**: I3D features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n - **2_I3D_PCA512.npy**: I3D features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n - **1_ResNET.npy**: ResNET features @2fps for 1st half from SoccerNet-v1\n - **2_ResNET.npy**: ResNET features @2fps for 2nd half from SoccerNet-v1\n - **1_ResNET_PCA512.npy**: ResNET features @2fps for 1st half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n - **2_ResNET_PCA512.npy**: ResNET features @2fps for 2nd half from SoccerNet-v1, with dimensionality reduced to 512 using PCA\n\n\n## How to Download Games (Python)\n\n```python\nfrom SoccerNet.Downloader import SoccerNetDownloader\n\nmySoccerNetDownloader = SoccerNetDownloader(LocalDirectory=\"path/to/soccernet\")\n\n# Download SoccerNet labels\nmySoccerNetDownloader.downloadGames(files=[\"Labels.json\"], split=[\"train\",\"valid\",\"test\"]) # download labels\nmySoccerNetDownloader.downloadGames(files=[\"Labels-v2.json\"], split=[\"train\",\"valid\",\"test\"]) # download labels SN v2\nmySoccerNetDownloader.downloadGames(files=[\"Labels-cameras.json\"], split=[\"train\",\"valid\",\"test\"]) # download labels for camera shot\n\n# Download SoccerNet features\nmySoccerNetDownloader.downloadGames(files=[\"1_ResNET_TF2.npy\", \"2_ResNET_TF2.npy\"], split=[\"train\",\"valid\",\"test\"]) # download Features\nmySoccerNetDownloader.downloadGames(files=[\"1_ResNET_TF2_PCA512.npy\", \"2_ResNET_TF2_PCA512.npy\"], split=[\"train\",\"valid\",\"test\"]) # download Features reduced with PCA\nmySoccerNetDownloader.downloadGames(files=[\"1_player_boundingbox_maskrcnn.json\", \"2_player_boundingbox_maskrcnn.json\"], split=[\"train\",\"valid\",\"test\"]) # download Player Bounding Boxes inferred with MaskRCNN\nmySoccerNetDownloader.downloadGames(files=[\"1_field_calib_ccbv.json\", \"2_field_calib_ccbv.json\"], split=[\"train\",\"valid\",\"test\"]) # download Field Calibration inferred with CCBV\nmySoccerNetDownloader.downloadGames(files=[\"1_baidu_soccer_embeddings.npy\",\"2_baidu_soccer_embeddings.npy\"], split=[\"train\",\"valid\",\"test\"]) # download Frame Embeddings from https://github.com/baidu-research/vidpress-sports\n\n# Download SoccerNet videos (require password from NDA to download videos)\nmySoccerNetDownloader.password = input(\"Password for videos? (contact the author):\\n\")\nmySoccerNetDownloader.downloadGames(files=[\"1_224p.mkv\", \"2_224p.mkv\"], split=[\"train\",\"valid\",\"test\"]) # download 224p Videos\nmySoccerNetDownloader.downloadGames(files=[\"1_720p.mkv\", \"2_720p.mkv\"], split=[\"train\",\"valid\",\"test\"]) # download 720p Videos \n\n# Download SoccerNet Challenge set (require password from NDA to download videos)\nmySoccerNetDownloader.downloadGames(files=[\"1_ResNET_TF2.npy\", \"2_ResNET_TF2.npy\"], split=[\"challenge\"]) # download ResNET Features\nmySoccerNetDownloader.downloadGames(files=[\"1_ResNET_TF2_PCA512.npy\", \"2_ResNET_TF2_PCA512.npy\"], split=[\"challenge\"]) # download ResNET Features reduced with PCA\nmySoccerNetDownloader.downloadGames(files=[\"1_224p.mkv\", \"2_224p.mkv\"], split=[\"challenge\"]) # download 224p Videos (require password from NDA)\nmySoccerNetDownloader.downloadGames(files=[\"1_720p.mkv\", \"2_720p.mkv\"], split=[\"challenge\"]) # download 720p Videos (require password from NDA)\nmySoccerNetDownloader.downloadGames(files=[\"1_player_boundingbox_maskrcnn.json\", \"2_player_boundingbox_maskrcnn.json\"], split=[\"challenge\"]) # download Player Bounding Boxes inferred with MaskRCNN \nmySoccerNetDownloader.downloadGames(files=[\"1_field_calib_ccbv.json\", \"2_field_calib_ccbv.json\"], split=[\"challenge\"]) # download Field Calibration inferred with CCBV \nmySoccerNetDownloader.downloadGames(files=[\"1_baidu_soccer_embeddings.npy\",\"2_baidu_soccer_embeddings.npy\"], split=[\"challenge\"]) # download Frame Embeddings from https://github.com/baidu-research/vidpress-sports\n\n```\n\n## How to read the list Games (Python)\n\n```python\nfrom SoccerNet.utils import getListGames\nprint(getListGames(split=\"train\")) # return list of games recommended for training\nprint(getListGames(split=\"valid\")) # return list of games recommended for validation\nprint(getListGames(split=\"test\")) # return list of games recommended for testing\nprint(getListGames(split=\"challenge\")) # return list of games recommended for challenge\nprint(getListGames(split=[\"train\", \"valid\", \"test\", \"challenge\"])) # return list of games for training, validation and testing\nprint(getListGames(split=\"v1\")) # return list of games from SoccerNetv1 (train/valid/test)\n```\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "SoccerNet SDK",
"version": "0.1.46",
"split_keywords": [
"soccernet",
"sdk",
"spotting",
"football",
"soccer",
"video"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e5f37622e25c613cc9e717de23a27cc15a575ee5c21400c0f01f4d549968a427",
"md5": "b5bee481aec962751f89990c27b43faa",
"sha256": "6129d14961800e8c9e9eec2f8d3595380c9afe51c0acac09c95eea2c407e6c05"
},
"downloads": -1,
"filename": "SoccerNet-0.1.46-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b5bee481aec962751f89990c27b43faa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 79395,
"upload_time": "2023-02-06T21:53:37",
"upload_time_iso_8601": "2023-02-06T21:53:37.508357Z",
"url": "https://files.pythonhosted.org/packages/e5/f3/7622e25c613cc9e717de23a27cc15a575ee5c21400c0f01f4d549968a427/SoccerNet-0.1.46-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2d043845b296e379c79fc2daa6d28563c82cd46c9ca84606086cfdbe9704f130",
"md5": "ffa1187758a87134bca9ba6d5ebfcb68",
"sha256": "1fd1ea7437a65da70a9c9432b4272dcba8ab085f8e48d784e781d41e39598349"
},
"downloads": -1,
"filename": "SoccerNet-0.1.46.tar.gz",
"has_sig": false,
"md5_digest": "ffa1187758a87134bca9ba6d5ebfcb68",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63457,
"upload_time": "2023-02-06T21:53:39",
"upload_time_iso_8601": "2023-02-06T21:53:39.494945Z",
"url": "https://files.pythonhosted.org/packages/2d/04/3845b296e379c79fc2daa6d28563c82cd46c9ca84606086cfdbe9704f130/SoccerNet-0.1.46.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-06 21:53:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "SilvioGiancola",
"github_project": "SoccerNetv2",
"lcname": "soccernet"
}