diff --git a/otbtf_pres/Dockerfile b/otbtf_pres/Dockerfile old mode 100644 new mode 100755 diff --git a/otbtf_pres/a11y-light.css b/otbtf_pres/a11y-light.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/block.css b/otbtf_pres/block.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/CC-licence.png b/otbtf_pres/illustrations/CC-licence.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/aligned_grid.png b/otbtf_pres/illustrations/aligned_grid.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/anim_crga.gif b/otbtf_pres/illustrations/anim_crga.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann.png b/otbtf_pres/illustrations/ann.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann_example.png b/otbtf_pres/illustrations/ann_example.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann_train1.png b/otbtf_pres/illustrations/ann_train1.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann_train2.png b/otbtf_pres/illustrations/ann_train2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann_train3.png b/otbtf_pres/illustrations/ann_train3.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ann_types.png b/otbtf_pres/illustrations/ann_types.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/bands.png b/otbtf_pres/illustrations/bands.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/blank.png b/otbtf_pres/illustrations/blank.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/cgan_schema.png b/otbtf_pres/illustrations/cgan_schema.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ci.jpg b/otbtf_pres/illustrations/ci.jpg old mode 100644 new mode 100755 index 7876c55190141a97d7adf33c92ff879a840ca20b..7fa94e4202dea07ad03d4247e6b3f54f07a6d71a Binary files a/otbtf_pres/illustrations/ci.jpg and b/otbtf_pres/illustrations/ci.jpg differ diff --git a/otbtf_pres/illustrations/cli.png b/otbtf_pres/illustrations/cli.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/computational_graph.gif b/otbtf_pres/illustrations/computational_graph.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/convolution.png b/otbtf_pres/illustrations/convolution.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/crga_os2_unet_slide3.png b/otbtf_pres/illustrations/crga_os2_unet_slide3.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/crying_meme_mask.jpg b/otbtf_pres/illustrations/crying_meme_mask.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/decloud_anim.gif b/otbtf_pres/illustrations/decloud_anim.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/decloud_cap1.jpg b/otbtf_pres/illustrations/decloud_cap1.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/decloud_cap1.png b/otbtf_pres/illustrations/decloud_cap1.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/decloud_cap2.jpg b/otbtf_pres/illustrations/decloud_cap2.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/decloud_meraner.gif b/otbtf_pres/illustrations/decloud_meraner.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/deepnet-params.png b/otbtf_pres/illustrations/deepnet-params.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/dinamis_sdk.png b/otbtf_pres/illustrations/dinamis_sdk.png new file mode 100644 index 0000000000000000000000000000000000000000..26417a66d82438c484eddab25fdf22e44e495e38 Binary files /dev/null and b/otbtf_pres/illustrations/dinamis_sdk.png differ diff --git a/otbtf_pres/illustrations/dl_applications.png b/otbtf_pres/illustrations/dl_applications.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/docker.jpg b/otbtf_pres/illustrations/docker.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/emprises.png b/otbtf_pres/illustrations/emprises.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ensembles.png b/otbtf_pres/illustrations/ensembles.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/fig12.10_new.png b/otbtf_pres/illustrations/fig12.10_new.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/fondtetis.png b/otbtf_pres/illustrations/fondtetis.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/fordead_plot.png b/otbtf_pres/illustrations/fordead_plot.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/foss4g_logo.png b/otbtf_pres/illustrations/foss4g_logo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/gan_schema.png b/otbtf_pres/illustrations/gan_schema.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/gif_2160.gif b/otbtf_pres/illustrations/gif_2160.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/github.png b/otbtf_pres/illustrations/github.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/graph_1.png b/otbtf_pres/illustrations/graph_1.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/graph_2.png b/otbtf_pres/illustrations/graph_2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/hubs.png b/otbtf_pres/illustrations/hubs.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/illustration.png b/otbtf_pres/illustrations/illustration.png new file mode 100755 index 0000000000000000000000000000000000000000..ec86d1e99fd1353863bf40e973c90b8d7acac799 Binary files /dev/null and b/otbtf_pres/illustrations/illustration.png differ diff --git a/otbtf_pres/illustrations/inrae_logo.png b/otbtf_pres/illustrations/inrae_logo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/jean-zay.png b/otbtf_pres/illustrations/jean-zay.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/landcover.png b/otbtf_pres/illustrations/landcover.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/latelescop.png b/otbtf_pres/illustrations/latelescop.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/ledig.png b/otbtf_pres/illustrations/ledig.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/listof.jpg b/otbtf_pres/illustrations/listof.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/logo.png b/otbtf_pres/illustrations/logo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/masque_ssthrs.png b/otbtf_pres/illustrations/masque_ssthrs.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase.png b/otbtf_pres/illustrations/modelbase.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase_1.png b/otbtf_pres/illustrations/modelbase_1.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase_2.png b/otbtf_pres/illustrations/modelbase_2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase_3.png b/otbtf_pres/illustrations/modelbase_3.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase_4.png b/otbtf_pres/illustrations/modelbase_4.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/modelbase_5.png b/otbtf_pres/illustrations/modelbase_5.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/net.png b/otbtf_pres/illustrations/net.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/net_semseg_spot67.jpg b/otbtf_pres/illustrations/net_semseg_spot67.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/otblogo.png b/otbtf_pres/illustrations/otblogo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/otbtf.png b/otbtf_pres/illustrations/otbtf.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/otbtf_github.png b/otbtf_pres/illustrations/otbtf_github.png new file mode 100644 index 0000000000000000000000000000000000000000..4b841c2d98b99f2b0164e83b39f4bd7d530f5352 Binary files /dev/null and b/otbtf_pres/illustrations/otbtf_github.png differ diff --git a/otbtf_pres/illustrations/patches.png b/otbtf_pres/illustrations/patches.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/patches2.png b/otbtf_pres/illustrations/patches2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/patchespos.png b/otbtf_pres/illustrations/patchespos.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/pipeline.png b/otbtf_pres/illustrations/pipeline.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/pix2pix.png b/otbtf_pres/illustrations/pix2pix.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/pyotbadvert.gif b/otbtf_pres/illustrations/pyotbadvert.gif old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/pyotbadvert.png b/otbtf_pres/illustrations/pyotbadvert.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/python.png b/otbtf_pres/illustrations/python.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/repos.jpg b/otbtf_pres/illustrations/repos.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/repos_docker.jpg b/otbtf_pres/illustrations/repos_docker.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/repos_git.jpg b/otbtf_pres/illustrations/repos_git.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/scores.png b/otbtf_pres/illustrations/scores.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/scores2.png b/otbtf_pres/illustrations/scores2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/serie_temporelle.mp4 b/otbtf_pres/illustrations/serie_temporelle.mp4 new file mode 100755 index 0000000000000000000000000000000000000000..0062896b29e203196b6a9402ae1d98db728d14c5 Binary files /dev/null and b/otbtf_pres/illustrations/serie_temporelle.mp4 differ diff --git a/otbtf_pres/illustrations/ski.jpg b/otbtf_pres/illustrations/ski.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/soil_moisture.jpg b/otbtf_pres/illustrations/soil_moisture.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sources/ensembles.svg b/otbtf_pres/illustrations/sources/ensembles.svg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sources/graph_1.svg b/otbtf_pres/illustrations/sources/graph_1.svg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sources/graph_2.svg b/otbtf_pres/illustrations/sources/graph_2.svg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sources/modelbase.svg b/otbtf_pres/illustrations/sources/modelbase.svg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sources/pipeline_ex.svg b/otbtf_pres/illustrations/sources/pipeline_ex.svg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_ams.jpg b/otbtf_pres/illustrations/sr4rs_ams.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_baotou.jpg b/otbtf_pres/illustrations/sr4rs_baotou.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_lisboa.jpg b/otbtf_pres/illustrations/sr4rs_lisboa.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_logos.jpg b/otbtf_pres/illustrations/sr4rs_logos.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_okla.jpg b/otbtf_pres/illustrations/sr4rs_okla.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/sr4rs_tours.jpg b/otbtf_pres/illustrations/sr4rs_tours.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/srgan_sampling.png b/otbtf_pres/illustrations/srgan_sampling.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/streaming.png b/otbtf_pres/illustrations/streaming.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/supresol.png b/otbtf_pres/illustrations/supresol.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/telescop_cailloux.jpg b/otbtf_pres/illustrations/telescop_cailloux.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/telescop_cap1.jpg b/otbtf_pres/illustrations/telescop_cap1.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/telescop_cap2.jpg b/otbtf_pres/illustrations/telescop_cap2.jpg old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/tensorflow.png b/otbtf_pres/illustrations/tensorflow.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/tetis_logo.jpg b/otbtf_pres/illustrations/tetis_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f3ce77f05bb17c96724cbf21727bef7b34e0f7ed Binary files /dev/null and b/otbtf_pres/illustrations/tetis_logo.jpg differ diff --git a/otbtf_pres/illustrations/tetis_logo.png b/otbtf_pres/illustrations/tetis_logo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/tetiscneslogo.png b/otbtf_pres/illustrations/tetiscneslogo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/tflogo.png b/otbtf_pres/illustrations/tflogo.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/tosca.png b/otbtf_pres/illustrations/tosca.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/unet.png b/otbtf_pres/illustrations/unet.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/illustrations/video.mp4 b/otbtf_pres/illustrations/video.mp4 new file mode 100755 index 0000000000000000000000000000000000000000..291f2383156c1a35c91ee0a7ed767116e239e009 Binary files /dev/null and b/otbtf_pres/illustrations/video.mp4 differ diff --git a/otbtf_pres/illustrations/video_foret.webm b/otbtf_pres/illustrations/video_foret.webm new file mode 100644 index 0000000000000000000000000000000000000000..29144bab1e3d0e28262007c324ee3552be607e10 Binary files /dev/null and b/otbtf_pres/illustrations/video_foret.webm differ diff --git a/otbtf_pres/illustrations/video_mtp.avi b/otbtf_pres/illustrations/video_mtp.avi new file mode 100644 index 0000000000000000000000000000000000000000..48a73d0dc4c20878cba774767486c7e71ea73205 Binary files /dev/null and b/otbtf_pres/illustrations/video_mtp.avi differ diff --git a/otbtf_pres/illustrations/video_mtp.webm b/otbtf_pres/illustrations/video_mtp.webm new file mode 100644 index 0000000000000000000000000000000000000000..4f1a4860b5d31595495902017cef4019a63743d8 Binary files /dev/null and b/otbtf_pres/illustrations/video_mtp.webm differ diff --git a/otbtf_pres/index.html b/otbtf_pres/index.html old mode 100644 new mode 100755 index 58bb3f83e2cf97be451cc7c7eaf8ee0b4ee4c648..84a1ed2561faa9c3e65e36897189880e5a802f62 --- a/otbtf_pres/index.html +++ b/otbtf_pres/index.html @@ -8,7 +8,7 @@ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> - <title>OTBTF, The Orfeo ToolBox extension for deep learning</title> + <title>Deep learning applied to remote sensing images</title> <link rel="stylesheet" href="revealjs/dist/reset.css"> <link rel="stylesheet" href="revealjs/dist/reveal.css"> @@ -31,19 +31,20 @@ PREMIER SLIDE -------------------------------------------------------------------------> <section data-background="illustrations/blank.png" background-size="contain"> - <h1> Status of OTBTF </h1> - <h2> The Orfeo ToolBox extension for deep learning </h2> + <h1> Deep learning applied to remote sensing images </h1> </br> - <p> Rémi Cresson<sup>1</sup>, Nicolas Narçon<sup>1</sup>, Vincent Delbar<sup>2</sup></p> - <small>(1) French National Research Institute for Agriculture, Food and the Environment (INRAE), + <p> Rémi Cresson<sup>1</sup>, Nicolas Narçon<sup>2</sup>, Vincent Delbar<sup>3</sup></p> + <small>(1) INRAE, <br> - (2) + (2) European Space Agency + <br> + (3) LaTeleScop</small> <br> <br> <br> <br> - <img width="30%" data-src="illustrations/foss4g_logo.png"> + <p>Journées INRAE systèmes d'information pour les données agro-environnementales</p> </section> <!------------------------------------------------------------------------ @@ -52,6 +53,7 @@ <section> <section> <h1>What is OTBTF?</h1> + <img width="25%" data-src="illustrations/otbtf_github.png"> </section> <section> @@ -97,8 +99,8 @@ git clone https://github.com/remicres/otbtf.git <img width="4%" data-src="illustrations/repos_docker.jpg" style="float:left;padding-left:20%"> <pre style="width:800px"><code data-trim class="bash" > -docker pull mdl4eo/otbtf:3.3.0-cpu -docker pull mdl4eo/otbtf:3.3.0-gpu # GPU enabled +docker pull mdl4eo/otbtf:4.2.2-cpu +docker pull mdl4eo/otbtf:4.2.2-gpu # GPU enabled </pre></code> </section> @@ -115,6 +117,11 @@ docker pull mdl4eo/otbtf:3.3.0-gpu # GPU enabled <h1>What for</h1> </section> + <section> + <img width="40%" data-src="illustrations/listof.jpg"> + <p><small>Made with imgflip.com</small></p> + </section> + <section> <img width="40%" data-src="illustrations/ensembles.png"> </section> @@ -130,6 +137,7 @@ docker pull mdl4eo/otbtf:3.3.0-gpu # GPU enabled <br> <img width="20%" data-src="illustrations/graph_1.png"> <br> + <h4>Build model<h4> <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:15%;margin:30px"> <pre style="width:1050px"><code data-trim class="python"> import tensorflow as tf @@ -137,32 +145,26 @@ docker pull mdl4eo/otbtf:3.3.0-gpu # GPU enabled x1 = tf.keras.Input(shape=[None, None, None], name="x1") x2 = tf.keras.Input(shape=[None, None, None], name="x2") - # Scalar product y = tf.reduce_sum(tf.multiply(x1, x2), axis=-1) - # Create model model = tf.keras.Model(inputs={"x1": x1, "x2": x2}, outputs={"y": y}) model.save("/tmp/my_savedmodel") </code></pre> - <img width="48px" data-src="illustrations/cli.png" style="float:left;padding-left:15%;margin:30px"> + <h4>Inference<h4> + <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:15%;margin:30px"> <pre style="width:1050px"><code data-trim class="bash"> -export OTB_TF_NSOURCES=2 -otbcli_TensorflowModelServe \ - -source1.il "input_img_1.tif" -source2.il "input_img_2.tif" \ - -model.dir "/tmp/my_savedmodel" -model.fullyconv on \ - -out "output.tif" +import pyotb +pyotb.TensorflowModelServe({ + "source1.il": "input_img_1.tif", + "source2.il": "input_img_2.tif", + "model.dir": "/tmp/my_savedmodel", + "model.fullyconv": True, + "out": "output.tif" +}, n_sources=2) </code></pre> </section> - <section> - <h2>Deep learning</h2> - <h3><strike>Bridging the gap between deep learning and EO</strike></h3> - <h3>Bridging the gap between litterature and real life </h3> - <img width="40%" data-src="illustrations/listof.jpg"> - <p><small>Made with imgflip.com</small></p> - </section> - </section> <!------------------------------------------------------------------------ @@ -197,48 +199,14 @@ otbcli_TensorflowModelServe \ </section> <section> - <h2>OTB Applications</h2> - - <ul> - <li> - <h>TensorflowModelServe</h>: Inference on real world remote sensing products - </li> - <li> - <g>PatchesExtraction</g>: extract patches in images - </li> - <li> - <h>PatchesSelection</h>: for patches selection from rasters - </li> - <li> - <g>TrainClassifierFromDeepFeatures</g>: train traditionnal classifiers that use features from deep nets - </li> - <li> - <g>ImageClassifierFromDeepFeatures</g>: use traditionnal classifiers with features from deep nets - </li> - <li> - <g>LabelImageSampleSelection</g>: select patches from a label image - </li> - <li> - <g>DensePolygonClassStatistics</g>: fast terrain truth polygons statistics - </li> - <li> - <g>TensorflowModelTrain</g>: training/validation (educational purpose) - </li> - </ul> - - <br><br> - </section> - - <section> - <h3>TensorflowModelServe</h3> - <h4>Streamable inference: a key feature to go large scale</h4> + <h3>Streamable inference</h3> + <h4>A key feature to go large scale with remote sensing products</h4> <img width="60%" data-src="illustrations/pipeline.png"> <p><small>Typical pipeline for inference in production</small></p> </section> <section> <h3>Patches extraction</h3> - <h4>CLI example</h4> <img width="48px" data-src="illustrations/cli.png" style="float:left;padding-left:22%;margin:30px"> <pre style="width:800px"><code data-trim class="bash"> export OTB_TF_NSOURCES=3 # Number of sources @@ -264,37 +232,18 @@ otbcli_PatchesExtraction -vec "myvec.gpkg" \ <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:20%;margin:30px"> <pre style="width:900px"><code data-trim class="python"> import otbtf -files = {"x": ["x1.tif", ..., "xN.tif"], - "y": ["y1.tif", ..., "yN.tif"], - "z": ["z1.tif", ..., "zN.tif"]} +files = { + "x": ["x1.tif", ..., "xN.tif"], + "y": ["y1.tif", ..., "yN.tif"], + "z": ["z1.tif", ..., "zN.tif"] +} ds = otbtf.DatasetFromPatchesImages(filenames_dict=files) - -# This is a TensorFlow dataset -tf_ds = ds.get_tf_dataset(batch_size=8) - </code></pre> - </section> - - <section> - <h3>TFRecords</h3> - <p>Any <g>otbtf.Dataset</g> can be exported in the <g>TFRecords</g> format:</p> - <pre style="width:800px"><code data-trim class="python"> -# Create .records files in the directory -ds.to_tfrecords("/path/to/tfrecords_dir") - </code></pre> - <p>Which is convenient in distributed training setup, and easy to use in TF/Keras:</p> - <pre style="width:800px"><code data-trim class="python"> -# This is a TensorFlow dataset! -tf_ds = TFRecords("/path/to/tfrecords_dir").read() +tf_ds = ds.get_tf_dataset(batch_size=8) # TF dataset </code></pre> - <img width="40%" data-src="illustrations/jean-zay.png"> - <p><small>TFRecords guarantee optimal performances on HPC architectures like <h>clusters</h> or <h>clouds</h>. - <br> - OTBTF was extensively tested on the <h>Jean-Zay</h> supercomputer (french institute for development and resources in intensive scientific computing).</small></p> </section> <section data-transition="fade"> <h3>ModelBase</h3> - <h4><y>New</y> in v3.3.0!</h4> <br> <ul> <li>Ease the <h>implementation of deep nets</h> in python</li> @@ -328,19 +277,17 @@ class MyModel(ModelBase): </section> <section data-transition="fade"> - <h4>Dataset preparation</h4> + <h4>Dataset pre-processing</h4> <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:18%;margin:30px"> <pre style="width:1000px"><code data-trim class="python"> def dataset_preprocessing_fn(examples): - - # Cast UInt8 to Int32 - y_patches = tf.cast(examples["y_patches"], tf.int32) - - # One hot encoding - y_onehot = tf.one_hot(tf.squeeze(y_patches, axis=-1), depth=5) - - # Return dict of preprocessed inputs - return {"x": examples["x_patches"], "y": y_onehot} + return { + "x": examples["x_patches"], + "y": otbtf.ops.one_hot( + labels=examples["y_patches"], + nb_classes=5 + ) + } </code></pre> <img width="50%" data-src="illustrations/modelbase_2.png"> </section> @@ -354,10 +301,14 @@ strategy = tf.distribute.MirroredStrategy() with strategy.scope(): model = MyModel(dataset_element_spec=ds_train.element_spec) - model.compile(loss=tf.keras.losses.CategoricalCrossentropy(), - optimizer=tf.keras.optimizers.Adam(), - metrics=[tf.keras.metrics.Precision(), - tf.keras.metrics.Recall()]) + model.compile( + loss=tf.keras.losses.CategoricalCrossentropy(), + optimizer=tf.keras.optimizers.Adam(), + metrics=[ + tf.keras.metrics.Precision(), + tf.keras.metrics.Recall() + ] + ) # Train model.fit(ds_train, epochs=100, validation_data=ds_valid) @@ -389,13 +340,14 @@ otbcli_TensorflowModelServe <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:18%;margin:30px"> <pre style="width:1000px"><code data-trim class="python"> import pyotb -params = {"source1.il": "input_x.tif", - "source1.rfieldx": 7, - "source1.rfieldy": 7, - "model.dir": "/tmp/model", - "model.fullyconv": "on", - "model.outputs": "y_out"} -app = pyotb.TensorflowModelServe(params) +app = pyotb.TensorflowModelServe({ + "source1.il": "input_x.tif", + "source1.rfieldx": 7, + "source1.rfieldy": 7, + "model.dir": "/tmp/model", + "model.fullyconv": "on", + "model.outputs": "y_out" +}) app.write("output_y.tif") </code></pre> <img width="50%" data-src="illustrations/modelbase_4.png"> @@ -425,7 +377,7 @@ app.write("output_y.tif") -------------------------------------------------------------------------> <section> <section> - <h1>Examples</h1> + <h1>Applied examples</h1> </section> <section> @@ -439,17 +391,10 @@ app.write("output_y.tif") </small></p> </section> - <section> - <h4>Model designed for Spot-6/7 products</h4> - <img width="40%" data-src="illustrations/net_semseg_spot67.jpg"> - <p><small> - Semantic segmentation network that inputs separately <h>multispectral</h> and - <h>panchromatic</h> rasters of Spot-6/7 images - </small></p> + <section data-background="illustrations/blank.png" background-size="contain"> + <img width="90%" data-src="illustrations/gif_2160.gif"> </section> - <section data-background-image='illustrations/gif_2160.gif'></section> - <section> <img width="60%" data-src="illustrations/masque_ssthrs.png"> <p><small><h>Forest mapping</h> at 1.5m spacing from ~1200 spot 6/7 images acquired between 2016 and 2020. Copyright <h>INRAE</h>/<h>UMR TETIS</h>, <h>OSM</h></small></p> @@ -468,78 +413,6 @@ app.write("output_y.tif") <section data-background-image='illustrations/sr4rs_okla.jpg'></section> <section data-background-image='illustrations/sr4rs_baotou.jpg'></section> - <section> - <h4>Easy to run</h4> - <img width="48px" data-src="illustrations/cli.png" style="float:left;padding-left:15%;margin:30px"> - <pre style="width:1000px"><code data-trim class="bash"> -# Download pre-trained model -wget https://tinyurl.com/sr4rsmodelv2 -unzip sr4rsmodelv2 - -# Inference over a Sentinel-2 image (Bands 4, 3, 2, 8) -python sr4rs/code/sr.py \ ---savedmodel sr4rs_sentinel2_bands4328_france2020_savedmodel \ ---input S2_image_channels_4328_10m.tif \ ---output S2_SR.tif - </code></pre> - </section> - - <section> - <h4>Under the hood: Inference using OTB, fully streamable (OTB Python API)</h4> - <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:18%;margin:30px"> - <pre style="width:1000px"><code data-trim class="python"> -if __name__ == "__main__": - ... - - # The important stuff - infer = otbApplication.Registry.CreateApplication("TensorflowModelServe") - infer.SetParameterStringList("source1.il", [params.input]) - infer.SetParameterInt("source1.rfieldx", rfield) - infer.SetParameterInt("source1.rfieldy", rfield) - infer.SetParameterString("source1.placeholder", constants.lr_input_name) - infer.SetParameterString("model.dir", params.savedmodel) - infer.SetParameterString("model.fullyconv", "on") - infer.SetParameterStringList("output.names", [ph]) - infer.SetParameterInt("output.efieldx", efield) - infer.SetParameterInt("output.efieldy", efield) - infer.SetParameterFloat("output.spcscale", ratio) - infer.SetParameterInt("optim.tilesizex", efield) - infer.SetParameterInt("optim.tilesizey", efield) - infer.SetParameterInt("optim.disabletiling", 1) - infer.SetParameterString("out", out_fn) - infer.SetParameterOutputImagePixelType("out", encoding) - infer.ExecuteAndWriteOutput() - </code></pre> - </section> - - <section> - <h4>Same thing written in <h>pyotb</h></h4> - <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:18%;margin:30px"> - <pre style="width:1000px"><code data-trim class="python"> -if __name__ == "__main__": - ... - - # Using pyotb - infer = pyotb.TensorflowModelServe({ - "source1.il": [params.input], - "source1.rfieldx": rfield, - "source1.rfieldy": rfield, - "source1.placeholder": constants.lr_input_name, - "model.dir": params.savedmodel, - "model.fullyconv": "on", - "output.names": [ph], - "output.efieldx": efield, - "output.efieldy": efield, - "output.spcscale": ratio, - "optim.tilesizex": efield, - "optim.tilesizey": efield, - "optim.disabletiling": "on"}) - # if you need to write: - infer.write("out", out_fn) - </code></pre> - <img width="20%" data-src="illustrations/pyotbadvert.gif"> - </section> - <section> <h2>Cloud removal in optical images</h2> <h>https://github.com/cnes/decloud</h> @@ -578,7 +451,9 @@ if __name__ == "__main__": </p> </section> - <section data-background-image='illustrations/decloud_anim.gif'></section> + <section data-background="illustrations/blank.png" background-size="contain"> + <img width="90%" data-src="illustrations/decloud_anim.gif"> + </section> <section> <h4>Read more</h4> @@ -594,17 +469,21 @@ if __name__ == "__main__": </section> <section> - <h2>Rocks mapping from VHRS</h2> - <img width="40%" data-src="illustrations/telescop_cailloux.jpg"> - <p><small>Source: - https://www.soslrc.com/2020/05/15/82-scientifiques-franc-comtois-signent-contre-le-casse-cailloux</small> - </p> + <h2>VHRS/Time series fusion</h2> + <h><small>https://stacapi-dinamis.apps.okd.crocc.meso.umontpellier.fr/collections/super-sentinel-2-l2a</small></h> + <br> + <img width="40%" data-src="illustrations/illustration.png"> </section> - <section> - <img width="80%" data-src="illustrations/telescop_cap1.jpg"> - <p><small>Copyright <h>LaTeleScop</h> and <h>Damien MARAGE</h> (DREAL Bourgogne-Franche-Comté)</small></p> - </section> +<section data-background="illustrations/blank.png" background-size="contain"> +<video data-autoplay src="illustrations/video_mtp.webm"></video> +<p><small>Montpellier Agropolis</p></small> +</section> + +<section data-background="illustrations/blank.png" background-size="contain"> +<video data-autoplay src="illustrations/video_foret.webm"></video> +<p><small>Vienne-le-chateau (Marne)</p></small> +</section> <section> <h2>Soil moisture mapping from SAR</h2> @@ -620,32 +499,106 @@ if __name__ == "__main__": <section> <section> - <h1>Conclusion</h1> + <h1>In production</h1> + <h2>Scalable, cloud-native</h2> + </section> + + <section> + <h3>Distributed training</h3> + <p>Any <g>otbtf.Dataset</g> can be exported in the <g>TFRecords</g> format:</p> + <pre style="width:800px"><code data-trim class="python"> +# Create .records files in the directory +ds.to_tfrecords("/path/to/tfrecords_dir") + </code></pre> + <p>Which is convenient in distributed training setup, and easy to use in TF/Keras:</p> + <pre style="width:800px"><code data-trim class="python"> +# TensorFlow dataset! +tf_ds = TFRecords("/path/to/tfrecords_dir").read() + </code></pre> + <img width="40%" data-src="illustrations/jean-zay.png"> + <p><small>TFRecords guarantee optimal performances on HPC architectures like <h>clusters</h> or <h>clouds</h>. + <br> + OTBTF was extensively tested on the <h>Jean-Zay</h> supercomputer (french institute for development and resources in intensive scientific computing).</small></p> + </section> + + <section> + <h3>Cloud native I/O</h3> + <h4>Thanks to GDAL</h4> + <ul> + <li><h>Cloud Optimized Geotiff</h> support</li> + <li><h>S3, GC, Azure, Alibaba</h> URLs</li> + <li><h>swift, (web)hadoop</h> file systems</li> + <li>Remote <h>zip, tar, 7z, rar</h> archives</li> + </ul> </section> + <section> + <h3>STAC+COG example</h3> + <img width="48px" data-src="illustrations/python.png" style="float:left;padding-left:15%;margin:30px"> + <pre style="width:1050px"><code data-trim class="python"> +import dinamis_sdk +import pystac_client +import pyotb + +api = pystac_client.Client.open( + 'https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr', + modifier=dinamis_sdk.sign_inplace, +) +res = api.search( + bbox=[4, 42.99, 5, 44.05], + datetime=["2022-01-01", "2022-12-25"], + collections=["spot-6-7-drs"] +) +urls = [r.assets['src_xs'].href for r in res.items()] +toa_images = [pyotb.OpticalCalibration({"in": url}) for url in urls] +mosa = pyotb.Mosaic({"il": toa_images}) +pyotb.TensorflowModelServe({ + "source1.il": mosa, + "model.dir": "/data/mysavedmodel", + "out": "/artifacts.output.tif" +}) + </code></pre> + </section> + + + <section> + <img width="60%" data-src="illustrations/dinamis_sdk.png"> + <br> + <h><small>https://gitlab.irstea.fr/dinamis/dinamis-sdk</small></h> + </section> + + </section> + + + <section> + <section> + <h1>Conclusion</h1> + </section> + <section> <h2>What you can do with OTBTF</h2> <ul> - <li>Use the OTB applications to <h>create datasets</h> from vector/raster</li> + <li><h>Create datasets</h> from vector/raster</li> <li><h>Build models</h> in python</li> <li><h>Train models </h> <ul> <li>Beginners: from CLI from patches images</li> <li>Developers: from python, using dataset classes</li> - <li>Distributed training with Tensorflow 2</li> + <li>ML experts: distributed training</li> </ul> - <li><h>Run models</h> in OTB pipelines</li> + <li><h>Run models</h> in streamable pipelines in <h>production environment</h></li> </ul> </section> <section> - <h2>Future work</h2> + <h2>Ongoing work</h2> <ul> + <li>Integration in THEIA/DINAMIS geospatial infrastructure</li> + <li>Tutorials</li> <li>Improve <h>python API</h></li> - <li>More <h>examples and applications</h> out of the box</li> + <li>More <h>ML/IA applications</h> out of the box</li> <li>Lighter <h>docker</h> images</li> - <li>Fix OTB x TensorFlow compilation limitations</li> - <li>Integration in <h>pyotb</h></li> + <li>Packaging</li> </ul> </section> @@ -705,4 +658,4 @@ if __name__ == "__main__": </script> </body> -</html> \ No newline at end of file +</html> diff --git a/otbtf_pres/old/index.html b/otbtf_pres/old/index.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/old/tetis.css b/otbtf_pres/old/tetis.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/otb.css b/otbtf_pres/otb.css old mode 100644 new mode 100755 index b4eb571b1b8fe6ec38b42147c465cf2a5fa921d6..912ace38739dc4b68cae45426b99382db0b62cc9 --- a/otbtf_pres/otb.css +++ b/otbtf_pres/otb.css @@ -22,7 +22,7 @@ body { background: #ffffff; - background-image: url('illustrations/foss4g_logo.png'), url('illustrations/inrae_logo.png'); + background-image: url('illustrations/tetis_logo.jpg'), url('illustrations/inrae_logo.png'); background-repeat: no-repeat; background-position: bottom left, bottom right; background-size: auto 10%, auto 7%; diff --git a/otbtf_pres/revealjs/.github/CONTRIBUTING.md b/otbtf_pres/revealjs/.github/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/.github/FUNDING.yml b/otbtf_pres/revealjs/.github/FUNDING.yml old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/.github/workflows/js.yml b/otbtf_pres/revealjs/.github/workflows/js.yml old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/.gitignore b/otbtf_pres/revealjs/.gitignore old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/.npmignore b/otbtf_pres/revealjs/.npmignore old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/LICENSE b/otbtf_pres/revealjs/LICENSE old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/README.md b/otbtf_pres/revealjs/README.md old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/layout.scss b/otbtf_pres/revealjs/css/layout.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/print/paper.scss b/otbtf_pres/revealjs/css/print/paper.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/print/pdf.scss b/otbtf_pres/revealjs/css/print/pdf.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/reveal.scss b/otbtf_pres/revealjs/css/reveal.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/README.md b/otbtf_pres/revealjs/css/theme/README.md old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/beige.scss b/otbtf_pres/revealjs/css/theme/source/beige.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/black.scss b/otbtf_pres/revealjs/css/theme/source/black.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/blood.scss b/otbtf_pres/revealjs/css/theme/source/blood.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/league.scss b/otbtf_pres/revealjs/css/theme/source/league.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/moon.scss b/otbtf_pres/revealjs/css/theme/source/moon.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/night.scss b/otbtf_pres/revealjs/css/theme/source/night.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/serif.scss b/otbtf_pres/revealjs/css/theme/source/serif.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/simple.scss b/otbtf_pres/revealjs/css/theme/source/simple.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/sky.scss b/otbtf_pres/revealjs/css/theme/source/sky.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/solarized.scss b/otbtf_pres/revealjs/css/theme/source/solarized.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/source/white.scss b/otbtf_pres/revealjs/css/theme/source/white.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/template/exposer.scss b/otbtf_pres/revealjs/css/theme/template/exposer.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/template/mixins.scss b/otbtf_pres/revealjs/css/theme/template/mixins.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/template/settings.scss b/otbtf_pres/revealjs/css/theme/template/settings.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/css/theme/template/theme.scss b/otbtf_pres/revealjs/css/theme/template/theme.scss old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/demo.html b/otbtf_pres/revealjs/demo.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/reset.css b/otbtf_pres/revealjs/dist/reset.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/reveal.css b/otbtf_pres/revealjs/dist/reveal.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/reveal.esm.js b/otbtf_pres/revealjs/dist/reveal.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/reveal.js b/otbtf_pres/revealjs/dist/reveal.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/beige.css b/otbtf_pres/revealjs/dist/theme/beige.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/black.css b/otbtf_pres/revealjs/dist/theme/black.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/blood.css b/otbtf_pres/revealjs/dist/theme/blood.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/fonts/league-gothic/LICENSE b/otbtf_pres/revealjs/dist/theme/fonts/league-gothic/LICENSE old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/fonts/league-gothic/league-gothic.css b/otbtf_pres/revealjs/dist/theme/fonts/league-gothic/league-gothic.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/fonts/source-sans-pro/LICENSE b/otbtf_pres/revealjs/dist/theme/fonts/source-sans-pro/LICENSE old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro.css b/otbtf_pres/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/league.css b/otbtf_pres/revealjs/dist/theme/league.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/moon.css b/otbtf_pres/revealjs/dist/theme/moon.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/night.css b/otbtf_pres/revealjs/dist/theme/night.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/serif.css b/otbtf_pres/revealjs/dist/theme/serif.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/simple.css b/otbtf_pres/revealjs/dist/theme/simple.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/sky.css b/otbtf_pres/revealjs/dist/theme/sky.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/solarized.css b/otbtf_pres/revealjs/dist/theme/solarized.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/dist/theme/white.css b/otbtf_pres/revealjs/dist/theme/white.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/assets/beeping.txt b/otbtf_pres/revealjs/examples/assets/beeping.txt old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/assets/beeping.wav b/otbtf_pres/revealjs/examples/assets/beeping.wav old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/assets/image1.png b/otbtf_pres/revealjs/examples/assets/image1.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/assets/image2.png b/otbtf_pres/revealjs/examples/assets/image2.png old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/auto-animate.html b/otbtf_pres/revealjs/examples/auto-animate.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/backgrounds.html b/otbtf_pres/revealjs/examples/backgrounds.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/barebones.html b/otbtf_pres/revealjs/examples/barebones.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/layout-helpers.html b/otbtf_pres/revealjs/examples/layout-helpers.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/markdown.html b/otbtf_pres/revealjs/examples/markdown.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/markdown.md b/otbtf_pres/revealjs/examples/markdown.md old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/math.html b/otbtf_pres/revealjs/examples/math.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/media.html b/otbtf_pres/revealjs/examples/media.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/multiple-presentations.html b/otbtf_pres/revealjs/examples/multiple-presentations.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/examples/transitions.html b/otbtf_pres/revealjs/examples/transitions.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/gulpfile.js b/otbtf_pres/revealjs/gulpfile.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/index.html b/otbtf_pres/revealjs/index.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/components/playback.js b/otbtf_pres/revealjs/js/components/playback.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/config.js b/otbtf_pres/revealjs/js/config.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/autoanimate.js b/otbtf_pres/revealjs/js/controllers/autoanimate.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/backgrounds.js b/otbtf_pres/revealjs/js/controllers/backgrounds.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/controls.js b/otbtf_pres/revealjs/js/controllers/controls.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/focus.js b/otbtf_pres/revealjs/js/controllers/focus.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/fragments.js b/otbtf_pres/revealjs/js/controllers/fragments.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/keyboard.js b/otbtf_pres/revealjs/js/controllers/keyboard.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/location.js b/otbtf_pres/revealjs/js/controllers/location.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/notes.js b/otbtf_pres/revealjs/js/controllers/notes.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/overview.js b/otbtf_pres/revealjs/js/controllers/overview.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/plugins.js b/otbtf_pres/revealjs/js/controllers/plugins.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/pointer.js b/otbtf_pres/revealjs/js/controllers/pointer.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/print.js b/otbtf_pres/revealjs/js/controllers/print.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/progress.js b/otbtf_pres/revealjs/js/controllers/progress.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/slidecontent.js b/otbtf_pres/revealjs/js/controllers/slidecontent.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/slidenumber.js b/otbtf_pres/revealjs/js/controllers/slidenumber.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/controllers/touch.js b/otbtf_pres/revealjs/js/controllers/touch.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/index.js b/otbtf_pres/revealjs/js/index.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/reveal.js b/otbtf_pres/revealjs/js/reveal.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/utils/color.js b/otbtf_pres/revealjs/js/utils/color.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/utils/constants.js b/otbtf_pres/revealjs/js/utils/constants.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/utils/device.js b/otbtf_pres/revealjs/js/utils/device.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/utils/loader.js b/otbtf_pres/revealjs/js/utils/loader.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/js/utils/util.js b/otbtf_pres/revealjs/js/utils/util.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/package-lock.json b/otbtf_pres/revealjs/package-lock.json old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/package.json b/otbtf_pres/revealjs/package.json old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/highlight/highlight.esm.js b/otbtf_pres/revealjs/plugin/highlight/highlight.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/highlight/highlight.js b/otbtf_pres/revealjs/plugin/highlight/highlight.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/highlight/monokai.css b/otbtf_pres/revealjs/plugin/highlight/monokai.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/highlight/plugin.js b/otbtf_pres/revealjs/plugin/highlight/plugin.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/highlight/zenburn.css b/otbtf_pres/revealjs/plugin/highlight/zenburn.css old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/markdown/markdown.esm.js b/otbtf_pres/revealjs/plugin/markdown/markdown.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/markdown/markdown.js b/otbtf_pres/revealjs/plugin/markdown/markdown.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/math/math.esm.js b/otbtf_pres/revealjs/plugin/math/math.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/math/math.js b/otbtf_pres/revealjs/plugin/math/math.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/math/mathjax2.js b/otbtf_pres/revealjs/plugin/math/mathjax2.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/math/mathjax3.js b/otbtf_pres/revealjs/plugin/math/mathjax3.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/math/plugin.js b/otbtf_pres/revealjs/plugin/math/plugin.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/notes/notes.esm.js b/otbtf_pres/revealjs/plugin/notes/notes.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/notes/notes.js b/otbtf_pres/revealjs/plugin/notes/notes.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/notes/plugin.js b/otbtf_pres/revealjs/plugin/notes/plugin.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/notes/speaker-view.html b/otbtf_pres/revealjs/plugin/notes/speaker-view.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/search/plugin.js b/otbtf_pres/revealjs/plugin/search/plugin.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/search/search.esm.js b/otbtf_pres/revealjs/plugin/search/search.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/search/search.js b/otbtf_pres/revealjs/plugin/search/search.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/zoom/plugin.js b/otbtf_pres/revealjs/plugin/zoom/plugin.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/zoom/zoom.esm.js b/otbtf_pres/revealjs/plugin/zoom/zoom.esm.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/plugin/zoom/zoom.js b/otbtf_pres/revealjs/plugin/zoom/zoom.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/assets/external-script-a.js b/otbtf_pres/revealjs/test/assets/external-script-a.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/assets/external-script-b.js b/otbtf_pres/revealjs/test/assets/external-script-b.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/assets/external-script-c.js b/otbtf_pres/revealjs/test/assets/external-script-c.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/assets/external-script-d.js b/otbtf_pres/revealjs/test/assets/external-script-d.js old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/simple.md b/otbtf_pres/revealjs/test/simple.md old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-auto-animate.html b/otbtf_pres/revealjs/test/test-auto-animate.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-dependencies-async.html b/otbtf_pres/revealjs/test/test-dependencies-async.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-dependencies.html b/otbtf_pres/revealjs/test/test-dependencies.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-grid-navigation.html b/otbtf_pres/revealjs/test/test-grid-navigation.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-iframe-backgrounds.html b/otbtf_pres/revealjs/test/test-iframe-backgrounds.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-iframes.html b/otbtf_pres/revealjs/test/test-iframes.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-markdown.html b/otbtf_pres/revealjs/test/test-markdown.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-multiple-instances-es5.html b/otbtf_pres/revealjs/test/test-multiple-instances-es5.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-multiple-instances.html b/otbtf_pres/revealjs/test/test-multiple-instances.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-pdf.html b/otbtf_pres/revealjs/test/test-pdf.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-plugins.html b/otbtf_pres/revealjs/test/test-plugins.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test-state.html b/otbtf_pres/revealjs/test/test-state.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/revealjs/test/test.html b/otbtf_pres/revealjs/test/test.html old mode 100644 new mode 100755 diff --git a/otbtf_pres/tetis.css b/otbtf_pres/tetis.css old mode 100644 new mode 100755 index 45848aa4e5b13e097f7573b14e7e9922f560fc7b..f1413b0798bbb72f3b761ebd8d6da7ca3a9fe715 --- a/otbtf_pres/tetis.css +++ b/otbtf_pres/tetis.css @@ -22,7 +22,7 @@ *********************************************/ body { background: #273c5a; - background-image: url('illustrations/foss4g_logo.png'); +/* background-image: url('illustrations/foss4g_logo.png'); */ background-repeat: no-repeat; background-position: bottom left; background-size: auto 100%;