#!/usr/bin/perl use Getopt::Long; use IO::Handle; STDERR->autoflush(1); STDOUT->autoflush(1); my $module = "pix2pixhd"; my $dataset = "PLACEHOLDER"; my $sequence = "PLACEHOLDER"; my $folder_id = 0; my $start_frame = 0; my $end_frame = 0; my $endpoint = undef; GetOptions ( "module=s" => \$module, "dataset=s" => \$dataset, "sequence=s" => \$sequence, "folder_id=i" => \$folder_id, "start_frame=i" => \$start_frame, "end_frame=i" => \$end_frame, "endpoint=s" => \$endpoint, ) or die("Error in command line arguments\n"); if ($dataset eq 'PLACEHOLDER' or $sequence eq 'PLACEHOLDER' || ! -e "sequences/$sequence") { print "No dataset specified\n"; exit(1); } if ($start_frame == 0 or $end_frame == 0) { print "No frames specified\n"; exit(1); } print "module: $module\n"; print "dataset: $dataset\n"; print "sequence: $sequence\n"; print "folder_id: $folder_id\n"; print "start_frame: $start_frame\n"; print "end_frame: $end_frame\n"; print "endpoint: $endpoint\n"; mkdir("./datasets/$dataset"); mkdir("./datasets/$dataset/train_A"); mkdir("./datasets/$dataset/train_B"); mkdir("./datasets/$dataset/test_A"); mkdir("./datasets/$dataset/test_B"); mkdir("./sequences/$dataset"); my $dataset_lines = `ls -1v sequences/$dataset/*.png`; my @dataset_files = split("\n", $dataset_lines); my $sequence_lines = `ls -1v sequences/$sequence/*.png`; my @sequence_files = split('\n', $sequence_lines); print "Sequence count: " . (scalar @sequence_files) . "\n"; print "Dataset count: " . (scalar @dataset_files) . "\n"; my $pwd = `pwd`; chomp $pwd; $pwd .= '/'; print $pwd . "\n"; my $sequence_i = 0; my $dataset_i = scalar @dataset_files; my $last_fn = undef; for my $filename (@sequence_files) { if ($start_frame <= $sequence_i and $sequence_i <= $end_frame) { chomp $filename; print($pwd . $filename. "\n"); my $a_fn = sprintf('./datasets/%s/train_A/%s_%05d.png', $dataset, $sequence, $sequence_i); my $b_fn = sprintf('./datasets/%s/train_B/%s_%05d.png', $dataset, $sequence, $sequence_i); if (! -e $a_fn) { system('ln', '-s', $pwd . $filename, sprintf('./sequences/%s/frame_%05d.png', $dataset, $dataset_i)); $dataset_i += 1; } if (defined $last_fn) { if (! -e $a_fn && ! -e $b_fn) { system('ln', '-s', $pwd . $last_fn, $a_fn); system('ln', '-s', $pwd . $filename, $b_fn); } } $last_fn = $filename; } if ($end_frame < $sequence_i) { break; } $sequence_i += 1; } if (defined $endpoint) { print("post to $endpoint\n"); system("curl", "-X", "POST", "-d", "folder_id=$folder_id", "-d", "module=$module", "-d", "name=$dataset.mov", "-d", "url=https://s3.amazonaws.com/i.asdf.us/cortex/lens/data/$folder_id/$dataset.mov", "-d", "dataset=$dataset", "-d", "activity=splice", "-d", "generated=false", "-d", "processed=true", "-d", "datatype=video", $endpoint ); } END { # chdir($parent_dir); }