Deep learning pode ser usado para automatizar a tarefa de extrair manualmente feições de imagens. Com modelos pré-treinados do ArcGIS, você pode reduzir a necessidade de grandes conjuntos de dados, poder de computação significativo e conhecimento ou experiência em deep learning. Esses modelos foram treinados em diversos dados geográficos e apresentam bom desempenho em diversas regiões. Os modelos pré-treinados do ArcGIS estão disponíveis para qualquer pessoa com uma conta ArcGIS por meio do ArcGIS Living Atlas of the World. No fluxo de trabalho a seguir, o modelo Car Detection-USA é usado para identificar carros em imagens aéreas e de drones de alta resolução.
Requisitos
Os seguintes requisitos são necessários para executar este fluxo de trabalho:
- Imagens aéreas para executar o modelo.
Anotação:
Você pode baixar imagens aéreas contendo carros de OpenAerialMap.
- Deep learning é computacionalmente intensiva e é recomendado usar uma GPU eficiente para processar grandes conjuntos de dados.
Inferência com modelos pré-treinados
As seções a seguir descrevem os processos envolvidos na inferência com um modelo pré-treinado do ArcGIS.
Importações de bibliotecas Python
Importe as seguintes bibliotecas Python:from arcgis.gis import GIS
from arcgis.learn import detect_objects
from arcgis.raster.analytics import copy_raster
gis = GIS("home")
Adicione os dados e o modelo para análise
Há dois métodos que você pode usar para adicionar seu conjunto de dados ao seu notebook.
O primeiro método envolve carregar as imagens aéreas na sua área de trabalho do notebook, adicioná-las à célula de código e executar a função copy_raster() para extrair os dados.dataset = "/arcgis/home/Aerial imagery.tif"
imagery = copy_raster(input_raster=dataset, output_name="Aerial_imagery", raster_type_name="Raster Dataset")
O segundo método envolve adicionar as imagens aéreas como uma camada de imagens hospedada no seu portal e adicionar a camada de imagens ao seu notebook usando seu itemID.imagery = gis.content.get("<imagery-layer-item-id>")
Adicione o pacote de deep learning
Você pode baixar o modelo pré-treinado Car Detection - EUA no ArcGIS Living Atlas. Depois de baixar o modelo, adicione-o como um item ao seu portal e acesse-o no seu notebook usando seu itemID.model = gis.content.get("<deep-learning-package-item-id>")
Execute o modelo
Para executar o modelo pré-treinado no seu notebook, use o módulo detect_objects do arcgis.learn. O módulo receberá suas imagens como entrada e detectará e contará o número de carros presentes nelas.
Anotação:
Você pode potencialmente aumentar o desempenho do modelo aumentando os argumentos do modelo com valores variados até que a saída desejada seja alcançada:
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
}
Anotação:
Se uma GPU estiver configurada, você pode definir um contexto dentro do método detect_object() para defini-lo para o ambiente da GPU: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))
Resultados do modelo
Finalmente, depois de executar seu modelo, você pode exibir a saída de num_cars:print(f"Number of cars is {num_cars}.")