Uživatelské nástroje

Nástroje pro tento web


software_pro_rozpoznavani_hospodarskych_plodin_v_digitalnim_obrazu_zalozeny_na_metodach_umele_inteligence

Software pro rozpoznávání hospodářských plodin

Projekt vznikl na základě úplné finanční podpory ze strany Grantové agentury Jihočeské univerzity.


V rámci řešení projektu byl vyvinut software pro rozpoznávání hospodářských plodin. Nasbírané snímky hospodářských plodin, uložené na diskovém úložišti, je nutné předem předzpracovat. Vyloučit chybně nebo nevhodně nasnímané snímky apod. Následně data správně anotovat. Byly zvoleny základní třídy pro rozpoznávání - „plodina“, „plevel“, případně „plod“ plodiny. K anotaci byly vytvořeny podpůrné SW nástroje v jazyce Python - YOLO Labeler a ImageSegmenter.

Pomocný software

YOLO Labeler

YOLO Labeler slouží k základní anotaci obrazových dat, na základě definičních souborů jsou stanoveny třídy a v grafickém rozhraní jsou ručně anotovány obrazové soubory předem rozdělené do skupin train, test a valid.

Způsob zpracování dat, výstup anotačních souborů a práce s daty splňuje formát YOLO.

Popis formátu anotačních souborů pro síť YOLO je uveden např. zde.

-i data/sklenik.yaml -t train

Obsah souboru sklenik.yaml:

path: /home/miroslav/YOLO_labeler/data
train: ./train/images
val: ./valid/images
test: ./test/images

names:
  0: 'paprika'
  1: 'plevel'

Výsledný soubor s anotacemi má následující tvar:

0 0.6757 0.2958 0.1246 0.2071
0 0.8587 0.1196 0.1624 0.1934
0 0.8905 0.3616 0.1624 0.1831
0 0.8892 0.5767 0.1409 0.1419
0 0.8767 0.8026 0.0885 0.1339
0 0.6826 0.5910 0.1177 0.1522
0 0.7118 0.8106 0.1332 0.1751

Zdrojové kódy programu jsou uchovávány v GIT repozitáři.

ImageSegmenter

Vytvořený softwarový nástroj ImageSegmenter slouží k segmentování a vytváření bitmapových map pro anotování zelených rostlin v obrazu. Základ tvoří algoritmus Region Growing s upravenou metrikou pro zelenou barvu. Doplněny jsou nástroje pro ohraničení regionu růstu, dokreslení zbývajících částí apod. Anotace probíhá do jediné třídy „plodina“.

Zdrojové kódy jsou uloženy v GIT repozitáři.

Ukázka vstupního snímku a anotovaných bitmapových map pro jednotlivé rostliny je uvenena na následujících obrázcích.

Tyto bitmapové anotace slouží jako podklad pro trénování neuronových sítí.

Detekční algoritmus

Součástí detekčního algoritmu je neuronová síť. Pro tento případ byla zvolena neuronová síť YOLO v8. Neuronová síť byla natrénovaná na detekci dvou hospodářských plodin - ředkvičky, papriky a plevel na základě nasbíraných obrazových dat z kamer.

Nasbíraná obrazová data byla rozdělena do skupin pro trénování, validaci a testování. Pro zvýšení počtu vstupních dat bylo přistoupeno k augmentaci. Následně bylo spuštěno trénování neuronové sítě. Proběhlo celkem 200 epoch s velikostí batch 64. Trénování sítě probehlo s úspěšným výsledkem. Natrénovaný model byl uložen a byl následně použit pro detekci.

Detekční algoritmus byl implementován v jazyce Python. Skript získá aktuální obrázek z kamery, provede jeho uložení do dočasného adresáře. Nad snímkem provede detekci sítí YOLO, je vybrán natrénovaný model a provedena samotná detekce plodin.

Na snímku níže je uveden příklad výsledku detekce (pro přehlednost byla vyřazena detekce plevele). Algoritmus správně detekoval v obraze naučené plodiny, označil je popiskem a ohraničujícím rámečkem.

Závěr

Na základě nasnímaných obrazových dat, jejich předzpracování a využití pokročilých algoritmů neuronových sítí bylo prokázáno, že je možné dosáhnout dobrých výsledků detekce a rozpoznávání vybraných hospodářských plodin. S využitím současných výpočetních možností je možné provádět detekci plodin ze snímané scény kamerami v reálném čase. Kvalita, přesnost a spolehlivost detekce je závislá na velikosti souboru vstupích dat a kvalitě jejich anotace.

software_pro_rozpoznavani_hospodarskych_plodin_v_digitalnim_obrazu_zalozeny_na_metodach_umele_inteligence.txt · Poslední úprava: 2024/01/25 14:33 autor: miross00