Metoda Deep Learning może być używana do automatyzowania ręcznego wyodrębniania obiektów ze zobrazowań. Wstępnie wytrenowane modele ArcGIS ograniczają potrzebę posiadania dużych zestawów danych, znacznej mocy obliczeniowej oraz wiedzy lub doświadczenia związanego z technologią Deep Learning. Te modele zostały wytrenowane na różnych danych geograficznych i działają dobrze w różnych regionach. Wstępnie wytrenowane modele ArcGIS są dostępne dla każdego, kto posiada konto ArcGIS, w atlasie ArcGIS Living Atlas of the World. W poniższej procedurze wykonywania zadań model Car Detection-USA jest wykorzystywany do identyfikacji samochodów na zobrazowaniach lotniczych i dronowych o wysokiej rozdzielczości.
Wymagania
Aby wykonać tę procedurę wykonywania zadań, musisz spełnić następujące wymagania:
- Zobrazowanie lotnicze do uruchomienia modelu.
Notatka:
Możesz pobrać zobrazowania lotnicze zawierające samochody z witryny OpenAerialMap.
- Deep Learning wymaga dużych mocy obliczeniowych, dlatego do przetwarzania dużych zestawów danych zaleca się użycie wydajnego procesora graficznego.
Wnioskowanie za pomocą wstępnie wytrenowanych modeli
W poniższych sekcjach opisano procesy związane z wnioskowaniem za pomocą wstępnie wytrenowanego modelu ArcGIS.
Importowanie bibliotek języka Python
Zaimportuj następujące biblioteki języka Python:from arcgis.gis import GIS
from arcgis.learn import detect_objects
from arcgis.raster.analytics import copy_raster
gis = GIS("home")
Dodaj dane i model do analizy
Istnieją dwie metody, których możesz użyć, aby dodać zestaw danych do notatnika.
Pierwsza metoda polega na przesłaniu zobrazowania lotniczego do przestrzeni roboczej notatnika, dodaniu go do komórki kodu i uruchomieniu funkcji copy_raster() w celu wyodrębnienia danych.dataset = "/arcgis/home/Aerial imagery.tif"
imagery = copy_raster(input_raster=dataset, output_name="Aerial_imagery", raster_type_name="Raster Dataset")
Druga metoda polega na dodaniu zobrazowań lotniczych jako hostowanej warstwy zobrazowań do portalu i dodaniu warstwy zobrazowań do notatnika przy użyciu jej identyfikatora itemID.imagery = gis.content.get("<imagery-layer-item-id>")
Dodawanie pakietu Deep Learning
Możesz pobrać wstępnie wytrenowany model Car Detection - USA z atlasu ArcGIS Living Atlas. Po pobraniu modelu dodaj go jako element do swojego portalu i uzyskaj do niego dostęp w notatniku za pomocą identyfikatora itemID.model = gis.content.get("<deep-learning-package-item-id>")
Uruchamianie modelu
Aby uruchomić wstępnie wytrenowany model w notatniku, użyj modułu detect_objects z interfejsu arcgis.learn. Moduł pobierze zobrazowanie jako dane wejściowe i wykryje oraz policzy znajdujące się na nim samochody.
Notatka:
Możesz potencjalnie zwiększyć wydajność modelu, rozszerzając jego argumenty o różne wartości, aż do uzyskania pożądanych wyników:
model_arguments = {
"padding": "100", # The number of pixels at the border of image tiles from which predictions are blended for adjacent tiles. To smooth the output while reducing artifacts, increase the value
"batch_size": "16", # Change batch size as per GPU specifications
"threshold": "0.5", # Get detections greater than 50% confidence
"tile_size": "224", # The width and height of image tiles into which the imagery is split for prediction
}
Notatka:
Jeśli skonfigurowany jest procesor graficzny, możesz ustawić kontekst w metodzie detect_object(), aby skonfigurować go na środowisko procesora graficznego:context = { "processorType": "GPU" }
num_cars = {}
detected_cars = detect_objects(
input_raster=imagery,
model = model,
output_name = "detected_cars",
)
num_cars[imagery.name] = len(detected_cars.query(as_df=True))
Wyniki modelu
Na koniec, po uruchomieniu modelu, możesz wyświetlić wynikowe liczby samochodów (num_cars):print(f"Number of cars is {num_cars}.")