summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-16 12:44:53 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-16 12:44:53 +0200
commit181e72339ea8c74637f885b74dbe6a54b9651eb9 (patch)
tree86a91fd4d96bb71a1a6bcb8899c2990b422edcc1
parent1186928e20bf5b519103414fce4532a73eee5f61 (diff)
pair-dataset-link.pl
-rw-r--r--scripts/builders/pair-dataset-link.pl83
1 files changed, 83 insertions, 0 deletions
diff --git a/scripts/builders/pair-dataset-link.pl b/scripts/builders/pair-dataset-link.pl
new file mode 100644
index 0000000..6a5a643
--- /dev/null
+++ b/scripts/builders/pair-dataset-link.pl
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+
+use strict;
+use Getopt::Long;
+use IO::Handle;
+
+STDERR->autoflush(1);
+STDOUT->autoflush(1);
+
+my $dataset;
+my $sequence_dir;
+my $ab_dir;
+my $dt;
+my $wait;
+my $buzz;
+GetOptions (
+ "dataset" => \$dataset,
+ "sequence_dir" => \$sequence_dir,
+ "ab_dir" => \$ab_dir,
+ "dt" => \$dt,
+)
+
+print $dataset . "\n";
+if (! $dataset || ! $sequence_dir || ! $ab_dir || ! -e $sequence_dir) {
+ print "usage: --dataset ... --sequence_dir ... --ab_dir ... --dt 1\n";
+ exit(1);
+}
+if (! $dt) {
+ $dt = 1;
+}
+$sequence_dir .= "/";
+$ab_dir .= "/";
+
+mkdir($ab_dir);
+mkdir($ab_dir . "A/");
+mkdir($ab_dir . "B/");
+mkdir($ab_dir . "A/train/");
+mkdir($ab_dir . "B/train/");
+mkdir($ab_dir . "A/val/");
+mkdir($ab_dir . "B/val/");
+mkdir($ab_dir . "A/test/");
+mkdir($ab_dir . "B/test/");
+
+our @files = ();
+
+opendir DIR, $sequence_dir;
+while (readdir DIR) {
+ next if /^\./;
+ push(@files, $_);
+}
+closedir DIR;
+
+our @sequence = sort @files;
+
+my $count = scalar(@sequence) - $dt;
+
+print "$count images in sequence\n";
+
+my $i; my $x; my $y; my $dir; my $id;
+for ($i = 0; $i < $count; $i++) {
+ $id = $i;
+ if ( ($id % 10) == 5) {
+ $dir = "test/";
+ } elsif ( ($id % 10) == 8) {
+ $dir = "val/";
+ } else {
+ $dir = "train/";
+ }
+ if ( $i && ($i % 1000) == 0) {
+ print($id . "...\n")
+ }
+
+ #my $x = int(rand($w - $dw));
+ #my $y = int(rand($h - $dh));
+ my $a_frame = $sequence_dir . $sequence[$id];
+ my $b_frame = $sequence_dir . $sequence[$id+$dt];
+ my $fn = sprintf("frame_%05d.png", $i);
+ #print "$fn $x $y $a_frame\n";
+ system("ln", "-s", $a_frame, $ab_dir . "A/" . $dir . $fn);
+ system("ln", "-s", $b_frame, $ab_dir . "B/" . $dir . $fn);
+}
+print $count . "\n";
+