From 1238ad3b922033990eefcb6df19ef65e4d5242d3 Mon Sep 17 00:00:00 2001 From: Mark Loyzer <mark.loyzer@gmail.com> Date: Thu, 30 Mar 2017 18:37:49 -0400 Subject: [PATCH] Fix issue1 and update README to explain train test data splitting --- README.md | 2 + data/1_move_files.py | 16 +++--- data/ucfTrainTestlist/testlist01.txt | 71 +++++++++++++++++++++++++++ data/ucfTrainTestlist/trainlist01.txt | 52 ++++++++++++++++++++ 4 files changed, 134 insertions(+), 7 deletions(-) create mode 100644 data/ucfTrainTestlist/testlist01.txt create mode 100644 data/ucfTrainTestlist/trainlist01.txt diff --git a/README.md b/README.md index 2c49e61..2b813bc 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ Then extract it with `unrar -e UCF101.rar`. Next, create folders with `mkdir train && mkdir test && mkdir sequences && mkdir checkpoints`. +You will need to update the files in data/ucfTrainTestlists/ which specifies which video files you want to test and train on. It is quite easy to add/remove with an editor that does vertical/multi line editing (ls -l -> highlight + copy -> paste into file -> delete the prefixes across each line). + Now you can run the scripts in the data folder to move the videos to the appropriate place, extract their frames and make the CSV file the rest of the code references. ## Extracting features diff --git a/data/1_move_files.py b/data/1_move_files.py index 874ea1e..500e34e 100644 --- a/data/1_move_files.py +++ b/data/1_move_files.py @@ -6,6 +6,7 @@ Should only run this file once! """ import os import os.path +import re def get_train_test_lists(version='01'): """ @@ -44,9 +45,10 @@ def move_files(file_groups): for video in videos: # Get the parts. - parts = video.split('/') - classname = parts[0] - filename = parts[1] + parts = re.compile('_g\d+_').search(video) + classname = video[2: parts.start()] # 2 removes 'v_' + filename = video[parts.start()+1:] # +1 removes '_' + # Check if this class exists. if not os.path.exists(group + '/' + classname): @@ -55,14 +57,14 @@ def move_files(file_groups): # Check if we have already moved this file, or at least that it # exists to move. - if not os.path.exists(filename): - print("Can't find %s to move. Skipping." % (filename)) + if not os.path.exists(video): + print("Can't find %s to move. Skipping." % (video)) continue # Move it. dest = group + '/' + classname + '/' + filename - print("Moving %s to %s" % (filename, dest)) - os.rename(filename, dest) + print("Moving %s to %s" % (video, dest)) + os.rename(video, dest) print("Done.") diff --git a/data/ucfTrainTestlist/testlist01.txt b/data/ucfTrainTestlist/testlist01.txt new file mode 100644 index 0000000..5693d2d --- /dev/null +++ b/data/ucfTrainTestlist/testlist01.txt @@ -0,0 +1,71 @@ +v_HighJump_g01_c01.avi +v_HighJump_g01_c02.avi +v_HighJump_g01_c03.avi +v_HighJump_g01_c04.avi +v_HighJump_g01_c05.avi +v_HighJump_g02_c01.avi +v_HighJump_g02_c02.avi +v_HighJump_g02_c03.avi +v_HighJump_g02_c04.avi +v_HighJump_g02_c05.avi +v_HighJump_g02_c06.avi +v_HighJump_g02_c07.avi +v_HighJump_g03_c01.avi +v_HighJump_g03_c02.avi +v_HighJump_g03_c03.avi +v_HighJump_g03_c04.avi +v_HighJump_g04_c01.avi +v_HighJump_g04_c02.avi +v_HighJump_g04_c03.avi +v_HighJump_g04_c04.avi +v_HighJump_g04_c05.avi +v_HighJump_g04_c06.avi +v_HighJump_g05_c01.avi +v_HighJump_g05_c02.avi +v_HighJump_g05_c03.avi +v_HighJump_g05_c04.avi +v_HighJump_g05_c05.avi +v_HighJump_g06_c01.avi +v_HighJump_g06_c02.avi +v_HighJump_g06_c03.avi +v_HighJump_g06_c04.avi +v_HighJump_g07_c01.avi +v_HighJump_g07_c02.avi +v_HighJump_g07_c03.avi +v_HighJump_g07_c04.avi +v_HighJump_g07_c05.avi +v_HighJump_g07_c06.avi +v_HighJump_g08_c01.avi +v_HighJump_g08_c02.avi +v_HighJump_g08_c03.avi +v_HighJump_g08_c04.avi +v_HighJump_g08_c05.avi +v_HighJump_g09_c01.avi +v_HighJump_g09_c02.avi +v_HighJump_g09_c03.avi +v_HighJump_g09_c04.avi +v_HighJump_g09_c05.avi +v_HighJump_g10_c01.avi +v_HighJump_g10_c02.avi +v_HighJump_g10_c03.avi +v_HighJump_g10_c04.avi +v_HighJump_g11_c01.avi +v_HighJump_g11_c02.avi +v_HighJump_g11_c03.avi +v_HighJump_g11_c04.avi +v_HighJump_g11_c05.avi +v_HighJump_g11_c06.avi +v_HighJump_g11_c07.avi +v_HighJump_g12_c01.avi +v_HighJump_g12_c02.avi +v_HighJump_g12_c03.avi +v_HighJump_g12_c04.avi +v_HighJump_g13_c01.avi +v_HighJump_g13_c02.avi +v_HighJump_g13_c03.avi +v_HighJump_g13_c04.avi +v_HighJump_g13_c05.avi +v_HighJump_g14_c01.avi +v_HighJump_g14_c02.avi +v_HighJump_g14_c03.avi +v_HighJump_g14_c04.avi diff --git a/data/ucfTrainTestlist/trainlist01.txt b/data/ucfTrainTestlist/trainlist01.txt new file mode 100644 index 0000000..20978ea --- /dev/null +++ b/data/ucfTrainTestlist/trainlist01.txt @@ -0,0 +1,52 @@ +v_HighJump_g15_c01.avi +v_HighJump_g15_c02.avi +v_HighJump_g15_c03.avi +v_HighJump_g15_c04.avi +v_HighJump_g16_c01.avi +v_HighJump_g16_c02.avi +v_HighJump_g16_c03.avi +v_HighJump_g16_c04.avi +v_HighJump_g16_c05.avi +v_HighJump_g17_c01.avi +v_HighJump_g17_c02.avi +v_HighJump_g17_c03.avi +v_HighJump_g17_c04.avi +v_HighJump_g18_c01.avi +v_HighJump_g18_c02.avi +v_HighJump_g18_c03.avi +v_HighJump_g18_c04.avi +v_HighJump_g19_c01.avi +v_HighJump_g19_c02.avi +v_HighJump_g19_c03.avi +v_HighJump_g19_c04.avi +v_HighJump_g19_c05.avi +v_HighJump_g20_c01.avi +v_HighJump_g20_c02.avi +v_HighJump_g20_c03.avi +v_HighJump_g20_c04.avi +v_HighJump_g20_c05.avi +v_HighJump_g21_c01.avi +v_HighJump_g21_c02.avi +v_HighJump_g21_c03.avi +v_HighJump_g21_c04.avi +v_HighJump_g22_c01.avi +v_HighJump_g22_c02.avi +v_HighJump_g22_c03.avi +v_HighJump_g22_c04.avi +v_HighJump_g22_c05.avi +v_HighJump_g23_c01.avi +v_HighJump_g23_c02.avi +v_HighJump_g23_c03.avi +v_HighJump_g23_c04.avi +v_HighJump_g23_c05.avi +v_HighJump_g23_c06.avi +v_HighJump_g24_c01.avi +v_HighJump_g24_c02.avi +v_HighJump_g24_c03.avi +v_HighJump_g24_c04.avi +v_HighJump_g24_c05.avi +v_HighJump_g25_c01.avi +v_HighJump_g25_c02.avi +v_HighJump_g25_c03.avi +v_HighJump_g25_c04.avi +v_HighJump_g25_c05.avi -- GitLab