summaryrefslogtreecommitdiff
path: root/build_dataset.pl
diff options
context:
space:
mode:
Diffstat (limited to 'build_dataset.pl')
-rw-r--r--build_dataset.pl57
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";