Files
autopilot/dissertation/_media/gan_unet_generator.svg
2026-05-30 14:49:40 +03:00

105 lines
5.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="1700" height="920" viewBox="0 0 1700 920">
<defs>
<marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0,0 L12,6 L0,12 Z" fill="#344054"/>
</marker>
<style>
.bg { fill: #fbfcfe; }
.title { font: 700 34px Arial, sans-serif; fill: #172033; }
.subtitle { font: 400 18px Arial, sans-serif; fill: #526070; }
.block { stroke: #344054; stroke-width: 2; rx: 10; }
.down { fill: #d9ecff; }
.bottle { fill: #fff0cf; }
.up { fill: #e6f5dc; }
.out { fill: #eee7ff; }
.label { font: 700 17px Arial, sans-serif; fill: #172033; text-anchor: middle; }
.small { font: 400 14px Arial, sans-serif; fill: #4b5563; text-anchor: middle; }
.axis { stroke: #344054; stroke-width: 3; fill: none; marker-end: url(#arrow); }
.skip { stroke: #d47f20; stroke-width: 3; fill: none; stroke-dasharray: 9 7; marker-end: url(#arrow); }
.arrow { stroke: #344054; stroke-width: 3; fill: none; marker-end: url(#arrow); }
.note { font: 400 16px Arial, sans-serif; fill: #667085; }
</style>
</defs>
<rect class="bg" width="1700" height="920"/>
<text class="title" x="80" y="70">Архитектура генератора U-Net: Google Maps -&gt; Яндекс.Карты</text>
<text class="subtitle" x="80" y="104">Сжатие изображения до признакового представления и восстановление в целевом стиле с сохранением геометрии через skip-соединения</text>
<g id="encoder">
<rect class="block down" x="80" y="230" width="120" height="360"/>
<text class="label" x="140" y="255">Input</text>
<text class="small" x="140" y="280">3 x 256 x 256</text>
<text class="small" x="140" y="550">Google RGB</text>
<rect class="block down" x="240" y="265" width="120" height="290"/>
<text class="label" x="300" y="292">Down 1</text>
<text class="small" x="300" y="318">64</text>
<text class="small" x="300" y="532">128 x 128</text>
<rect class="block down" x="400" y="295" width="120" height="230"/>
<text class="label" x="460" y="322">Down 2</text>
<text class="small" x="460" y="348">128</text>
<text class="small" x="460" y="502">64 x 64</text>
<rect class="block down" x="560" y="325" width="120" height="170"/>
<text class="label" x="620" y="352">Down 3</text>
<text class="small" x="620" y="378">256</text>
<text class="small" x="620" y="472">32 x 32</text>
<rect class="block down" x="720" y="350" width="120" height="120"/>
<text class="label" x="780" y="377">Down 4</text>
<text class="small" x="780" y="403">512</text>
<text class="small" x="780" y="448">16 x 16</text>
</g>
<rect class="block bottle" x="880" y="372" width="120" height="76"/>
<text class="label" x="940" y="399">Bottleneck</text>
<text class="small" x="940" y="425">512</text>
<g id="decoder">
<rect class="block up" x="1040" y="350" width="120" height="120"/>
<text class="label" x="1100" y="377">Up 4</text>
<text class="small" x="1100" y="403">512</text>
<text class="small" x="1100" y="448">16 x 16</text>
<rect class="block up" x="1200" y="325" width="120" height="170"/>
<text class="label" x="1260" y="352">Up 5</text>
<text class="small" x="1260" y="378">256</text>
<text class="small" x="1260" y="472">32 x 32</text>
<rect class="block up" x="1360" y="295" width="120" height="230"/>
<text class="label" x="1420" y="322">Up 6</text>
<text class="small" x="1420" y="348">128</text>
<text class="small" x="1420" y="502">64 x 64</text>
<rect class="block up" x="1520" y="265" width="120" height="290"/>
<text class="label" x="1580" y="292">Up 7</text>
<text class="small" x="1580" y="318">64</text>
<text class="small" x="1580" y="532">128 x 128</text>
</g>
<rect class="block out" x="1370" y="650" width="250" height="95"/>
<text class="label" x="1495" y="684">Final Conv + Tanh</text>
<text class="small" x="1495" y="711">3 x 256 x 256</text>
<text class="small" x="1495" y="734">Generated Yandex RGB</text>
<path class="arrow" d="M205 410 L235 410"/>
<path class="arrow" d="M365 410 L395 410"/>
<path class="arrow" d="M525 410 L555 410"/>
<path class="arrow" d="M685 410 L715 410"/>
<path class="arrow" d="M845 410 L875 410"/>
<path class="arrow" d="M1005 410 L1035 410"/>
<path class="arrow" d="M1165 410 L1195 410"/>
<path class="arrow" d="M1325 410 L1355 410"/>
<path class="arrow" d="M1485 410 L1515 410"/>
<path class="arrow" d="M1580 560 C1580 610, 1530 620, 1495 645"/>
<path class="skip" d="M300 255 C300 145, 1580 145, 1580 260"/>
<path class="skip" d="M460 290 C460 185, 1420 185, 1420 290"/>
<path class="skip" d="M620 320 C620 225, 1260 225, 1260 320"/>
<path class="skip" d="M780 345 C780 265, 1100 265, 1100 345"/>
<text class="note" x="90" y="805">Down-блок: Conv2d, BatchNorm, LeakyReLU. Up-блок: Upsample, Conv2d, BatchNorm, ReLU, затем конкатенация со skip-признаками.</text>
<text class="note" x="90" y="835">Назначение skip-соединений: сохранить дороги, перекрестки и контуры объектов при изменении визуального стиля карты.</text>
</svg>