Thủ thuật
Hướng dẫn GeoAI: Trích xuất dấu chân tòa nhà từ ảnh vệ tinh NAIP với U-Net, Grounding DINO, SAM và Mask R-CNN
(giờ Việt Nam)
Tóm tắt AI
Bài hướng dẫn xây dựng quy trình GeoAI toàn diện để trích xuất dấu chân tòa nhà từ ảnh hàng không NAIP, bao gồm từ khâu xử lý dữ liệu, huấn luyện mô hình U-Net đến suy luận bằng cửa sổ trượt.
Bản dịch AI

Trong bài hướng dẫn này, chúng tôi thiết kế một quy trình GeoAI hoàn chỉnh để trích xuất dấu chân tòa nhà (building footprints) từ ảnh hàng không NAIP độ phân giải cao. Chúng tôi bắt đầu bằng việc cấu hình môi trường học sâu không gian địa lý, tải xuống ảnh raster và nhãn vector, đồng thời kiểm tra các thuộc tính không gian của chúng trước khi tạo các mảnh ảnh (image chips) và mặt nạ phân đoạn (segmentation masks) có tham chiếu địa lý. Sau đó, chúng tôi huấn luyện mô hình U-Net với bộ mã hóa ResNet-34, đánh giá hành vi học tập của mô hình và áp dụng suy luận cửa sổ trượt (sliding-window inference) cho một cảnh chưa từng thấy. Ngoài phân đoạn ngữ nghĩa, chúng tôi chuyển đổi các mặt nạ dự đoán thành các đa giác tòa nhà đã được làm sạch và chuẩn hóa, tính toán các chỉ số IoU và F1, khám phá phân đoạn zero-shot với Grounding DINO và SAM, đồng thời so sánh kết quả với mô hình phân đoạn thực thể Mask R-CNN đã được huấn luyện trước. Chúng tôi cũng trình bày cách quy trình tương tự có thể mở rộng sang các khu vực thực tế bằng cách sử dụng ảnh NAIP từ Microsoft Planetary Computer và nhãn tòa nhà từ Overture Maps.
Chúng tôi cấu hình môi trường, cài đặt các thư viện GeoAI và học sâu cần thiết, đồng thời xác minh khả năng sử dụng GPU. Chúng tôi xác định các tham số cấu hình trung tâm cho việc tạo tập dữ liệu, huấn luyện mô hình, suy luận và các giai đoạn xử lý tùy chọn. Sau đó, chúng tôi tạo thư mục làm việc, xác định các tiện ích thực thi có thể tái sử dụng và tải xuống ảnh NAIP cùng nhãn dấu chân tòa nhà.
Chúng tôi kiểm tra các tập dữ liệu raster và vector để hiểu hệ tọa độ, kích thước, số liệu thống kê và cấu trúc đặc trưng của chúng. Chúng tôi trực quan hóa các nhãn tòa nhà trên ảnh hàng không và tạo bản đồ tương tác để khám phá không gian. Sau đó, chúng tôi chia ảnh nguồn thành các mảnh có tham chiếu địa lý chồng lấp và tạo các mặt nạ raster tương ứng để huấn luyện mô hình.
Chúng tôi huấn luyện mô hình phân đoạn ngữ nghĩa U-Net với bộ mã hóa ResNet-34 bằng cách sử dụng các mảnh ảnh và mặt nạ đã chuẩn bị. Chúng tôi cấu hình quy trình huấn luyện với việc chia tách xác thực, dừng sớm (early stopping), lưu điểm kiểm tra (checkpoint) và giám sát hiệu suất. Sau đó, chúng tôi tải lịch sử huấn luyện, vẽ biểu đồ đường cong học tập và xác định epoch tạo ra chỉ số IoU xác thực cao nhất.
Chúng tôi áp dụng suy luận cửa sổ trượt cho một cảnh NAIP chưa từng thấy và tạo ra cả raster dự đoán lẫn raster xác suất. Chúng tôi loại bỏ các vùng nhiễu nhỏ, chuyển đổi mặt nạ dự đoán thành các đa giác vector và chuẩn hóa hình học dấu chân để tạo ra các ranh giới tòa nhà sạch hơn. Chúng tôi cũng tính toán các thuộc tính hình học và so sánh kết quả đa giác thô với các đầu ra đã được trực giao hóa và chuẩn hóa.
Chúng tôi đánh giá mô hình phân đoạn bằng cách so sánh các dự đoán của nó với các nhãn tòa nhà ground-truth đã được raster hóa. Chúng tôi tính toán các chỉ số IoU và F1 ở cấp độ pixel, đồng thời trực quan hóa ảnh, dự đoán và mặt nạ tham chiếu cùng nhau. Sau đó, chúng tôi áp dụng Grounding DINO và SAM để thực hiện phân đoạn tòa nhà zero-shot bằng cách sử dụng các câu lệnh văn bản (text prompts) mà không cần huấn luyện thêm mô hình.
Chúng tôi sử dụng mô hình Mask R-CNN đã được huấn luyện trước để trích xuất các thực thể tòa nhà riêng lẻ và so sánh chúng với kết quả của U-Net. Chúng tôi tùy chọn tạo một tập dữ liệu thực tế bằng cách tải xuống ảnh NAIP từ Microsoft Planetary Computer và khớp với các nhãn tòa nhà từ Overture Maps. Cuối cùng, chúng tôi thu thập các raster, vector, biểu đồ và đầu ra mô hình đã tạo vào một gói kết quả nén để phân tích thêm hoặc tải xuống.
Tóm lại, chúng tôi đã hoàn thành một quy trình học sâu không gian địa lý từ đầu đến cuối, giúp chuyển đổi ảnh hàng không thô thành dữ liệu dấu chân tòa nhà có cấu trúc và sẵn sàng để phân tích. Chúng tôi đã chuẩn bị các mẫu huấn luyện, huấn luyện và đánh giá mô hình phân đoạn ngữ nghĩa, tạo ra các dự đoán liền mạch và tinh chỉnh đầu ra raster thành các hình học vector trực giao hóa với các thuộc tính không gian hữu ích. Chúng tôi cũng đã xem xét các phương pháp trích xuất thay thế thông qua các mô hình nền tảng zero-shot và phân đoạn thực thể đã được huấn luyện trước, giúp chúng tôi hiểu được sự đánh đổi giữa việc huấn luyện tùy chỉnh, phát hiện dựa trên prompt và các mô hình có sẵn. Bằng cách đóng gói các mặt nạ đã tạo, raster xác suất, biểu đồ đánh giá, trọng số đã huấn luyện và đầu ra GeoJSON, chúng tôi đã tạo ra một nền tảng có thể tái sử dụng mà chúng tôi có thể điều chỉnh cho việc lập bản đồ lớp phủ đất, phát hiện cơ sở hạ tầng, phân tích thay đổi và các ứng dụng GeoAI quy mô lớn.
Xem mã nguồn đầy đủ tại đây. Ngoài ra, hãy theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit ML 150k+ của chúng tôi và đăng ký nhận bản tin. Khoan đã! Bạn có dùng Telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.
Cần hợp tác với chúng tôi để quảng bá GitHub Repo, trang Hugging Face, phát hành sản phẩm hoặc hội thảo trực tuyến, v.v. của bạn? Hãy kết nối với chúng tôi.
Sana Hassan, thực tập sinh tư vấn tại Marktechpost và là sinh viên văn bằng kép tại IIT Madras, rất đam mê việc ứng dụng công nghệ và AI để giải quyết các thách thức trong thế giới thực. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, anh mang đến một góc nhìn mới mẻ cho sự giao thoa giữa AI và các giải pháp đời sống.
Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.