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

QGISで樹冠を抽出する6つの方法:無料・有料を比較

公開日 更新日

同じ公園の3つのパネル。通常の航空写真、植生が赤く表示されたNDVIラスタ、色分けされた個々の樹冠ポリゴン。

QGIS からマルチスペクトル画像の樹冠をマッピングするには、「ラスタ」→「ラスタ計算機」でNDVIを作成し、Reclassify by table でしきい値を設定してから、「ラスタ」→「変換」→「ラスタをベクタ化(polygonize)」を実行します。これで得られるのは被覆であり、個々の樹木ではありません。残り5つの方法では、LiDAR、オープンデータ、そして樹冠ごとに1つのポリゴンが必要なケースを扱います。

手元にあるもの方法費用
近赤外バンドを含むマルチスペクトル画像方法1、NDVIからポリゴン化無料、QGISのコア機能
RGB画像、カードなし、樹冠が必要方法2、クラウドのセグメンテーションモデル無料枠、その後サブスクリプション
LiDAR、またはDSMとDTM方法3、樹冠高モデル(CHM)無料、QGISのコア機能
分離したいクラスが複数ある画像方法4、教師あり分類無料、1つのプラグイン
広い範囲、昨年の撮影日でも問題ない方法5、オープンな樹冠データセット無料ダウンロード
RGB画像とNVIDIAカード方法6、ローカルのセグメンテーションモデル無料、探すべきモデルあり

被覆が必要なのか、樹冠が必要なのかを決めてください。被覆は1つの表面で、そこから割合を算出できます。樹冠は数えられるオブジェクトなので、街路調査や公園の樹木台帳に必要なのはこちらです。

メニューのパス、アルゴリズムID、プラグインのバージョン、料金は、QGIS 3.44のマニュアルと各プロジェクトの公式ページをもとに、2026年9月3日に確認しました。

方法1: NDVIのしきい値処理

投影CRSで作業してください。ここで扱うすべての方法は最後に面積を出すため、度単位の面積は役に立ちません。

NDVIは、緑色の植生と屋根、道路、水面を分離します。「ラスタ」→「ラスタ計算機」を開き、("nir@1" - "red@1") / ("nir@1" + "red@1") を入力します。

QGISに表示したフランスの村のNDVIラスタ。植生は明るく屋根は暗く、横に表示したレイヤのヒストグラムには2つの山がある。
Sentinel-2シーンから作ったNDVI。ヒストグラムには2つの山があり、その間の谷がしきい値になります。万能の値はないので、自分のシーンを読み取ってください。

続いて Reclassify by table(native:reclassifybytable、プロセシングツールボックスの「ラスタ解析」)を実行します。しきい値より上と下に1行ずつ設定し、出力データ型をByteにします。その結果をポリゴン化します。

使う場面: 画像に近赤外バンドがあり、被覆が必要なとき。

避ける場面: 樹木を芝生や作物から分ける必要があるとき。3つとも緑なので、NDVIでは分けられません。

方法2: クラウドのセグメンテーションモデル

セグメンテーションモデルは樹冠の形を学習しているため、しきい値では1枚の被覆になってしまう林分を、数えられるオブジェクトに分割できます。私たちが構築するのが AI Segmentation です。このセクションでは、私たちのツールについて説明します。

QGISですでに開いている画像上に範囲を描き、単語を入力します。ポリゴンは面積と信頼度スコアを伴って、プロジェクトのCRSに入ります。樹冠ごとに1つのポリゴンを得るには tree、表面としての被覆を得るには tree canopy と入力します。

庭や通り沿いのすべての樹冠が、それぞれ別のポリゴンとして固有の色で塗られた、空から見たオランダの村。
オランダの村の上空での1回の実行で得た893個の樹冠。それぞれが独立したポリゴンです。推定ではなく、レイヤから数えた値です。

最適な用途: GPUのないマシンで、RGB画像から樹冠ごとに1つのポリゴンを作る。

料金: 月1.5 km²の地表と、クラウドの半自動オブジェクト20個まで無料。カード不要です。ProはVATを除き月€39で、100 km²と500オブジェクトが含まれます。Proを7日間無料でお試しいただけます。カードを登録し、期間が終わる前に解約すれば、料金は請求されません。

動作環境: QGIS 3.22以降、Windows、macOS、Linux。モデルは欧州連合内のサーバーで実行されます。

インストール: プラグインマネージャでインストールし、メールアドレスでログインします。パッケージも重みファイルも不要です。

優れている点: 単純な単語がよく機能します。実際の実行90日分を調べると、tree は716タイル中10.5パーセントで空の結果になりました。一方 orchard は47.3パーセントでした。そのためプラグインは、料金が発生する前に2つ目の単語を1つ目へ自動で寄せます。

弱い点: 閉じた林分には見つけられる樹冠の境界がないため、tree の実行は幹ごとのポリゴンではなく、1枚の被覆を返します。そこで tree canopy を使い、被覆として受け入れてください。2つのクラウドモードでは画像が私たちのサーバーに送られます。自分のマシンだけで完結するのは半自動モードのみです。

方法3: LiDARから樹冠高モデルを作る

樹木と芝生を分けられる唯一の信号が高さです。QGISでは、LASまたはLAZファイルから Export to raster(pdal:exportraster、Point Cloud Conversion)を使って、両方の表面を直接作れます。Attribute を Z に設定します。地形にはフィルター式 Classification == 2 を追加します。これはQGISが使うASPRSクラスでGroundを表します。表面には ReturnNumber == 1 でフィルターをかけます。

QGISに表示した樹冠高モデル。地表を緑、25 metresを暗赤色で色分けし、平坦な灰色の地面の上に樹冠が浮かび上がっている。
オランダのAHN(0.5 m)による、AmsterdamのVondelpark上空のDSMからDTMを引いたもの。樹冠は緑だからではなく高いから際立つため、芝生や庭は自然に除外される。

「ラスタ」→「ラスタ計算機」で "dsm@1" - "dtm@1" として一方から他方を引くか、大きなタイルなら grass:r.mapcalc.simple を使います。仕様で樹冠とする高さで再分類してから、ポリゴン化します。出力にはピクセルごとの高さが含まれます。これはこのページの他の方法では得られません。

使う場面: LiDAR、または国のDSMとDTMのペアがあるとき。

避ける場面: 点が分類されていないとき。QGIS 3.44には地面を分類するアルゴリズムがないため、未分類の点はまずQGISの外でPDALに通します。

方法4: 教師あり分類

樹木、草、屋根、道路の教師データ用ポリゴンを描き、分類器にすべてのピクセルをラベル付けさせてから、樹木クラスをポリゴン化します。今インストールするなら dzetsaka です。GPLで、バージョン5.0.11、QGIS 3.0から4.99で動作し、Random ForestやSVMを含む11個の分類器を搭載しています。

Semi-Automatic Classification Plugin のほうが有名で、バンドセットや前処理も扱えますが、まずバージョンを確認してください。リリース9.0.4にはQGIS 4系であるQGIS 3.99が必要です。QGIS 3.44では2024年11月版の8.5.0になります。

使う場面: 同じシーンから複数のクラスを取り出す必要があり、樹冠がそのうちの1クラスであるとき。

避ける場面: 欲しいのが樹木だけのとき。教師サンプルにかかる時間は方法1より長くなります。

方法5: オープンな樹冠データセット

すでに誰かが対象地域をマッピングしているかもしれません。

Paris上空のCopernicus Tree Cover DensityをQGISに読み込んだもの。樹冠被覆率に応じて淡緑から濃緑で表示し、市の両側にある二つの森は濃い緑のベタ塗りになっている。
2018年のCopernicus Tree Cover DensityレイヤをWMSとしてQGISにストリーミングしたもの(Paris上空)。無料の完成品だが、今年の画像が必要になった途端に役に立たない。

知っておく価値があるのは4つです。Meta and WRI canopy height map は全球をカバーし、2026年3月以降はバージョン2です。ピクセルサイズは1.2 mで、航空LiDARに対する平均絶対誤差は3.0 mです。ETH Zurich's map は2020年の10 mデータで、Sentinel-2とGEDIから作られ、CC BY 4.0です。

残り2つは地域限定または過去のデータです。Copernicus Tree Cover Density のレイヤはヨーロッパを10 mでカバーし、2018年から2024年まで毎年更新されています。ダウンロードにはEU Loginが必要です。Hansen Global Forest Change は30 mで、2000年から始まるため、時間経過による変化を見るためのデータです。

都市が独自データを公開していることもあります。Parisは219,432本の樹木をポイントとして、Melbourneは2021年の樹冠ポリゴンを57,980個、どちらもQGISに貼り付けられるGeoJSON URLで提供しています。

4つの全球ラスタはすべてレンジリクエストに対応しているので、ダウンロードする代わりに /vsicurl/ でタイルをストリーミングしてください。Copernicusは https://land.copernicus.eu/en/products/high-resolution-layer-forests-and-tree-cover/tree-cover-density-2018-present-raster-10-m-europe-yearly でWMTSを提供しており、年を手動で設定します。1984年までのすべての日付を表示しますが、データが入っているものはほとんどありません。

使う場面: 範囲が広く、取得日が自分の画像でなくてもよいとき。

避ける場面: 先月撮影した場所を使うとき、または樹冠が必要なとき。これらの多くは割合を示すラスタであり、数えられるオブジェクトではありません。

方法6: ローカルのセグメンテーションモデル

Deepness、Geo-SAM、samgeo は、自分のマシン上でセグメンテーションモデルを実行します。画像は外部に出ず、料金もかかりません。

使う場面: 画像をマシンの外に出せないとき。

避ける場面: NVIDIAカードがないとき、またはモデルを探し、重みを取得し、Python環境を構築する気力がないとき。

6つの方法を横並びで比較

必要なもの方法
自分のマルチスペクトル画像から被覆方法1
GPUなしでRGB画像から樹冠を抽出方法2
樹冠の高さ、または樹木と草の分離方法3
複数クラスのうち1つとしての樹冠方法4
広い範囲をすばやく無料で処理方法5
マシンの外に何も出さずに樹冠を抽出方法6

覚えておくこと

方法を選ぶ前に、被覆と樹冠のどちらが必要かを決めてください。これは画像の問題ではなく、納品物の問題です。

高さを取得できるなら、色より高さが優先です。LiDARがある場所では、樹冠高モデルが最も有力です。

NDVIは芝生、作物、オークを同じものとして読むため、しきい値だけでは決して樹木になりません。

閉じた林分には見つけられる樹冠の境界がないため、このページのどの方法でもそこで返るのは被覆であり、幹の本数ではありません。

ヨーロッパ全域の被覆率なら、Copernicusのレイヤは無料ですでに完成しています。その範囲にモデルを実行すると、同じ答えに二重に支払うことになります。

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

よくある質問

プラグインなしでQGISに樹冠をマッピングできますか?

はい。方法1、3、5なら、QGISのコア機能とダウンロードだけで可能です。ただし得られるのはポリゴンとしての被覆であり、個々の樹冠ではありません。

樹木ごとに1つのポリゴン、それとも樹冠全体に1つですか?

NDVIや高さモデルのしきい値処理で得られるのは被覆です。林分を数えられる樹冠に分割できるのはセグメンテーションモデルだけで、方法2では入力する単語によってどちらになるかが決まります。

樹冠被覆率はどうやって計算しますか?

すべてのポリゴンには面積があるので、面積フィールドを合計し、測定した面積で割ります。これは、開いて確認できるジオメトリ上で行う、1回のフィールド計算です。

NDVIとLiDARの高さモデルでは、どちらが正確ですか?

高さモデルです。比較になりません。NDVIは芝生とオークを同じものとして読みますが、樹冠高モデルなら数メートルの差で分離できます。

これらは無料ですか?

方法1と3から6までは、自分のデータと方法6のグラフィックカード以外に費用はかかりません。方法2は月1.5 km²まで無料で、その後はVATを除き月€39です。

LASファイルから直接、樹冠高モデルを作れますか?

地表面はground(地面)に分類された点から作られますが、QGIS 3.44にはそれらを分類するアルゴリズムがありません。未分類の点群ではフィルターが何も返さず、地形は平らになります。

Semi-Automatic Classification Pluginのどのバージョンが入りますか?

リリース9.0.4にはQGIS 4系であるQGIS 3.99が必要です。QGIS 3.44では、プラグインマネージャが2024年11月版の8.5.0を提供するため、サンプルのせいにする前に、実際にどの版を入手したか確認してください。

ラスタからベクタへの変換ガイド では、ここで紹介したすべての方法の最後に必要になるポリゴン化とクリーンアップの手順を説明しています。QGISでSAMを使う記事 では、セグメンテーションモデルを実行するプラグインを比較しています。方法3の高さモデルの手順をタイルごとに繰り返す代わりに1つの指示にまとめたい場合は、AI Agent が開いているプロジェクト内でそれらを実行します。QGIS AI hub はその2つの上位に位置します。