%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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}