###### tags: `CoachAI` `TrackNetV2` `Dataset` # Shuttlecock Trajectory Dataset - Contributor: 林育慶、孫念恩、Tsì-Uí İk ## Resource - Download the dataset including professioanl matches and amateur games: https://nycu1-my.sharepoint.com/:u:/g/personal/tik_m365_nycu_edu_tw/EWisYhAiai9Ju7L-tQp0ykEBZJd9VQkKqsFrjcqqYIDP-g?e=S0AB1Z - Labeling Tool: https://hackmd.io/CQmL6OKKSGKY9xUvU8n0iQ - TrackNet : https://nol.cs.nctu.edu.tw:234/open-source/TrackNet - TrackNetV2 : https://nol.cs.nctu.edu.tw:234/open-source/TrackNetv2 ## Introduction Our dataset is created for the model training and testing of TrackNet and TrackNetV2 for badminton applications. The dataset is composed of 26 broadcast videos. The resolution and frame rate of videos are 1280×720 and 30 fps, respectively. A rally is the record starting from serving to its score. There are 78200 frames in total. Below are snapshots from the 23 videos. The first 23 of video (68675 frames) is from professional game, and the last 3 of video (9525 frames) is playing for fun by ourselves. - Training Data (Professional) ![](https://i.imgur.com/6LuOj3f.jpg) - Training Data (Amateur) ![](https://i.imgur.com/9Ful9HH.jpg) - Testing Data ![](https://i.imgur.com/5LSScVU.png) ### Descriptions of each video (train professional matches) | Seq | Players <br> (Winner Vs Loser) | Match | Color <br> (In/Out) | # of frame | |:---:|:----------------------------------------------------:|:-------------------------------------------:|:-------------------:|:----------:| | 1 | TAI Tzu Ying <br> Vs <br> Akane Yamaguchi | 2018 All England Open <br> Semi-Finals | Green/Blue | 3298 | | 2 | TAI Tzu Ying <br> Vs <br> Chen Yufei | 2018 Indonesia Open <br> Finals | Green/Blue | 3227 | | 3 | Carolina MARIN <br> Vs <br> TAI Tzu Ying | 2019 China Open <br> Finals | Green/Blue | 3190 | | 4 | Kento MOMOTA <br> Vs <br> CHOU Tien Chen | 2019 Fuzhu Open <br> Finals | Green/Black | 2915 | | 5 | Kento MOMOTA <br> Vs <br> CHOU Tien Chen | 2019 Korea Open <br> Finals | Green/Blue | 3371 | | 6 | CHOU Tien Chen <br> Vs <br> HEO Kwang Hee | 2019 Chinese Taipei Open <br> Finals | Green/Blue | 3479 | | 7 | Anthony Sinisuka GINTING <br> VS <br> CHOU Tien Chen | 2019 Singapore Open <br> Semi Finals | Green/Blue | 3161 | | 8 | Anthony Sinisuka GINTING <br> VS <br> CHOU Tien Chen | 2019 Hong Kong Open <br> Quarter Finals | Green/Blue | 3353 | | 9 | CHOU Tien Chen <br> VS <br> Anthony Sinisuka GINTING | 2019 World Tour Finals <br> Group Stage | Red/Gray | 3203 | | 10 | SHI Yu Qi <br> Vs <br> CHOU Tien Chen | 2019 Asian Championship <br> Semi Finals | Green/Blue | 2673 | | 11 | CHOU Tien Chen <br> Vs <br> Jan Ø. Jørgensen | 2019 Singapore Open <br> Round of 16 | Green/Blue | 2791 | | 12 | Huang Yu Xiang <br> Vs <br> Kento MOMOTA | 2019 Indonesia Open <br> Round of 16 | Green/Red | 3257 | | 13 | CHOU Tien Chen <br> Vs <br> NG Ka Long Angus | 2019 Sudirman Cup <br> Group Stage | Green/Blue | 2608 | | 14 | NG Ka Long Angus <br> Vs <br> CHOU Tien Chen | 2020 Malaysia Master <br> Round of 16 | Green/Red | 2839 | | 15 | Viktor AXELSEN <br> Vs <br> CHOU Tien Chen | 2020 All England Open <br> Finals | Green/Blue | 2673 | | 16 | Khosit PHETPRADAB <br> Vs <br> WANG Tzu We | 2019 Denmark Open <br> Round of 32 | Green/Blue | 2969 | | 17 | Kento MOMOTA <br> Vs <br> WANG Tzu We | 2019 World Tour Finals <br> Semi Finals | Red/Gray | 2932 | | 18 | PUSARLA V.Sindhu <br> Vs <br> TAI Tzu Ying |2019 World Championships <br> Quarter Finals | Green/Blue | 2690 | | 19 | CHEN Yufei <br> Vs <br> TAI Tzu Ying | 2020 Malaysia Masters <br> Finals | Green/Red | 2828 | | 20 | NG Ka Long Angus <br> Vs <br> SHI Yu Qi | 2020 Thailand Masters <br> Semi Finals | Green/Blue | 3161 | | 21 | Anthony Sinisuka GINTING <br> Vs <br> Viktor AXELSEN | 2020 Indonesia Masters <br> Semi Finals | Green/Red | 2678 | | 22 | CHOU Tien Chen <br> Vs <br> Anders ANTONSEN | 2019 Indonesia Open <br> Finals | Green/Red | 3008 | | 23 | CHOU Tien Chen <br> Vs <br> Anders ANTONSEN | 2019 China Open <br> Quarter Finals | Green/Blue | 3092 | ### Rally of each match (train professional matchs) | Match | # of rally | Rally name (set_winner score_loser score) | |:-----:|:----------:| ---------------------------------------------------------------------------------------------------------- | | 1 | 12 | 1_01_00、1_02_00、1_02_01、1_02_02、1_02_03、1_02_04、1_03_04、1_03_05、1_03_06、1_06_06、1_06_08、1_06_09 | | 2 | 8 | 1_00_02、1_02_03、1_04_03、1_06_08、1_06_09、1_08_11、1_08_12、1_09_12 | | 3 | 7 | 1_01_00、1_08_10、1_12_17、2_04_07、2_10_12、2_18_15、3_11_10 | | 4 | 8 | 1_03_02、1_15_10、2_02_05、2_05_07、2_14_17、3_02_00、3_07_05、3_18_17 | | 5 | 6 | 1_01_01、1_01_02、1_19_18、1_21_19、2_15_13、2_20_17 | | 6 | 5 | 1_02_00、1_05_03、1_11_04、1_15_06、1_19_12 | | 7 | 5 | 1_02_01、1_12_13、2_05_03、2_14_15、3_08_05 | | 8 | 8 | 1_01_00、1_05_13、2_03_06、2_10_12、3_02_00、3_15_08、3_17_12、3_21_13 | | 9 | 9 | 1_01_03、1_02_03、1_04_05、1_05_06、1_06_06、1_07_07、1_07_10、1_07_11、1_07_14 | | 10 | 5 | 1_03_01、1_03_03、1_12_16、2_04_02、2_14_08 | | 11 | 5 | 1_03_01、1_07_06、1_13_13、2_05_00、2_15_04 | | 12 | 5 | 1_01_00、1_10_12、2_01_01、2_05_14、3_03_03 | | 13 | 6 | 1_09_10、1_17_15、2_06_05、2_07_05、2_09_08、2_17_11 | | 14 | 5 | 1_17_14、2_13_06、2_15_10、2_19_13、2_21_17 | | 15 | 5 | 1_21_12、2_14_08、2_16_12、2_18_14、2_19_14 | | 16 | 6 | 1_03_06、1_13_20、2_08_08、3_12_06、3_14_09、3_17_16 | | 17 | 6 | 1_02_02、1_15_13、2_01_01、2_08_05、2_15_11、2_18_11 | | 18 | 6 | 1_06_12、2_02_02、3_03_05、3_12_14、3_16_17、3_20_19 | | 19 | 5 | 1_01_01、1_01_03、1_07_08、2_12_06、2_14_08 | | 20 | 6 | 1_09_05、1_11_10、2_00_01、2_05_08、2_07_08、2_19_14 | | 21 | 7 | 1_02_01、1_16_17、1_19_19、2_02_03、2_04_04、2_09_08、2_12_08 | | 22 | 5 | 1_02_01、1_07_02、2_17_18、2_18_18、3_15_13 | | 23 | 6 | 1_06_04、1_11_08、1_17_13、2_02_03、2_07_03、2_12_08 | ### Descriptions of each video (test professional matches) | Seq | Players <br> (Winner Vs Loser) | Match | Color <br> (In/Out) | # of frame | |:---:|:----------------------------------------------------:|:--------------------------------------------:|:-------------------:|:----------:| | 1 | Jonatan Christie <br> Vs <br> CHOU Tien Chen |2019 Australian International <br> Semi-Finals| Green/Blue | 4222 | | 2 | CHOU Tien Chen <br> Vs <br> WANG Tzu We | 2020 Tokyo Olympics Simulation <br> | Green/Blue | 4233 | | 3 | TAI Tzu Ying <br> Vs <br> Carolina MARIN | 2021 World Tour Finals <br> Finals | Green/Red | 4203 | ### Rally of each match (test professional matchs) | Match | # of rally | Rally name (set_winner score_loser score) | |:-----:|:----------:| ---------------------------------------------------------------------------------------------------------- | | 1 | 11 | 1_02_07、1_03_08、1_03_10、1_05_02、1_05_03、1_06_03、1_07_03、1_07_04、1_07_06、1_09_06、1_09_07 | | 2 | 7 | 1_03_03、1_04_04、1_11_11、1_13_12、1_19_15、2_02_05、2_08_12 | | 3 | 11 | 1_02_00、1_03_02、1_05_02、1_05_03、1_06_05、1_06_06、1_08_08、1_08_09、1_09_12、1_09_15、1_10_16 | ## Folder Structure ### Professional Game (match1 ~ match23) profession_dataset ├── match1/ │ ├── ball_trajectory/ │ │ ├── 1_01_00_ball.csv │ │ ├── 1_02_00_ball.csv │ │ ├── … │ │ └── *_**_**_ball.csv │ ├── frame/ │ │ ├── 1_01_00/ │ │ │ ├── 0.png │ │ │ ├── 1.png │ │ │ ├── … │ │ │ └── *.png │ │ ├── 1_02_00/ │ │ │ ├── 0.png │ │ │ ├── 1.png │ │ │ ├── … │ │ │ └── *.png │ │ ├── … │ │ └── *_**_**/ │ │ │ └── rally_video/ │ ├── 1_01_00.mp4 │ ├── 1_02_00.mp4 │ ├── … │ └── *_**_**.mp4 ├── match2/ │ ⋮ └── match23/ ### Amateur Game (match1 ~ match3) amateur_dataset ├── match1/ │ ├── ball_trajectory/ │ │ ├── 1_00_01_ball.csv │ │ ├── 1_01_01_ball.csv │ │ ├── … │ │ └── *_**_**_ball.csv │ ├── frame/ │ │ ├── 1_00_01/ │ │ │ ├── 0.png │ │ │ ├── 1.png │ │ │ ├── … │ │ │ └── *.png │ │ ├── 1_01_01/ │ │ │ ├── 0.png │ │ │ ├── 1.png │ │ │ ├── … │ │ │ └── *.png │ │ ├── … │ │ └── *_**_**/ │ │ │ └── rally_video/ │ ├── 1_00_01.mp4 │ ├── 1_01_01.mp4 │ ├── … │ └── *_**_**.mp4 ├── match2/ │ └── match3/ ### indexing of Rallies In the dataset, a rally of a match is indexed by a set of three numbers s_ww_ll in which * "s" is the set number. * "ww" is the score of the match winner right after the rally. * "ll" is the score of the match loser right after the rally. For example, 1_04_02 denotes the rally in Set 1 after the rally the score goes to 4:2 and 4 is the score of the match winner and 2 is score of the match loser. ### Naming of Files and Directories Files and directories includes: - readme.docx: the readme file of the dataset. - match1, match2, ..., match23: the match data directories - ball_trajectory: the folder for the trajectory csv files of rallies. - frame: the directory of frame images grouping by rallies - s_ww_ll: the directory to store the frames of the rally indexed by s_ww_ll - 0.png, 1.png, ...: frame image in png format - rally_video: the directory to store the rally clips - s_ww_ll.mp4: the video clip of the rally s_ww_ll ## Data Files - In ball_trajectory folder, the labeling csv file is the csv with visibility column: ![](https://i.imgur.com/dyoHCa5.png) The format is followed from [labeling tool](https://hackmd.io/CQmL6OKKSGKY9xUvU8n0iQ) output. ``` - Frame represent the frame of video. - Visibility means the shuttlecock is visible or not at this frame(0 : invisible, 1 : visible). - X, Y is the coordinate of shuttlecock.If shuttlecock is invisible now, then X, Y is 0. ``` - frame folder contains rally folder of each match : ![](https://i.imgur.com/3LhLbVh.png) and In rally folder, there is the frame of each rally video(.png file) : ![](https://i.imgur.com/fmSFtyy.png) - In rally_video folder contains rally videos of match(.mp4 file): ![](https://i.imgur.com/nisjNrz.png)