diff options
Diffstat (limited to 'scripts/builders/pair-dataset-link.pl')
| -rw-r--r-- | scripts/builders/pair-dataset-link.pl | 83 |
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"; + |
