% !TeX root = ../thesis.tex
%----------------------------------------------------------------------------
\chapter{Madárhang felismerő rendszer}
\label{chapter:birbnetes}
%----------------------------------------------------------------------------

Éves szinten komoly károkat okoznak a szőlőtermő vidékeken a seregély madarak, amelyek előszeretettel csipegetik le a megtermelt szőlőt. A seregély védett madár és a jelenlegi vadkár elleni megoldások vagy drágák vagy nem túl hatékonyak \cite{nk}. A probléma innovatív megoldására irányult az a tanszéki projekt, -- amelyen én is részt vettem -- amely olyan rendszer kidolgozását tűzte ki célul, amely a madarakat képes hangjuk alapján azonosítani, illetve szükség esetén elriasztani őket. 

A rendszer eredetileg a szőlővidékre telepített \acrfull{iot} eszközökből és a felhőben futó szoftverből áll. Kétszintű mesterséges intelligencia segítségével mind az eszközök, mind a felhő szoftver végez intelligens felismerést. Az eszköz maga egy egyszerűbb algoritmussal próbálja megállapítani, hogy a rögzített hangminta tartalmaz-e madárcsiripelést. Ha igen, továbbítja a mintát a felhőbe ahol egy komolyabb számítási igényű mesterséges intelligencia osztályozza a mintát aszerint, hogy milyen madár hangját tartalmazza a minta. Ha a felismerés eredménye arra utal, hogy a cél madár hangját sikerült rögzíteni, akkor a rendszer megpróbálkozik a kérdéses madár elriasztásával hangminták lejátszásával a területen telepített eszközön.

A rendszer belső működéséről egy rövid összefoglaló található \aref{appendix:birbnetes}.\ függelékben. A fejezeten belül csak a permhálózati alkalmazásra való átalakítás szempontjából érintett részleteket vázolom.

Ez az alkalmazás a peremhálózati rendszerek adat aggregációs lehetőségeit hivatott kiaknázni. Azzal, hogy bevonjuk a peremhálózati rendszereket a működésbe, jelentős adatforgalmi és számítási kapacitásbeli megtakarításokat érhetünk el. 


\section{Felépítés}

A rendszer felépítése két rétegű. Az egyik réteg a felhőben futó szoftver a másik magukon az \acrshort{iot} eszközökön fut. A két rendszer magas szintű működésének funkcionális vázlatát \aref{fig:nagyon_simple_birbnetes}.\ ábra szemlélteti. 


\begin{figure}[h!]
	\centering
	\includegraphics[width=0.9\textwidth]{figures/nagyon_simple_birbnetes}
	\caption{Madárhang felismerő rendszer egyszerűsített architektúrája}
	\label{fig:nagyon_simple_birbnetes}
\end{figure}


A felhős szoftver felépítése mikroszolgáltatás architektúrára épül. Az egyes funkcionalitásokat különálló mikroszolgáltatások valósítják meg. A futtatókörnyezet \textit{Kubernetes}. A hangminta feldolgozására szolgáló intelligens felismerésen kívül ez a komponens megvalósít számos egyéb funkcionalitást is, mint a hangminták hosszútávú tárolása, a használt \acrshort{mi} modellek kezelése vagy az észlelésekről statisztikai adatok készítése és azok vizualizálása.

Az \acrshort{iot} eszközön futó komponens egy moduláris monolit szoftver. Két részből áll: üzleti logika és platform illesztő. A platform illesztő egy absztrakciós réteget húz a konkrét hardver belső működése fölé és egy egységes interfészt szolgáltat az üzleti logika számára. 

A két réteg kommunikációja két külön csatornán történik. Az egyik csatorna a vezérlő és állapot üzenetek kétirányú továbbítására szolgál. Ez egy \textit{MQTT} alapú üzenetsor. A másik csatorna a rögzített hangminták feltöltésére szolgál, ez \acrshort{http} kapcsolaton keresztül történik. 

Működés közben az \acrshort{iot} eszközök folyamatosan rögzítik a hangmintákat egy másodperces darabokban. Minden egyes mintára lefuttatják a helyi mesterséges intelligencia alapú felismerő algoritmusukat. Ha annak az eredménye arra enged következtetni, hogy a hangmintán madárcsiripelés hallható, akkor a minta felküldésre kerül a felhőbe. Az felküldött \acrshort{http} üzenetben a hangminta maga és néhány információ utazik az eszközről és a rögzítés körülményeiről.

\section{Felkészítés peremhálózati alkalmazásra}

% Azzal, hogy beraktuk az edge-be megtakarítunk egy csomó számítási kapacitást, mert nem lesz idle a birbox


% Itt leírom az átalakítást a három rétegű rendszerre

% Itt még nem írok szerintem a kubefedről

% a szükséges átalakításokat összeszedem

% Végül az elkészült műdől is írok pár sort és hogy miért jó ez nekünk
% = hogy lehet ezzel megmutatni, hogy miért jó a kenyér és a héja