Ātra Katastrofu Novērtēšanas Rīka Izstrāde, Izmantojot IBM Atvērtā Koda ResNet-50 Modeli
Praktisks padziļinātās mašīnmācīšanās pielietojums katastrofu pārvaldībā
Šajā pamācībā mēs apskatām inovatīvu un praktisku IBM atvērtā koda ResNet-50 padziļinātās mašīnmācīšanās modeļa pielietojumu, kas ļauj ātri klasificēt satelītattēlus katastrofu pārvaldībai. Izmantojot iepriekš apmācītas konvolūciju neironu tīkla (CNN) arhitektūras, šī pieeja ļauj lietotājiem ātri analizēt satelītattēlus, lai identificētu un kategorizētu katastrofu skartās zonas, piemēram, plūdu, meža ugunsgrēku vai zemestrīcu radītos bojājumus. Izmantojot Google Colab, mēs soli pa solim izskatīsim, kā viegli iestatīt darba vidi, pārstrādāt attēlus, veikt secināšanu un interpretēt rezultātus.
Vispirms mēs instalējam nepieciešamās bibliotēkas PyTorch balstītai attēlu apstrādei un vizualizācijai.
!pip install torch torchvision matplotlib pillow
Mēs importējam nepieciešamās bibliotēkas un ielādējam IBM atbalstīto ResNet-50 modeli no PyTorch, sagatavojot to secināšanas uzdevumiem.
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()
Tagad mēs definējam standarta attēlu pārstrādes pipeline, kas tos pārveido, izmainot izmēru, apgriežot, pārveidojot tenzoros un normalizējot, lai tie atbilstu ResNet-50 prasībām.
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]
)
])
Šeit mēs iegūstam satelītattēlu no norādītās URL adreses, pārstrādājam to, klasificējam, izmantojot ResNet-50 modeli, un vizualizējam attēlu kopā ar tā galveno prognozi. Tāpat tiek izdrukātas piecas augstākās prognozes ar to varbūtībām.
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())</code></pre></div></div>
Visbeidzot, mēs lejupielādējam satelītattēlu ar meža ugunsgrēku, klasificējam to, izmantojot ResNet-50 modeli, un vizuāli parādām to kopā ar piecām galvenajām prognozēm.
image_url = "https://upload.wikimedia.org/wikipedia/commons/0/05/Burnout_ops_on_Mangum_Fire_McCall_Smokejumpers.jpg"
classify_satellite_image(image_url)
Noslēgumā mēs esam veiksmīgi izmantojuši IBM atvērtā koda ResNet-50 modeli Google Colab, lai efektīvi klasificētu satelītattēlus, atbalstot kritiskus katastrofu novērtēšanas un reakcijas uzdevumus. Šī pieeja parāda, kā padziļinātās mašīnmācīšanās modeļus var radoši pielietot reālām problēmām. Ar minimālu iestatīšanas piepūli mēs tagad varam izmantot šo jaudīgo rīku.
Šeit ir Colab piezīmju grāmatiņa. Neaizmirstiet arī sekot mums Twitter un pievienoties mūsu Telegram kanālam un LinkedIn grupai. Pievienojieties arī mūsu 85k+ ML SubReddit kopienai.
https://www.marktechpost.com/