908 lines
44 KiB
TeX
908 lines
44 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% datoteka diploma-FRI-vzorec.tex
|
|
%
|
|
% vzorčna datoteka za pisanje diplomskega dela v formatu LaTeX
|
|
% na UL Fakulteti za računalništvo in informatiko
|
|
%
|
|
% na osnovi starejših verzij vkup spravil Franc Solina, maj 2021
|
|
% prvo verzijo je leta 2010 pripravil Gašper Fijavž
|
|
%
|
|
% za upravljanje z literaturo ta vezija uporablja BibLaTeX
|
|
%
|
|
% svetujemo uporabo Overleaf.com - na tej spletni implementaciji LaTeXa ta vzorec zagotovo pravilno deluje
|
|
%
|
|
|
|
\documentclass[a4paper,12pt,openright]{book}
|
|
%\documentclass[a4paper, 12pt, openright, draft]{book} Nalogo preverite tudi z opcijo draft, ki pokaže, katere vrstice so predolge! Pozor, v draft opciji, se slike ne pokažejo!
|
|
|
|
\usepackage[utf8]{inputenc} % omogoča uporabo slovenskih črk kodiranih v formatu UTF-8
|
|
\usepackage[slovene,english]{babel} % naloži, med drugim, slovenske delilne vzorce
|
|
\usepackage[pdftex]{graphicx} % omogoča vlaganje slik različnih formatov
|
|
\usepackage{fancyhdr} % poskrbi, na primer, za glave strani
|
|
\usepackage{amssymb} % dodatni matematični simboli
|
|
\usepackage{amsmath} % eqref, npr.
|
|
\usepackage{hyperxmp}
|
|
\usepackage[hyphens]{url}
|
|
\usepackage{csquotes}
|
|
\usepackage[pdftex, colorlinks=true,
|
|
citecolor=black, filecolor=black,
|
|
linkcolor=black, urlcolor=black,
|
|
pdfproducer={LaTeX}, pdfcreator={LaTeX}]{hyperref}
|
|
|
|
\usepackage{color}
|
|
\usepackage{soul}
|
|
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
|
|
\lstset{
|
|
language=Python,
|
|
numbers=left,
|
|
commentstyle=\color{green},
|
|
keywordstyle=\color{blue},
|
|
numberstyle=\tiny\color{gray},
|
|
stringstyle=\color{red},
|
|
basicstyle=\ttfamily\scriptsize,
|
|
breaklines=true,
|
|
showstringspaces=false
|
|
}
|
|
|
|
\usepackage[
|
|
backend=biber,
|
|
style=numeric,
|
|
sorting=nty,
|
|
]{biblatex}
|
|
|
|
|
|
\addbibresource{literatura.bib} %Imports bibliography file
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% DIPLOMA INFO
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newcommand{\ttitle}{Lokalizacija brezpilotnih letalnikov}
|
|
\newcommand{\ttitleEn}{UAV localization}
|
|
\newcommand{\tsubject}{\ttitle}
|
|
\newcommand{\tsubjectEn}{\ttitleEn}
|
|
\newcommand{\tauthor}{Gasper Spagnolo}
|
|
\newcommand{\tkeywords}{Lokalizacija UAV, geo-lokalizacija, globoko učenje, transformer}
|
|
\newcommand{\tkeywordsEn}{UAV localization, geo-localization, deep learning, transformer}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% HYPERREF SETUP
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\hypersetup{pdftitle={\ttitle}}
|
|
\hypersetup{pdfsubject=\ttitleEn}
|
|
\hypersetup{pdfauthor={\tauthor}}
|
|
\hypersetup{pdfkeywords=\tkeywordsEn}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% postavitev strani
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\addtolength{\marginparwidth}{-20pt} % robovi za tisk
|
|
\addtolength{\oddsidemargin}{40pt}
|
|
\addtolength{\evensidemargin}{-40pt}
|
|
|
|
\renewcommand{\baselinestretch}{1.3} % ustrezen razmik med vrsticami
|
|
\setlength{\headheight}{15pt} % potreben prostor na vrhu
|
|
\renewcommand{\chaptermark}[1]%
|
|
{\markboth{\MakeUppercase{\thechapter.\ #1}}{}} \renewcommand{\sectionmark}[1]%
|
|
{\markright{\MakeUppercase{\thesection.\ #1}}} \renewcommand{\headrulewidth}{0.5pt} \renewcommand{\footrulewidth}{0pt}
|
|
\fancyhf{}
|
|
\fancyhead[LE,RO]{\sl \thepage}
|
|
%\fancyhead[LO]{\sl \rightmark} \fancyhead[RE]{\sl \leftmark}
|
|
\fancyhead[RE]{\sc \tauthor} % dodal Solina
|
|
\fancyhead[LO]{\sc Diplomska naloga} % dodal Solina
|
|
|
|
|
|
\newcommand{\BibLaTeX}{{\sc Bib}\LaTeX}
|
|
\newcommand{\BibTeX}{{\sc Bib}\TeX}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% naslovi
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\newcommand{\autfont}{\Large}
|
|
\newcommand{\titfont}{\LARGE\bf}
|
|
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
|
|
\setcounter{tocdepth}{1} % globina kazala
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% konstrukti
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newtheorem{izrek}{Izrek}[chapter]
|
|
\newtheorem{trditev}{Trditev}[izrek]
|
|
\newenvironment{dokaz}{\emph{Dokaz.}\ }{\hspace{\fill}{$\Box$}}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%% PDF-A
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% define medatata
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\def\Title{\ttitle}
|
|
\def\Author{\tauthor, gs0104@student.uni-lj.si}
|
|
\def\Subject{\ttitleEn}
|
|
\def\Keywords{\tkeywordsEn}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% \convertDate converts D:20080419103507+02'00' to 2008-04-19T10:35:07+02:00
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\def\convertDate{%
|
|
\getYear
|
|
}
|
|
|
|
{\catcode`\D=12
|
|
\gdef\getYear D:#1#2#3#4{\edef\xYear{#1#2#3#4}\getMonth}
|
|
}
|
|
\def\getMonth#1#2{\edef\xMonth{#1#2}\getDay}
|
|
\def\getDay#1#2{\edef\xDay{#1#2}\getHour}
|
|
\def\getHour#1#2{\edef\xHour{#1#2}\getMin}
|
|
\def\getMin#1#2{\edef\xMin{#1#2}\getSec}
|
|
\def\getSec#1#2{\edef\xSec{#1#2}\getTZh}
|
|
\def\getTZh +#1#2{\edef\xTZh{#1#2}\getTZm}
|
|
\def\getTZm '#1#2'{%
|
|
\edef\xTZm{#1#2}%
|
|
\edef\convDate{\xYear-\xMonth-\xDay T\xHour:\xMin:\xSec+\xTZh:\xTZm}%
|
|
}
|
|
|
|
%\expandafter\convertDate\pdfcreationdate
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% get pdftex version string
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newcount\countA
|
|
\countA=\pdftexversion
|
|
\advance \countA by -100
|
|
\def\pdftexVersionStr{pdfTeX-1.\the\countA.\pdftexrevision}
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% XMP data
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage{xmpincl}
|
|
%\includexmp{pdfa-1b}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% pdfInfo
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\pdfinfo{%
|
|
/Title (\ttitle)
|
|
/Author (\tauthor, gs0104@student.uni-lj.si)
|
|
/Subject (\ttitleEn)
|
|
/Keywords (\tkeywordsEn)
|
|
/ModDate (\pdfcreationdate)
|
|
/Trapped /False
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% znaki za copyright stran
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\newcommand{\CcImageCc}[1]{%
|
|
\includegraphics[scale=#1]{cc_cc_30.pdf}%
|
|
}
|
|
\newcommand{\CcImageBy}[1]{%
|
|
\includegraphics[scale=#1]{cc_by_30.pdf}%
|
|
}
|
|
\newcommand{\CcImageSa}[1]{%
|
|
\includegraphics[scale=#1]{cc_sa_30.pdf}%
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\begin{document}
|
|
\selectlanguage{slovene}
|
|
\frontmatter
|
|
\setcounter{page}{1} %
|
|
\renewcommand{\thepage}{} % preprečimo težave s številkami strani v kazalu
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%naslovnica
|
|
\thispagestyle{empty}%
|
|
\begin{center}
|
|
{\large\sc Univerza v Ljubljani\\%
|
|
% Fakulteta za elektrotehniko\\% za študijski program Multimedija
|
|
% Fakulteta za upravo\\% za študijski program Upravna informatika
|
|
Fakulteta za računalništvo in informatiko\\%
|
|
% Fakulteta za matematiko in fiziko\\% za študijski program Računalništvo in matematika
|
|
}
|
|
\vskip 10em%
|
|
{\autfont \tauthor\par}%
|
|
{\titfont \ttitle \par}%
|
|
{\vskip 3em \textsc{DIPLOMSKO DELO\\[5mm] % dodal Solina za ostale študijske programe
|
|
% VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM\\ PRVE STOPNJE\\ RAČUNALNIŠTVO IN INFORMATIKA}\par}%
|
|
UNIVERZITETNI ŠTUDIJSKI PROGRAM\\ PRVE STOPNJE\\ RAČUNALNIŠTVO IN INFORMATIKA}\par}%
|
|
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ MULTIMEDIJA}\par}%
|
|
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ UPRAVNA INFORMATIKA}\par}%
|
|
% INTERDISCIPLINARNI UNIVERZITETNI\\ ŠTUDIJSKI PROGRAM PRVE STOPNJE\\ RAČUNALNIŠTVO IN MATEMATIKA}\par}%
|
|
\vfill\null%
|
|
% izberite pravi habilitacijski naziv mentorja!
|
|
{\large \textsc{Mentor}: doc. dr. Luka Cehovin Zajc\par}%
|
|
{\large \textsc{Somentor}: asist. Matej Dobrevski \par}%
|
|
{\vskip 2em \large Ljubljana, \the\year \par}%
|
|
\end{center}
|
|
% prazna stran
|
|
%\clearemptydoublepage
|
|
% izjava o licencah itd. se izpiše na hrbtni strani naslovnice
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%copyright stran
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newpage
|
|
\thispagestyle{empty}
|
|
|
|
\vspace*{5cm}
|
|
{\small \noindent
|
|
To delo je ponujeno pod licenco \textit{Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 2.5 Slovenija} (ali novej\v so razli\v cico).
|
|
To pomeni, da se tako besedilo, slike, grafi in druge sestavine dela kot tudi rezultati diplomskega dela lahko prosto distribuirajo,
|
|
reproducirajo, uporabljajo, priobčujejo javnosti in predelujejo, pod pogojem, da se jasno in vidno navede avtorja in naslov tega
|
|
dela in da se v primeru spremembe, preoblikovanja ali uporabe tega dela v svojem delu, lahko distribuira predelava le pod
|
|
licenco, ki je enaka tej.
|
|
Podrobnosti licence so dostopne na spletni strani \href{http://creativecommons.si}{creativecommons.si} ali na Inštitutu za
|
|
intelektualno lastnino, Streliška 1, 1000 Ljubljana.
|
|
|
|
\vspace*{1cm}
|
|
\begin{center}% 0.66 / 0.89 = 0.741573033707865
|
|
\CcImageCc{0.741573033707865}\hspace*{1ex}\CcImageBy{1}\hspace*{1ex}\CcImageSa{1}%
|
|
\end{center}
|
|
}
|
|
|
|
\vspace*{1cm}
|
|
{\small \noindent
|
|
Izvorna koda diplomskega dela, njeni rezultati in v ta namen razvita programska oprema je ponujena pod licenco GNU General Public License,
|
|
različica 3 (ali novejša). To pomeni, da se lahko prosto distribuira in/ali predeluje pod njenimi pogoji.
|
|
Podrobnosti licence so dostopne na spletni strani \url{http://www.gnu.org/licenses/}.
|
|
}
|
|
|
|
\vfill
|
|
\begin{center}
|
|
\ \\ \vfill
|
|
{\em
|
|
Besedilo je oblikovano z urejevalnikom besedil \LaTeX.}
|
|
\end{center}
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% stran 3 med uvodnimi listi
|
|
\thispagestyle{empty}
|
|
\
|
|
\vfill
|
|
|
|
\bigskip
|
|
\noindent\textbf{Kandidat:} Gasper Spagnolo\\
|
|
\noindent\textbf{Naslov:} Lokalizacija brezpilotnih letalnikov\\
|
|
% vstavite ustrezen naziv študijskega programa!
|
|
\noindent\textbf{Vrsta naloge:} Diplomska naloga na univerzitetnem programu prve stopnje Računalništvo in informatika \\
|
|
% izberite pravi habilitacijski naziv mentorja!
|
|
\noindent\textbf{Mentor:} doc. dr. Luka Cehovin Zajc\\
|
|
\noindent\textbf{Somentor:} asist. Matej Dobrevski
|
|
|
|
\bigskip
|
|
\noindent\textbf{Opis:}\\
|
|
todo
|
|
|
|
\bigskip
|
|
\noindent\textbf{Title:} UAV localization
|
|
|
|
\bigskip
|
|
\noindent\textbf{Description:}\\
|
|
todo
|
|
|
|
\vfill
|
|
|
|
|
|
|
|
\vspace{2cm}
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
% zahvala
|
|
\thispagestyle{empty}\mbox{}\vfill\null\it%
|
|
\noindent
|
|
Zahvaljujem se mami in proskiju.
|
|
\rm\normalfont
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% posvetilo, če sama zahvala ne zadošča :-)
|
|
\thispagestyle{empty}\mbox{}{\vskip0.20\textheight}\mbox{}\hfill\begin{minipage}{0.55\textwidth}%
|
|
Svoji dragi proskici.
|
|
\normalfont\end{minipage}
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% kazalo
|
|
\pagestyle{empty}
|
|
\def\thepage{}% preprečimo težave s številkami strani v kazalu
|
|
\tableofcontents{}
|
|
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% seznam kratic
|
|
|
|
\chapter*{Seznam uporabljenih kratic}
|
|
|
|
\noindent\begin{tabular}{p{0.11\textwidth}|p{.39\textwidth}|p{.39\textwidth}} % po potrebi razširi prvo kolono tabele na račun drugih dveh!
|
|
{\bf kratica} & {\bf angleško} & {\bf slovensko} \\ \hline
|
|
{\bf UAV} & unmanned aerial vehicle & brezpilotni letalnik \\
|
|
{\bf DNN} & deep neural network & globoka nevronska mreza \\
|
|
{\bf CNN} & convolutional neural network & konvolucijska nevronska mreza \\
|
|
{\bf RDS} & relative distance score & ocena relativne razdalje \\
|
|
{\bf MSE} & mean squared error & srednja kvadratna napaka \\
|
|
{\bf FPI} & finding point in an image & iskanje tocke v sliki \\
|
|
{\bf WAMF} & Weight-Adaptive Multi Feature fusion & Uteženo združevanje več značilk \\
|
|
{\bf PCPVT } & Pyramid Vision Transformer with Conditional Positional encodings & Piramidni vizualni transformer s pogojnimi pozicijskimi kodiranji \\
|
|
|
|
% \dots & \dots & \dots \\
|
|
\end{tabular}
|
|
|
|
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% povzetek
|
|
\phantomsection
|
|
\addcontentsline{toc}{chapter}{Povzetek}
|
|
\chapter*{Povzetek}
|
|
|
|
\noindent\textbf{Naslov:} \ttitle
|
|
\bigskip
|
|
|
|
\noindent\textbf{Avtor:} \tauthor
|
|
\bigskip
|
|
|
|
%\noindent\textbf{Povzetek:}
|
|
\noindent V vzorcu je predstavljen postopek priprave diplomskega dela z uporabo okolja \LaTeX. Vaš povzetek mora sicer vsebovati približno 100 besed, ta tukaj je odločno prekratek.
|
|
Dober povzetek vključuje: (1) kratek opis obravnavanega problema, (2) kratek opis vašega pristopa za reševanje tega problema in (3) (najbolj uspešen) rezultat ali prispevek diplomske naloge.
|
|
|
|
\bigskip
|
|
|
|
\noindent\textbf{Ključne besede:} \tkeywords.
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% abstract
|
|
\phantomsection
|
|
\selectlanguage{english}
|
|
\addcontentsline{toc}{chapter}{Abstract}
|
|
\chapter*{Abstract}
|
|
|
|
\noindent\textbf{Title:} \ttitleEn
|
|
\bigskip
|
|
|
|
\noindent\textbf{Author:} \tauthor
|
|
\bigskip
|
|
|
|
%\noindent\textbf{Abstract:}
|
|
\noindent This sample document presents an approach to typesetting your BSc thesis using \LaTeX.
|
|
A proper abstract should contain around 100 words which makes this one way too short.
|
|
\bigskip
|
|
|
|
\noindent\textbf{Keywords:} \tkeywordsEn.
|
|
\selectlanguage{slovene}
|
|
% prazna stran
|
|
\clearemptydoublepage
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\mainmatter
|
|
\setcounter{page}{1}
|
|
\pagestyle{fancy}
|
|
|
|
\chapter{Uvod}
|
|
Droni in sateliti se uporabljajo za iskanje in reševanje, kartiranje terena, kmetijsko spremljanje, navigacijo dronov in podobne naloge.
|
|
Raznolikost platform za tehnologijo oddaljenega zaznavanja prinaša veliko prednosti na teh področjih.
|
|
Ljudje lahko ne le prek satelitov pridobijo podatke velikega obsega, temveč tudi s pomočjo platform dronov pridobijo bolj jasne lokalne slike.
|
|
|
|
Trenutno se droni v glavnem zanašajo na satelitske signale za navigacijo in določitev položaja med letom.
|
|
Vendar se v praksi satelitski signal močno oslabi po dolgi razdalji, kar lahko povzroči motnje sprejetega satelitskega signala na dronu.
|
|
Zlasti na vojaškem področju je izguba satelitskega signala pogosta.
|
|
Samozadostna lokalizacija in navigacija dronov v okoljih, kjer so satelitski signali omejeni ali moteni, postaja vse pomembnejša.
|
|
|
|
Da bi rešili problem avtonomne navigacije brezpilotnih letalnikov v okolju, kjer je uporaba satelitskih signalov omejena, so bile prejšnje metode večinoma izvedene z uporabo prepoznavanja slik.
|
|
Lokalizacija naprave se doseže z ujemanjem slike letalnika z vsako sliko v satelitski slikovni bazi.
|
|
Med procesom usposabljanja so neprestano skrajševali razdaljo med slikami letalnikov in satelitskimi slikami podobnih regij preko metrike učenja.
|
|
Metoda prepoznavanja slik je na nekaterih naborih podatkov dosegla odlične rezultate. Vendar ima več problemov:
|
|
|
|
\begin{itemize}
|
|
\item Pred praktično uporabo je treba vnaprej pripraviti slikovno bazo za prepoznavanje, in vse slike v bazi so poslane modelu za izvleček značilnosti.
|
|
\item Za doseganje bolj natančne pozicioniranja, mora baza pokrivati čim večji obseg in slika poizvedbe mora biti izračunana z vsemi slikami v bazi. To prinaša večji skladiščenjski in računalniški pritisk na računalnik.
|
|
\item Ko se model posodobi, je treba posodobiti tudi ustrezno bazo.
|
|
\end{itemize}
|
|
Povzemajoč, metoda prepoznavanja slik zahteva veliko predobdelovalnih operacij. Hkrati pa so tudi zahteve za skladiščno zmogljivost in računalniško moč precej velike.
|
|
|
|
S hitrim razvojem računalniškega vida se pojavlja geolokacija dronov na podlagi satelitskih slik.
|
|
Ta metoda, podobna sinergiji med človeškimi očmi in možgani, omogoča iskanje ustrezne lokacije v iskalnem zemljevidu (satelitska slika) na podlagi slike drona.
|
|
Ko je lokacija iskanja najdena na iskalnem zemljevidu, lahko iz podatkov o zemljepisni širini in dolžini iskalnega zemljevida sklepamo o trenutnem položaju drona.
|
|
|
|
\chapter{Teoreticno Ozadje}
|
|
\label{ch0}
|
|
|
|
\section{Pregled literature}
|
|
|
|
Tuki bos opisal o sorodhin delih in kake clanke si use si pogledu.
|
|
|
|
\section{Osnovni pojmi in terminologija}
|
|
|
|
\subsection{Brezpilotni letalnik}
|
|
|
|
Brezpilotni letalniki ali droni so zračna plovila, ki se lahko upravljajo na daljavo ali avtonomno preko programske opreme, ki je integrirana s senzorji in GPS sistemi.
|
|
Droni imajo široko paleto uporabe v različnih industrijah, vključno z vojaško, komercialno, znanstveno in rekreativno uporabo.
|
|
Droni so postali izjemno pomembni za zbiranje podatkov v realnem času, izvajanje raziskav in analiz na terenu, kot tudi za opravljanje nalog, ki so lahko za človeka nevarne ali nedostopne.
|
|
Zaradi svoje fleksibilnosti in prilagodljivosti se uporabljajo v nalogah, kot so iskanje in reševanje, zaznavanje okoljskih sprememb, kmetijski nadzor, inspekcija infrastrukture, filmska produkcija, dostava paketov in še veliko več.
|
|
Trg dronov je hitro rastoč in vključuje široko paleto proizvajalcev, ki ponujajo različne modele za različne namene in proračune.
|
|
Kot tehnologija napreduje, se pojavljajo tudi novi izzivi, vključno z vprašanji zasebnosti, varnosti in zakonodajnimi ureditvami.
|
|
Zato je to področje postalo predmet intenzivnih raziskav in razvoja, s ciljem optimizacije zmogljivosti, zanesljivosti in dostopnosti brezpilotnih letalnikov.
|
|
|
|
\subsection{Satelit}
|
|
|
|
Sateliti so objekti, ki krožijo okoli Zemlje ali drugih nebesnih teles in se uporabljajo za številne namene, vključno z komunikacijo, opazovanjem vremena, znanstvenimi raziskavami, navigacijo in še veliko več.
|
|
Za komercialno in vojaško uporabo je pomembna zlasti komunikacijska satelitska tehnologija.
|
|
Ta omogoča globalno povezljivost in prenos podatkov, kot so televizijski signali, telefonski klici in internet.
|
|
Vremenski sateliti so ključni za napovedovanje vremena in spremljanje okoljskih sprememb, saj zagotavljajo nenehne in natančne podatke o atmosferskih razmerah.
|
|
Navigacijski sateliti, kot je sistem Global Positioning System (GPS), omogočajo določanje položaja in časa na skoraj katerem koli mestu na Zemlji.
|
|
Ta tehnologija je ključna za številne aplikacije, od vojaške navigacije do vsakodnevnega usmerjanja v prometu.
|
|
Znanstveni sateliti se uporabljajo za študij nebesnih teles, vključno z Zemljo.
|
|
Ta opazovanja lahko pomagajo pri razumevanju podnebnih sprememb, geoloških procesov in drugih pomembnih znanstvenih vprašanj.
|
|
Lansiranje satelita je kompleksno in drago opravilo, ki zahteva natančno načrtovanje in usklajevanje.
|
|
Sateliti morajo biti postavljeni na natančno določeno orbito, da bi zagotovili optimalno delovanje in izogibanje trkom z drugimi objekti v vesolju.
|
|
|
|
\subsection{Geolokalizacija}
|
|
|
|
Geolokalizacija je proces določanja geografske lokacije objekta, kot je mobilni telefon, računalnik, vozilo ali kateri koli druga povezana naprava.
|
|
Ta postopek je postal ključen del sodobnih tehnologij in se uporablja v številnih aplikacijah in storitvah.
|
|
Geolokalizacija je bistvena za sistem GPS in druge navigacijske sisteme, ki voznikom, pohodnikom in drugim omogočajo natančno navigacijo po poti do cilja.
|
|
Podjetja uporabljajo geolokalizacijo za ciljno usmerjanje oglasov glede na lokacijo uporabnikov, kar omogoča, da so oglasi prilagojeni lokalnim zanimanjem in potrebam.
|
|
Geolokalizacija se uporablja tudi v varnostnih aplikacijah, kot so sledenje vozil, iskanje izgubljenih ali ukradenih naprav in nadzor nad dostopom do določenih storitev na podlagi lokacije.
|
|
V socialnih omrežjih in aplikacijah, ki uporabljajo lokacijo, je geolokalizacija omogočila uporabnikom, da delijo svojo lokacijo, najdejo prijatelje v bližini ali odkrijejo lokalne dogodke in atrakcije.
|
|
Geolokalizacija se uporablja tudi v različnih znanstvenih raziskavah, kot je spremljanje selitve živali, raziskovanje tektonskih premikov in analiza podnebnih sprememb.
|
|
Kljub številnim uporabam obstajajo tudi izzivi pri uporabi geolokalizacije.
|
|
Natančnost geolokalizacije je odvisna od številnih dejavnikov, vključno z dostopnostjo satelitskih signalov, gostoto urbanih območij in uporabljeno tehnologijo.
|
|
Prav tako se pojavljajo vprašanja glede zasebnosti in varnosti, saj lahko nepooblaščeno sledenje vodi v zlorabo informacij o lokaciji.
|
|
|
|
\subsection{Iskanje tocke v sliki}
|
|
|
|
Iskanje točke v sliki je postopek identifikacije in določanja posebnih točk ali predmetov v določeni sliki ali seriji slik.
|
|
Ta tehnologija se je izkazala za pomembno v različnih aplikacijah, vključno z navigacijo in geolokalizacijo.
|
|
|
|
FPI je pozicijski standard, kjer je vhodna slika, ki jo je treba pozicionirati, poimenovana kot \textit{query}, in slika, ki jo je treba pridobiti, se imenuje \textit{search map}.
|
|
Ta proces se lahko uporablja za različne naloge lokalizacije, kot so lokalizacija brezpilotnih letalnikov (UAV) in prečno geolokalizacijo. Glavni cilj je najti ustrezno lokacijo v iskalnem zemljevidu.
|
|
FPI neposredno vnese poizvedbo in iskalni zemljevid v model, ki nato izpiše zemljevid toplote, ki predstavlja napovedano lokacijsko porazdelitev poizvedbe v iskalnem zemljevidu.
|
|
Ena od ključnih prednosti metode FPI je, da ne zahteva veliko pripravljalnih podatkov ali operacij ekstrakcije značilnosti vnaprej. Edino shranjevanje, ki je potrebno, je iskalni zemljevid.
|
|
Ta metoda omogoča hitro in natančno določanje lokacij v kompleksnih slikah in lahko služi številnim namenom.
|
|
Na primer, v scenarijih brezpilotnih letalnikov bi FPI lahko uporabili za identifikacijo in sledenje specifičnih lokacij ali objektov na tleh iz zraka.
|
|
V geolokacijskih aplikacijah bi FPI lahko uporabili za določanje lokacije na satelitskih posnetkih.
|
|
Skupno gledano iskanje točke v sliki, še posebej s pomočjo FPI metode, predstavlja pomemben korak naprej v tehnologijah lokalizacije in navigacije.
|
|
Ponuja elegantno rešitev za težave, ki jih lahko tradicionalne metode imajo pri obdelavi kompleksnih slik in informacij, in je primerna za široko paleto aplikacij in industrije.
|
|
|
|
\subsection{Konvolucijska nevronska mreza}
|
|
|
|
Konvolucijska nevronska mreža (CNN - Convolutional Neural Network) je posebna vrsta umetnih nevronskih mrež, zasnovana za obdelavo vizualnih podatkov.
|
|
S svojo zmožnostjo avtomatičnega in prilagodljivega učenja hierarhičnih značilnosti iz vhodnih podatkov se CNN pogosto uporablja v nalogah strojnega vida, kot so razpoznavanje vzorcev, klasifikacija slik in iskanje točk v slikah.
|
|
Struktura CNN vključuje konvolucijske plasti, ki izvajajo konvolucijsko operacijo s pomočjo majhnih filtrirnih matrik za odkrivanje lokalnih značilnosti, kot so robovi, teksture in oblike.
|
|
To sledi združevalnim plastem, ki zmanjšajo dimenzionalnost slike, hkrati pa ohranijo pomembne informacije.
|
|
Na koncu se uporabljajo popolnoma povezane plasti, ki združijo lokalne značilnosti v globalno razumevanje slike, kar omogoča klasifikacijo ali regresijo.
|
|
CNN se izkaže za zelo učinkovito v primerjavi z drugimi tipi nevronskih mrež v nalogah, povezanih z obdelavo slik, zlasti zaradi sposobnosti zajemanja prostorskih hierarhij značilnosti.
|
|
To pomeni, da so sposobne razumeti in reprezentirati sliko na več ravneh abstrakcije.
|
|
|
|
\subsection{Toplotna karta}
|
|
Toplotna karta je grafična predstavitev podatkov, kjer vrednosti v matriki predstavljajo različne barve.
|
|
Ponavadi se uporablja za prikazovanje, kako se določena spremenljivka razporedi po dvodimenzionalnem prostoru.
|
|
To je zelo uporabno pri vizualizaciji razmerij, povezav ali gostote v velikih naborih podatkov.
|
|
Toplotne karte so priljubljene v mnogih znanstvenih in poslovnih aplikacijah.
|
|
V statistiki in strojnem učenju se lahko uporabljajo za prikaz korelacij med različnimi značilnostmi.
|
|
V biologiji se pogosto uporabljajo za prikazovanje izražanja genov, v geografiji pa za vizualizacijo gostote prebivalstva ali druge geolokacijske podatke.
|
|
Ena od prednosti toplotne karte je, da omogoča hitro in intuitivno razumevanje kompleksnih naborov podatkov.
|
|
Vizualizacija barvnih prehodov pomaga opazovalcu, da hitro zazna vzorce in trende, ki bi jih bilo težje zaznati v tabelaričnih ali tekstovnih prikazih.
|
|
|
|
|
|
\chapter{Transformerske nevronske mreze}
|
|
\label{ch1}
|
|
|
|
\section{Transformerska arhitektura}
|
|
|
|
\subsection{Predhodni mehanizmi}
|
|
|
|
Preden so bili transformerji, so bili najpogostejše metode za obvladovanje zaporedij v jezikovnih modelih rekurentne nevronske mreže (RNN) in njihove različice, kot so dolgokratni kratkotrajni spomini (LSTM) in obogatene RNN (GRU).
|
|
Najpogostejša uporaba teh modelov v kontekstu strojnega prevajanja ali drugih nalog zaporedja v zaporedje je bila uporaba strukture kodirnik-dekodirnik.
|
|
V tej strukturi je bilo zaporedje vhodnih besed ali tokenov kodirano v skrito stanje z uporabo RNN (kodirnik), to skrito stanje pa je bilo nato uporabljeno za generiranje zaporedja izhodnih besed ali tokenov z uporabo drugega RNN (dekodirnik).
|
|
Problem s to strukturo je bil, da je bilo skrito stanje omejeno na velikost fiksne dolžine in je moralo vsebovati vse informacije iz izvornega zaporedja, ki so potrebne za generiranje ciljnega zaporedja.
|
|
To je omejevalo model pri obvladovanju dolgih zaporedij, saj je bilo težko ohraniti informacije iz zgodnjega dela zaporedja do konca.
|
|
Da bi to težavo rešili, so raziskovalci vključili mehanizem pozornosti, ki je omogočil dekodirniku, da se osredotoči na različne dele izvornega zaporedja na različnih stopnjah generiranja ciljnega zaporedja.
|
|
To je bil velik napredek, ki je omogočil boljše obvladovanje dolgih zaporedij.
|
|
|
|
Članek, ki je predstavil to idejo za strojno prevajanje, je bil "Neural Machine Translation by Jointly Learning to Align and Translate" \cite{bahdanau2015neural}, objavljen leta 2015. To je bil ključni korak k razvoju Transformer arhitekture, ki je bila kasneje predstavljena v članku "Attention is All You Need" \cite{vaswani2017attention} leta 2017.
|
|
|
|
\subsection{Razlaga RNN kodirnik-dekodirnik arhitekture}
|
|
|
|
Definirajmo problem strojnega prevajanja kot iskanje najboljše ciljne sekvence $\vec{E} = (e_0, e_1, ..., e_m)$ glede na dane izvorne besede $\vec{F} = (f_0, f_1, ..., f_n)$.
|
|
Ta problem lahko izrazimo kot optimizacijo pogojne verjetnosti $P(\vec{E}|\vec{F})$.
|
|
Začnimo z opisom RNN-kodirnik-dekodirnik arhitekture.
|
|
Imamo dva RNN modela, kodirnik $\text{RNN}\text{enc}$ in dekodirnik $\text{RNN}\text{dec}$.
|
|
Kodirnik z zaporedjem vektorjev $\vec{F}$ proizvede skrito stanje $h_n$:
|
|
\begin{equation}
|
|
h_n = \text{RNN}_\text{enc}(f_n, h_{n-1})
|
|
\end{equation}
|
|
|
|
Začetno stanje $h_0$ je pogosto postavljeno na nič ali se nauči med treniranjem.
|
|
Dekodirnik nato uporablja to skrito stanje, da generira ciljno zaporedje $\vec{E}$:
|
|
\begin{equation}
|
|
e_{t} = \text{RNN}_\text{dec}(e_{t-1}, h_{t-1})
|
|
\end{equation}
|
|
|
|
Opomba: pri treniranju se za $e_{t-1}$ pogosto uporablja dejanska vrednost iz ciljnega zaporedja (ne izhod modela), kar je znano kot "teacher forcing".
|
|
Vse to se lahko zelo poenostavi z uporabo Transformerjev. Izvorna zaporedja besed $\vec{F}$ se vnašajo v kodirnik, ki generira skrita stanja za vsako besedo:
|
|
\begin{equation}
|
|
\vec{H} = \text{Encoder}(\vec{F})
|
|
\end{equation}
|
|
|
|
Za vsako besedo v ciljnem zaporedju $\vec{E}$ se potem izračuna ponderirana vsota skritih stanj iz kodirnika:
|
|
\begin{equation}
|
|
\vec{a}_t = \text{Attention}(\vec{H}, e_{t-1})
|
|
\end{equation}
|
|
|
|
Potem se ta vektor uporabi za napoved ciljne besede:
|
|
\begin{equation}
|
|
e_t = \text{Decoder}(\vec{a}_t, e_{t-1})
|
|
\end{equation}
|
|
|
|
|
|
|
|
Ta pristop omogoča, da dekodirnik upošteva vse besede v izvornem zaporedju, ne samo prejšnje besede v ciljnem zaporedju, kar izboljša kakovost prevoda.
|
|
Vendar je to zgolj matematična formulacija koncepta. Dejanski detajli, kot so vrste in struktura kodirnika in dekodirnika, so odvisni od specifičnega modela, ki ga uporabljamo.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.9\textwidth]{./img/rnn.jpg}
|
|
\caption{Rnn manjka citacija}
|
|
\label{fig:rnn}
|
|
\end{figure}
|
|
|
|
\section{Zgradba transformerja}
|
|
Sedaj, ko smo se seznanili s preteklimi metodami, se osredotočimo na izzive, ki so jih predstavljale strukture RNN, kot je težava s paralelizacijo.
|
|
V kontekstu strojnega prevajanja so avtorji v članku "Attention is all you need" \cite{vaswani2017attention} o pozornosti predstavili novo vrsto arhitekture, ki se loteva mnogih pasti modelov, ki temeljijo na RNN.
|
|
Kljub vsem napredkom pri kodirnikih-dekodirnikih RNN, ki smo jih obravnavali zgoraj, je ostalo dejstvo, da so RNN težko paralelizirati, ker zaporedno obdelujejo vhod.
|
|
Ključna inovacija tega članka je, da so RNN in njihova skrita stanja v celoti nadomeščena z operacijami na osnovi pozornosti, ki so v mnogih problematičnih režimih bolj učinkovite. S tem je arhitektura Transformer odpravila največji zastoj v procesu usposabljanja za prejšnje modele SOTA in nenadoma omogočila izvedbo ogromnih modelov, usposobljenih na enako ogromnih naborih podatkov.
|
|
|
|
Kot je bilo že omenjeno, je transformerski model kodirnika-dekodirnika. Kodirnik sestavljajo bloki $N$ na levi, dekodirnik pa bloki $N$ na desni.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.5\textwidth]{./img/transformer_network.jpg}
|
|
\caption{Izgled transformerskega modela, iz clanka "Attention is all you need" \cite{vaswani2017attention}.}
|
|
\label{fig:transformer_network}
|
|
\end{figure}
|
|
|
|
Med usposabljanjem se vhodne besede $\vec{F} = (f_0, ..., f_n)$ hkrati prenesejo v prvi blok kodirnika, izhod tega bloka pa se nato prenese v njegovega naslednika.
|
|
Postopek se ponavlja, dokler vsi bloki $N$ kodiranja niso obdelali vhoda.
|
|
Vsak blok ima dve komponenti: plast večglave samopozornosti, ki ji sledi popolnoma povezana plast z aktivacijami ReLU, ki obdeluje vsak element vhodne sekvence vzporedno.
|
|
Ko je vhod prešel skozi vse bloke kodiranja, ostane kodirana predstavitev $\vec{F}$.
|
|
Tako večglavi sloj pozornosti kot popolnoma povezana plast sledita koraku "Dodaj & Normiraj" - "dodaj" se nanaša na residualno povezavo,
|
|
ki doda vhod vsake plasti na izhod, "normiraj" pa se nanaša na normalizacijo plasti.
|
|
Glede na dekodirnik, ta sestoji iz treh korakov: maske večglave samopozornosti,
|
|
večglave plasti pozornosti, ki povezuje kodirano izvorno predstavitev z dekodirnikom, in popolnoma povezane plasti z aktivacijami ReLU.
|
|
Tako kot v kodirniku, vsaki plasti sledi plast "Dodaj & Normiraj".
|
|
Dekodirnik sprejme vse ciljne besede $\vec{E} = (e_0, ..., e_m)$ kot vhod.
|
|
Obstaja nekaj ključnih razlik od kodirnika - ena je, da so vhodi v prvo operacijo pozornosti v blokih dekodirnika maskirani, zato ime plasti.
|
|
To podrobneje raziskujemo v razdelku o večglavi pozornosti, vendar na kratko, to pomeni, da se lahko katera koli beseda v ciljnem izhodu nanaša samo na besede, ki so prišle pred njo.
|
|
Razlog za to je preprost: med sklepanjem generiramo predvideni prevod $\vec{E}$ besedo za besedo z uporabo izvornega stavka $\vec{F}$.
|
|
V procesu napovedovanja besede $e_i$ ima dekodirnik dostop do prej generiranih besed.
|
|
Ne more pa imeti dostopa do besed, ki sledijo $e_i$, saj te še niso bile generirane in so odvisne od izbire modela $e_i$.
|
|
Maskiranje med usposabljanjem nam omogoča, da posnemamo pogoje, s katerimi se bo model soočil med sklepanjem.
|
|
Druga razlika od kodirnika je druga večglava plast pozornosti, ki se imenuje tudi plast pozornosti kodirnika-dekodirnika.
|
|
Za razliko od plasti pozornosti na začetku blokov kodirnika in dekodirnika ta plast ni plast samopozornosti.
|
|
|
|
|
|
\section{Scaled Dot-Product Attention}
|
|
Ta funkcija se uporablja v vseh plasteh pozornosti v transformatorju.
|
|
Za zdaj bomo razčlenili matematiko za to operacijo, samo da dobimo občutek, katera števila gredo kam.
|
|
Kasneje se bomo osredotočili na njegove aplikacije v članku.
|
|
|
|
\begin{equation}
|
|
\begin{align*}
|
|
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
Scaled Dot-Product Attention je skoraj identičen Dot-Product Attention, omenjenem prej pri Luongu \cite{bahdanau2015neural}.
|
|
Edina razlika je, da je vhod v softmax skaliran s faktorjem $\frac{1}{\sqrt{d_k}}$.
|
|
Ko bomo prešli skozi delovanje Scaled Dot-Product Attention, se bomo vrnili k tej točki in jo na koncu tega razdelka podrobneje raziskali.
|
|
V članku in predhodni literaturi se vrstice $Q$ imenujejo "poizvedbe", tiste od $K$ "ključi", in končno tiste od $V$ "vrednosti".
|
|
Za zdaj jih obravnavajte kot oznake; njihove interpretacije lahko preučimo kasneje.
|
|
Tukaj je $Q \in \mathbb{R}^{m \times d_k}$, $K \in \mathbb{R}^{n \times d_k}$ in $V \in \mathbb{R}^{n \times d_v}$.
|
|
Upoštevajte, da se za izvedbo algebre mora število ključev in vrednosti $n$ ujemati, vendar se lahko število poizvedb $m$ razlikuje.
|
|
Prav tako se mora dimenzionalnost ključev in poizvedb ujemati, vendar se lahko dimenzionalnost vrednosti razlikuje.
|
|
Našo raziskavo bomo začeli z zapisom posameznih vrstic $Q$ in $K$, nato pa bomo izrazili produkt $QK^T$ v smislu teh vrstic:
|
|
|
|
\begin{equation}
|
|
Q &= \begin{pmatrix} q_0 \\ q_1 \\ \vdots \\ q_m \end{pmatrix}, \\
|
|
K^T &= \begin{pmatrix} k_0 & k_1 & \cdots & k_n \end{pmatrix}, \\
|
|
\begin{align*}
|
|
QK^T &= \begin{pmatrix} q_0 \cdot k_0 & q_1 \cdot k_0 & \cdots & q_m \cdot k_0 \\ q_0 \cdot k_1 & q_1 \cdot k_1 & \cdots & q_m \cdot k_1 \\ \vdots & \vdots & \ddots & \vdots \\ q_0 \cdot k_n & q_1 \cdot k_n & \cdots & q_m \cdot k_n \end{pmatrix}
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
|
|
Nato pridobimo naše uteži pozornosti tako, da vsak element delimo z $\sqrt{d_k}$ in uporabimo funkcijo softmax na vrstico:
|
|
\begin{equation}
|
|
\begin{align*}
|
|
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) &= \begin{pmatrix} \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_0, q_1 \cdot k_0, \ldots, q_m \cdot k_0 \rangle\right) \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_1, q_1 \cdot k_1, \ldots, q_m \cdot k_1 \rangle\right) \\ \vdots \\ \text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot \langle q_0 \cdot k_n, q_1 \cdot k_n, \ldots, q_m \cdot k_n \rangle\right) \end{pmatrix} \\
|
|
&= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix}^T
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
kjer za vsako vrstico $i$, kot rezultat operacije softmax, velja $\sum_{j=0}^{n} s_{i,j} = 1$.
|
|
Zadnji korak je množenje te matrike z $V$:
|
|
\begin{equation}
|
|
\begin{align*}
|
|
\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V &= \begin{pmatrix} s_{0,0} & s_{1,0} & \cdots & s_{m,0} \\ s_{0,1} & s_{1,1} & \cdots & s_{m,1} \\ \vdots & \vdots & \ddots & \vdots \\ s_{0,n} & s_{1,n} & \cdots & s_{m,n} \end{pmatrix} \begin{pmatrix} v_0 \\ v_1 \\ \vdots \\ v_n \end{pmatrix} \\
|
|
&= \begin{pmatrix} \sum_{i=0}^{m} s_{i,0}v_0 \\ \sum_{i=0}^{m} s_{i,1}v_1 \\ \vdots \\ \sum_{i=0}^{m} s_{i,n}v_n \end{pmatrix}
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
Glavno sporočilo tukaj je, da mehanizem pozornosti rezultira v seriji uteženih povprečij vrstic $V$, kjer uteži določajo vhodne poizvedbe in ključe.
|
|
Vsaka od $m$ poizvedb v $Q$ rezultira v specifični uteženi vsoti vektorskih vrednosti.
|
|
Pomembno je, da v tem posebnem postopku ni nobenih učljivih parametrov - sestavljen je izključno iz matričnih in vektorskih operacij.
|
|
Poglejmo posamezno vrstico $i$ uteži pozornosti:
|
|
|
|
\begin{equation}
|
|
\begin{align*}
|
|
\text{softmax}\left(\frac{1}{\sqrt{d_k}} \cdot Q \cdot K_i\right) &= \frac{1}{S} \cdot \exp\left(\frac{Q \cdot K_i}{\sqrt{d_k}}\right)
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
kjer je $S$ normalizacijska konstanta:
|
|
\begin{equation}
|
|
\begin{align*}
|
|
S = \sum_{j=0}^{m} \exp\left(\frac{q_j \cdot k_i}{\sqrt{d_k}}\right)
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
Če pogledamo, kako so uteži konstruirane, je izvor imen "poizvedbe", "ključi" in "vrednosti" jasnejši.
|
|
Tako kot v hash tabeli ta operacija izbira želene vrednosti preko ustrezajočih, ena-na-ena ključev.
|
|
Ključi, ki jih iščemo, so označeni z poizvedbami - izrazimo lahko skalarni produkt med danim ključem in poizvedbo v smislu kota $\theta$ med njima:
|
|
\begin{equation}
|
|
\begin{align*}
|
|
q_i \cdot k_j = |q_i||k_j|\cos(\theta)
|
|
\end{align*}
|
|
\end{equation}
|
|
|
|
Če za trenutek zanemarimo velikosti, lahko na spodnjem grafu vidimo, da eksponentacija povečuje pozitivne vrednosti kosinusa in zmanjšuje negativne.
|
|
Zato je bližje kot sta si ključ $\vec{k}_j$ in poizvedba $\vec{q}_i$ po kotu, večja je njihova zastopanost v vektorju pozornosti.
|
|
|
|
|
|
\section{Vision Transformer (ViT)}
|
|
cc
|
|
|
|
\section{Piramidni vision transformer (PVT)}
|
|
ddd
|
|
|
|
\section{Piramidni vision transformer z uporabo lokalnih značilnosti (PCPVT)}
|
|
eee
|
|
|
|
\chapter{Podatkovni set}
|
|
\label{ch2}
|
|
Tukaj bos napisal malo o podatkovnem setu, ki si ga uporabil.
|
|
|
|
\chapter{Implementacija}
|
|
\label{ch3}
|
|
Tle bos pa napisal o implementaciji.
|
|
|
|
\chapter{Eksperimenti}
|
|
\label{ch4}
|
|
|
|
V tem poglavju se bom osredotocil na eksperimente, ki sem jih izvedel.
|
|
|
|
|
|
\section{Izbira kriterjiske funkcije}
|
|
|
|
Zanimalo me je kako se bo model obnesel, ko izbiramo razlicne kriterijske funkcije.
|
|
|
|
\subsection{Hanningova kriterijska funkcija}
|
|
|
|
V clanku WAMF-FPI \cite{wang2023wamf} so avtorji predlagali uporabo Hanningove kriterijske funkcije.
|
|
Prvi pomemben vidik te funkcije izgube je dodelitev uteži vzorcem.
|
|
Namesto enakega pomena vseh pozitivnih vzorcev, funkcija izgube Hanning dodeli različne uteži glede na lokacijo vzorca.
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.5\textwidth]{./img/gt_heatmap_with_label.jpg}
|
|
\caption{Primer vzorca, sredisce je tocka lokacije vzorca.}
|
|
\label{fig:gt_heatmap_with_label}
|
|
\end{figure}
|
|
|
|
To je zato, ker je pomembnost središčnega položaja veliko večja kot pomembnost robovih položajev, kar v kontekstu satelitskih slik logično smiselno.
|
|
Za normalizacijo teh pozitivnih uteži se uporablja Hanningovo okno, za normalizacijo negativnih utezi, pa $$ 1 / \# \text{negativnih vzorcev} $$.
|
|
Uteži so dodeljene tako, da je vsota uteži pozitivnih in negativnih vzorcev enaka 1.
|
|
Toda ker je število negativnih vzorcev običajno večje od števila pozitivnih vzorcev, postane utež negativnih vzorcev manjša.
|
|
Da bi to popravili, se uvede hiperparameter , imenovan Negativna utež (NG), ki prilagodi utež negativnih vzorcev.
|
|
|
|
Hanningova funkcija:
|
|
\begin{equation}
|
|
\text{Hanning}(n) =
|
|
\begin{cases}
|
|
0.5 + 0.5 \cos\left(\frac{2\pi n}{M-1}\right) & \text{za } 0 \leq n \leq M - 1 \\
|
|
0 & \text{sicer}
|
|
\end{cases}
|
|
\end{equation}
|
|
|
|
Utezi primerov:
|
|
\begin{itemize}
|
|
\item Utez negativnih vzorcev: $$w_{pos} = NG / (NN (NW + 1)) $$
|
|
\item Utez pozitivnih vzorcev: $$w_{neg} = HN(n) / (NW + 1) $$
|
|
\end{itemize}
|
|
|
|
Kjer je:
|
|
\begin{itemize}
|
|
\item \textbf{NG} je Negativna utež
|
|
\item \textbf{NN} je stevilo vseh uzorcev
|
|
\item \textbf{NW} je normalizacijski faktor
|
|
\item \textbf{HN(n)} je vrednost Hanningove funkcije na lokaciji n
|
|
\end{itemize}
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.5\textwidth]{./img/2d_hanning_kernel.jpg}
|
|
\caption{Hanningovo jedro}
|
|
\label{fig:hann_kernel}
|
|
\end{figure}
|
|
|
|
|
|
\subsection{Gaussovo utezena srednja kvadratna napaka}
|
|
Gaussova utežena srednja kvadratna napaka (Gaussian Weighted Mean Squared Error - GWMSE) je modificirana funkcija izgube, namenjena izboljšanju modelov, ki obravnavajo podatke, kot so satelitske slike.
|
|
Glavna značilnost GWMSE je dodeljevanje uteži vzorcem, na zelo podoben nacin kot pri Hanningovi funkciji izgube.
|
|
Namesto enakega pomena vseh pozitivnih vzorcev, GWMSE različnim vzorcem dodeljuje različne uteži glede na njihovo lokacijo.
|
|
Za normalizacijo teh uteži se uporablja Gaussova funkcija.
|
|
|
|
Gaussova funkcija:
|
|
\begin{equation}
|
|
\text{Gauss}(n) =
|
|
\begin{cases}
|
|
\exp\left(-\frac{(n - \mu)^2}{2\sigma^2}\right) & \text{za } 0 \leq n \leq M - 1 \\
|
|
0 & \text{sicer}
|
|
\end{cases}
|
|
\end{equation}
|
|
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=0.5\textwidth]{./img/2d_gaussian_kernel.jpg}
|
|
\caption{Gaussovo jedro}
|
|
\label{fig:gauss_kernel}
|
|
\end{figure}
|
|
|
|
\subsection{Hanningovo utežena srednja kvadratna napaka}
|
|
|
|
Hanningova utežena srednja kvadratna napaka (Hanning Weighted Mean Squared Error - HWMSE) je spremenjena funkcija izgube, namenjena izboljšanju modelov, ki obravnavajo podatke, kot so satelitske slike.
|
|
Glavna značilnost HWMSE je dodeljevanje uteži vzorcem na zelo podoben način kot pri Gaussovi funkciji izgube.
|
|
Namesto enakega pomena vseh pozitivnih vzorcev, HWMSE različnim vzorcem dodeljuje različne uteži glede na njihovo lokacijo.
|
|
Za normalizacijo teh uteži se uporablja Hanningovo okno.
|
|
|
|
Hanningova funkcija je podana kot:
|
|
\begin{equation}
|
|
\text{Hanning}(n) =
|
|
\begin{cases}
|
|
0.5 + 0.5 \cos\left(\frac{2\pi n}{M-1}\right) & \text{za } 0 \leq n \leq M - 1 \\
|
|
0 & \text{sicer}
|
|
\end{cases}
|
|
\end{equation}
|
|
|
|
|
|
\subsection{Križno utežena srednja kvadratna napaka}
|
|
|
|
Funkcija izgube križno utežena srednja kvadratna napaka (Cross-Weighted Mean Squared Error - CW-MSE) je napredna različica standardne srednje kvadratne napake (Mean Squared Error - MSE),
|
|
ki vključuje uteževanje dveh različnih skupin vzorcev: tistih, katerih resnična vrednost je večja od 0 (t.i. "resničnih" vzorcev) in tistih, katerih resnična vrednost je manjša ali enaka 0 (t.i. "ne-resničnih" vzorcev).
|
|
Končna funkcija izgube se izračuna kot utežena kombinacija srednjih kvadratnih napak za "resnične" in "ne-resnične" vzorce, pri čemer se uteži vzorcev različnih skupin prekrižajo.
|
|
Ta pristop se formalno izraža z naslednjo enačbo:
|
|
|
|
\begin{equation}
|
|
\text{loss} = \frac{\text{true\_weight} \cdot N_{\text{true}} \cdot \text{MSE}_{\text{false}} + \text{false\_weight} \cdot N_{\text{false}} \cdot \text{MSE}_{\text{true}}}{N_{\text{all}}}
|
|
\end{equation}
|
|
|
|
\begin{itemize}
|
|
\item $N_{\text{true}}$: število vzorcev, katerih resnična vrednost je večja od 0.
|
|
\item $N_{\text{false}}$: število vzorcev, katerih resnična vrednost je enaka ali manjša od 0.
|
|
\item $N_{\text{all}}$: skupno število vzorcev.
|
|
\item $\text{MSE}{\text{true}} = \frac{1}{N{\text{true}}} \sum_{i=1}^{N_{\text{true}}} (y_i - \hat{y}_i)^2$ za vzorce, katerih resnična vrednost je večja od 0.
|
|
\item $\text{MSE}{\text{false}} = \frac{1}{N{\text{false}}} \sum_{i=1}^{N_{\text{false}}} (y_i - \hat{y}_i)^2$ za vzorce, katerih resnična vrednost je enaka ali manjša od 0.
|
|
\item $\text{true\_weight}$ in $\text{false\_weight}$: uteži, dodeljene skupinama \textit{true} in \textit{false}.
|
|
\end{itemize}
|
|
|
|
Python implementacija funkcije izgube CW-MSE je naslednja:
|
|
\begin{lstlisting}
|
|
class CrossWeightedMSE(nn.Module):
|
|
def __init__(self, true_weight=1, false_weight=1):
|
|
super(CrossWeightedMSE, self).__init__()
|
|
self.mse_loss = nn.MSELoss(reduction="none")
|
|
self.true_weight = true_weight
|
|
self.false_weight = false_weight
|
|
|
|
def forward(self, input, target):
|
|
N_all = target.numel()
|
|
N_true = torch.sum(target > 0.0).item()
|
|
N_false = N_all - N_true
|
|
|
|
true_mask = target > 0.0
|
|
false_mask = torch.logical_not(true_mask)
|
|
|
|
MSE_true = torch.mean(self.mse_loss(input[true_mask], target[true_mask]))
|
|
MSE_false = torch.mean(self.mse_loss(input[false_mask], target[false_mask]))
|
|
|
|
loss = (
|
|
self.true_weight * N_true * MSE_false
|
|
+ self.false_weight * N_false * MSE_true
|
|
) / N_all
|
|
|
|
return loss
|
|
\end{lstlisting}
|
|
|
|
|
|
\subsection{Primerjava rezultatov}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{|c|c|c|c|}
|
|
\hline
|
|
Kriterijska funkcija & vrednost & $$RDS_{train}$$ & $$RDS_{val}$$ \\
|
|
\hline
|
|
Hanningova kriterijska funkcija & 8.49 & 0.893 & 0.709 \\
|
|
Gaussovo utezena srednja kvadratna napaka & 0.001 & 0.077 & 0.074 \\
|
|
Hanningovo utežena srednja kvadratna napaka & 4.04e-06 & 0.061 & 0.059 \\
|
|
Križno utežena srednja kvadratna napaka & 0.88 & 0.91 & 0.87 \\
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Rezultati ob uporabi razlicnih kriterijskih funkij.}
|
|
\label{tab:metode}
|
|
\end{table}
|
|
|
|
\section{Testiranje zmoznosti lokalizacije na testnih podatkih}
|
|
pass
|
|
|
|
\chapter{Sklepne ugotovitve}
|
|
|
|
Uporaba \LaTeX{a} in \BibLaTeX{a} je v okviru Diplomskega seminarja \textbf{obvezna}!
|
|
Izbira -- \LaTeX\ ali ne \LaTeX\ -- pri pisanju dejanske diplomske naloge pa je pre\-pu\-šče\-na dogovoru med diplomantom in njegovim mentorjem.
|
|
|
|
Res je, da so prvi koraki v \LaTeX{}u težavni.
|
|
Ta dokument naj služi kot začetna opora pri hoji.
|
|
Pri kakršnihkoli nadaljnih vprašanjih ali napakah pa svetujemo uporabo Googla, saj je spletnih strani za pomoč pri odpravljanju težav pri uporabi \LaTeX{}a ogromno.
|
|
|
|
Preden diplomo oddate na sistemu STUDIS, še enkrat preverite, če so slovenske besede, ki vsebujejo črke s strešicami, pravilno deljene in da ne segajo preko desnega roba.
|
|
Poravnavo po vrsticah lahko kontrolirate tako, da izvorno datoteko enkrat testno prevedete z opcijo \texttt{draft}, kar vam pokaže predolge vrstice.
|
|
|
|
|
|
|
|
%\cleardoublepage
|
|
%\addcontentsline{toc}{chapter}{Literatura}
|
|
|
|
% če imaš težave poravnati desni rob bibliografije, potem odkomentiraj spodnjo vrstico
|
|
\raggedright
|
|
|
|
\printbibliography[heading=bibintoc,type=article,title={Članki v revijah}]
|
|
|
|
\printbibliography[heading=bibintoc,type=inproceedings,title={Članki v zbornikih}]
|
|
|
|
\printbibliography[heading=bibintoc,type=incollection,title={Poglavja v knjigah}]
|
|
|
|
% v zadnji verziji diplomskega dela običajno združiš vse tri vrste referenc v en sam seznam in
|
|
% izpustiš delne sezname
|
|
\printbibliography[heading=bibintoc,title={Literatura}]
|
|
|
|
\end{document}
|