Lewati ke konten
AI Segmentation
QGIS
Tutorial

Deteksi Footprint Bangunan di QGIS: 3 Cara

Diterbitkan Diperbarui

Untuk mendeteksi footprint bangunan di QGIS ada tiga jalur: unduh dataset terbuka, jalankan plugin deteksi AI di atas citra Anda sendiri, atau digitasi manual. Yang tercepat adalah yang kedua. Instal plugin dari plugin manager, muat citra Anda, gambar zona, ketik buildings, klik Detect, dan poligon layer mendarat di CRS proyek Anda.

Filtering adalah paruh kedua pekerjaan. Sebagian besar hasil yang kembali bukan bangunan, jadi pangkas output mentah berdasarkan skor keyakinan dan luas. Saya menjalankan satu pass di atas Paris pusat, mendapat 635 poligon, dan memutuskan 82 mana yang disimpan justru lebih lama daripada deteksinya.

0:00 / 0:00
One zone, one word, 848 buildings. Real run, sped up 3x, nothing cut.
Input AndaMetodeWaktu
Area yang sudah dicakup OpenStreetMap, Microsoft atau GoogleMetode 1: unduh footprint terbukaHitungan menit
Ratusan hingga ribuan bangunan, pada citra persis yang diberikan kepada AndaMetode 2: deteksi otomatis (milik kami, cloud)848 bangunan dalam 57 detik, lalu filtering
Di bawah lima puluh bangunan, atau pusat bersejarah yang butuh satu poligon per alamatMetode 3: digitasi manualTergantung kecepatan Anda

Selalu mulai dari data terbuka. Anda baru lanjut ketika cakupannya berlubang, vintage-nya salah, atau footprint harus cocok dengan ortofoto spesifik yang diberikan klien.

Metode 1: Unduh footprint terbuka

Anda butuh QGIS 3.22 atau lebih baru, satu imagery layer yang Anda percaya, dan koneksi internet untuk metode 2. Tanpa kartu grafis khusus, untuk ketiganya.

Untuk banyak pekerjaan Anda tidak perlu mendeteksi apa pun. Tiga dataset terbuka mencakup sebagian besar planet di antara ketiganya, dan di atas satu kawasan yang sama mereka bisa berbeda hingga ribuan bangunan.

Pick the dataset for your area

OpenStreetMap sangat bagus di mana pun mapper aktif, dan bangunan membawa atribut. Microsoft Global ML Building Footprints menyimpan lebih dari satu miliar bangunan hasil ekstraksi mesin dan paling kuat di Amerika Utara. Google Open Buildings mencakup Global South, tempat OSM paling tipis.

Load one against your imagery

Tarik OSM dengan QuickOSM.

Zoom in and look at the edges

Satu tatapan itu menentukan apakah Anda berhenti di sini atau lanjut membaca.

Three panels of the same dense Luanda neighbourhood on Google Satellite imagery, with building footprints in green. OpenStreetMap shows none, Microsoft covers most, Google Open Buildings covers nearly all.
The same 1 km² of Luanda, on Google Satellite imagery. OpenStreetMap maps no buildings here, Microsoft finds 3,140, Google Open Buildings 4,468. Over a dense African neighbourhood the dataset you reach for decides whether you get everything or nothing.

Gunakan saat: area sudah dipetakan dengan baik dan Anda bisa menerima vintage dan lisensi dataset.

Lewati saat: cakupan berlubang, vintage salah, atau footprint harus sejajar dengan satu ortofoto spesifik.

Metode 2: Deteksi otomatis

Footprint bangunan adalah garis batas bangunan di tempat ia bertemu tanah, sebagai poligon datar. Bukan atap, bukan persil, bukan titik alamat. Ini penting di sini, karena citra vertikal memberi Anda atap: pada blok Haussmann lima lantai yang dipotret near-nadir offset-nya kecil, pada menara tidak. Wajib tahu sebelum Anda menjanjikan footprint layer kepada siapa pun, dan versi panjangnya ada di apa itu footprint bangunan.

Model deteksi otomatis membaca citra Anda dan mengembalikan garis batas bangunan sebagai poligon, masing-masing dengan skor keyakinan. Kami membangun salah satunya, AI Segmentation. Bagian ini tentang tool kami sendiri.

Ia terinstal dari plugin manager seperti yang lain: tanpa unduh manual, tanpa lingkungan Python, tanpa kartu grafis khusus, karena model berjalan di server kami. Windows, macOS dan Linux.

Dense Parisian city blocks before and after automatic building detection (after)
Dense Parisian city blocks before and after automatic building detection (before)
ImageryDetected
Geser untuk membandingkan
One automatic pass over central Paris, on Google Satellite imagery. Every polygon gets its own colour so neighbours stay separate. Drag the handle to compare.

Install it and pick your imagery layer

Plugin manager, instal, buka panel, pilih raster yang ingin dibaca.

The AI Segmentation panel in QGIS with the Semi-Auto and Automatic switch
Automatic mode: pick the imagery layer, draw a zone, name the object.

Draw a zone and name the object

Gambar zona, ketik buildings, klik Detect. Itulah seluruh prompt, dalam bahasa Anda sendiri jika mau. Hasil mengalir kembali tile demi tile sebagai satu poligon layer di CRS proyek.

Set the precision when the objects are small

Satu pengaturan yang layak dipelajari adalah precision, yaitu ukuran tile. Tile kecil memberi model pandangan dekat, yang dibutuhkan objek kecil. Tile besar memberi konteks, yang dibutuhkan bidang pertanian.

Filter what came back

Panel memandu Anda melalui tiga langkah sebelum apa pun menjadi layer: filter apa yang di Keep, Correct apa yang terlewat oleh model, dan pilih Shapes output. Yang pertama adalah tempat pekerjaan dimenangkan, dan ia mendapat bagiannya sendiri di bawah.

Clean the geometry

Simplify, orthogonalize dan delete holes, dalam urutan itu, dan hanya di tempat masing-masing memang layak. Tiga tool dan alasan urutannya ada di bawah.

Satu run menghitung tanah yang dicakupnya. Setiap akun mendapat jatah gratis setiap bulan, tanpa kartu, dan Pro menaikkannya. Deteksi berjalan di server Eropa, kami tidak melatih dengan citra Anda, dan ada model lokal kecil jika tidak ada yang boleh keluar dari mesin Anda. panduan lengkap membahas Keep, Correct dan Shapes secara penuh.

Filtering adalah seluruh pekerjaan

Output deteksi mentah adalah sekumpulan poligon kandidat dengan skor keyakinan. Pada citra padat sebagian besar kecil dan tidak pasti. Saya mengekspor run Paris ini dengan kedua filter terbuka penuh, sehingga setiap kandidat mendarat di layer: 635 poligon di atas 1,18 km².

1 m²101001 00010 000 m²50 m²
Every one of the 635 detections, binned by area on a log scale. Two humps: noise under 5 m², real buildings above 160 m². The 50 m² line falls in the valley between them, which is why it is not an arbitrary number. Median 3.2 m², largest 13,528 m², median confidence 0.26.

Separuh dari yang kembali lebih kecil dari tempat parkir: ventilasi, skylight, rumah tangga, gudang courtyard. Benda nyata di citra, digariskan dengan benar, dan bukan yang dimaksud siapa pun sebagai footprint bangunan.

Jadi filter. Geser dua slider di panel, atau kerjakan hal yang sama dari tabel atribut dengan Select by Expression:

"area_m2" >= 50 AND "score" >= 0.5

Itu menyisakan 82 poligon dari 635, mencakup 222,338 m² dari total 263,658 m². Daripada percaya kata saya soal ambang batas, geser sendiri. Hijau lolos filter Anda, putih tidak.

Aerial imagery of dense Parisian blocks with detected building polygons drawn over it

82 / 635polygons kept (13%)

84%of the built area (222,338 m²)

The same 635 detections the attribute table holds. Drop the confidence to zero and the courtyard sheds and skylights come back.

Perhatikan angka kedua saat Anda menggeser yang pertama. Membuang 87% poligon hanya merugikan 16% luas, dan sisanya adalah noise yang toh akan Anda hapus manual, satu per satu, sambil bertanya-tanya apakah tool ini bagus.

Sesuaikan keduanya dengan pekerjaan. Survei gudang industri bisa mendorong batas bawah luas ke 200 m². Saat memetakan permukiman informal, 50 m² membuang rumah nyata, jadi turunkan ke 15 dan bersandar pada skor keyakinan.

Seperti apa hasil bersih

Paris adalah kasus sulit. Tool yang sama pada rumah tapak sekitar 10 km ke barat:

Detached and semi-detached houses in a Paris suburb, each house filled with its own colour
Detached housing, review filter on. One polygon per house, almost nothing to throw away.

85m²

median polygon area

Paris run: 3.2 m²

0.79

median confidence

Paris run: 0.26

251polygons

kept, out of 251 returned

Paris run: 82 out of 635

Tool yang sama, kota yang sama, tidak ada yang dibuang. Yang berubah adalah kain terbangun, bukan model.

Batasnya: blok padat yang menyambung

Close view of Haussmann blocks, each block one coloured polygon following the street edge with courtyards cut out
The outline follows the street edge precisely and cuts out the courtyards. What it does not do is split the block into individual addressed buildings.

Setiap poligon menelusuri amplop terbangun satu blok utuh, mengikuti garis jalan dan memotong courtyard dengan benar. Bagus untuk built-up area atau permukaan kedap, salah jika Anda butuh poligon per alamat. Tidak ada model yang membaca citra vertikal bisa menemukan dinding bersama antara dua bangunan yang menempel, karena dari atas tidak ada yang bisa dilihat.

Membersihkan geometri

Tiga tool bawaan QGIS merapikan footprint layer, dan urutan penting karena simplify menggeser verteks yang baru Anda sikukan.

  1. Simplify, toleransi 0,5 m di atas citra udara. Memangkas jumlah verteks drastis tanpa menggeser batas sejauh yang Anda sadari.
  2. Orthogonalize. Menjepret sudut near-right menjadi siku. Pakai untuk data terbuka atau kerja tracing manual, tempat belum ada yang menyikukannya.
  3. Delete holes, hanya jika Anda ingin footprint solid. Bukan untuk hasil Paris: hole itu adalah courtyard dan itu benar.

Pada layer hasil deteksi langkah 2 hampir no-op. Saya mengukurnya daripada mengasumsikan, menjalankan Orthogonalize pada 190 bangunan hasil deteksi dan membandingkan semua 1.845 sudut sebelum dan sesudah.

87.9%

corners already within 1° of square

before running anything

87.9%

after Orthogonalize

the same 1,845 corners

1.7cm

median vertex shift

9.1 cm at the worst

Close view of detected building outlines on aerial imagery, corners meeting at right angles
The same detections, close in. The corners arrive square, so the cleanup step has nothing left to snap.

12% yang tidak siku adalah teras menempel. Lihat tepi berundak yang membelah tengah blok. Tidak ada tool sudut yang memperbaikinya, karena undakan itu mengikuti garis atap nyata bukan kesalahan pemodelan.

Gunakan saat: ratusan hingga ribuan bangunan, pada citra yang harus Anda cocokkan, atau saat beberapa orang harus menghasilkan layer yang sama dengan cara yang sama.

Lewati saat: Anda butuh poligon per alamat di pusat kota bersejarah. Saya tidak akan memakai deteksi otomatis untuk itu, dan data kadastral plus koreksi manual menang di sana.

Try it free in QGIS, no card needed

Metode 3: Digitasi manual

Di bawah lima puluh bangunan, gambar saja. Gratis, tepat, dan saya pun tetap melakukannya sendiri untuk ukuran itu.

Turn on snapping

Project -> Snapping Options, vertex dan segment, topological editing on. Lewati dan Anda akan menghabiskan sore menghapus sliver.

Trace, and watch yourself drift

Sekitar bangunan ke-60 Anda mulai memotong sudut yang tidak akan pernah Anda potong pada bangunan ke-6, dan Anda tidak sadar. Itu sudah masuk ke layer.

Gunakan saat: di bawah sekitar lima puluh bangunan, atau saat Anda butuh satu poligon per alamat di pusat bersejarah yang padat.

Lewati saat: jumlah mencapai ratusan, atau beberapa orang harus menghasilkan layer yang sama dengan cara yang sama.

Yang perlu diingat

Dataset terbukaDeteksi otomatisDigitasi manual
BiayaGratisTier gratis, lalu berbayarGratis
PenyiapanHitungan menitHitungan menitTidak ada
Cocok untukArea yang sudah tercakup baikRatusan hingga ribuanDi bawah ~50 bangunan
Cocok dengan citra AndaTidakYaYa
Konsisten lintas timYaYaTidak
Blok padat menyambungBervariasiHanya amplop blokYa
Provenans yang bisa dinyatakanDataset dan vintageCitra Anda, dengan skor keyakinanAnda

Periksa dataset terbuka dulu. Di atas satu kawasan mereka berbeda hingga ribuan bangunan, jadi satu tatapan pada tepinya di atas citra Anda menentukan apakah Anda lanjut.

Footprint yang harus sejajar dengan ortofoto klien menyingkirkan dataset terbuka, apa pun cakupannya.

Filtering deteksi adalah sebagian besar pekerjaan: 82 poligon dari 635 di atas Paris pusat, memegang 84% built area.

Citra vertikal tidak bisa memberi satu poligon per alamat di mana bangunan menempel, dengan harga berapa pun. Gabungkan ke data kadastral sebagai gantinya.

Lewat sekitar lima puluh bangunan, digitasi manual melenceng tanpa memberi tahu Anda.

Pertanyaan yang sering ditanyakan

Apakah bisa untuk citra drone?

Lebih baik daripada satelit. Resolusi tanah lebih penting daripada sumber: ortofoto 5 cm memberi batas lebih bersih dan keyakinan lebih tinggi daripada adegan satelit 30 cm.

Apakah saya butuh GPU?

Tidak. Kedua mode berjalan di server kami secara default, dan model lokal kecil berjalan di CPU Anda sendiri, lebih lambat dan kurang akurat. Jika Anda ingin semuanya tetap di mesin Anda, Geo-SAM dan samgeo gratis dan bagus, dan mereka memang butuh kartu NVIDIA.

Berapa biaya satu run?

Otomatis menghitung tanah yang dicakup zona Anda, dan Cloud AI menghitung satu objek per simpan. Semi-Auto di mesin Anda sendiri gratis. Setiap akun mendapat jatah gratis setiap bulan.

Bisakah saya dapat satu poligon per alamat?

Tidak dari citra vertikal, di pusat kota tempat bangunan menempel. Model mengembalikan amplop terbangun seluruh blok, dengan courtyard dipotong, yang tepat untuk built-up area dan salah untuk alamat. Gabungkan ke data kadastral sebagai gantinya.

Dataset terbuka mana yang harus saya coba dulu?

OpenStreetMap, jika area Anda memiliki mapper aktif. Jika tidak, kesenjangan tajam: di atas 1 km² Luanda itu OSM tidak memetakan bangunan sama sekali, sementara Microsoft menemukan 3.140 dan Google Open Buildings 4.468.

Untuk celah atap-versus-tanah selengkapnya, baca apa itu footprint bangunan. Untuk kasus classified-raster, di mana polygonize mengalahkan model apa pun, baca raster ke vektor di QGIS. Hub AI QGIS mencantumkan sisa yang kami bangun.

Try it free in QGIS, no card needed