Object-based land cover classification (GEOBIA) of drone, aerial and Sentinel-2 RGB imagery: SLIC segmentation, Random Forest and design-based accuracy assessment with area estimates. Polish user interface.
Wtyczka robi mapę pokrycia terenu ze zdjęcia RGB i od razu mówi, ile ta mapa jest warta. Nie klasyfikuje pojedynczych pikseli, tylko dzieli zdjęcie na obiekty (kawałki pola, dachu, korony drzewa) i uczy się od Ciebie, co jest czym. Interfejs i dokumentacja są po polsku; opis po angielsku jest niżej.
DANE
- ortomozaika z drona, zdjęcie lotnicze albo kompozycja RGB sceny Sentinel-2; program czyta trzy pierwsze kanały jako czerwień, zieleń i błękit, więc surowej sceny wielokanałowej nie podawaj,
- opcjonalny numeryczny model pokrycia terenu (NMPT) w tym samym układzie współrzędnych,
- tryb liczenia tylko tego, co widać na ekranie, do szybkich prób.
KROK 1. OBIEKTY
Podział metodą SLIC w przestrzeni barw CIELAB; wielkość obiektu podajesz w metrach kwadratowych albo jako liczbę obiektów.
KROK 2. CECHY
19 cech z samego zdjęcia, 24 z NMPT, wszystkie w tabeli atrybutów warstwy obiektów:
- barwa: średnia i zmienność trzech kanałów oraz jasność,
- wskaźniki zieloności z zakresu widzialnego ExG, VARI i NGRDI (kamery dronowe nie rejestrują podczerwieni, więc NDVI tu nie ma),
- faktura z macierzy współwystąpień (GLCM): kontrast, jednorodność, energia i entropia,
- kształt: powierzchnia, obwód, okrągłość i wypukłość,
- otoczenie: jasność obiektu na tle sąsiadów,
- wysokość z NMPT: średnia, zmienność, nachylenie, wysokość na tle sąsiadów i wysokość nad gruntem.
KROK 3. NAUKA I MAPA
- przykłady wskazujesz klikając obiekty na mapie albo malując z wciśniętym Ctrl,
- przed nauką sprawdzasz, czy klasy da się rozróżnić (odległość Jeffriesa i Matusity z walidacją krzyżową) i które cechy je dzielą,
- klasyfikacja metodą Random Forest (100 drzew, stałe ziarno losowania, więc wynik jest powtarzalny),
- opcjonalnie dociąganie po zieloności dla pasów węższych niż obiekt i usuwanie drobnych płatów,
- zapis do GeoTIFF razem ze stylem .qml.
KROK 4. ILE TA MAPA JEST WARTA
- losowanie punktów kontrolnych proste albo warstwowe według klas mapy, nigdy na obiektach użytych do nauki,
- opisywanie punktów przy ukrytej klasyfikacji,
- macierz błędów, dokładność użytkownika i producenta, dokładność ważona powierzchnią oraz szacowane powierzchnie klas z przedziałami ufności 95 proc. (Olofsson i in. 2014, Stehman 2014); współczynnika kappa świadomie nie liczymy.
WIELE ZDJĘĆ NARAZ
Wtyczka pracuje na jednym zdjęciu. Gdy zdjęć są dziesiątki albo setki, nie łącz ich w mozaikę: w repozytorium są program wiersza poleceń i program dla Windows z tym samym silnikiem, które uczą model raz i klasyfikują cały folder zdjęć, każde osobno, z mapą GeoTIFF dla każdego zdjęcia i zbiorczym raportem powierzchni klas (raport.csv). Przerwany przebieg można wznowić.
WYMAGANIA
QGIS 3.22 lub nowszy i nic więcej. Gdy w Pythonie QGIS-a są biblioteki scikit-image i scikit-learn, wtyczka używa ich implementacji; w przeciwnym razie własnych implementacji tych samych algorytmów.
Instrukcja z rysunkami: https://gorniakgrzegorz.github.io/geoai_klasyfikator/
Jak cytować: DOI 10.5281/zenodo.24005560
ENGLISH
QGIS plugin with a Polish user interface for supervised, object-based land cover mapping (GEOBIA) from RGB imagery: drone orthomosaics, aerial photographs and RGB composites of Sentinel-2 scenes, optionally with a digital surface model. It segments the image with SLIC in CIELAB space and measures 19 object features from RGB, or 24 with a surface model: colour, visible-band vegetation indices (ExG, VARI, NGRDI), GLCM texture, shape, neighbourhood context, elevation, slope and height above ground. Training examples are picked by clicking objects on the map canvas. Class separability is checked before training with a cross-validated Jeffries-Matusita distance, and objects are classified with Random Forest (100 trees, fixed random seed). The plugin finishes with a design-based accuracy assessment: stratified sampling of check points outside training objects, error matrix, user's and producer's accuracy, and area-weighted accuracy with estimated class areas and 95 per cent confidence intervals following Olofsson et al. (2014) and Stehman (2014). Optional pixel-level greenness refinement recovers features narrower than an object, and a sieve sets a minimum mapping unit. Requires QGIS 3.22 or newer and nothing else; scikit-image and scikit-learn are used when present. For large image sets there is no need to mosaic the images: a command line program and a Windows application with the same computational core, available in the repository, train a model once and batch-classify a whole folder of images, each image separately, writing a GeoTIFF map per image and a summary report of class areas (raport.csv); an interrupted run can be resumed. Documentation: https://gorniakgrzegorz.github.io/geoai_klasyfikator/ ; citation: DOI 10.5281/zenodo.24005560.
Plugin Tags