教師データが「予測」に変わる瞬間——地目分類AIはこうして動き出す

地目分類AIの仕組みを示す図。空中写真・地番図・地目データから教師データを作成し、CNNで学習後、新しい画像から宅地・山林などを予測しGeoJSONとして出力する流れ AIの応用
教師データ(空中写真×地番図×地目)から学習したAIが、新しい土地の地目を予測しGeoJSONとして出力するまでの全体フロー

AIが学習する裏側については、前回の記事で詳しく解説した。空中写真・地番図・地目データという3つの素材を突き合わせ、現況の不一致を人間の目で取り除く——その地道な作業が教師データの正体だ。

では、そうして丁寧に作り上げた教師データは、次にどう動くのか。学習を終えたモデルが、見たことのない土地に対して「これは宅地」「これは山林」と自動判定を下す瞬間——今回はその仕組みと実際の挙動を、できるだけ具体的に解説する。


1. 「学習」と「予測」は別のフェーズである

混同されやすいが、AIの動作には明確に2つのフェーズがある。

学習フェーズは、正解ラベル付きの画像を大量に読み込ませ、モデルの内部パラメータ(重み)を調整していく工程だ。ここで使うのが教師データであり、前回の記事で解説した「空中写真×地番図×地目データ」の組み合わせがそのまま投入される。

予測フェーズは、学習済みモデルに「正解を知らない新しい画像」を入力し、地目の種類を推定させる工程だ。モデルはもうラベルを必要としない。学習で獲得したパターン認識能力を使い、画像だけから判断を下す。

この2つは目的も入力データも異なる。「学習が終わったらAIは動く」という単純な話ではなく、予測に値する精度を持つモデルができて初めて、実運用のスタートラインに立てる


2. 学習済みモデルが「見る」もの

CNNは、画像を受け取ったとき何を見ているのか。

人間が地目を判読するとき、「緑が多いから山林」「屋根が見えるから宅地」「整列した区画なら田」といった視覚的手がかりを使う。CNNも同じように視覚的手がかりを使うが、そのプロセスは人間とは異なる。

CNNは画像を小さな領域に分割し、各領域のピクセル配列から「エッジ」「テクスチャ」「色調の分布」「パターンの繰り返し」といった特徴を階層的に抽出する。浅い層では単純なエッジを検出し、深い層になるほど「田んぼに特有の格子状の水面反射」や「山林特有の不規則な樹冠パターン」といった複雑な特徴を捉えるようになる。

学習フェーズで「これが田」「これが山林」と繰り返し教え込まれることで、各地目クラスに対応する特徴の組み合わせが重みとして記録される。予測時には、新しい画像からこれらの特徴を抽出し、どのクラスの特徴と最もよく一致するかを確率で出力する。


3. 奈良市データでの実際の予測フロー

奈良市のオープンデータを用いた今回のプロジェクトでは、予測の流れは以下のように実装されている。

ステップ1:入力画像の準備

新たな空中写真(GeoTIFF形式)を用意し、学習時と同じ解像度・バンド構成・座標系に揃える。この前処理を怠ると、モデルが想定しない形式の入力を受け取ることになり、精度が大きく落ちる。「学習時と同じ条件で入力する」ことが鉄則だ。

ステップ2:パッチへの分割

入力画像を学習時と同じサイズのパッチ(100m四方)に分割する。地番図のポリゴン単位で切り出すため、「このパッチはどの筆の土地か」という対応関係が維持される。パッチの地番情報は後でGeoJSON出力に使う。

ステップ3:モデルへの入力

land_use_guess_fixed.pyが各パッチをモデル(land_classifier_model.pth)に渡す。モデルは各パッチに対して5クラス(田・畑・宅地・山林・雑種地)それぞれの確率を出力する。最も確率の高いクラスが予測ラベルとなる。

ステップ4:GeoJSONへの出力

予測ラベルと元の地番ポリゴンのジオメトリを結合し、GeoJSON形式で出力する。属性フィールドには「予測地目」「確率スコア」「元の登録地目」が並ぶ。この差分が実務上の価値を持つ——AIが「宅地」と予測したのに登録地目が「田」であれば、現地確認の優先対象となる


4. 精度をどう評価するか

予測が「正しい」かどうかを測る指標として、主に以下を使う。

**正解率(Accuracy)**は最もシンプルで、全予測のうち正解した割合だ。ただし、クラスごとのサンプル数に偏りがあると実態を正確に反映しない。田んぼが少ない都市部のデータでは「田を全部宅地と予測してもAccuracyが高くなる」という落とし穴がある。

**混同行列(Confusion Matrix)**は、どのクラスをどのクラスと間違えたかを一覧できる。「山林を雑種地と間違えやすい」「畑と田を混同しやすい」といったモデルの弱点が可視化される。

F1スコアは適合率と再現率を組み合わせた指標で、サンプル数の偏りに強い。クラスごとに計算することで、どの地目の予測が不安定かを把握できる。

奈良市データでの検証では、宅地・公衆道路の識別精度は高い一方、「雑種地」はその定義の曖昧さから他クラスとの混同が起きやすかった。これは地目定義そのものが持つ揺れを反映している——AIの問題ではなく、教師ラベルの曖昧さがそのまま出力に現れた形だ。


5. 予測が「使える」条件とは

モデルの精度がどれだけ高くても、予測が実務で使えるかどうかは別の話だ。

対象地域と学習データの一致が最も重要な条件だ。奈良市で学習したモデルは奈良市の地形・土地利用パターン・空中写真の色調に最適化されている。浜松市に適用しようとすれば、気候・植生・都市構造の違いから精度が落ちる。他自治体への展開には、その地域のデータで追加学習(ファインチューニング)するか、新たに教師データを作り直す必要がある。

撮影時期の一致も見落とされやすい点だ。夏の空中写真で学習したモデルに冬の写真を入力すると、植生の色調変化がノイズになる。季節ごとのモデル管理、または季節をまたいだ教師データの充実が長期運用には欠かせない。

地目変更のタイムラグにも注意が必要だ。AIは空中写真の「今の見た目」で判定する。一方、登録地目は申告ベースで更新が追いつかないケースが多い。このギャップを「不一致」として検出することがこのシステムの価値でもあるが、「AIが間違えた」のか「登録地目が古い」のかを区別できる仕組みを運用側で持っておく必要がある。


6. 他自治体への展開という視点

このプロジェクトの構成は、最初から他自治体への展開を見据えたテンプレート設計になっている。奈良市のデータ部分を差し替えるだけで、別の自治体に同じ処理パイプラインを適用できる。

実際に展開を進めようとすると、各自治体でデータ形式・座標系・地目コード体系が微妙に異なることに直面する。この「前処理の標準化」こそが、横展開を加速する上での最大のボトルネックだ。QGISを用いた手動確認フローをどこまで自動化できるか——ここに今後の技術的な課題が集中している。

固定資産税業務、農地管理、都市計画、空き家対策——地目情報を必要とする行政業務は広い。学習済みモデルの更新サイクルと、自治体ごとの現場ニーズをどう結びつけるか。予測の精度を上げることと同じくらい、運用設計の精度を上げることが、このシステムを社会実装につなげる鍵になる。


まとめ:教師データは「投資」である

教師データの作成に費やした時間は、モデルが予測を出し続ける限り回収され続ける。位置合わせの確認、現況照合、不一致の除去——その一つひとつが、モデルの判断品質として積み重なっている。

予測フェーズで出力されるGeoJSONの一行一行の裏に、地図と向き合った人間の判断が刻まれている。AIが高精度に動くとき、その信頼性の源泉は教師データの質だ。

学習が終わればAIが勝手に動く、という話ではない。正しく作られた教師データが、正しく予測するモデルを育てる——この原則は、地目分類に限らず、あらゆるAI実装に共通する真実だ。


関連タグ:#地目分類AI #教師データ #CNN #GIS #QGIS #PyTorch #オープンデータ #固定資産 #奈良市 #自治体DX #予測モデル

コメント

タイトルとURLをコピーしました