QGISで建物フットプリントを自動検出する方法
私はパリ中心部のゾーンで自動検出を実行し、1回の処理で635個のポリゴンが返ってきました。残す82個を決めるほうが検出そのものより時間がかかり、ほぼすべてのチュートリアルが省いているのはこの2つ目の作業です。


要約。
で建物フットプリントを自動検出するには、plugin managerからAI検出pluginをインストールし、画像を読み込み、範囲を描き、対象物に名前を付けて実行します。プロジェクトのCRSにあるポリゴンlayerが得られます。その後、信頼度と面積で生の出力をフィルタリングします。返ってくるもののかなりの割合は建物ではないからです。
建物フットプリントとは
建物が地面と接する部分の輪郭を、平らなポリゴンとして表したものです。屋根でも、区画でも、住所ポイントでもありません。
ここで重要なのは、垂直画像から得られるのは屋根だからです。5階建てのオスマン様式の街区をほぼ真上から撮影した場合、ずれは小さいでしょう。高層タワーではそうはいきません。フットプリントlayerを約束する前に知っておく価値があります。
まずオープンデータを確認する
多くの仕事では、何も検出する必要がありません。
- OpenStreetMapは、マッパーが活発な地域なら非常に優れており、建物には属性も付いています。QuickOSMで読み込めます。
- Microsoft Global ML Building Footprintsは、機械抽出された10億を超える建物を収録しており、北米で特に強力です。
- Google Open Buildingsは、OSMのカバレッジが最も薄いグローバルサウスをカバーしています。

いずれか1つを画像に重ねます。カバレッジに穴がある、撮影時期が合わない、またはクライアントから渡された特定のオルソフォトとフットプリントを一致させる必要がある場合にだけ、次へ進みます。
50棟未満なら、手で描く
手動でデジタイズします。無料で正確。この規模なら、私なら今でも自分でやります。まずスナップをオンにしてください(Project -> Snapping Options、vertexとsegment、topological editing on)。そうしないと、午後いっぱい細長い隙間を削除することになります。
60棟目あたりから、6棟目なら決してしなかったような手抜きを始めますが、それに気づきません。すでにlayerに入っているからです。
自動で行う方法
ここで使うpluginは AI Segmentation です。私と共同創業者がTerraLabで開発しているものなので、誰のツールかを踏まえてこのセクションを読んでください。他のpluginと同じくplugin managerからインストールできます。手動でのダウンロードも、Python環境も、専用グラフィックスカードも必要ありません。モデルは私たちのサーバーで動きます。Windows、macOS、Linuxに対応しています。
範囲を描き、buildingsと入力して、Detectを押します。それがpromptのすべてで、好みの言語で構いません。結果はタイル単位で順に返り、プロジェクトのCRSにある1つのポリゴンlayerになります。

覚えておく価値がある設定はprecisionで、これはタイルサイズです。小さいタイルならモデルが近くを見られるため、小さな対象物に向いています。大きいタイルなら文脈が得られるため、農地の区画に向いています。タイルが料金単位でもあり、1枚につき1クレジットです。各アカウントには毎月無料枠があり、カードは不要で、Proがその枠を引き上げます。検出は欧州のサーバーで実行され、画像を学習に使うことはありません。何もマシンの外に出せない場合に備えて、小さなローカルモデルもあります。
その後、パネルでは何かがlayerになる前に3つの手順を案内します。残すものを Keep にフィルタリングし、モデルが見落としたものを Correct し、出力 Shapes を選びます。完全ガイドですべてを説明しています。最初の手順が勝負を決めるため、次のセクションで扱います。
フィルタリングが作業の中心
生の検出出力は、信頼度スコア付きの候補ポリゴンの集合です。密集した画像では、その大半が小さく不確かです。今回のパリの実行では両方のフィルタを完全に開いて書き出したため、すべての候補がlayerに入りました。1.18 km²に635ポリゴンです。
返ってきたものの半分は駐車スペースより小さいものです。換気口、天窓、階段室の小屋、囲まれた中庭の物置。画像上には実在するものを正しく輪郭化していますが、誰も建物フットプリントと呼ぶものではありません。
そのためフィルタリングします。パネルの2つのスライダーを動かすか、属性テーブルでSelect by Expressionを使って同じ処理を行います。
"area_m2" >= 50 AND "score" >= 0.5
これで635個中82個のポリゴンが残り、合計263,658 m²のうち222,338 m²をカバーします。しきい値を私の言葉だけで決めず、自分で動かしてみてください。緑はフィルタを通過し、白は通過しません。

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.
1つ目をドラッグする間、2つ目の数字を見てください。ポリゴンの87%を捨てても、面積の16%しか失いません。残りは、ツールが役に立つかどうかを考えながら、1つずつ手で削除することになったノイズです。
仕事に合わせて両方を調整します。工業用倉庫の調査なら、面積の下限を200 m²まで上げられます。インフォーマル居住地をマッピングする場合、50 m²では実在する住宅まで捨ててしまうので、15まで下げ、代わりに信頼度スコアを重視します。
きれいな結果とは
パリは難しいケースです。同じツールを約10 km西の戸建て住宅で使うと:

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
同じツール、同じ都市で、捨てるものはありません。変わったのはモデルではなく、建物の密集のしかたです。
ここで破綻する: 連続した高密度ブロック

各ポリゴンは街区全体の建物の外形をたどり、道路線に沿いながら中庭を正確に切り抜きます。建物面積や不透水面には適していますが、住所ごとに1つのポリゴンが必要なら不適切です。垂直画像を読むモデルでも、隣接する2つの建物の境界壁を見つけることはできません。上から見て、そこには何も見えないからです。
だから、歴史的な都心部で住所ごとのlayerを作るために自動検出は使いません。そこでは地籍データに手動修正を加える方法が勝ちます。
ジオメトリを整える
3つのネイティブQGISツールでフットプリントlayerを整えられます。順番が重要なのは、Simplifyが直角に整えたばかりの頂点を動かすからです。
- Simplify。航空画像上で許容値0.5 m。頂点数を大きく減らし、気づくほど境界を動かしません。
- Orthogonalize。ほぼ直角の角を直角に整えます。まだ角が整っていないオープンデータや手描きの作業で使います。
- Delete holes。塗りつぶしたフットプリントが必要な場合のみ使います。パリの結果では使いません。穴は中庭で、正しいからです。
検出済みlayerでは、2番目の手順はほぼ何もしません。推測せずに測定しました。検出された190棟にOrthogonalizeを実行し、1,845個すべての角を前後で比較しました。
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

直角でない12%は、連続したテラスハウスです。街区の中央を下る段差のある縁を見てください。これは実際の屋根の線に沿った段差で、モデリングエラーではないため、どんな角ツールでも直せません。
どの方法を使うか
| オープンデータ | 手動デジタイズ | 自動検出 | |
|---|---|---|---|
| コスト | 無料 | 無料 | 無料枠、その後は有料 |
| 準備 | 数分 | なし | 数分 |
| 得意な用途 | すでに十分カバーされている区域 | 約50棟未満 | 数百から数千棟 |
| 画像との一致 | いいえ | はい | はい |
| チーム間で一貫 | はい | いいえ | はい |
| 連続した高密度ブロック | さまざま | はい | 街区の外形のみ |
| 明示できる出典 | データセットと撮影時期 | あなた | あなたの画像、信頼度スコア付き |
よく聞かれる質問
ドローン画像で使えますか?
衛星画像より向いています。ソースより地上解像度が重要です。5 cmのオルソフォトは、30 cmの衛星シーンより境界がきれいで信頼度も高くなります。
GPUは必要ですか?
いいえ。どちらのモードもデフォルトでは私たちのサーバーで動き、小さなローカルモデルは自分のCPUで動きますが、速度も精度も劣ります。すべてをマシン内に留めたいなら、Geo-SAMとsamgeoは無料で性能も良く、NVIDIAカードを必要とします。
1回の処理にはいくらかかりますか?
自動モードではタイル1枚につき1クレジット、セミオートでは保存したオブジェクト1つにつき1クレジットです。各アカウントには毎月無料枠があり、ローカルモデルは完全に無料です。



