Difference between revisions of "Eyesis4Pi workflow"

From ElphelWiki
Jump to: navigation, search
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Preface==
+
==Actual Workflow==
The following page describes the Eyesis4Pi camera software and post-processing procedures.
 
  
== Elphel-Eyesis4Pi GUI (recording)==
+
===Footage Acquisition===
 +
{| class="wikitable"
 +
|-
 +
! Step !! Description !! Time, min !! Comment
 +
|-
 +
|align="center"                    | 1
 +
|style="padding:0px 15px 0px 15px;"| Mounting on a vehicle
 +
|align="center"                    | 15
 +
|style="padding:0px 15px 0px 15px;"| We do not provide racks or backpacks yet
 +
|-
 +
|align="center"                    | 2
 +
|style="padding:0px 15px 0px 15px;"| Power on and boot
 +
|align="center"                    | 1-2
 +
|style="padding:0px 15px 0px 15px;"|
 +
|-
 +
|align="center"                    | 3
 +
|style="padding:0px 15px 0px 15px;"| Network setup
 +
|align="center"                    | 0-1
 +
|style="padding:0px 15px 0px 15px;"| Needed only once. [http://linuxlibrary.org/kubuntu-network-configuration/  Kubuntu Network Configuration].
 +
|-
 +
|align="center"                    | 4
 +
|style="padding:0px 15px 0px 15px;"| [[Eyesis4Pi_User_Guide_-_Recording|Accessing the WebGUI]]
 +
|align="center"                    | 0-1
 +
|style="padding:0px 15px 0px 15px;"|The camera is controlled through a WebGUI
 +
|-
 +
|align="center"                    | 5
 +
|style="padding:0px 15px 0px 15px;"| System tests
 +
|align="center"                    | 0-1
 +
|style="padding:0px 15px 0px 15px;"| Optional
 +
|-
 +
|align="center"                    | 6
 +
|style="padding:0px 15px 0px 15px;"| Waiting for GPS lock
 +
|align="center"                    | 0-10
 +
|style="padding:0px 15px 0px 15px;"| Cold start can take up to 10 min
 +
|-
 +
|align="center"                    | 7
 +
|style="padding:0px 15px 0px 15px;"| Setting up paths and shooting parameters
 +
|align="center"                    | 0-1
 +
|style="padding:0px 15px 0px 15px;"| Initial settings can take longer time
 +
|-
 +
|align="center"                    | 8
 +
|style="padding:0px 15px 0px 15px;"| Start recording
 +
|align="center"                    | -
 +
|style="padding:0px 15px 0px 15px;"|
 +
|-
 +
|align="center"                    | 9
 +
|style="padding:0px 15px 0px 15px;"| Stop recording
 +
|align="center"                    | -  
 +
|style="padding:0px 15px 0px 15px;"| Output:
 +
* Images in a [[JP4|JP4]] format (a RAW format with a better quality than JPEG)
 +
* Binary log with the IMU,GPS and Internal Timestamp records.
 +
|-
 +
|align="center"                    | 10
 +
|style="padding:0px 15px 0px 15px;"| Downloading GPS/IMU log
 +
|align="center"                    | 0-10
 +
|style="padding:0px 15px 0px 15px;"| Download onto recording PC, depends on the file size.
 +
|-
 +
|align="center"                    | 11
 +
|style="padding:0px 15px 0px 15px;"| Camera power off
 +
|align="center"                    | 0-1
 +
|style="padding:0px 15px 0px 15px;"| Power off the switch, unplug cables
 +
|-
 +
|align="center"                    | 12
 +
|style="padding:0px 15px 0px 15px;"| Taking the camera off the vehicle
 +
|align="center"                    | 10
 +
|style="padding:0px 15px 0px 15px;"| If needed
 +
|}
  
Elpehl-Eyesis GUI (PHP+JavaScript+HTML) is installed on the laptop and used for controlling the Eyesis camera.
+
===Post-Processing===
 +
{| class="wikitable"
 +
|-
 +
! Step !! Description !! Time, min !! Program !! Comment
 +
|-
 +
|align="center"                    | 1
 +
|style="padding:0px 15px 0px 15px;"| Copying footage from SSDs to the PC
 +
|align="center"                    | 10-30
 +
|align="center" style="padding:0px 15px 0px 15px;"| Manual
 +
|style="padding:0px 15px 0px 15px;"|
 +
|-
 +
|align="center"                    | 2
 +
|style="padding:0px 15px 0px 15px;"| Selecting images for post-processing
 +
|align="center"                    | -
 +
|align="center" style="padding:0px 15px 0px 15px;"| WebGUI - [[Eyesis4Pi_Panorama_Previewer|Panorama Previewer]]
 +
|style="padding:0px 15px 0px 15px;"| Optional, if not all the images are needed
 +
|-
 +
|align="center"                    | 3
 +
|style="padding:0px 15px 0px 15px;"| Copying selected or all the images for post-processing
 +
|align="center"                    | 10-30
 +
|align="center" style="padding:0px 15px 0px 15px;"| WebGUI - [[Eyesis4Pi_Footage_Procedures_page|Footage Procedures]]
 +
|style="padding:0px 15px 0px 15px;"|
 +
|-
 +
|align="center"                    | 4
 +
|style="padding:0px 15px 0px 15px;"| Post-processing in ImageJ
 +
|align="center"                    | 20-30<sup>1</sup>
 +
|align="center" style="padding:0px 15px 0px 15px;"| [[Eyesis4pi_Post-Processing|ImageJ]]
 +
|style="padding:5px 15px 5px 15px;"| Output: transformed according pixel map images ready for stitching and blending.  
 +
Procedures performed:
 +
* Applying pixel mapping information
 +
* Aberration correction
 +
* Distortion correction
 +
* Vignetting correction
 +
* Color correction
 +
* Denoising
 +
* Sharpening
 +
|-
 +
|align="center"                    | 5
 +
|style="padding:0px 15px 0px 15px;"| Stitching and blending
 +
|align="center"                    | 2-5<sup>1</sup>
 +
|style="padding:0px 15px 0px 15px;"| WebGUI - [[Eyesis4Pi_Footage_Procedures_page|Footage Procedures]]
 +
|style="padding:0px 15px 0px 15px;"| Output panoramas in equirectangular projection
 +
|-
 +
|align="center"                    | 6
 +
|style="padding:0px 15px 0px 15px;"| Preparing panoramas for WebGL Viewer
 +
|align="center"                    | 2-5<sup>1</sup>
 +
|style="padding:0px 15px 0px 15px;"| WebGUI - [[Eyesis4Pi_Footage_Procedures_page|Footage Procedures]]
 +
|style="padding:0px 15px 0px 15px;"| Optional
 +
|}
 +
<sup>1</sup>- per single scene
 +
<br><br>
 +
==GUIs Overview==
  
 +
=== WebGUI (recording)===
 +
* PHP+JavaScript+HTML.
 +
* Installed on the laptop or PC used for recording.
 +
 +
[[Eyesis4Pi_User_Guide|More info...]]
 +
<!--
 
* [http://wiki.elphel.com/index.php?title=Eyesis_gui elphel-eyesis-gui] - camera GUI  
 
* [http://wiki.elphel.com/index.php?title=Eyesis_gui elphel-eyesis-gui] - camera GUI  
 +
-->
 +
 +
{|
 +
|- valign="top"
 +
|[[File:Recording gui settings.jpeg|thumb|500px|Recording WebGUI, settings]]
 +
|[[File:Recording gui pattern.jpeg|thumb|700px|Recording WebGUI, preview - test pattern]]
 +
|}
  
==EyesisPi Output==
+
<!--
* Each frame in a *.mov file is a combination of frames from 3 sensors glued vertically - triplet.
+
* The modules haveindividual IP address:
* The modules are numbered - 1..8 - having individual ip address:
+
  192.168.0.221-229
  192.168.0.221-228
 
 
* 192.168.0.221 - master camera, sends sync signals to others.
 
* 192.168.0.221 - master camera, sends sync signals to others.
* The frames in *.movs are indexed.
+
* A single image format is JP4 (a RAW format with a better quality than *.jpeg).
* A single image format is JP4 (a raw format with a higher quality and frame rate than *.jpeg).
 
 
* Corresponding frames have the same time stamps generated by the master camera.
 
* Corresponding frames have the same time stamps generated by the master camera.
 
* The master camera frames are geotagged.
 
* The master camera frames are geotagged.
 
* The IMU log is stored on 1 of the 2 Compact Flash cards (non-removable) attached to the master camera.
 
* The IMU log is stored on 1 of the 2 Compact Flash cards (non-removable) attached to the master camera.
 +
-->
 +
 +
=== Post-Processing===
 +
 +
====A. WebGUI part (PHP + JavaScript + HTML)====
 +
* Copying images before processing.
 +
* Extracting GPS coordinates from images.
 +
* Stitching (after ImageJ).
 +
* Formatting/resizing the results.
 +
[[Eyesis4Pi_Footage_Procedures_page|More info...]]
 +
{|
 +
|[[File:Footage procedures.png|thumb|400px|Footage procedures WebGUI]]
 +
|}
 +
 +
====B. ImageJ part (Java)====
 +
* Applying pixel mapping information
 +
* Aberration correction
 +
* Distortion correction
 +
* Vignetting correction
 +
* Color correction
 +
* Denoising
 +
* Sharpening
 +
[[Eyesis4pi_Post-Processing|More info...]]
 +
{|
 +
|- valign="top"
 +
|[[File:Eyesis_corrections_plugin.jpeg|thumb|800px|Eyesis corrections plugin interface]]
 +
|}
  
== Post Processing Software==
+
==Links==
 +
* [[Elphel_Eyesis4Pi|Eyesis4Pi Main Article]]
 +
* [[Eyesis4Pi_workflow|Workflow]]
 +
* [[Eyesis4Pi_User_Guide|User Guide - Recording]]
 +
* [[Eyesis4Pi_Footage_Procedures_page|User Guide - Post-Processing: Footage Procedures]]
 +
* [[Eyesis4pi_Post-Processing|User Guide - Post-processing: ImageJ]]
 +
* [[Eyesis4Pi_data_structure|Data Structure Description]]
 +
* [[Eyesis4Pi_Calibration|Calibration Process]]
  
==== Elphel Eyesis4Pi SDK software (pre-installed), for post-processing:====
+
<!--
 
<font size='2'>
 
<font size='2'>
 
  sudo apt-get install apache2 php5 ufraw dcraw libjpeg-progs imagemagick hugin
 
  sudo apt-get install apache2 php5 ufraw dcraw libjpeg-progs imagemagick hugin
Line 50: Line 211:
 
== Post processing workflow==
 
== Post processing workflow==
  
* Copy all the *.mov files to certain locations (folders must have the r/w rights enabled for everyone):
+
* Copy all the *.mov or *.jp4 files to certain locations (folders must have the r/w rights enabled for everyone):
Currently:
+
<font size='2'>
  hdd1: /data/disk-1/<footage_name>/
+
  /data/footage/<folder>
...
+
</font>
hdd8: /data/disk-8/<footage_name>/
+
All the php scripts are launched from a single page - [[Eyesis4Pi_Footage_Procedures_page|Footage Procedures]]:
 
+
* '''<nowiki>http://127.0.0.1/scripts/split_mov.php?dir=<footage_name></nowiki>''' - (usage TBA) - it applies [http://wiki.elphel.com/index.php?title=Movie2dng Movie2DNG] to all the footage files. The output is JP4 files. (if needed)
All the php scripts are launched from a single page:
 
* '''<nowiki>http://127.0.0.1/scripts/split_mov.php?dir=<footage_name></nowiki>''' - (usage TBA) - it applies [http://wiki.elphel.com/index.php?title=Movie2dng Movie2DNG] to all the footage files. The output is JP4 files.
 
 
* '''<nowiki>http://127.0.0.1/scripts/exif2kml.php?dir=<footage_name></nowiki>''' - it extracts the GPS data from images and puts it all to a KML file of the route. The output is a KML file.
 
* '''<nowiki>http://127.0.0.1/scripts/exif2kml.php?dir=<footage_name></nowiki>''' - it extracts the GPS data from images and puts it all to a KML file of the route. The output is a KML file.
 
* Launch [http://rsbweb.nih.gov/ij/ ImageJ] and process the files. The output are enhanced, stitched JPEGs (optionally TIFFs).
 
* Launch [http://rsbweb.nih.gov/ij/ ImageJ] and process the files. The output are enhanced, stitched JPEGs (optionally TIFFs).
 
* '''<nowiki>http://127.0.0.1/scripts/convert_images_for_webgl.php?dir=<results_dir></nowiki>''' - rescale results using [http://www.imagemagick.org/script/index.php ImageMagick].
 
* '''<nowiki>http://127.0.0.1/scripts/convert_images_for_webgl.php?dir=<results_dir></nowiki>''' - rescale results using [http://www.imagemagick.org/script/index.php ImageMagick].
 +
-->
 +
[[Category:Eyesis4Pi]]
 +
[[Category:User Guide]]

Latest revision as of 13:20, 21 May 2018

Actual Workflow

Footage Acquisition

Step Description Time, min Comment
1 Mounting on a vehicle 15 We do not provide racks or backpacks yet
2 Power on and boot 1-2
3 Network setup 0-1 Needed only once. Kubuntu Network Configuration.
4 Accessing the WebGUI 0-1 The camera is controlled through a WebGUI
5 System tests 0-1 Optional
6 Waiting for GPS lock 0-10 Cold start can take up to 10 min
7 Setting up paths and shooting parameters 0-1 Initial settings can take longer time
8 Start recording -
9 Stop recording - Output:
  • Images in a JP4 format (a RAW format with a better quality than JPEG)
  • Binary log with the IMU,GPS and Internal Timestamp records.
10 Downloading GPS/IMU log 0-10 Download onto recording PC, depends on the file size.
11 Camera power off 0-1 Power off the switch, unplug cables
12 Taking the camera off the vehicle 10 If needed

Post-Processing

Step Description Time, min Program Comment
1 Copying footage from SSDs to the PC 10-30 Manual
2 Selecting images for post-processing - WebGUI - Panorama Previewer Optional, if not all the images are needed
3 Copying selected or all the images for post-processing 10-30 WebGUI - Footage Procedures
4 Post-processing in ImageJ 20-301 ImageJ Output: transformed according pixel map images ready for stitching and blending.

Procedures performed:

  • Applying pixel mapping information
  • Aberration correction
  • Distortion correction
  • Vignetting correction
  • Color correction
  • Denoising
  • Sharpening
5 Stitching and blending 2-51 WebGUI - Footage Procedures Output panoramas in equirectangular projection
6 Preparing panoramas for WebGL Viewer 2-51 WebGUI - Footage Procedures Optional

1- per single scene

GUIs Overview

WebGUI (recording)

  • PHP+JavaScript+HTML.
  • Installed on the laptop or PC used for recording.

More info...

Recording WebGUI, settings
Recording WebGUI, preview - test pattern


Post-Processing

A. WebGUI part (PHP + JavaScript + HTML)

  • Copying images before processing.
  • Extracting GPS coordinates from images.
  • Stitching (after ImageJ).
  • Formatting/resizing the results.

More info...

Footage procedures WebGUI

B. ImageJ part (Java)

  • Applying pixel mapping information
  • Aberration correction
  • Distortion correction
  • Vignetting correction
  • Color correction
  • Denoising
  • Sharpening

More info...

Eyesis corrections plugin interface

Links