コンテンツへスキップ
AI Segmentation
QGIS
チュートリアル

QGISで建物抽出:建物フットプリントを作る3つの方法

公開日 更新日

QGISで建物フットプリントを検出するには、3つの方法があります。オープンデータセットのダウンロード、自分の画像に対するAI検出プラグインの実行、手動でのデジタイズです。最も速いのは2つ目です。プラグインマネージャからプラグインをインストールし、画像を読み込み、範囲を描き、buildingsと入力して「オブジェクトを検出」をクリックすると、プロジェクトのCRSでポリゴンレイヤが作成されます。

フィルタリングが作業の後半です。戻ってくるものの多くは建物ではないので、生の出力を信頼度と面積で絞り込みます。パリ中心部で1回実行して635ポリゴンを得ましたが、残す82を決める方が検出自体より時間がかかりました。

0:00 / 0:00
1つの範囲、1つの単語で848棟。実際の実行を3倍速にしたもので、カットはありません。
入力方法時間
OpenStreetMap、MicrosoftやGoogleが既にカバーする地域方法1:オープンな建物フットプリントをダウンロード数分
数百から数千棟、渡された正確な画像の上で方法2:自動検出(当社製、クラウド)57秒で848棟、その後フィルタリング
50棟未満、または住所ごとに1ポリゴンが必要な歴史的中心部方法3:手動でデジタイズ作業時間次第

常にオープンデータが先です。カバーに穴がある、時期が古い、クライアントから渡された特定のオルソ画像に合わせる必要がある場合にだけ、次へ進みます。

方法1:オープンな建物フットプリントをダウンロード

必要なものは、QGIS 3.22以降、信頼できる画像レイヤ1つ、方法2で使うインターネット接続です。3つの方法とも専用グラフィックカードは不要です。

多くの作業では検出自体が不要です。3つのオープンデータセットで地球上の大半をカバーでき、1つの街区でもデータセット間で数千棟の差が出ます。

地域に合うデータセットを選ぶ

OpenStreetMapはマッパーが活発な地域で優れており、建物には属性も付きます。Microsoft Global ML Building Footprintsは10億棟を超える機械抽出の建物を収め、北米で最も充実しています。Google Open Buildingsは、OSMが最も手薄なグローバルサウスをカバーします。

画像に重ねて読み込む

QuickOSMでOSMを読み込みます。

拡大して縁を確認する

この確認で、ここで止めるか先を読むかが決まります。

Google Satelliteの画像上に、ルアンダの同じ密集地区を3つのパネルで並べたもの。建物フットプリントは緑で表示されています。OpenStreetMapには1棟もなく、Microsoftは大半を、Google Open Buildingsはほぼすべてをカバーしています。
Google Satelliteの画像上のルアンダの同じ1km²。OpenStreetMapはここでは建物を1棟もマッピングしておらず、Microsoftは3,140棟、Google Open Buildingsは4,468棟を収録しています。1つの地区の例であり、順位ではありません。自分の地域で各データセットが何を収録しているか確認してください。

**使う場合:**地域が既によく整備されていて、データセットの時期とライセンスで問題ない場合。

**使わない場合:**カバーに穴がある、時期が古い、特定の1枚のオルソ画像に合わせる必要がある場合。

方法2:自動検出

建物フットプリントとは、建物が地面に接する輪郭を平面のポリゴンにしたものです。屋根でも敷地でも住所点でもありません。ここで重要なのは、垂直画像から得られるのは屋根だという点です。ほぼ真下から撮影した5階建てのオスマン様式の街区ならずれは小さいものの、タワーではそうはいきません。フットプリントレイヤを約束する前に知っておくべきことで、詳しい解説は建物フットプリントとはにあります。

自動検出モデルは画像を読み取り、建物の輪郭を信頼度スコア付きのポリゴンで返します。当社もその1つ、AI Segmentationを作っています。この節は当社自身のツールについてです。

ほかのプラグインと同じく、プラグインマネージャからインストールできます。手動ダウンロードも、Python環境も、専用グラフィックカードも不要です。モデルは当社のサーバーで動くためです。Windows、macOS、Linuxに対応しています。

自動での建物検出の前後を比べた、パリの密集した街区 (after)
自動での建物検出の前後を比べた、パリの密集した街区 (before)
画像検出結果
ドラッグして比較
Google Satelliteの画像上でパリ中心部を1回自動検出した結果。隣り合う建物を区別できるよう、ポリゴンごとに色を変えています。ハンドルをドラッグして比較できます。

インストールして画像レイヤを選ぶ

プラグインマネージャでインストールし、パネルを開き、読み込ませたいラスタを選びます。

「半自動」と「自動」の切り替えがあるQGISのAI Segmentationパネル
自動モード:画像レイヤを選び、範囲を描き、対象の名前を入力します。

範囲を描いて対象の名前を入力する

範囲を描き、buildingsと入力して「オブジェクトを検出」をクリックします。必要なプロンプトはこれだけで、お好みの言語で入力できます。結果はタイルごとに順次返され、プロジェクトのCRSの1つのポリゴンレイヤになります。

対象が小さいときは詳細度を設定する

覚えておく価値のある設定は詳細度ひとつで、タイルサイズのことです。小さいタイルはモデルに近い視点を与えるので、小さな対象に向いています。大きいタイルは文脈を与えるので、農地の区画のような対象に向いています。

戻ってきた結果を絞り込む

レイヤになる前に、パネルが3つの手順を案内します:残すものを絞る保持、モデルの見逃しを直す修正、出力する図形の選択です。勝負は最初の手順で決まるので、次の節で詳しく説明します。

ジオメトリを整える

「簡素化」「直交化」「穴を削除」の順で、それぞれ意味のある場所にだけかけます。3つのツールと順序の理由は後述します。

1回の実行は、カバーした地面の広さで数えます。毎月の無料枠があり、カードは不要で、Proで増えます。検出は欧州のサーバーで動き、当社が画像を学習に使うことはありません。画像をコンピュータの外に出せない場合は、小型のローカルモデルも使えます。保持、修正、図形の詳細は完全ガイドにあります。

フィルタリングが仕事の本体

生の検出出力は、信頼度スコア付きの候補ポリゴンの集まりです。密集した画像では、大半が小さく不確かです。このパリの実行では両方のフィルタを全開にして書き出し、すべての候補をレイヤに入れました:1.18km²に635ポリゴンです。

1 m²101001 00010 000 m²50m²
635件の検出すべてを、面積ごとに対数目盛で集計したものです。山は2つあり、5m²未満のノイズと、160m²を超える実際の建物です。50m²の線は2つの山の間の谷に位置するので、恣意的な数字ではありません。中央値は3.2m²、最大は13,528m²、信頼度の中央値は0.26です。

戻ってきたものの半分は駐車スペースより小さいものです:通気口、天窓、階段室、中庭の小屋などです。画像上の実在物で、輪郭も正しく取れていますが、建物フットプリントと呼ぶものではありません。

そこで絞り込みます。パネルの2つのスライダーを動かすか、属性テーブルで「式を使って地物を選択」から同じ作業を行います:

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

残るのは635ポリゴン中82ポリゴンで、全体263,658m²のうち222,338m²をカバーします。閾値をうのみにせず、自分で動かしてみてください。緑がフィルタを通過したもので、白は除外されます。

検出された建物ポリゴンを重ねた、パリの密集した街区の空中写真

82 / 635保持したポリゴン (13%)

84%建築面積に占める割合 (222,338 m²)

属性テーブルにある635件の検出と同じものです。信頼度を0にすると、中庭の小屋や天窓が戻ってきます。

1つ目を動かしている間、2つ目の数字を見てください。ポリゴンの87%を捨てても、失う面積は16%です。残りは、ツールの良し悪しを疑いながら手で1つずつ消すことになるノイズにすぎません。

両方を作業に合わせて調整します。工業用倉庫の調査なら、面積の下限を200m²まで上げられます。非正規居住地の地図化では、50m²だと実在の家屋を捨ててしまうので、15まで下げて信頼度スコアに頼ります。

きれいな結果の例

パリは難しい例です。約10km西にある戸建て住宅に同じツールを使うと:

パリ近郊の戸建て住宅と二戸一住宅。家ごとに別の色で塗られている
戸建て住宅、確認用フィルタを適用した状態。家ごとに1ポリゴンで、捨てるものはほとんどありません。

85m²

ポリゴン面積の中央値

パリの実行:3.2m²

0.79

信頼度の中央値

パリの実行:0.26

251ポリゴン

返された251のうち保持

パリの実行:635中82

同じツール、同じ都市で、捨てるものはありません。変わったのは街の建物の作りであって、モデルではありません。

苦手な例:密集した連続街区

オスマン様式の街区の拡大。各街区が、街路の縁に沿って中庭をくり抜いた1つの色付きポリゴンになっている
輪郭は街路の縁を正確になぞり、中庭をくり抜きます。できないのは、街区を住所ごとの個別の建物に分けることです。

各ポリゴンは街区全体の建築外形をなぞり、街路線に沿い、中庭を正しくくり抜きます。建築面積や不浸透面の把握には適していますが、住所ごとのポリゴンが必要な場合には向きません。隣り合う2棟の間の界壁は、上から見ても何も見えないため、垂直画像を読むモデルには見つけられません。

ジオメトリの整形

3つの標準QGISツールでフットプリントレイヤを整えます。簡素化は直角にそろえた頂点を動かしてしまうため、順序が重要です。

  1. 簡素化、空中写真で許容値0.5m。境界を目に見えるほど動かさずに、頂点数を大きく減らします。
  2. 直交化。直角に近い角を直角にそろえます。まだ角がそろっていないオープンデータや手描きの作業にかけます。
  3. 穴を削除、中実のフットプリントが欲しい場合のみ。パリの結果にはかけません:あの穴は中庭であり、正しい結果です。

検出レイヤでは手順2はほぼ何もしません。想定ではなく測定しました。検出された190棟の建物に直交化をかけ、1,845箇所の隅の前後を比べました。

87.9%

すでに直角から1°以内にある隅

何も実行する前

87.9%

直交化の後

同じ1,845箇所の隅

1.7cm

頂点の移動量の中央値

最大でも9.1cm

航空写真上の検出された建物の輪郭の拡大。角が直角に交わっている
同じ検出結果の拡大図。角は最初から直角になっているので、整形の手順にそろえるものは残っていません。

直角でない12%は連棟テラスです。街区の中央を走る段差のある縁を見てください。あの段は実在する屋根線であってモデルの誤差ではないため、角を直すツールでは直りません。

**使う場合:**数百から数千棟で、合わせるべき画像がある場合、または複数人が同じレイヤを同じ方法で作る必要がある場合。

**使わない場合:**歴史的中心部で住所ごとに1ポリゴンが必要な場合。その用途には自動検出を使いません。地籍データに手作業の修正を加える方法のほうが優れています。

QGISでAI Agentを無料で試す。カード不要

方法3:手動でデジタイズ

50棟未満なら手で描きます。無料で正確で、その規模なら今でも自分で描いています。

スナップをオンにする

「プロジェクト」→「スナップオプション」で、頂点とセグメント、トポロジー編集をオンにします。これを飛ばすと、午後はずっと微小なポリゴンを消す作業になります。

トレースしながら、ぶれに注意する

60棟目あたりで、6棟目では絶対に手を抜かなかった角を落とし始めますが、自分では気づきません。もうレイヤに入っています。

**使う場合:**約50棟未満、または密集した歴史的中心部で住所ごとに1ポリゴンが必要な場合。

**使わない場合:**数が数百にのぼる場合、または複数人が同じレイヤを同じ方法で作る必要がある場合。

まとめ

オープンデータセット自動検出手動デジタイズ
費用無料無料枠、その後有料無料
準備数分数分不要
向く用途カバー済みの地域数百から数千棟約50棟未満
自分の画像との一致いいえはいはい
チームでの一貫性はいはいいいえ
密集連続街区場合による街区外形のみはい
由来の説明データセットと時期自分の画像+信頼度スコア自分

まずオープンデータセットを確認します。1つの街区でも数千棟食い違うことがあるので、画像に重ねて縁を一目見れば、先へ進むかどうかが決まります。

クライアントのオルソ画像に合わせる必要があるフットプリントでは、カバー率に関わらずオープンデータセットは除外されます。

検出結果のフィルタリングが作業の大半です:パリ中心部では635ポリゴン中82ポリゴンが残り、建築面積の84%を占めます。

建物が接している場所では、垂直画像からはいくら費用をかけても住所ごとに1ポリゴンは得られません。代わりに地籍データと結合します。

約50棟を超えると、手動デジタイズは気づかないうちにぶれてきます。

よくある質問

ドローン画像でも動きますか?

衛星画像より良好です。画像の種類よりも地上解像度が重要で、5cmのオルソ画像は30cmの衛星画像よりも境界がきれいで、信頼度も高くなります。

GPUは必要ですか?

不要です。どちらのモードも既定では当社のサーバーで動き、小型のローカルモデルはお使いのコンピュータのCPUで動きますが、速度も精度も下がります。すべてをお使いのコンピュータ内に留めたい場合は、Geo-SAMやsamgeoが無料で優れており、こちらはNVIDIAのグラフィックカードが必要です。

1回の実行にいくらかかりますか?

自動モードは範囲がカバーした地面の広さで数え、クラウドAIは保存ごとに1オブジェクトを数えます。お使いのコンピュータでの半自動モードは無料です。どのアカウントにも毎月無料枠が付きます。

住所ごとに1ポリゴンは取れますか?

建物が接している中心市街地では、垂直画像からは取れません。モデルは街区全体の建築外形を返し、中庭をくり抜きます。建築面積には正しい結果ですが、住所には向きません。代わりに地籍データと結合してください。

どのオープンデータセットから始めるべきですか?

活動中のマッパーがいる地域ならOpenStreetMapです。いない地域との差は歴然としています:ルアンダの1km²の1地区ではOSMに建物が1棟もなく、Microsoftは3,140棟、Google Open Buildingsは4,468棟を収録しています。

都市計画で建物の外形を検出できるソフトは何ですか?

都市計画の調査では、無料のQGISから始めましょう。オープンな建物外形データ(OpenStreetMap、Microsoft、Google Open Buildings)を読み込み、最新の画像と照らし合わせます。データがない、または古い場所では、AI Segmentationのような自動検出プラグインが、お手持ちのオルソ画像から建物を描き出すので、レイヤーを画像の撮影日に合わせられます。ArcGIS Proにも学習済みの建物モデルがありますが、有料ライセンスと、快適な速度のためのGPUが必要です。データからスタイル付きレイアウトまで地図全体を作るなら、AI Agentが一文の指示でこれらの手順をQGIS上で実行できます。

屋根と地面の差を詳しく知りたい方は建物フットプリントとはをお読みください。分類済みのラスタの場合はどのモデルよりもポリゴン化が優れているので、QGISでラスタからベクタへをお読みください。同じ「範囲を描いてフィルタをかける」方法で、それらの屋根の上の太陽光パネルも見つけられます。手順はQGISでの太陽光パネル検出で説明しています。この検出とフィルタリングの手順を、クリックを繰り返さずに新しい地域で実行するには、AI AgentがQGIS内で1つの指示から実行します。ブラウンフィールドの敷地は、検出ではきれいな屋根ではなく、残ったスラブや小屋として現れることが多く、空から見たそれぞれの見え方はグリーンフィールドとブラウンフィールドの違いで説明しています。当社が作っているそのほかのツールはQGIS AIハブにあります。

無料ツールで今すぐ実行

Building footprint downloader

無料ツールを開く

QGISでの作業は、頼むだけで完了

AI Agentが、あなたのQGISプロジェクト上で、指示したタスクを実行します。無料、カード不要。

AI Agentを無料で試す
作成者Yvann Barbot
·2 min read