Projekt vznikl na základě úplné finanční podpory ze strany Grantové agentury Jihočeské univerzity.
Systém sběru obrazových dat se skládá z několika základních částí:
Na obrázku je znázorněno základní schéma systému sběru obrazových dat. Celá technologie je založena na standarních sítí typu ethernet, což dovoluje použít běžně dostupné prvky a standarní UTP kabeláž. Jako výhodné se jeví použít PoE síťový switch s aktivním PoE napájením. Kamerové moduly jsou osazeny PoE napájecím modulem. Kamery leží v jedné síti LAN společně se síťovým úložištěm.
Je-li switch připojen k routeru s přístupem na internet, je možné spolupracovat s vizualizačním serverem (ai-plants.net).
Pokud je potřeba snímanou scénu přisvítit, je možné k síťovému switchi připojit elektronický modul řízení osvětlení.
Systém má tyto základní parametry:
Celkem byly realizovány 3 kamerové moduly, které jsou založeny na Raspberry Pi 4. Liší se pouze využitým objektivem a snímacím čipem. Rozdílné ohniskové vzdálenosti předurčují moduly pro rozdílné využití. Parametry Raspberry Pi 4 jsou:
Všechny kamerové moduly jsou vybaveny SD kartou s nainstalovaných OS Raspbian - založeno na OS Linux.
OS Raspbian je volně dostupný na adrese https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit.
Verze Kernel version: 5.15
Debian version: 11 (bullseye)
Nahrání OS na SD kartu probíhá pomocí SW Raspberry Pi Imager https://www.raspberrypi.com/software/.
V záložce Advanced options je možné nastavit připojení k WiFi, výchozí účet, lokalizaci apod.
Základní nastavení probíhá pomocí příkazu:
raspi-config
Nebo graficky pomocí aplikace (např. zákaz spuštění grafického rozhraní a automatické přihlášení):
Spuštění grafického rozhraní z příkazové řádky je možné příkazem:
$ startx
V provozní verzi je výhodnější nechat grafické rozhraní vypnuté.
V jednotlivých modulech je spuštěn SSH server s možností autentizace přes zabezpečené certifikáty, to umožňuje automatické vzdálené přihlášení např. k vizualizačnímu serveru bez nutnosti zadávání hesla.
Vzdálená konfigurace kamerových modulů je rovněž možná pomocí SSH přístupu.
Na kamerových modulech jsou spuštěny tyto služby zajišťující sběr snímků a jejich následné odeslání do diskového uložiště a vizualizačního serveru:
Pro přístup k aktuálnímu snímku lze v rámci sítě využítu následující Python kontrukci:
# stahne obrazek z kamery filename = wget.download(img_url, out=output_file)
Pro přenos pořízených snímků na server (obdobně na NAS):
# nahrani souboru na server ssh_ob = SSHClient() ssh_ob.load_system_host_keys() ssh_ob.connect(server_ip, username=server_user) scp = SCPClient(ssh_ob.get_transport()) scp.put(filename, remote_path=server_path) scp.close()
Je vybaven kamerovým modulem Raspberry Pi Camera Module 2. Využívá obrazový senzor Sony IMX219 8 Megapixel.
Je vybaven kamerovým modulem Arducam 12MP IMX477. Obrazový senzor má rozlišení až 12,3 Megapixel. Výhodou jsou vyměnitelné objektivy.
Je vybaven kamerovým modulem Arducam HQ IR-CUT. Obvrazový senzor má rozlišení 12 Megapixel, obsahuje IR filtr.
Jako síťový switch je využit model TP-Link TL-SF1005LP splňující normu aktivního PoE IEEE 802.3af. Dokáže napájet všechny tři kamerové moduly. Odolné, kovové, provedení je pro danou aplikaci výhodné.
Součástí systému sběru obrazu je podpůrný systém pro osvětlování snímané scény. Tento podpůrný systém byl zvolen a navržen tak, aby byl snadno začlenitelný do systému kamer. Je proto využito ethernetového modulu R-HRJ s rozšiřujícím modulem RS-Switch + dvě SSR relé. Celé řešení je napájeno standardní sítí 230 V. Je možné sepnout klasickou elektrickou zásuvku + jeden další obvod (max. 10 A na relé). Ethernetová jednotka komunikuje službou telnet
na portu 23.
Komunikace má formu zjednodušených AT příkazů. K dispozici je příkaz:
AT+SWOUTEN=kanal, on/off
S jednotkou R-HRJ může komunikovat každý kamerový modul (v případě nedostatečné expozice snímané scény si kamera může samostatně aktivovat přísvit).
Spínání pomocných svítidel nebylo nakonec využito, snímání probíhalo v klasickém skleníku s dostatečným přirozeným osvětlením. Řešení by se dalo s výhodou použít pro vnitřní aplikace.
Pro archivaci snímků bylo využito běžně dostupné síťové úložiště (NAS), Synology DS420 s kapacitou 4 TB. Disky jsou zapojeny v RAID 1. Je zaručeno uchování dat v případě výpadku/poruchy jednoho disku. NAS disponuje standardními siťovými službami jako je (S)FTP atp. Přístup na úložiště je možný přímo z kamerového modulu prostřednictvím Python skriptu.
Pro vizualizaci nasbíraných dat je provozován server v internetu. Server je virtualizován ve službě https://www.digitalocean.com/. Server má přidělenou IP 159.223.1.30
. Pro snadnější přístup k serveru byla přiděleno DNS https://ai-plants.net poskytované službou https://www.namecheap.com/. Poskytován je bezpečnostní certifikát umožňující zabezpečené spojení https
.
Na serveru jsou spuštěny standardní služby potřebné pro chod webového serveru - Apache, SQL server, PHP server atp. Dále je provozována fotogalerie PIWIGO. Jedná se o jednoduchou fotogalerii, která je využívána k náhledům nasnímaných snímků. Kamera v pravidelných intervalech odesílá snímky do úložiště NAS a do fotogalerie (zde následně docházi ke snížení kvality a rozlišení snímků z důvodu omezené kapacity serveru).
Z dokumentačních důvodů je na serveru zřízena služba DokuWiki https://www.dokuwiki.org/dokuwiki.
Byl sestaven funkční vzorek systému pro sběr obrazových dat, který komplexně zahrnuje všechny části oblasti zpracování, přenosu, uchování a evidence obrazových dat. Modulární řešení se v průběhu realizace i v následném testování a provozu ukázalo jako vhodné řešení. Systém je možné využít především pro aplikaci snímání ve sklenících, či jiných krytých prostorách. Elektronika prokázala schopnost odolat i poměrně vysokým teplotám a zvýšené vlhkosti. V případě umístění do venkovních prostor je nutné vyřešit zakrytí elektroniky před povětrnostními vlivy. Díky virtualizovanému serveru v internetu byl umožněn dálkový dohled nad lokální kamerovou sítí. Pomocí SSH protokolu, SSH tunelování je možný i vzdálený zabezpečený přístup do všech částí řetězce. Konzistentní založení na systémech typu OS Linux zajišťuje konzistentní řešení a aplikaci standardních programovacích prostředků, především v jazyku Python, případně Bash.