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

120 lines
6.1 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="1800" height="1000" viewBox="0 0 1800 1000">
<defs>
<marker id="arrow" markerWidth="16" markerHeight="16" refX="14" refY="8" orient="auto">
<path d="M0,0 L16,8 L0,16 Z" fill="#1f2937"/>
</marker>
<style>
.bg { fill: #fafafa; }
.title { font: 700 40px Arial, sans-serif; fill: #111827; }
.subtitle { font: 400 21px Arial, sans-serif; fill: #4b5563; }
.stage { font: 700 20px Arial, sans-serif; fill: #374151; text-anchor: middle; }
.box { stroke-width: 3; rx: 18; }
.blue { fill: #eaf3ff; stroke: #3b82f6; }
.orange { fill: #fff1df; stroke: #f59e0b; }
.green { fill: #eaf8ef; stroke: #22a06b; }
.violet { fill: #f0ebff; stroke: #7c3aed; }
.main { font: 700 28px Arial, sans-serif; fill: #111827; text-anchor: middle; }
.desc { font: 400 18px Arial, sans-serif; fill: #4b5563; text-anchor: middle; }
.small { font: 400 16px Arial, sans-serif; fill: #6b7280; text-anchor: middle; }
.arrow { stroke: #1f2937; stroke-width: 4; fill: none; marker-end: url(#arrow); }
.thin { stroke: #6b7280; stroke-width: 3; fill: none; marker-end: url(#arrow); }
.dash { stroke: #6b7280; stroke-width: 3; fill: none; stroke-dasharray: 10 9; marker-end: url(#arrow); }
.icon-line { stroke: #111827; stroke-width: 5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.icon-fill { fill: #ffffff; stroke: #111827; stroke-width: 4; }
.kp { fill: #16a34a; stroke: #ffffff; stroke-width: 3; }
.bad { fill: #ef4444; stroke: #ffffff; stroke-width: 3; }
</style>
</defs>
<rect class="bg" width="1800" height="1000"/>
<text class="title" x="90" y="80">Применение GAN для приведения карт к единому домену</text>
<text class="subtitle" x="90" y="118">Нейросеть меняет стиль карты, а дальнейшее сопоставление выполняется классическими геометрическими методами</text>
<text class="stage" x="255" y="190">Исходные данные</text>
<text class="stage" x="720" y="190">Доменная адаптация</text>
<text class="stage" x="1185" y="190">Сопоставление</text>
<text class="stage" x="1545" y="190">Результат</text>
<g transform="translate(90 235)">
<rect class="box blue" width="330" height="210"/>
<text class="main" x="165" y="54">Google Maps</text>
<text class="desc" x="165" y="86">фрагмент области полета</text>
<path class="icon-line" d="M85 145 C122 118, 164 169, 210 132 C230 116, 248 111, 272 110"/>
<path class="icon-line" d="M82 170 L280 118"/>
<circle class="kp" cx="116" cy="142" r="9"/>
<circle class="kp" cx="208" cy="132" r="9"/>
</g>
<g transform="translate(90 555)">
<rect class="box orange" width="330" height="210"/>
<text class="main" x="165" y="54">Яндекс.Карты</text>
<text class="desc" x="165" y="86">эталон с ориентирами</text>
<path class="icon-line" d="M85 145 C122 118, 164 169, 210 132 C230 116, 248 111, 272 110"/>
<path class="icon-line" d="M82 170 L280 118"/>
<circle class="kp" cx="116" cy="142" r="9"/>
<circle class="kp" cx="208" cy="132" r="9"/>
</g>
<path class="arrow" d="M440 340 H555"/>
<g transform="translate(575 300)">
<rect class="box orange" width="290" height="260"/>
<text class="main" x="145" y="58">GAN</text>
<text class="desc" x="145" y="91">Google -> Yandex</text>
<path class="icon-line" d="M80 170 L115 128 L150 170 L185 128 L220 170"/>
<text class="small" x="145" y="218">сохраняет геометрию</text>
<text class="small" x="145" y="242">меняет визуальный стиль</text>
</g>
<path class="arrow" d="M885 430 H1000"/>
<g transform="translate(1020 300)">
<rect class="box orange" width="330" height="260"/>
<text class="main" x="165" y="58">Сгенерированный кадр</text>
<text class="desc" x="165" y="91">карта в целевом домене</text>
<path class="icon-line" d="M85 166 C122 139, 164 190, 210 153 C230 137, 248 132, 272 131"/>
<path class="icon-line" d="M82 191 L280 139"/>
<circle class="kp" cx="116" cy="163" r="9"/>
<circle class="kp" cx="208" cy="153" r="9"/>
<circle class="kp" cx="250" cy="139" r="9"/>
</g>
<path class="dash" d="M420 660 C635 775, 940 775, 1040 580"/>
<path class="thin" d="M1185 580 V650"/>
<g transform="translate(1020 650)">
<rect class="box green" width="330" height="190"/>
<text class="main" x="165" y="52">Ключевые точки</text>
<text class="desc" x="165" y="84">ORB / SIFT / AKAZE</text>
<circle class="kp" cx="92" cy="132" r="10"/>
<circle class="kp" cx="142" cy="116" r="10"/>
<circle class="kp" cx="193" cy="139" r="10"/>
<circle class="kp" cx="244" cy="111" r="10"/>
<path class="icon-line" d="M90 132 L142 116 L193 139 L244 111"/>
</g>
<path class="arrow" d="M1370 745 H1445"/>
<g transform="translate(1465 650)">
<rect class="box green" width="245" height="190"/>
<text class="main" x="122" y="52">RANSAC</text>
<text class="desc" x="122" y="84">отбор совпадений</text>
<circle class="kp" cx="83" cy="130" r="10"/>
<circle class="kp" cx="124" cy="114" r="10"/>
<circle class="bad" cx="164" cy="137" r="10"/>
</g>
<path class="arrow" d="M1590 630 V530"/>
<g transform="translate(1425 300)">
<rect class="box violet" width="285" height="260"/>
<text class="main" x="142" y="58">Гомография H</text>
<text class="desc" x="142" y="91">связь координат</text>
<path class="icon-fill" d="M95 135 L172 118 L196 184 L112 201 Z"/>
<path class="icon-line" d="M103 212 L197 110"/>
<text class="small" x="142" y="238">коррекция позиции БПЛА</text>
</g>
<text class="small" x="900" y="930">Итог: изображения становятся визуально ближе, поэтому классические методы получают больше устойчивых совпадений.</text>
</svg>