Difference between revisions of "Eyesis4Pi 393 workflow"

From ElphelWiki
Jump to: navigation, search
(Created page with "==Actual Workflow== ===Footage Acquisition=== {| class="wikitable" |- ! Step !! Description !! Time, min !! Comment |- |align="center" | 1 |style="padding...")
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Actual Workflow==
+
==Workflow==
  
===Footage Acquisition===
+
===Record===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Step !! Description !! Time, min !! Comment
+
! Step !! Description !! Time, min !! Program !! Comment
|-  
+
|-
 
|align="center"                    | 1
 
|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  
 
|style="padding:0px 15px 0px 15px;"| Power on and boot  
|align="center"                    | 1-2
+
|align="center"                    | -
 +
|align="center"                    | -
 
|style="padding:0px 15px 0px 15px;"|
 
|style="padding:0px 15px 0px 15px;"|
 
|-
 
|-
|align="center"                    | 3
+
|align="center"                    | 2
 
|style="padding:0px 15px 0px 15px;"| Network setup
 
|style="padding:0px 15px 0px 15px;"| Network setup
|align="center"                    | 0-1
+
|align="center"                    | -
|style="padding:0px 15px 0px 15px;"| Needed only once. [http://linuxlibrary.org/kubuntu-network-configuration/  Kubuntu Network Configuration].
+
|align="center"                    | -
 +
|style="padding:0px 15px 0px 15px;"| [http://linuxlibrary.org/kubuntu-network-configuration/  Kubuntu Network Configuration].
 
|-
 
|-
|align="center"                    | 4
+
|align="center"                    | 3
|style="padding:0px 15px 0px 15px;"| [[Eyesis4Pi_User_Guide_-_Recording|Accessing the WebGUI]]
+
|style="padding:0px 15px 0px 15px;"| System tests
|align="center"                    | 0-1
+
|align="center"                    | -
|style="padding:0px 15px 0px 15px;"|The camera is controlled through a WebGUI
+
|align="center"                    | [[Eyesis4Pi 393 User Guide - Recording|Web GUI]]
|-
 
|align="center"                    | 5
 
|style="padding:0px 15px 0px 15px;"| System tests
 
|align="center"                    | 0-1
 
 
|style="padding:0px 15px 0px 15px;"| Optional
 
|style="padding:0px 15px 0px 15px;"| Optional
 
|-
 
|-
|align="center"                    | 6
+
|align="center"                    | 4
|style="padding:0px 15px 0px 15px;"| Waiting for GPS lock
+
|style="padding:0px 15px 0px 15px;"| Set up paths and shooting parameters
|align="center"                    | 0-10
+
|align="center"                    | -
|style="padding:0px 15px 0px 15px;"| Cold start can take up to 10 min
+
|align="center"                    | [[Eyesis4Pi 393 User Guide - Recording|Web GUI]]
|-
 
|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 of course
 
|style="padding:0px 15px 0px 15px;"| Initial settings can take longer time of course
 
|-
 
|-
|align="center"                   | 8
+
|align="center" valign="top"      | 5
|style="padding:0px 15px 0px 15px;"| Start recording  
+
|style="padding:0px 15px 0px 15px;" valign="top"| Start/Stop recording
|align="center"                   | -
+
|align="center" valign="top"       | -
|style="padding:0px 15px 0px 15px;"|
+
|align="center" valign="top"       | [[Eyesis4Pi 393 User Guide - Recording|Web GUI]]
|-
 
|align="center"                   | 9
 
|style="padding:0px 15px 0px 15px;"| Stop recording
 
|align="center"                    | -
 
 
|style="padding:0px 15px 0px 15px;"| Output:
 
|style="padding:0px 15px 0px 15px;"| Output:
* Images in a [[JP4|JP4]] format (a RAW format with a better quality than JPEG)
+
* Images in [[JP4|JP4]] format (a RAW format with a better quality than JPEG)
* Binary log with the IMU,GPS and Internal Timestamp records.
+
* Binary log with the IMU, GPS and Internal Timestamp records.
 +
|}
 +
 
 +
===Download===
 +
{| class="wikitable"
 
|-
 
|-
|align="center"                    | 10
+
! Step !! Description !! Time, min !! Program !! Comment
|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
+
|align="center" valign="top"      | 1
|style="padding:0px 15px 0px 15px;"| Camera power off
+
|style="padding:0px 15px 0px 15px;" valign="top" | Copy footage from SSDs to storage
|align="center"                   | 0-1
+
|align="center" valign="top"       | -
|style="padding:0px 15px 0px 15px;"| Power off the switch, unplug cables
+
|align="center" style="padding:0px 15px 0px 15px;" valign="top"| [https://github.com/Elphel/elphel-tools-x393 python scripts]
|-
+
|style="padding:0px 15px 0px 15px;"|
|align="center"                   | 12
+
* both, internal and external SSDs, are downloaded through SATA interface (up to 6Gbit/s)
|style="padding:0px 15px 0px 15px;"| Taking the camera off the vehicle
+
* data from internal SSDs is downloaded through eSATA cables coming out of the camera
|align="center"                   | 10
+
* external SSDs are swappable
|style="padding:0px 15px 0px 15px;"| If needed
+
* Output: Binary log and partition files (default size: 10GB)
 
|}
 
|}
  
===Post-Processing===
+
===Post-Process===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 75: Line 61:
 
|-
 
|-
 
|align="center"                    | 1
 
|align="center"                    | 1
|style="padding:0px 15px 0px 15px;"| Copying footage from SSDs to the PC
+
|style="padding:0px 15px 0px 15px;"| Extract images
|align="center"                    | 10-30
+
|align="center"                    | -
|align="center" style="padding:0px 15px 0px 15px;"| Manual
+
|align="center" style="padding:0px 15px 0px 15px;"| [https://github.com/Elphel/elphel-tools-x393 extract_images.php]
|style="padding:0px 15px 0px 15px;"|
+
|style="padding:0px 15px 0px 15px;"| Extract individual image files from data files
 
|-
 
|-
 
|align="center"                    | 2
 
|align="center"                    | 2
|style="padding:0px 15px 0px 15px;"| Selecting images for post-processing
+
|style="padding:0px 15px 0px 15px;"| Post-process
 
|align="center"                    | -
 
|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]]
 
|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.  
 
|style="padding:5px 15px 5px 15px;"| Output: transformed according pixel map images ready for stitching and blending.  
Line 106: Line 80:
 
* Sharpening
 
* Sharpening
 
|-
 
|-
|align="center"                    | 5
+
|align="center"                    | 3
|style="padding:0px 15px 0px 15px;"| Stitching and blending
+
|style="padding:0px 15px 0px 15px;"| Stitch and blend
|align="center"                    | 2-5<sup>1</sup>
+
|align="center"                    | -
|style="padding:0px 15px 0px 15px;"| WebGUI - [[Eyesis4Pi_Footage_Procedures_page|Footage Procedures]]
+
|style="padding:0px 15px 0px 15px;"|  
|style="padding:0px 15px 0px 15px;"| Output panoramas in equirectangular projection
+
|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
 
-->
 
 
 
{|
 
|- valign="top"
 
|[[File:Recording gui settings.jpeg|thumb|500px|Recording WebGUI, settings]]
 
|[[File:Recording gui pattern.jpeg|thumb|700px|Recording WebGUI, preview - test pattern]]
 
|}
 
 
 
<!--
 
* The modules haveindividual IP address:
 
192.168.0.221-229
 
* 192.168.0.221 - master camera, sends sync signals to others.
 
* A single image format is JP4 (a RAW format with a better quality than *.jpeg).
 
* Corresponding frames have the same time stamps generated by the master camera.
 
* 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.
 
-->
 
 
 
=== 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]]
 
 
|}
 
|}
  
==Links==
+
[[Category:Eyesis4Pi393]]
* [[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]]
 
 
 
<!--
 
<font size='2'>
 
sudo apt-get install apache2 php5 ufraw dcraw libjpeg-progs imagemagick hugin
 
</font>
 
* Apache web server + php
 
* [http://wiki.elphel.com/index.php?title=Movie2dng Movie2DNG] - extracting JP4 (JP4 is the Elphel raw image format) images from *.MOVs.
 
* [[Elphel_Software_Kit_for_Ubuntu#ImageJ_and_Elphel_plugins_for_imageJ|ImageJ]] (by 3rd party) - ImageJ with Elphel plugins (image quality enhancement, aberration correction, color balance, stitching) for processing JP4s to create TIFF/JPEG output;
 
* [http://www.imagemagick.org/script/index.php ImageMagick] #  (by 3rd party), also with a PHP scrip by Elphel is used for converting/modifying panorama JPEGs - scaling for WebGL panorama viewer/editor;
 
# other pre-installed PHP scripts:
 
** exif2kml.php - extract the GPS data from images and put it all to a KML file of the route.
 
** create_links_xml_file.php - read the KML file and create file with records-links of the route points. It is used in [http://eyesisbox.elphel.net/webgl-pano/geo_tests.html Elphel WebGL Viewer]
 
 
 
Other:
 
* [http://ufraw.sourceforge.net/ Ufraw] (by 3rd party) - to view/process DNG/TIFF
 
* [http://www.cybercom.net/~dcoffin/dcraw/ Dcraw] (by 3rd party) - for converting JPEGs
 
* cjpeg
 
 
 
=====Verify installation=====
 
In a terminal window type & enter commands ("command not found" == not installed):
 
<font size='2'>
 
movie2dng
 
convert
 
nona
 
enblend
 
cjpeg --help
 
dcraw
 
</font>
 
== Post processing workflow==
 
 
 
* Copy all the *.mov or *.jp4 files to certain locations (folders must have the r/w rights enabled for everyone):
 
<font size='2'>
 
/data/footage/<folder>
 
</font>
 
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)
 
* '''<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).
 
* '''<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]]
 
[[Category:User Guide]]

Revision as of 13:46, 16 March 2017

Workflow

Record

Step Description Time, min Program Comment
1 Power on and boot - -
2 Network setup - - Kubuntu Network Configuration.
3 System tests - Web GUI Optional
4 Set up paths and shooting parameters - Web GUI Initial settings can take longer time of course
5 Start/Stop recording - Web GUI Output:
  • Images in JP4 format (a RAW format with a better quality than JPEG)
  • Binary log with the IMU, GPS and Internal Timestamp records.

Download

Step Description Time, min Program Comment
1 Copy footage from SSDs to storage - python scripts
  • both, internal and external SSDs, are downloaded through SATA interface (up to 6Gbit/s)
  • data from internal SSDs is downloaded through eSATA cables coming out of the camera
  • external SSDs are swappable
  • Output: Binary log and partition files (default size: 10GB)

Post-Process

Step Description Time, min Program Comment
1 Extract images - extract_images.php Extract individual image files from data files
2 Post-process - 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
3 Stitch and blend - Output: panoramas in equirectangular projection