diff options
Diffstat (limited to 'build_dataset.pl')
| -rw-r--r-- | build_dataset.pl | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/build_dataset.pl b/build_dataset.pl new file mode 100644 index 0000000..6b0524d --- /dev/null +++ b/build_dataset.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +use strict; +use Cwd qw(cwd); +my $base_dir = cwd; + +our $images_dir = $base_dir . "/sequences/$tag/"; +our $thumbs_dir = $base_dir . "/datasets/$tag/"; + +mkdir($base_dir . "/datasets/"); +mkdir($thumbs_dir); +mkdir($thumbs_dir . "train_A/"); +mkdir($thumbs_dir . "test_A/"); +mkdir($thumbs_dir . "train_B/"); +mkdir($thumbs_dir . "test_B/"); + +our $test_split = 10; # 1/N videos will be for the test split + +our @files = (); + +opendir DIR, $images_dir; +while (readdir DIR) { + next if /^\./; + push(@files, $_); +} +closedir DIR; + +our @images = sort @files; + +my $count = scalar(@images); + +print "Processing " . $count . " frames\n"; + +my $i; +my $j; +my $dir; +my $src; +my $dest; +for ($i = 0; $i < $count; $i++) { + if (($i % $test_split) != ($test_split-1)) { + $dir = $thumbs_dir . "train_"; + } else { + $dir = $thumbs_dir . "test_"; + } + + $src = $images_dir . $images[$i]; + $dst = $dir . sprintf("A/frame%03d.png", $i); + system("ln", "-s", $src, $dst); + + $src = $images_dir . $images[$i+1]; + $dst = $dir . sprintf("B/frame%03d.png", $i); + system("ln", "-s", $src, $dst); + + if (($i % 100) == 0) + print $i . "...\n"; +} +print "Done\n"; |
