En este tutorial, exploramos una aplicación innovadora y práctica del resnet-50 de código abierto de IBM aprendizaje profundo modelo, que muestra su capacidad para clasificar rápidamente las imágenes satelitales para la gestión de desastres. Aprovechando las redes neuronales convolucionales (CNN) previas al detroto, este enfoque faculta a los usuarios para analizar rápidamente las imágenes satelitales para identificar y clasificar áreas afectadas por desastres, como inundaciones, incendios forestales o daños en el terremoto. Usando Google Colab, caminaremos a través de un proceso paso a paso para configurar fácilmente el entorno, preprocesar imágenes, realizar inferencias e interpretar resultados.
Primero, instalamos bibliotecas esenciales para tareas de procesamiento y visualización de imágenes basadas en Pytorch.
!pip install torch torchvision matplotlib pillow
Importamos bibliotecas necesarias y cargamos el modelo RESNET-50 respaldado por IBM de Pytorch, preparándolo para tareas de inferencia.
import torch
import torchvision.models as models
import torchvision.transforms as transforms
from PIL import Image
import requests
from io import BytesIO
import matplotlib.pyplot as plt
model = models.resnet50(pretrained=True)
model.eval()
Ahora, definimos la tubería de preprocesamiento estándar para las imágenes, cambia el tamaño y recortándolos, convirtiéndolos en tensores y normalizándolos para que coincidan con los requisitos de entrada de ResNet-50.
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]
)
])
Aquí, recuperamos una imagen satelital de una URL dada, la preprocesamos, la clasificamos utilizando el modelo RESNET-50 pretranado y visualizamos la imagen con su predicción superior. También imprime las cinco predicciones principales con probabilidades asociadas.
def classify_satellite_image(url):
response = requests.get(url)
img = Image.open(BytesIO(response.content)).convert('RGB')
input_tensor = preprocess(img)
input_batch = input_tensor.unsqueeze(0)
with torch.no_grad():
output = model(input_batch)
labels_url = "https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt"
labels = requests.get(labels_url).text.split("n")
probabilities = torch.nn.functional.softmax(output[0], dim=0)
top5_prob, top5_catid = torch.topk(probabilities, 5)
plt.imshow(img)
plt.axis('off')
plt.title("Top Prediction: {}".format(labels[top5_catid[0]]))
plt.show()
print("Top 5 Predictions:")
for i in range(top5_prob.size(0)):
print(labels[top5_catid[i]], top5_prob[i].item())
Finalmente, descargamos una imagen satelital relacionada con el incendio forestal, la clasificamos utilizando el modelo RESNET-50 previamente previo y la mostramos visualmente junto con sus cinco predicciones principales.
image_url = "https://upload.wikimedia.org/wikipedia/commons/0/05/Burnout_ops_on_Mangum_Fire_McCall_Smokejumpers.jpg"
classify_satellite_image(image_url)
En conclusión, hemos aprovechado con éxito el modelo RESNET-50 de código abierto de IBM en Google Colab para clasificar de manera eficiente las imágenes satelitales, apoyando la evaluación crítica de desastres y las tareas de respuesta. El enfoque descrito demuestra la practicidad y accesibilidad de avanzado aprendizaje automático modelos y enfatiza cómo los CNN previos al detenido pueden aplicarse creativamente a los desafíos del mundo real. Con una configuración mínima, ahora tenemos una herramienta poderosa a nuestra disposición.
Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro 85k+ ml de subreddit.
Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.