画像解析からVLM活用まで
GISとAIを組み合わせることで、従来は不可能だった高度な空間分析が可能になります。
このガイドでは、衛星画像解析、VLM(Vision Language Model)活用、ローカルAI連携など、GIS×AIの実践的な手法を解説します。
1. GIS×AIでできること
1.1 従来GISの限界
従来のGISでできること
- 地図表示・重ね合わせ
- 空間検索・分析
- 属性データの管理
- 手動での分類・ラベリング
従来のGISの限界
- 大量画像の手動分類は困難
- 写真からの情報抽出は人力頼み
- パターン認識は属人的
1.2 AIで広がる可能性
【従来】 【GIS×AI】 衛星画像を目視で確認 → AIが自動で土地利用を分類 現場写真を1枚ずつ整理 → AIが写真から情報を抽出 地図を見て手動で判断 → AIがパターンを認識 人手では限界があった作業が自動化・効率化
1.3 活用分野の全体像
| 分野 | GIS×AI活用例 |
|---|---|
| 測量・土木 | 点群データの自動分類、変化検出 |
| 農林業 | 作物分類、森林変化検出、獣害予測 |
| 防災 | 被害状況の自動把握、リスク予測 |
| 都市計画 | 土地利用分類、建物検出 |
| 環境 | 植生分析、水域変化検出 |
2. 画像解析×GIS
2.1 衛星画像の解析
できること
- 土地利用分類(農地、森林、市街地など)
- 変化検出(時系列比較)
- 植生指数(NDVI)の算出
- 災害被害の把握
使用データ
| データソース | 解像度 | 費用 | 特徴 |
|---|---|---|---|
| Sentinel-2 | 10m | 無償 | ESA提供、更新頻度高 |
| Landsat | 30m | 無償 | NASA/USGS、長期アーカイブ |
| ALOS | 2.5〜10m | 有償/一部無償 | JAXA、日本全国 |
| 商用衛星 | 0.3〜1m | 有償 | 高解像度 |
Python実装例(土地利用分類)
Python
import rasterio
from sklearn.ensemble import RandomForestClassifier
import numpy as np
# 衛星画像を読み込み
with rasterio.open('sentinel2.tif') as src:
bands = src.read() # (バンド数, 高さ, 幅)
# バンドデータを整形
X = bands.reshape(bands.shape[0], -1).T
# 学習済みモデルで分類
model = RandomForestClassifier()
# model.fit(X_train, y_train) # 事前に学習
predictions = model.predict(X)
# 結果をGeoTIFFで出力
classified = predictions.reshape(bands.shape[1], bands.shape[2])
2.2 ドローン空撮の活用
ドローン×GIS×AI
- オルソ画像の自動生成
- 3Dモデル(点群)の作成
- 対象物の自動検出
- 変化検出
ワークフロー
ドローン撮影
│
▼
SfM処理(PhotoScan, OpenDroneMap等)
│
├── オルソ画像
├── DSM(数値表層モデル)
└── 点群データ
│
▼
AI分析(物体検出、分類)
│
▼
GISで可視化・分析
2.3 画像分類・物体検出
画像分類:画像全体を「何か」に分類
- 例:この画像は「森林」「農地」「市街地」
物体検出:画像内の「どこに何があるか」を検出
- 例:この画像の座標(x,y)に「車」がある
活用例
| 対象 | 検出内容 | 用途 |
|---|---|---|
| 建物 | 屋根の形状、損傷 | 被災状況把握 |
| 車両 | 位置、台数 | 交通量調査 |
| 植生 | 種類、健康状態 | 森林管理 |
| インフラ | 劣化、異常 | 点検業務 |
3. VLM(Vision Language Model)活用
3.1 VLMとは
VLM(Vision Language Model)は、画像と言語を統合的に理解するAIモデルです。
できること
- 画像の内容を自然言語で説明
- 画像に関する質問に回答
- 画像から情報を抽出
代表的なVLM
| モデル | 提供元 | 特徴 |
|---|---|---|
| GPT-4V | OpenAI | 高精度、クラウド |
| Claude 3 | Anthropic | 高精度、クラウド |
| LLaVA | オープンソース | ローカル実行可 |
| Qwen-VL | Alibaba | 日本語対応 |
3.2 地図・図面の読み取り
活用例
- 古い紙図面のデジタル化支援
- 地図記号の自動認識
- 手書きメモの読み取り
- 図面からの寸法抽出
プロンプト例
プロンプト
この地図画像を見て、以下の質問に答えてください:
1. この地図はどの地域を示していますか?
2. 主要な道路や河川を特定してください。
3. 目立つランドマークはありますか?
3.3 現場写真の自動分析
活用例
- 現場状況の自動記録
- 設備・部品の識別
- 異常・損傷の検出
- 作業進捗の確認
実装例(Python + LLaVA)
Python
import requests
import base64
def analyze_image(image_path, prompt):
# 画像をBase64エンコード
with open(image_path, 'rb') as f:
image_base64 = base64.b64encode(f.read()).decode()
# VLMに問い合わせ
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': 'llava',
'prompt': prompt,
'images': [image_base64]
}
)
return response.json()['response']
# 現場写真を分析
result = analyze_image(
'site_photo.jpg',
'この写真の現場状況を説明してください。'
'特に、作業の進捗状況と安全上の問題があれば指摘してください。'
)
print(result)
3.4 ローカルVLMの構築
Ollamaでのローカル実行
Bash
# LLaVAモデルをダウンロード
ollama pull llava
# 画像を含む質問を実行
ollama run llava "この画像には何が写っていますか? /path/to/image.jpg"
必要スペック
| モデル | VRAM | メモリ |
|---|---|---|
| LLaVA 7B | 8GB以上 | 16GB以上 |
| LLaVA 13B | 12GB以上 | 32GB以上 |
4. ローカルAI×GIS
4.1 セキュアな環境での運用
ローカルAI×GISのメリット
- 機密性の高い地理データを外部に出さない
- オフライン環境でも動作
- 処理速度が安定(ネットワーク遅延なし)
構成例
【セキュアなGIS×AI環境】 ┌─────────────────────────────────────┐ │ 社内ネットワーク │ │ │ │ ┌─────────┐ ┌─────────┐ │ │ │ QGIS │ ←──→ │ ローカル │ │ │ │ ワーク │ │ LLM │ │ │ │ステーション│ │ (Ollama)│ │ │ └─────────┘ └─────────┘ │ │ │ │ │ ▼ │ │ ┌─────────┐ │ │ │ 社内 │ │ │ │ ファイル │ ← データは社内に留まる │ │ │ サーバー │ │ │ └─────────┘ │ └─────────────────────────────────────┘
4.2 オフライン現場での活用
ユースケース
- 山間部での現場作業
- セキュリティエリア内での作業
- 海外の通信環境が悪い現場
構成
- ノートPC + GPU(またはMacBook M1/M2/M3/M4)
- ローカルLLM(Ollama)
- QGIS + PyQGIS
- 必要なデータをローカルに保存
4.3 必要なハードウェア構成
モバイルワークステーション
| 項目 | 推奨スペック |
|---|---|
| CPU | Core i7-13700H以上 |
| メモリ | 32GB |
| GPU | RTX 4060以上(Laptop) |
| ストレージ | SSD 1TB |
| バッテリー | 大容量推奨 |
Mac(Apple Silicon)
- M1 Pro/Max以上を推奨
- メモリ32GB以上
- ローカルLLMも動作可能
5. 実践事例
5.1 森林管理×AI
課題
- 広大な森林の状況把握が困難
- 人手での巡回は時間がかかる
解決策
- 衛星画像で森林変化を検出
- ドローンで詳細確認
- AIで樹種・健康状態を分類
効果
- 監視コスト削減
- 早期の異常検知
5.2 災害・被害状況把握
課題
- 災害時に被害状況の把握が遅れる
- 現地確認に時間がかかる
解決策
- 衛星画像の変化検出で被災エリア特定
- ドローン画像からAIで被害判定
- GISで被害状況マップを自動生成
効果
- 初動対応の迅速化
- 被害全体像の早期把握
5.3 歴史地図アーカイブ
課題
- 古い紙地図のデジタル化
- 地図上の情報抽出
解決策
- 紙地図をスキャン
- VLMで地図記号・文字を読み取り
- GISに取り込んで現代地図と比較
miru-lab.jpでの取り組み
- 歴史地図のインタラクティブ表示
- 時系列での変化可視化
5.4 ローカルAI×GIS体験デモ
みるラボ(miru-lab.jp)では、ローカルAI×GISの体験デモを公開しています。
デモの特徴
- 完全ローカル:データ外部送信なし
- API費用ゼロ:ランニングコストなし
- 軽量動作:8GB RAMで動作
- LLM + VLM:テキスト&画像AI対応
機能紹介
| 機能 | 使用AI | 内容 |
|---|---|---|
| 用途地域判定マップ | Gemma 2(LLM) | 地図をクリックで用途地域を判定 |
| AIチャット | Gemma 2(LLM) | 土地・用途地域に関する質問に回答 |
| 写真解析 | Moondream 2(VLM) | 現地写真から建物・地物を説明 |
体験デモはこちら
5.5 野生動物被害マッピング
課題
- 獣害の発生状況が把握しにくい
- 対策の効果検証が困難
解決策
- 被害報告を位置情報付きで収集
- AIで被害パターンを分析
- GISで対策優先エリアを可視化
6. よくある質問(FAQ)
GIS×AIの導入に必要な技術スキルは?
段階的に習得できます。
- ステップ1:GISの基本操作(QGIS)
- ステップ2:Python基礎
- ステップ3:PyQGIS
- ステップ4:機械学習の基礎
- ステップ5:VLM/LLMの活用
精度はどれくらい出ますか?
タスクとデータ量によります。
| タスク | 一般的な精度 |
|---|---|
| 土地利用分類 | 80〜95% |
| 建物検出 | 85〜95% |
| 変化検出 | 75〜90% |
| VLM画像説明 | 定性的に良好 |
精度向上には学習データの質と量が重要です。
費用はどれくらいかかりますか?
構成によります。
| パターン | 費用目安 |
|---|---|
| 既存PC + オープンソース | ほぼ無償 |
| 新規PC購入 | 30〜100万円 |
| クラウドAI利用 | 月額数千〜数万円 |
| 開発委託 | 案件による |
7. 導入の進め方
7.1 PoC(実証実験)の進め方
ステップ1:課題の明確化
- 何を自動化・効率化したいか
- 現状の課題と目標を定義
ステップ2:データ準備
- 利用可能なデータを確認
- サンプルデータで検証
ステップ3:プロトタイプ作成
- 小規模なデータで動作確認
- 精度・処理速度を評価
ステップ4:評価・改善
- 結果を検証
- 課題を抽出して改善
7.2 本格導入へのステップ
【本格導入フロー】
1. PoCの成功を確認
│
2. 本番環境の構築
├── ハードウェア調達
└── ソフトウェア環境構築
│
3. 運用フローの設計
├── 入力→処理→出力のフロー
└── 人間によるチェックポイント
│
4. 担当者の教育
│
5. 段階的な展開
関連記事
