﻿{"id":15919,"date":"2025-11-18T10:00:00","date_gmt":"2025-11-18T09:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=15919"},"modified":"2025-11-15T11:50:15","modified_gmt":"2025-11-15T10:50:15","slug":"quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/","title":{"rendered":"Quand le Deep Learning plonge sous la surface : cartographier les coraux avec QGIS et PyTorch"},"content":{"rendered":"\n<p>Le Deep Learning r\u00e9volutionne l\u2019analyse d\u2019images satellitaires.<br>Longtemps r\u00e9serv\u00e9 aux grands laboratoires ou aux logiciels propri\u00e9taires, il s\u2019ouvre aujourd\u2019hui au monde libre gr\u00e2ce \u00e0 PyTorch et QGIS.<br>Cet article explore les principes du Deep Learning appliqu\u00e9 \u00e0 la g\u00e9omatique, la comparaison entre les mod\u00e8les d\u2019ESRI et ceux exploitables dans QGIS, et se conclut par un cas concret : la d\u00e9tection automatique des zones coralliennes \u00e0 partir d\u2019images Sentinel-2.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Introduction_au_Deep_Learning_applique_a_la_geomatique\" >Introduction au Deep Learning appliqu\u00e9 \u00e0 la g\u00e9omatique<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Pourquoi_%C2%AB_profond_%C2%BB\" >Pourquoi \u00ab profond \u00bb ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Deep_Learning_et_teledetection\" >Deep Learning et t\u00e9l\u00e9d\u00e9tection<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Le_format_DLPK_dESRI\" >Le format DLPK d\u2019ESRI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Le_pendant_open_source_PyTorch_et_QGIS\" >Le pendant open source : PyTorch et QGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#En_resume\" >En r\u00e9sum\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Exemple_pratique_segmentation_des_coraux_a_partir_dimages_Sentinel-2_dans_QGIS\" >Exemple pratique : segmentation des coraux \u00e0 partir d\u2019images Sentinel-2 dans QGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Donnees_utilisees\" >Donn\u00e9es utilis\u00e9es<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Traitement_dans_QGIS\" >Traitement dans QGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Mode_operatoire\" >Mode op\u00e9ratoire<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Operations_prealables\" >Op\u00e9rations pr\u00e9alables<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Mise_en_place_du_script_de_traitement\" >Mise en place du script de traitement<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Utilisation\" >Utilisation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Interpretation_du_resultat\" >Interpr\u00e9tation du r\u00e9sultat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Avantages_de_cette_approche\" >Avantages de cette approche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Vers_un_ecosysteme_de_modeles_ouverts\" >Vers un \u00e9cosyst\u00e8me de mod\u00e8les ouverts<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introduction_au_Deep_Learning_applique_a_la_geomatique\"><\/span>Introduction au Deep Learning appliqu\u00e9 \u00e0 la g\u00e9omatique<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Le <strong>Deep Learning<\/strong> (ou apprentissage profond) est une branche de l\u2019intelligence artificielle inspir\u00e9e du fonctionnement du cerveau humain. Il repose sur des <strong>r\u00e9seaux de neurones artificiels<\/strong> capables d\u2019apprendre \u00e0 partir d\u2019exemples, sans qu\u2019on leur dicte explicitement toutes les r\u00e8gles.<br>Contrairement aux m\u00e9thodes de classification traditionnelles \u2014 o\u00f9 l\u2019on choisit soi-m\u00eame les indicateurs et seuils \u2014 le Deep Learning <strong>d\u00e9couvre automatiquement les structures et motifs<\/strong> pertinents dans les donn\u00e9es.<\/p>\n\n\n\n<p>Dans le domaine de la g\u00e9omatique, cette approche ouvre des perspectives impressionnantes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>reconnaissance des <strong>zones urbaines, agricoles ou foresti\u00e8res<\/strong> \u00e0 partir d\u2019images satellites,<\/li>\n\n\n\n<li>d\u00e9tection de <strong>changements<\/strong> ou de <strong>catastrophes naturelles<\/strong>,<\/li>\n\n\n\n<li>identification d\u2019<strong>\u00e9l\u00e9ments pr\u00e9cis<\/strong> (routes, toits, coraux, navires, etc.),<\/li>\n\n\n\n<li>segmentation fine des paysages \u00e0 partir d\u2019images Sentinel, PlanetScope ou drone.<\/li>\n<\/ul>\n\n\n\n<p>Le principe est simple : on entra\u00eene un mod\u00e8le sur un grand jeu d\u2019images annot\u00e9es, jusqu\u2019\u00e0 ce qu\u2019il apprenne \u00e0 reproduire la t\u00e2che souhait\u00e9e (par exemple, distinguer l\u2019eau, la v\u00e9g\u00e9tation et le sable). Une fois entra\u00een\u00e9, le mod\u00e8le peut \u00eatre appliqu\u00e9 sur de nouvelles zones, pour g\u00e9n\u00e9rer automatiquement des cartes th\u00e9matiques \u00e0 haute r\u00e9solution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Pourquoi_%C2%AB_profond_%C2%BB\"><\/span>Pourquoi \u00ab profond \u00bb ?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Le terme \u00ab deep \u00bb vient du fait que ces r\u00e9seaux poss\u00e8dent <strong>de nombreuses couches successives<\/strong> \u2014 parfois des dizaines.<br>Chaque couche apprend \u00e0 reconna\u00eetre des motifs de plus en plus complexes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>les premi\u00e8res couches d\u00e9tectent des <strong>bords et textures<\/strong>,<\/li>\n\n\n\n<li>les suivantes identifient des <strong>formes ou structures<\/strong>,<\/li>\n\n\n\n<li>et les derni\u00e8res comprennent des <strong>objets entiers ou contextes<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>C\u2019est cette hi\u00e9rarchie de repr\u00e9sentations qui donne au Deep Learning sa puissance, mais aussi son app\u00e9tit en donn\u00e9es et en puissance de calcul.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Deep_Learning_et_teledetection\"><\/span>Deep Learning et t\u00e9l\u00e9d\u00e9tection<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Dans la t\u00e9l\u00e9d\u00e9tection, les mod\u00e8les les plus utilis\u00e9s sont ceux de <strong>segmentation d\u2019images<\/strong>, capables d\u2019attribuer une classe \u00e0 chaque pixel.<br>Des architectures comme <strong>U-Net<\/strong>, <strong>DeepLab<\/strong> ou <strong>Mask R-CNN<\/strong> sont devenues des r\u00e9f\u00e9rences pour la cartographie automatique \u00e0 partir d\u2019imagerie multispectrale.<\/p>\n\n\n\n<p>Ces mod\u00e8les sont g\u00e9n\u00e9ralement entra\u00een\u00e9s avec des frameworks tels que <strong>PyTorch<\/strong> ou <strong>TensorFlow<\/strong>, puis d\u00e9ploy\u00e9s dans les environnements SIG.<br>Les deux grands mondes s\u2019y sont int\u00e9ress\u00e9s :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ESRI<\/strong>, avec son format de mod\u00e8le <strong>.dlpk (Deep Learning Package)<\/strong> int\u00e9gr\u00e9 \u00e0 ArcGIS Pro et ArcGIS Online ;<\/li>\n\n\n\n<li><strong>QGIS<\/strong>, qui permet d\u2019utiliser des mod\u00e8les PyTorch ou TensorFlow via le <strong>Processing Toolbox<\/strong> ou des scripts Python personnalis\u00e9s.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_format_DLPK_dESRI\"><\/span>Le format DLPK d\u2019ESRI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>ESRI a \u00e9t\u00e9 l\u2019un des premiers acteurs SIG \u00e0 int\u00e9grer le <strong>Deep Learning<\/strong> directement dans son \u00e9cosyst\u00e8me ArcGIS.<br>Pour faciliter l\u2019\u00e9change et le d\u00e9ploiement de mod\u00e8les, la soci\u00e9t\u00e9 a cr\u00e9\u00e9 un format standard : le <strong>DLPK (Deep Learning Package)<\/strong>.<\/p>\n\n\n\n<p>Un fichier <code>.dlpk<\/code> n\u2019est pas seulement un mod\u00e8le : c\u2019est un <strong>ensemble complet et portable<\/strong>, regroupant tous les \u00e9l\u00e9ments n\u00e9cessaires \u00e0 son ex\u00e9cution.<br>Il contient g\u00e9n\u00e9ralement :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Le mod\u00e8le entra\u00een\u00e9<\/strong> (souvent au format PyTorch <code>.pth<\/code> ou TensorFlow <code>.h5<\/code>)<\/li>\n\n\n\n<li><strong>Un fichier de d\u00e9finition JSON<\/strong> d\u00e9crivant l\u2019architecture du mod\u00e8le, les param\u00e8tres attendus et les noms des classes<\/li>\n\n\n\n<li><strong>Des m\u00e9tadonn\u00e9es<\/strong> : type d\u2019entr\u00e9e (raster, tuile, image), taille des patches, nombre de bandes, normalisation, etc.<\/li>\n\n\n\n<li><strong>Des \u00e9chantillons d\u2019entra\u00eenement<\/strong> (optionnels) pour documenter ou r\u00e9entra\u00eener le mod\u00e8le.<\/li>\n<\/ul>\n\n\n\n<p>Gr\u00e2ce \u00e0 cette organisation, ArcGIS Pro ou ArcGIS Online savent <strong>automatiquement interpr\u00e9ter<\/strong> le mod\u00e8le, sans qu\u2019il soit n\u00e9cessaire d\u2019\u00e9crire du code.<br>Les outils comme <strong>\u201cClassify Pixels Using Deep Learning\u201d<\/strong> ou <strong>\u201cDetect Objects Using Deep Learning\u201d<\/strong> lisent directement le <code>.dlpk<\/code>, chargent le mod\u00e8le, et effectuent l\u2019inf\u00e9rence sur un raster ou un jeu d\u2019images.<\/p>\n\n\n\n<p>Cette approche \u00ab\u00a0cl\u00e9 en main\u00a0\u00bb pr\u00e9sente deux avantages majeurs :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Interop\u00e9rabilit\u00e9<\/strong> : un mod\u00e8le form\u00e9 ailleurs peut \u00eatre utilis\u00e9 par tout utilisateur ArcGIS, sans d\u00e9pendances complexes.<\/li>\n\n\n\n<li><strong>R\u00e9plicabilit\u00e9<\/strong> : les m\u00e9tadonn\u00e9es assurent que le mod\u00e8le est appliqu\u00e9 dans les m\u00eames conditions que lors de son entra\u00eenement.<\/li>\n<\/ol>\n\n\n\n<p>Le revers de la m\u00e9daille, bien s\u00fbr, est la <strong>fermeture du format<\/strong> : le <code>.dlpk<\/code> reste li\u00e9 \u00e0 l\u2019\u00e9cosyst\u00e8me ArcGIS, et n\u2019est pas toujours simple \u00e0 exploiter ailleurs.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_pendant_open_source_PyTorch_et_QGIS\"><\/span>Le pendant open source : PyTorch et QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Du c\u00f4t\u00e9 du monde libre, <strong>QGIS<\/strong> n\u2019impose pas de format propri\u00e9taire.<br>Les mod\u00e8les sont simplement sauvegard\u00e9s sous leur format natif (souvent <code>.pth<\/code> pour PyTorch ou <code>.pt<\/code>), et ex\u00e9cut\u00e9s via des scripts Python int\u00e9gr\u00e9s au <strong>Processing Toolbox<\/strong>.<\/p>\n\n\n\n<p>L\u2019id\u00e9e est la m\u00eame que chez ESRI :<br>on charge une image multispectrale, on applique un mod\u00e8le entra\u00een\u00e9, et on g\u00e9n\u00e8re une carte de classes ou de probabilit\u00e9.<br>Mais au lieu de s\u2019appuyer sur un format packag\u00e9 comme le <code>.dlpk<\/code>, QGIS laisse <strong>la libert\u00e9 totale<\/strong> au d\u00e9veloppeur :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le mod\u00e8le est lu avec <code>torch.load()<\/code>.<\/li>\n\n\n\n<li>Les bandes d\u2019entr\u00e9e peuvent \u00eatre s\u00e9lectionn\u00e9es dynamiquement (par exemple B4-B3-B2 pour le RGB, ou B8-B4-B3 en fausse couleur).<\/li>\n\n\n\n<li>Le script Python contr\u00f4le tout le flux de traitement : normalisation, masquage de l\u2019eau (NDWI), d\u00e9coupage en blocs, fusion des r\u00e9sultats, etc.<\/li>\n<\/ul>\n\n\n\n<p>Cette approche permet une <strong>souplesse maximale<\/strong>, particuli\u00e8rement utile pour la recherche ou l\u2019exp\u00e9rimentation.<br>Par exemple, un mod\u00e8le U-Net entra\u00een\u00e9 sous PyTorch peut \u00eatre appliqu\u00e9 directement dans QGIS via un script personnalis\u00e9 \u2014 sans d\u00e9pendre d\u2019ArcGIS Pro.<\/p>\n\n\n\n<p>QGIS devient alors un v\u00e9ritable <strong>laboratoire d\u2019analyse spatiale avec IA<\/strong>, o\u00f9 l\u2019utilisateur peut :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tester plusieurs mod\u00e8les (<code>.pth<\/code>) issus de la communaut\u00e9,<\/li>\n\n\n\n<li>adapter les pr\u00e9traitements selon la zone (bande c\u00f4ti\u00e8re, for\u00eat, urbain\u2026),<\/li>\n\n\n\n<li>automatiser tout un flux via les <strong>algorithmes Processing<\/strong>,<\/li>\n\n\n\n<li>et combiner les r\u00e9sultats avec d\u2019autres couches SIG (v\u00e9g\u00e9tation, bathym\u00e9trie, occupation du sol\u2026).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"En_resume\"><\/span>En r\u00e9sum\u00e9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Aspect<\/th><th>ESRI (DLPK)<\/th><th>QGIS (PyTorch)<\/th><\/tr><\/thead><tbody><tr><td><strong>Format<\/strong><\/td><td><code>.dlpk<\/code> (package complet)<\/td><td><code>.pth<\/code> ou <code>.pt<\/code> (mod\u00e8le seul)<\/td><\/tr><tr><td><strong>Interop\u00e9rabilit\u00e9<\/strong><\/td><td>Simple, mais propri\u00e9taire<\/td><td>Libre et modifiable<\/td><\/tr><tr><td><strong>Utilisation<\/strong><\/td><td>Outils int\u00e9gr\u00e9s ArcGIS (\u201cClassify Pixels\u201d, \u201cDetect Objects\u201d)<\/td><td>Scripts Processing Python personnalis\u00e9s<\/td><\/tr><tr><td><strong>Personnalisation<\/strong><\/td><td>Limit\u00e9e<\/td><td>Totale<\/td><\/tr><tr><td><strong>Courbe d\u2019apprentissage<\/strong><\/td><td>Plus simple pour l\u2019utilisateur final<\/td><td>Plus flexible pour le d\u00e9veloppeur ou chercheur<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exemple_pratique_segmentation_des_coraux_a_partir_dimages_Sentinel-2_dans_QGIS\"><\/span>Exemple pratique : segmentation des coraux \u00e0 partir d\u2019images Sentinel-2 dans QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Apr\u00e8s avoir explor\u00e9 la logique des mod\u00e8les profonds et les formats utilis\u00e9s par ESRI et QGIS, passons \u00e0 un exemple concret : <strong>l\u2019analyse des zones coralliennes<\/strong> \u00e0 partir d\u2019images satellites Sentinel-2.<br>L\u2019objectif est de distinguer les zones marines (fonds sableux, herbiers, coraux) des zones terrestres ou turbid\u00e9es, gr\u00e2ce \u00e0 un mod\u00e8le <strong>U-Net<\/strong> pr\u00e9-entra\u00een\u00e9 sous PyTorch.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Donnees_utilisees\"><\/span>Donn\u00e9es utilis\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>L\u2019image d\u2019entr\u00e9e provient de Sentinel-2, mission du programme europ\u00e9en <strong>Copernicus<\/strong>.<br>Ces images multispectrales gratuites offrent une r\u00e9solution de 10 \u00e0 20 m et couvrent plusieurs bandes dans le visible et l\u2019infrarouge :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Bande<\/th><th>Nom<\/th><th>Longueur d\u2019onde (nm)<\/th><th>Usage principal<\/th><\/tr><\/thead><tbody><tr><td>B2<\/td><td>Bleu<\/td><td>490<\/td><td>Eau, turbidit\u00e9<\/td><\/tr><tr><td>B3<\/td><td>Vert<\/td><td>560<\/td><td>V\u00e9g\u00e9tation, milieu marin<\/td><\/tr><tr><td>B4<\/td><td>Rouge<\/td><td>665<\/td><td>Sol, v\u00e9g\u00e9tation, coraux<\/td><\/tr><tr><td>B8<\/td><td>NIR<\/td><td>842<\/td><td>Diff\u00e9renciation terre\/eau<\/td><\/tr><tr><td>B11<\/td><td>SWIR1<\/td><td>1610<\/td><td>Humidit\u00e9, sable, nuages<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Le raster est issu du traitement S2DR3 &#8211; Super-r\u00e9solution Sentinel-2 \u00e0 1 m qui permet d&rsquo;am\u00e9liorer la r\u00e9solution de toutes les bandes des images Sentinel 2 pour atteindre eniron 1m ( Voir \u00ab\u00a0<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/tutoriel-utiliser-s2dr3-dans-google-colab-pour-letude-des-coraux-a-maurice\/\" title=\"Utiliser S2DR3 dans Google Colab pour l\u2019\u00e9tude des coraux \u00e0 Maurice\">Utiliser S2DR3 dans Google Colab pour l\u2019\u00e9tude des coraux \u00e0 Maurice<\/a>\u00ab\u00a0). L&rsquo;image utilis\u00e9e est celle qui a servi comme exemple dans l&rsquo;article cit\u00e9.<br>L\u2019utilisateur charge simplement le fichier <code>.tif<\/code> multispectral, par exemple :<br><code>Palmar_MS.tif<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Traitement_dans_QGIS\"><\/span>Traitement dans QGIS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>L\u2019analyse s\u2019effectue gr\u00e2ce \u00e0 un <strong>algorithme Python int\u00e9gr\u00e9 dans la bo\u00eete \u00e0 outils Processing<\/strong>.<br>Ce script charge un mod\u00e8le PyTorch (<code>unet_coraux.pth<\/code>) et applique la segmentation sur l\u2019image en plusieurs \u00e9tapes :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Lecture du raster et normalisation des bandes<\/strong><br>Les valeurs sont ramen\u00e9es \u00e0 une \u00e9chelle compatible avec l\u2019entra\u00eenement du mod\u00e8le.<\/li>\n\n\n\n<li><strong>Masquage optionnel des zones terrestres<\/strong><br>Un <strong>indice NDWI<\/strong> (Normalized Difference Water Index) est calcul\u00e9 pour isoler la mer.<br>Les pixels \u00e0 forte valeur NDWI sont consid\u00e9r\u00e9s comme marins et trait\u00e9s par le mod\u00e8le ; les autres sont masqu\u00e9s.<\/li>\n\n\n\n<li><strong>D\u00e9coupage en blocs (patchs)<\/strong><br>L\u2019image est trait\u00e9e par portions pour \u00e9viter la surcharge m\u00e9moire.<br>Chaque bloc est analys\u00e9 ind\u00e9pendamment, puis les r\u00e9sultats sont fusionn\u00e9s.<\/li>\n\n\n\n<li><strong>Application du mod\u00e8le U-Net<\/strong><br>Le mod\u00e8le effectue une <strong>segmentation pixel par pixel<\/strong> : il attribue \u00e0 chaque pixel une probabilit\u00e9 d\u2019appartenir \u00e0 la classe \u201ccorail\u201d ou \u201cnon-corail\u201d.<br>Le r\u00e9sultat est un raster de sortie contenant les valeurs de probabilit\u00e9 ou de classe.<\/li>\n\n\n\n<li><strong>Sauvegarde du raster de sortie<\/strong><br>Le r\u00e9sultat est enregistr\u00e9 au format GeoTIFF (<code>palmar_model_9.tif<\/code>), pr\u00eat \u00e0 \u00eatre superpos\u00e9 avec d\u2019autres couches SIG.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mode_operatoire\"><\/span>Mode op\u00e9ratoire<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Operations_prealables\"><\/span>Op\u00e9rations pr\u00e9alables<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Nous allons cr\u00e9er un script de traitement QGis. Comme pr\u00e9alable il faut installer<\/p>\n\n\n\n<div class='stb-container stb-style-black stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'>OsGeo4W shell<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python -m pip install torchgeo\npython -m pip install torch torchvision\npython -m pip install segmentation-models-pytorch\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Puis nous devons t\u00e9l\u00e9charger le mod\u00e8le souhait\u00e9. Pour cela, dans la console python de QGis entrez le script suivant:<\/p>\n\n\n\n<div class='stb-container stb-style-black stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'>Python Console<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import segmentation_models_pytorch as smp\nimport torch\n\n# U-Net RGB pr\u00e9-entra\u00een\u00e9\nmodel = smp.Unet(\n    encoder_name=\"resnet34\",\n    encoder_weights=\"imagenet\",\n    in_channels=3,\n    classes=1  # corail\/non-corail\n)\n\n# Sauvegarde pour QGIS\ntorch.save(model, \"<strong><em>c:\/models\/unet_coraux.pth<\/em><\/strong>\")\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Dans cet exemple on sauvegarde les mod\u00e8les t\u00e9l\u00e9charg\u00e9s dans un r\u00e9pertoire c:\/models<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mise_en_place_du_script_de_traitement\"><\/span>Mise en place du script de traitement<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Dans QGIS \u2192 <strong>Bo\u00eete \u00e0 outils de traitement \u2192 Scripts \u2192 Nouveau script<\/strong>, collez :<\/p>\n\n\n\n<div class='stb-container stb-style-black stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'>traitement<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># -*- coding: utf-8 -*-\n\"\"\"\nAlgorithme QGIS : Segmentation Coraux (U-Net) avec option masquage terrestre\nCompatible QGIS 3.44+\n\"\"\"\nfrom qgis.core import (\n    QgsProcessing,\n    QgsProcessingAlgorithm,\n    QgsProcessingParameterRasterLayer,\n    QgsProcessingParameterFile,\n    QgsProcessingParameterEnum,\n    QgsProcessingParameterRasterDestination,\n    QgsProcessingParameterBoolean,\n)\nfrom qgis.PyQt.QtCore import QCoreApplication\nimport torch\nimport torch.serialization\nimport numpy as np\nfrom osgeo import <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-dans-qgis-avec-postgis1\/\">gdal<\/a>\nfrom scipy.signal import windows\n\n\nclass SegmentationCoraux(QgsProcessingAlgorithm):\n    \"\"\"Segmentation des images Sentinel-2 \u00e0 1m avec un mod\u00e8le U-Net\"\"\"\n\n    BAND_OPTIONS = &#091;\"RGB (4-3-2)\", \"Fausse couleur (8-4-3)\"]\n\n    def initAlgorithm(self, config=None):\n        self.addParameter(\n            QgsProcessingParameterRasterLayer(\n                \"raster_input\",\n                self.tr(\"Image Sentinel-2 (GeoTIFF multibandes)\")\n            )\n        )\n\n        self.addParameter(\n            QgsProcessingParameterEnum(\n                \"band_set\",\n                self.tr(\"S\u00e9lection manuelle des bandes\"),\n                options=self.BAND_OPTIONS,\n                defaultValue=0\n            )\n        )\n\n        self.addParameter(\n            QgsProcessingParameterFile(\n                \"model_path\",\n                self.tr(\"Mod\u00e8le PyTorch (.pth)\"),\n                extension=\"pth\"\n            )\n        )\n\n        self.addParameter(\n            QgsProcessingParameterRasterDestination(\n                \"output_raster\",\n                self.tr(\"Raster de sortie (masque)\")\n            )\n        )\n\n        # --- Nouvelle option : masquage terrestre ---\n        self.addParameter(\n            QgsProcessingParameterBoolean(\n                \"mask_land\",\n                self.tr(\"Masquer les zones terrestres (NDWI)\"),\n                defaultValue=True\n            )\n        )\n\n    def processAlgorithm(self, parameters, context, feedback):\n        model_path = self.parameterAsFile(parameters, \"model_path\", context)\n        mask_land = self.parameterAsBool(parameters, \"mask_land\", context)\n        band_set = self.parameterAsEnum(parameters, \"band_set\", context)\n\n        feedback.pushInfo(\"Chargement du mod\u00e8le PyTorch...\")\n        try:\n            from segmentation_models_pytorch.decoders.unet.model import Unet\n            torch.serialization.add_safe_globals(&#091;Unet])\n        except Exception as e:\n            feedback.pushInfo(f\"Avertissement : impossible d\u2019ajouter Unet aux classes s\u00fbres : {e}\")\n\n        model = torch.load(model_path, map_location=torch.device('cpu'), weights_only=False)\n        model.eval()\n\n        raster_input = self.parameterAsRasterLayer(parameters, \"raster_input\", context)\n        ds = gdal.Open(raster_input.source())\n        feedback.pushInfo(f\"Ouverture du raster : {raster_input.source()}\")\n        nrows, ncols = ds.RasterYSize, ds.RasterXSize\n\n        # --- D\u00e9tecter automatiquement les canaux d'entr\u00e9e ---\n        conv1_weights = model.encoder.conv1.weight.data\n        n_channels = conv1_weights.shape&#091;1]\n        feedback.pushInfo(f\"Le mod\u00e8le attend {n_channels} canaux d'entr\u00e9e.\")\n\n        if n_channels == 3:\n            # Analyser l\u2019importance des canaux\n            channel_mean = conv1_weights.abs().mean(dim=(0, 2, 3)).numpy()\n            sorted_idx = list(np.argsort(-channel_mean))\n            feedback.pushInfo(f\"Classement des canaux par importance : {sorted_idx}\")\n\n            band_selection = &#091;4, 3, 2]  # RGB classique\n            feedback.pushInfo(f\"Utilisation automatique des bandes : {band_selection} (RGB)\")\n        else:\n            band_selection = &#091;4, 3, 2] if band_set == 0 else &#091;8, 4, 3]\n            feedback.pushInfo(f\"Utilisation manuelle des bandes : {band_selection}\")\n\n        # --- Lecture des bandes s\u00e9lectionn\u00e9es ---\n        img_list = &#091;]\n        for b in band_selection:\n            band = ds.GetRasterBand(b)\n            arr = band.ReadAsArray().astype(np.float32)\n            img_list.append(arr)\n        img = np.stack(img_list, axis=0)\n\n        # Normalisation\n        feedback.pushInfo(\"Normalisation des valeurs...\")\n        img = (img - img.min()) \/ (img.max() - img.min() + 1e-6)\n\n        # --- Calcul NDWI si option activ\u00e9e ---\n        if mask_land and ds.RasterCount >= 8:\n            try:\n                B3 = ds.GetRasterBand(3).ReadAsArray().astype(np.float32)\n                B8 = ds.GetRasterBand(8).ReadAsArray().astype(np.float32)\n                ndwi = (B3 - B8) \/ (B3 + B8 + 1e-6)\n                water_mask = ndwi > 0\n                feedback.pushInfo(\"NDWI calcul\u00e9 : les zones terrestres seront exclues.\")\n            except Exception as e:\n                water_mask = np.ones((nrows, ncols), dtype=bool)\n                feedback.pushInfo(f\"NDWI non calculable ({e}), toutes les zones seront trait\u00e9es.\")\n        else:\n            water_mask = np.ones((nrows, ncols), dtype=bool)\n            feedback.pushInfo(\"Masquage terrestre d\u00e9sactiv\u00e9.\")\n\n        # --- Traitement par blocs ---\n        block_size = 2048\n        overlap = 512\n        output_mask = np.zeros((nrows, ncols), dtype=np.float32)\n        weight = np.zeros((nrows, ncols), dtype=np.float32)\n\n        total_blocks = ((nrows \/\/ (block_size - overlap) + 1) *\n                        (ncols \/\/ (block_size - overlap) + 1))\n        done = 0\n        feedback.pushInfo(\"D\u00e9but du traitement par blocs...\")\n\n        for y in range(0, nrows, block_size - overlap):\n            for x in range(0, ncols, block_size - overlap):\n                if feedback.isCanceled():\n                    break\n\n                block = img&#091;:, y:y+block_size, x:x+block_size]\n                if block.size == 0:\n                    continue\n\n                mask_block_water = water_mask&#091;y:y+block_size, x:x+block_size]\n                if not mask_block_water.any():\n                    continue\n\n                # ======= BLOC ORIGINAL PR\u00c9SERV\u00c9 =======\n                with torch.no_grad():\n                    block_tensor = torch.from_numpy(block).unsqueeze(0)\n                    pred = model(block_tensor)\n                    mask_block = pred.squeeze().numpy()\n\n                h, w = mask_block.shape\n                mask_block *= mask_block_water&#091;:h, :w]\n\n                # Fen\u00eatre Hanning\n                win_y = windows.hann(h)&#091;:, None]\n                win_x = windows.hann(w)&#091;None, :]\n                weight_block = win_y * win_x\n\n                output_mask&#091;y:y+h, x:x+w] += mask_block * weight_block\n                weight&#091;y:y+h, x:x+w] += weight_block\n\n                done += 1\n                progress = int(100 * done \/ total_blocks)\n                feedback.setProgress(progress)\n                # ======= FIN DU BLOC ORIGINAL =======\n\n        # Fusion finale\n        output_mask \/= np.maximum(weight, 1e-6)\n        output_mask = np.clip(output_mask, 0, 1)\n\n        # --- Sauvegarde GeoTIFF ---\n        feedback.pushInfo(\"Sauvegarde du masque final...\")\n        driver = gdal.GetDriverByName(\"GTiff\")\n        out_path = self.parameterAsOutputLayer(parameters, \"output_raster\", context)\n        out_ds = driver.Create(out_path, ncols, nrows, 1, gdal.GDT_Float32)\n        out_ds.SetGeoTransform(ds.GetGeoTransform())\n        out_ds.SetProjection(ds.GetProjection())\n        out_ds.GetRasterBand(1).WriteArray(output_mask)\n        out_ds.FlushCache()\n\n        feedback.pushInfo(\"\u2705 Segmentation termin\u00e9e avec succ\u00e8s.\")\n        return {\"output_raster\": out_path}\n\n    # --- M\u00e9tadonn\u00e9es ---\n    def name(self):\n        return \"segmentation_coraux\"\n\n    def displayName(self):\n        return self.tr(\"Segmentation des images Sentinel 2 \u00e0 1m (U-Net)\")\n\n    def group(self):\n        return self.tr(\"Deep Learning\")\n\n    def groupId(self):\n        return \"deeplearning\"\n\n    def tr(self, string):\n        return QCoreApplication.translate(\"SegmentationCoraux\", string)\n\n    def createInstance(self):\n        return SegmentationCoraux()\n\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Vous trouverez dans un prochain article les explications des diff\u00e9rentes parties du code. <\/p>\n\n\n\n<p>Le script QGIS pr\u00e9sent\u00e9 ici permet d\u2019appliquer des mod\u00e8les de <strong>segmentation d\u2019images bas\u00e9s sur U\u2011Net<\/strong> sauvegard\u00e9s au format PyTorch (<code>.pth<\/code>). Il est con\u00e7u pour traiter des images multispectrales, comme celles issues des satellites Sentinel\u20112, et adapte automatiquement les bandes utilis\u00e9es selon le nombre de canaux d\u2019entr\u00e9e attendu par le mod\u00e8le. Par exemple, si le mod\u00e8le est entra\u00een\u00e9 sur des images RGB, le script s\u00e9lectionnera les bandes Rouge, Vert et Bleu ; si le mod\u00e8le attend plus de canaux, il propose une s\u00e9lection manuelle ou utilise toutes les bandes disponibles. Le code int\u00e8gre \u00e9galement la possibilit\u00e9 de <strong>masquer les zones terrestres<\/strong> gr\u00e2ce au calcul du NDWI, ce qui permet de concentrer la segmentation sur les zones d\u2019eau, par exemple pour identifier les coraux. En pratique, tout mod\u00e8le U\u2011Net PyTorch correctement sauvegard\u00e9 peut \u00eatre charg\u00e9 et appliqu\u00e9, \u00e0 condition que l\u2019architecture et les poids soient inclus dans le fichier <code>.pth<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Utilisation\"><\/span>Utilisation<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Ex\u00e9cutez le script. La fen\u00eatre suivante s&rsquo;ouvre:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"506\" data-attachment-id=\"15920\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/deeplearning\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?fit=1749%2C1383&amp;ssl=1\" data-orig-size=\"1749,1383\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"deeplearning\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?fit=640%2C506&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?resize=640%2C506&#038;ssl=1\" alt=\"\" class=\"wp-image-15920\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?resize=1024%2C810&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?resize=300%2C237&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?resize=768%2C607&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?resize=1536%2C1215&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?w=1749&amp;ssl=1 1749w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearning.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>La s\u00e9lection manuelle des bandes n&rsquo;est utilis\u00e9e que si le script n&rsquo;arrive pas \u00e0 d\u00e9terminer, \u00e0 partir du mod\u00e8le, quelles sont les bandes \u00e0 utiliser.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Interpretation_du_resultat\"><\/span>Interpr\u00e9tation du r\u00e9sultat<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Le raster issu du mod\u00e8le repr\u00e9sente une <strong>carte de probabilit\u00e9<\/strong> :<br>les valeurs proches de 1 indiquent une forte pr\u00e9sence de coraux, tandis que celles proches de 0 correspondent \u00e0 des zones non coralliennes (sable, algues, profondeur, etc.).<\/p>\n\n\n\n<p>Une symbologie adapt\u00e9e (du bleu clair au rouge) permet de visualiser facilement la r\u00e9partition spatiale des zones coralliennes probables.<br>En combinant cette carte avec d\u2019autres donn\u00e9es (bathym\u00e9trie, substrat, turbidit\u00e9), il devient possible d\u2019estimer la <strong>vuln\u00e9rabilit\u00e9 ou la d\u00e9gradation des r\u00e9cifs<\/strong> au fil du temps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"439\" data-attachment-id=\"15921\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/quand-le-deep-learning-plonge-sous-la-surface-cartographier-les-coraux-avec-qgis-et-pytorch\/deeplearningoutput\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?fit=2257%2C1549&amp;ssl=1\" data-orig-size=\"2257,1549\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"deeplearningoutput\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?fit=640%2C439&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=640%2C439&#038;ssl=1\" alt=\"\" class=\"wp-image-15921\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=1024%2C703&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=300%2C206&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=768%2C527&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=1536%2C1054&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?resize=2048%2C1406&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningoutput.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Avantages_de_cette_approche\"><\/span>Avantages de cette approche<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>L\u2019int\u00e9gration de PyTorch dans QGIS ouvre de nouvelles perspectives pour la <strong>cartographie environnementale assist\u00e9e par intelligence artificielle<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open source et reproductible<\/strong> : tout le processus peut \u00eatre partag\u00e9, modifi\u00e9 ou adapt\u00e9 \u00e0 d\u2019autres zones c\u00f4ti\u00e8res.<\/li>\n\n\n\n<li><strong>Autonomie locale<\/strong> : pas besoin d\u2019ArcGIS Pro ni de licence co\u00fbteuse pour tester ou appliquer des mod\u00e8les de Deep Learning.<\/li>\n\n\n\n<li><strong>Exp\u00e9rimentation souple<\/strong> : on peut tester d\u2019autres architectures (SegNet, DeepLabV3, etc.) ou adapter le pr\u00e9traitement aux sp\u00e9cificit\u00e9s de chaque zone.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Vers_un_ecosysteme_de_modeles_ouverts\"><\/span>Vers un \u00e9cosyst\u00e8me de mod\u00e8les ouverts<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u00c0 terme, on pourrait imaginer une <strong>biblioth\u00e8que partag\u00e9e de mod\u00e8les environnementaux open source<\/strong> \u2014 l\u2019\u00e9quivalent libre du format DLPK \u2014 o\u00f9 chaque <code>.pth<\/code> serait accompagn\u00e9 de son fichier de description (bandes, normalisation, classes).<br>QGIS pourrait alors proposer une interface pour importer, tester et documenter ces mod\u00e8les, facilitant leur r\u00e9utilisation dans les contextes tropicaux, littoraux ou forestiers.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>L\u2019essor du <strong>Deep Learning<\/strong> marque une nouvelle \u00e9tape dans l\u2019\u00e9volution de la g\u00e9omatique.<br>Alors que les traitements d\u2019images classiques reposaient sur des seuils et des indices spectrales, les mod\u00e8les neuronaux apprennent d\u00e9sormais \u00e0 reconna\u00eetre les formes, les textures et les signatures complexes directement dans les pixels.<\/p>\n\n\n\n<p>Gr\u00e2ce \u00e0 des outils comme <strong>ArcGIS Pro<\/strong> (avec ses DLPK) et <strong>QGIS<\/strong> (via PyTorch et des scripts personnalis\u00e9s), cette puissance devient accessible \u00e0 tous : chercheurs, techniciens, ou passionn\u00e9s de cartographie environnementale.<br>L\u2019exemple pr\u00e9sent\u00e9 ici \u2014 la <strong>segmentation des coraux \u00e0 partir d\u2019images Sentinel-2<\/strong> \u2014 illustre le potentiel de ces approches pour l\u2019analyse fine des milieux c\u00f4tiers et la pr\u00e9servation des \u00e9cosyst\u00e8mes marins.<\/p>\n\n\n\n<p>L\u2019enjeu n\u2019est plus seulement technique, mais aussi <strong>collectif<\/strong> : mutualiser les mod\u00e8les, documenter leurs entr\u00e9es, partager les m\u00e9thodes et rendre le Deep Learning <strong>plus transparent, reproductible et ouvert<\/strong>.<br>Le futur de la t\u00e9l\u00e9d\u00e9tection se construira probablement \u00e0 la crois\u00e9e de ces deux mondes \u2014 l\u2019ing\u00e9nierie logicielle et la connaissance du terrain \u2014 pour transformer les donn\u00e9es satellitaires en v\u00e9ritables indicateurs d\u2019\u00e9tat \u00e9cologique.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Le Deep Learning r\u00e9volutionne l\u2019analyse d\u2019images satellitaires.Longtemps r\u00e9serv\u00e9 aux grands laboratoires ou aux logiciels propri\u00e9taires, il s\u2019ouvre aujourd\u2019hui au monde libre gr\u00e2ce \u00e0 PyTorch et QGIS.Cet article explore les principes du Deep Learning appliqu\u00e9 \u00e0 la&hellip;<\/p>\n","protected":false},"author":1,"featured_media":15925,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3853,62],"tags":[3863,3865,3867,58],"class_list":["post-15919","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-iafr","category-qgis-2","tag-deeplearning","tag-dlpk","tag-pytorch","tag-qgis"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/deeplearningavant.jpeg?fit=272%2C198&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-48L","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/15919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=15919"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/15919\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/15925"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=15919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=15919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=15919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}