ドローンで撮った屋根の写真から、瓦のずれ・割れ、板金の浮き、雨どいの外れの候補を位置付きで拾い、点検報告書の下書きを作る
ドローンで撮った屋根の写真から、瓦のずれ・割れ、板金の浮き、雨どいの外れの候補を、写真上の位置付きで拾います。 点検者が確かめたものだけを使い、写真に枠を付けた点検報告書の下書きを作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 不動産/保険/建設
- 対象部門
- 品質管理
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 点検者がドローンで屋根を撮り、事務所で写真を共有ドライブの案件のフォルダに取り込む
- 写真を1枚ずつ拡大して見て、損傷らしいところをメモする
- 損傷の写真を選び、画像の編集ソフトで丸や矢印を付ける
- 報告書のひな形に、全景、損傷の写真、部位、損傷の種類、所見を書き込む
- 上長が報告書を見て、言い回しと写真の選び方を直す
- 営業担当が報告書を顧客に渡し、補修の提案をする
- 人点検者が写真を案件のフォルダに取り込み、案件番号と住所の照合の欄に印を付ける
- 自動写真の位置情報と案件の住所を照らし、別の現場の写真が混ざっていないかを確かめる
- 自動全景・面の写真と近接の写真を分け、近接の写真を重なりのあるタイルに切り出す
- 自動AIが写真ごとに4種類の損傷の候補と位置、見えない部分を返す
- 自動候補の位置を元の写真の座標に戻し、写真に枠を描いた確認用の一覧を作る
- 人点検者が候補ごとに「あり/なし/現地で確認」を付け、AIが拾っていない損傷があれば足す
- 自動「あり」としたものだけで、部位・種類・写真・定型の所見を並べた報告書の下書きを作る
- 人点検者が所見を直し、上長が確かめて顧客に渡す
各工程の詳しい説明を読む
- 点検者がドローンで屋根を撮り、事務所で写真を共有ドライブの案件のフォルダに取り込む
- 写真を1枚ずつ拡大して見て、損傷らしいところをメモする
- 損傷の写真を選び、画像の編集ソフトで丸や矢印を付ける
- 報告書のひな形に、全景、損傷の写真、部位、損傷の種類、所見を書き込む
- 上長が報告書を見て、言い回しと写真の選び方を直す
- 営業担当が報告書を顧客に渡し、補修の提案をする
(a)見直しに時間がかかる。 60枚を超える写真を拡大して見るのは、1件あたり30分以上かかります。棟板金の釘の浮きや瓦の細い割れは、拡大しないと見えません。
(b)見落としと書き方が点検者で違う。 雨どいを見る点検者と見ない点検者がいて、所見の書き方も「やや浮きあり」「浮きが見られる」とまちまちです。顧客から「前回の報告書と書き方が違う」と言われることがあります。
(c)言い回しが強くなりがち。 補修の提案につなげたい気持ちから、「早急な対応が必要」のような言葉が入ることがあり、上長がそこを直すのに時間を使っています。 点検商法と受け取られる報告書は、会社の信用を落とします。
(d)前回との比較ができない。 定期点検では「前回からあった損傷か、今回新しく出たものか」が大事ですが、前回の報告書の写真を探して見比べる時間が取れません。 管理会社からは、損傷が進んでいるかを知りたいと言われています。
- 【人】 点検者が写真を案件のフォルダに取り込み、案件番号と住所の照合の欄に印を付ける
- 【自動】 写真の位置情報と案件の住所を照らし、別の現場の写真が混ざっていないかを確かめる
- 【自動】 全景・面の写真と近接の写真を分け、近接の写真を重なりのあるタイルに切り出す
- 【自動】 AIが写真ごとに4種類の損傷の候補と位置、見えない部分を返す
- 【自動】 候補の位置を元の写真の座標に戻し、写真に枠を描いた確認用の一覧を作る
- 【人】 点検者が候補ごとに「あり/なし/現地で確認」を付け、AIが拾っていない損傷があれば足す
- 【自動】 「あり」としたものだけで、部位・種類・写真・定型の所見を並べた報告書の下書きを作る
- 【人】 点検者が所見を直し、上長が確かめて顧客に渡す
6番がこの構成の中心です。 点検者は60枚を全部拡大して見る代わりに、枠の付いた位置を順に見ていきます。 ただし、AIの候補に無い損傷を見落とさないように、面ごとの写真は縮小の一覧で全部に目を通します。
7番で報告書に載るのは、点検者が「あり」としたものだけです。 「現地で確認」としたものは、報告書には「写真では判断できないため、次回の訪問時に確認します」と書き、損傷とは書きません。
(d)の前回との比較は、AIではなく記録の突き合わせで行います。 前回の報告書で「あり」とした損傷を部位ごとに記録しておき、今回の候補と同じ部位にあれば「前回からあり」、無ければ「今回新たに」と確認用の一覧に付けます。損傷が進んだかどうかは、点検者が前回と今回の写真を並べて決めます。
02今回想定するシステム構成
点検者(ドローンで撮影 → 写真を取り込み) ▼ 共有ドライブの案件のフォルダ 【トリガー】点検者が案件の表の「AIで見る」に印 Python ├── 位置情報と案件の住所の照合 ├── 全景・面・近接の分類、タイルの切り出し、縮小 ├──▶ Gemini API ── 4種類の損傷の候補・位置(box_2d)・見えない部分 ▼ Python ── 座標を元の写真に戻し、枠を描く → 確認用の一覧 ▼ 【点検者が候補ごとに あり/なし/現地で確認】 ▼ Python ── 「あり」だけで報告書の下書き(写真・部位・種類・定型の所見) ▼ 【点検者が所見を直す → 上長が確認 → 顧客へ】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(屋根の写真から4種類の損傷の候補と位置を返す) | Claude API、OpenAI API |
| 連携 | Python(写真の照合と切り出し、呼び出し、枠の描画、確認用の一覧と報告書の下書き) | Google Apps Script |
| 保管 | 共有ドライブ(案件ごとの写真と報告書) | 社内のファイルサーバー |
| 撮影 | 点検用のドローン(静止画、位置情報付き) | 高所カメラ |
写真を見る土台は、Gemini API の画像理解です。 対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示などを含めたリクエスト全体が20MBまでです。大きいファイルや、同じ画像を何度も使う場合は Files API を使うよう案内されています。
位置は box_2d で返させます。 形は [ymin, xmin, ymax, xmax] で、0から1000に正規化された座標です。公式の説明のとおり、元の画像の大きさに合わせて戻す必要があります。この座標に枠を描くことで、点検者が写真のどこを見ればよいかが一目で分かります。
細かい損傷を見るために、写真の扱い方を決めておきます。 384ピクセル以下の画像は258トークン、それより大きい画像は768×768のタイルに分けて、1タイル258トークンで数えられます。Gemini 3 では media_resolution で1枚あたりのトークンの上限を決められ、高くすれば細部を拾いやすくなる代わりに、トークンと待ち時間が増えます。 近接の写真は自分たちで重なりのあるタイルに切り出してから渡し、瓦の細い割れが縮小で潰れないようにします。
03どうやって実装するのか
処理の起点を決める
点検者が案件の表で「AIで見る」に印を付けたときに動かします。 写真の取り込みは、点検者が事務所に戻ってから、まとめて行います。フォルダへの保存で自動に動かすと、取り込みの途中の写真で候補が作られます。
Python のプログラムは、案件の表を数分ごとに見て、印の付いた案件を拾います。処理が終わったら印を「処理済み」に変え、確認用の一覧の場所を同じ行に書きます。 失敗したときは「失敗」とし、理由を書きます。
台風の後のように件数が集中するときは、拾う順番を受付の順にします。 同じ点検者の案件がまとまって処理されると、その点検者の確認だけが詰まるためです。
撮り直した写真は、同じ案件のフォルダの「撮り直し」に入れ、印を付け直して動かします。 そのときは撮り直しの写真だけを処理し、点検者がすでに判断を付けた候補はそのまま残します。 全部をやり直すと、確かめ終えた候補の判断が消え、同じ写真を二度見ることになります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 屋根の写真 | 全景、面ごとの斜めの写真、棟・谷・軒先・雨どいの近接の写真。撮影日時と位置情報 | 案件のフォルダ |
| 案件の情報 | 案件番号、住所と緯度経度、屋根材の種類(粘土瓦・セメント瓦・スレート・金属)、点検の理由(定期・台風の後など) | 案件の表 |
| 前回の点検 | 前回の報告書で「あり」とした損傷と、その写真 | 過去の報告書の記録 |
| 所見の定型文 | 損傷の種類ごとの言い回し | 所見の定型文のシート |
質を決めるのは、屋根材の種類です。 粘土瓦とスレートでは、「割れ」の見え方も、板金の付き方も違います。屋根材をAIに渡すと、スレートの重なりの段差を「ずれ」と答えるような取り違えが減ります。
前回の点検の結果は、AIに渡しません。 「前回は棟板金の浮きあり」と渡すと、AIは今回もそこに浮きを見つけようとします。前回との比較は、AIの答えが出た後に Python が部位で突き合わせ、「前回からあり」「今回新たに」を確認用の一覧に付けます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 写真 | 案件のフォルダ | AIに渡す |
| 位置情報・撮影日時 | 写真の Exif(撮影の情報) | 現場の照合、写真の並べ替え |
| 屋根材・住所 | 案件の表 | AIへの補足、照合 |
| 前回の「あり」 | 過去の報告書の記録 | 答えが出た後の比較 |
写真の位置情報で、別の現場の写真が混ざっていないかを確かめます。 写真の緯度経度と案件の緯度経度の距離が一定の範囲(例:50m)を超える写真は処理せず、点検者に返します。別の家の屋根の写真が報告書に入ることは、点検商法と同じ結果を生みます。 位置情報の無い写真も、同じく点検者に返します。
照合の距離は、緯度経度の2点の距離として Python で計算します。 屋根の写真は真上や斜め上から撮るので、写真の位置は建物の位置から数十m離れることがあります。範囲を狭くしすぎると正しい写真まで返されるので、最初の1か月は点検者に返した写真の数を見て範囲を決めます。 撮影日時も見て、点検の予定日と違う日の写真が混ざっていれば同じく返します。
写真は、案件ごとにまとめて送らず、1枚またはタイルごとに送ります。 リクエスト全体20MBの上限があるうえ、1回に多くの写真を入れると、どの写真のどこかの対応が崩れやすくなるためです。
AIへ渡す前に整形する
- 現場の照合 … 位置情報と案件の住所を照らし、範囲外・位置情報なしの写真を外します
- 写真の分類 … 撮影の高さと向きの情報、または写真の大きさの並びから、全景・面の写真・近接の写真に分けます
- 写りの確認 … ぶれた写真、逆光で屋根が黒くつぶれた写真を「撮り直し」にします
- タイルの切り出し … 近接の写真を、2割ほど重なるタイルに切り出します。タイルごとに元の写真での位置を覚えておきます
- 周囲の写り込みの扱い … 隣の家の窓や庭、人が大きく写った部分は、屋根の範囲の外を塗りつぶしてから送ります
- 大きさの調整 … 面の写真は長辺を縮めて送ります。全景は報告書に使うだけで、AIには送りません
4番の重なりは、タイルの境目にある割れを落とさないためです。 重なった部分で同じ損傷が2回拾われるので、元の写真の座標に戻したあと、枠の重なりが大きいものを1つにまとめます。
5番は、この題材で欠かせません。 ドローンで上から撮ると、隣の家の敷地や人が写り込みます。 点検に要るのは対象の屋根だけなので、屋根の外はAIに送りません。
AIに処理させる
させるのは、写真(またはタイル)ごとに、4種類の損傷の候補を返すことだけです。
| 種類 | 答え方 | 判断できないときの扱い |
|---|---|---|
| 瓦のずれ(スレートの浮き・ずれを含む) | 候補ごとに box_2d と confidence(high/low) | 影・苔で見分けられなければ uncertain |
| 瓦の割れ・欠け | 同上 | 細すぎて判断できなければ uncertain |
| 板金の浮き(棟板金・谷板金、釘の浮きを含む) | 同上 | 斜めの写真で高さが分からなければ uncertain |
| 雨どいの外れ・たわみ | 同上 | 軒の陰で見えなければ not_visible |
写真ごとに、4種類のうちどれが「見えていない」かも返させます。 雨どいが写っていない写真で「雨どいの外れなし」と扱うと、見ていない部位が「異常なし」として報告書に載ります。 見えていない部位は、Python が案件全体で集計し、どの写真でも見えていない部位を「未確認の部位」として点検者に示します。
| させないこと | 理由 |
|---|---|
| 補修の要否と緊急度の判断 | 点検者が現地の状況と合わせて決める |
| 雨漏りの原因の推定 | 写真の外装からは決められない |
| 劣化の年数や残りの寿命の推定 | 根拠を示せない |
| 台風などの災害による損傷かの判断 | 保険金の請求に関わる。点検者と保険会社が決める |
| 隣の家や人についての記述 | 点検に要らない |
4行目は、保険の請求に関わる場面で特に起きやすい失敗です。 「台風による飛散と考えられる」と書かれた報告書は、顧客がそのまま保険の請求に使います。 国民生活センターも、保険金を利用できるというトークに気をつけるよう呼びかけています。原因の判断は、AIにも報告書の定型文にも持たせません。
指示内容を固定する
あなたは、ドローンで撮った住宅の屋根の写真を見て、損傷の候補を書き出す立場です。
写真に見えるものだけを答えてください。
【この屋根の情報】屋根材:{roof_material} 写真の種類:{photo_kind}
【損傷の種類】
tile_shift(瓦のずれ。スレートの浮き・ずれを含む)
tile_crack(瓦の割れ・欠け)
flashing_lift(棟板金・谷板金の浮き、釘の浮き)
gutter_detach(雨どいの外れ・たわみ)
【答えること】
- 候補ごとに:type、box_2d、confidence(high / low)、見えたものを短く note に
- 種類ごとに、この写真で見えているか:visible / not_visible
- 影・苔・汚れ・瓦の重なりの段差と見分けられないものは、type を書いて uncertain にしてください
【厳守事項】
- 損傷かどうかはっきりしないものを、high にしないでください。
- 補修が要るか、急ぐかを書かないでください。
- 原因(台風、経年など)を推測して書かないでください。
- 写真に写っていない部位について、「異常なし」と書かないでください。not_visible にしてください。
- 隣の家、庭、人について何も書かないでください。
- 「危険」「早急」「深刻」などの言葉を使わないでください。
「影・苔・汚れと見分けられないものは uncertain」を明記しないと、AIはどちらかに寄せます。 屋根の写真では、瓦の重なりの影が割れの線に、苔の筋がずれの段差に見えることがあります。見分けられないことを答えにできる欄を作り、点検者の確認に回します。
「危険」「早急」を禁じる行は、(c)への答えです。 AIの note は確認用の一覧にしか出ませんが、点検者が所見を書くときに、そのまま写すことがあります。 強い言葉が入口で入らないようにしておきます。
出力形式を固定する
構造化出力で、写真(タイル)ごとに次の形のJSONを受け取ります。
{
"photo_id": "R0412-037",
"tile": { "x": 0, "y": 0, "w": 0, "h": 0 },
"visibility": { "tile_shift": "visible", "tile_crack": "visible",
"flashing_lift": "visible", "gutter_detach": "not_visible" },
"findings": [
{ "type": "tile_shift | tile_crack | flashing_lift | gutter_detach",
"box_2d": [0, 0, 0, 0],
"confidence": "high | low | uncertain",
"note": "" }
]
}
種類と確からしさを enum にして、決めた値以外を返させません。 Gemini API の構造化出力は、/v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定し、enum と required が使えます。ただし、JSONとして正しくても値が正しいとは限らないため、アプリケーションの側で値を確かめるよう案内されています。 Python で、box_2d が0〜1000の範囲にあり、ymin が ymax より小さいか、4種類の visibility がそろっているかを確かめ、外れたものは「確認が要る」にします。
tile は Python の側で付けます。 タイルの位置と box_2d から、元の写真のピクセルの座標を計算します。計算は次のとおりです。
| 求める値 | 計算 |
|---|---|
| 元の写真での左端 | tile.x + xmin ÷ 1000 × tile.w |
| 元の写真での上端 | tile.y + ymin ÷ 1000 × tile.h |
| 右端・下端 | xmax・ymax で同じように計算する |
縮めてから送った面の写真は、縮める前の大きさで戻します。 縮小の倍率を覚えておかないと、枠が写真の左上に寄って描かれます。枠を描いたら、確からしさが high の枠は太い線、low と uncertain は点線にし、点検者が見る順番の目安にします。
確認用の一覧は、候補ごとに次のように並べます。
| 写真 | 部位の候補 | 種類 | 確からしさ | 前回 | 点検者の判断 |
|---|---|---|---|---|---|
| R0412-037(枠付き) | 南面・棟 | 板金の浮き | high | 前回からあり | あり/なし/現地で確認 |
| R0412-052(枠付き) | 北面・軒先 | 瓦の割れ | uncertain | - | あり/なし/現地で確認 |
| (案件全体) | 東面の雨どい | - | - | - | 未確認の部位(撮り直しか現地で確認) |
報告書の下書きは、点検者が「あり」としたものだけで作ります。 所見は種類ごとの定型文から入れます。例えば板金の浮きなら「写真の枠内に、棟板金の浮きが見られます」とし、原因や緊急度の言葉は定型文に入れません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件の表 | Python からの読み書き | 印の検知、処理の状態、一覧の場所 |
| 共有ドライブ | Python のファイルの読み書き | 写真の取り出し、枠付きの写真と一覧の保存 |
| Gemini API | Python からの HTTP 呼び出し | 4種類の損傷の候補と位置 |
| 報告書のひな形 | Python での文書の作成 | 「あり」だけで下書きを作る |
顧客には、この構成から何も送りません。 報告書は下書きとして案件のフォルダに置き、点検者と上長の確認の後に、営業担当が渡します。
元の写真は書き換えません。 枠を描いた写真は別のファイルとして保存し、報告書には枠付きの写真と、枠の無い同じ写真の両方を載せられるようにします。 顧客が自分の目で同じ場所を見られることが、報告書の信頼につながります。
APIキーは、プログラムの外の設定に置き、コードに書きません。
人が確認する
すべての候補と報告書を、点検者が確かめます。 見る順番を決めておきます。
- 「未確認の部位」を最初に見る … 撮り直すか、次の訪問で現地を見るかを決めます。報告書に「異常なし」と書かれないようにするためです
- 確からしさが high の候補を見る … 枠の位置を拡大して確かめ、「あり/なし」を付けます
- uncertain と low の候補を見る … 写真で決められないものは「現地で確認」にします
- 面ごとの縮小の一覧に目を通す … AIが拾っていない損傷があれば、枠を描いて足します
- 上長が報告書の写真と所見を照らす … 所見の言葉が写真で確かめられる範囲を超えていないかを見ます
4番を省かないでください。 AIの候補だけを見る運用にすると、AIが拾えない種類の損傷は、報告書から消えます。 縮小の一覧は、1面あたり数十秒で見られる大きさにしておきます。
目標は、1件をならして20分です。 候補が数個の屋根は10分ほどで終わります。「なし」を付ける候補が半分を超える案件が続くなら、屋根材の補足か撮り方の決まりが合っていません。 そのときは、どの種類の候補で「なし」が多いかを数えてから直します。
点検者が「なし」とした候補も記録に残します。 どの種類で、どんな写り方のときにAIが誤るかが分かり、撮り方の決まりと指示の見直しの材料になります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 位置情報が無い、または案件の住所から離れている写真 | 処理せず点検者に返す。別の現場の写真が混ざっている可能性を先に疑う |
| ぶれ・逆光で屋根が見えない写真 | 「撮り直し」にし、AIに送らない |
| 1枚の写真がリクエストの上限を超える | 縮めるか、タイルに切ってから送る |
4種類の visibility がそろっていない答え | もう一度だけ送り、再びそろわなければ「確認が要る」 |
| 候補が1枚に極端に多い | 苔や汚れの多い屋根の可能性。写真ごと「確認が要る」にする |
| 屋根に雪・落ち葉が積もっている | 覆われた部分は not_visible になる。未確認の部位として扱い、時期を改めて撮る |
| 太陽光パネルが屋根の大半を覆う | パネルの下の瓦は見えない。パネルの点検はこの構成の対象外と一覧に出す |
| どの写真でも見えていない部位がある | 「未確認の部位」として一覧の先頭に出す |
| APIが応答しない | 少し待って再試行。続けて失敗したら案件を「失敗」にし、点検者が手で見る |
1行目がいちばん大事です。 写真の取り込みの取り違えは、AIの精度とは関係なく起きます。別の家の損傷が報告書に載ることは、どの誤りより重いので、最初の照合で止めます。
記録を残す
- 案件ごとの元の写真、枠付きの写真、確認用の一覧
- AIに送ったタイルの位置と、返ってきたJSON
- 現場の照合で外した写真と、その理由
- 点検者の判断(あり/なし/現地で確認)と、点検者が足した損傷
- 報告書の下書きと、上長が直した点
- 前回の点検との比較の結果(前回からあり・今回新たに)
点検者の判断とAIの候補を並べて残すことで、AIの癖が見えます。 「スレートの屋根では、ずれの候補の多くが『なし』になる」のような傾向は、屋根材ごとの指示の書き分けに使えます。
写真と報告書を残す期間は、顧客との約束と社内の規程で決めます。 次回の点検で前回と比べるためには、「あり」とした損傷の写真が残っている必要があります。前回との比較に使う写真と、使わない写真を分けて、使わない写真から先に消すと、保管の量を抑えられます。
04実装レベルの3段階
最小構成では件数がさばけません。 1枚ずつ入れるので、確かめるための段階です。 半自動化で、1件70分が45分程度になります。 候補は一覧に並びますが、位置の枠が無いので、点検者は写真を開いて場所を探すことになります。本格構成で20分になり、この段階が本記事の想定です。 差が大きいのは、枠の描画と、報告書への写真の貼り付けが自動になるからです。 現場の照合は、半自動化の段階から入れてください。 精度より先に守るべきものだからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、AIが空振りしやすい屋根材と写真の撮り方が分かります。枠の描画や報告書の下書きを作り込む前に、撮影の決まりと指示を直しておくほうが、本格構成に進んでからの手戻りが減ります。台風の後の繁忙期に初めて本格構成を動かすことも避けます。
05工数削減シミュレーション
導入後 90件 × 20分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 屋根の点検をドローンで行い、1件あたり数十枚から百枚を超える写真を、点検者が事務所で1枚ずつ見直して報告書にまとめているリフォーム会社・屋根工事会社。管理物件の屋根を定期に点検する不動産管理会社、台風の後に多くの点検の依頼が集まる会社。報告書の書き方が点検者ごとに違い、写真のどこを見ればよいかが顧客に伝わりにくい場合。
- 点検が月に数件で、点検者が写真を見ながら報告書を書いて足りる場合。屋根に上っての目視・打診を点検の中心にしている場合(写真に写らない劣化を見る点検です)。陸屋根の防水層や太陽光パネルの点検が中心の場合(見る損傷の種類が違います)。なお、補修の要否と工事の範囲の判断、雨漏りの原因の特定、保険金の支払いの対象になるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の点検から5件を選ぶ(損傷のあった屋根と、無かった屋根の両方)
- 1件あたり、損傷が写っている写真と写っていない写真を5枚ずつ選ぶ
- 手元の Gemini アプリに写真を1枚ずつ入れ、「この屋根の写真から、瓦のずれ・割れ、板金の浮き、雨どいの外れの候補を、写真のどのあたりかとあわせて書き出してください。見分けられないものは見分けられないと書いてください」と指示する
- 当時の報告書の判断と突き合わせる
損傷の無い写真も必ず入れてください。 確かめたいのは、AIが拾うかだけでなく、影や苔を損傷と答えないかです。
| 出てきた内容 | 判断 |
|---|---|
| 当時の報告書の損傷を拾い、損傷の無い写真で空振りが少ない | タイルの切り出しと位置の返却に進む |
| 影や苔を損傷と答える | 屋根材の補足と「見分けられないものは uncertain」の指示で直るかを試す |
| 細い割れや釘の浮きを拾えない | 写真の大きさの問題。 近接の撮り方か、タイルの切り出しを先に考える |
3行目は、撮り方を見直す材料です。 近接の写真の高さや角度を決めておくと、AIにも人にも見やすい写真になります。
試すときは、屋根材ごとに結果を分けて見てください。 粘土瓦ではよく拾えても、スレートでは空振りが多い、ということが起きえます。その場合は屋根材ごとに指示を書き分けるか、まず得意な屋根材から使い始めます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 影・苔・瓦の段差を損傷と答える | 屋根材を補足し、見分けられないものは uncertain にさせる |
| 細い割れや釘の浮きを拾えない | 近接の写真をタイルに切り出し、高い解像度で送る |
| 枠の位置が写真とずれる | box_2d は0〜1000の正規化。タイルの位置と元の大きさで戻す |
| タイルの境目で同じ損傷が2つ出る | 元の座標に戻してから、重なりの大きい枠を1つにまとめる |
| 写っていない雨どいが「異常なし」になる | visibility を必須にし、未確認の部位を一覧の先頭に出す |
| 別の現場の写真が混ざる | 位置情報と案件の住所の照合で止める |
| 所見に強い言葉が入る | AIの指示と定型文の両方で禁じ、上長が確かめる |
| 原因(台風など)を書いてしまう | AIにも定型文にも持たせない。保険の請求の判断は別に行う |
| 隣の家や人が写り込む | 屋根の外を塗りつぶしてから送る |
| 縮めた写真の枠が左上に寄る | 縮小の倍率を覚えておき、元の大きさで戻す |
| 撮り直しで判断済みの候補が消える | 撮り直しの写真だけを処理し、判断済みの候補は残す |
上の2行が、精度の問題のほとんどです。 誤検出と見逃しは表裏で、写真の撮り方とタイルの大きさを合わせることで、両方が減ります。
別の現場の写真、強い言葉、原因の記載、写り込みの4行は、精度より先に守るべきものです。 どれも、報告書が顧客に誤った印象を与える経路です。点検商法と受け取られない報告書であることを、設計の段階で決めておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の住所と緯度経度、住宅の屋根の写真(周囲の家や人が写り込むことがある)、点検の結果と報告書です。
- 屋根の外をAIに送らない … 隣の家の敷地や人は点検の対象ではありません。屋根の範囲の外を塗りつぶしてから送ります
- 有料の利用枠で使う … Gemini API の規約では、無料の枠(Unpaid Services)に送った内容は製品の改善に使われることがあり、人が読むこともあるとされ、機密や個人の情報を送らないよう求めています。 住所と結び付いた住宅の写真を扱うため、有料の枠(Paid Services)を前提にします
- 報告書を顧客へ自動で渡さない … 点検者の確認と上長の確認を経た報告書だけを、営業担当が渡します
- AIの候補を損傷と書かない … 報告書に載せるのは点検者が「あり」としたものだけです。「現地で確認」は損傷として扱いません
- 補修と保険の判断を代替しない … 補修の要否、工事の範囲、災害による損傷かどうかは、点検者・顧客・保険会社が決めることです。 この構成が出すのは、写真に写った損傷の候補と、点検者が確かめた事実です
- ドローンの飛行の手続きを守る … 住宅地での点検は特定飛行に当たることが多く、許可・承認の手続きや飛行の条件を満たしたうえで撮った写真だけを扱います
- 点検の前に、撮る範囲を顧客に伝える … 屋根の上から撮ると、顧客の敷地の様子も写ります。どの範囲を撮り、写真をどう使い、いつまで残すかを、点検の申込みの時点で伝えておきます
誤りが起きた場合のリスクは、損傷でないものを損傷として示すこと、損傷を見落とすこと、別の家の写真を載せることの3つです。最初の1つと最後の1つは、点検商法と同じ結果を顧客にもたらします。候補と事実を分けること、現場を照合すること、強い言葉を入れないことの3つを、設計で守ります。
10まず何から始めるか
1週目:撮影の決まりを決める
全景、面ごとの斜めの写真、棟・谷・軒先・雨どいの近接の写真を、どの高さと向きで、何枚撮るかを決めます。写真の位置情報を残す設定も確かめます。決まりは1枚の紙にまとめ、点検者がドローンの操作の前に見返せるようにします。 隣の家の窓が写りにくい向きも、ここで決めておきます。
2週目:5件で試す
先月の点検から5件を選び、損傷のある写真と無い写真を手元の生成AIに入れます。影や苔を損傷と答えないか、細い割れを拾えるかを最優先で見ます。
3週目:所見の定型文を決める
損傷の種類ごとに、報告書に書く言い回しを決めます。原因・緊急度・不安をあおる言葉を入れないことを、上長と点検者で確かめ合います。
4週目:Python で候補の一覧までをつなぐ
現場の照合、写真の分類、タイルの切り出し、Gemini API の呼び出し、枠付きの確認用の一覧までを作ります。この時点では報告書の下書きを作らず、点検者の判断とAIの候補の一致を見ます。
2か月目: 報告書の下書きと前回との比較を足します。点検者が「なし」とした候補の割合を屋根材ごとに数えます。3か月目以降: 1件70分が何分になったかを実測します。台風の後の月にも報告書が数日以内に出せ、上長が言葉を直す場面がほとんど無くなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。直接入れる場合はリクエスト全体が20MBまでで、大きいファイルは Files API を使うこと。box_2d が [ymin, xmin, ymax, xmax] で0〜1000に正規化され、元の大きさに戻す必要があること。384ピクセル以下は258トークン、それより大きい画像は768×768のタイルごとに258トークンであること。media_resolution で1枚あたりのトークンの上限を決めること | Google AI for Developers: Image understanding | 2026-10-14 |
構造化出力を /v1beta/interactions の response_format で指定し、enum・required が使えること。値はアプリケーションで確かめるよう案内されていること | Google AI for Developers: Structured outputs | 2026-10-14 |
| 無料の枠に機密・個人の情報を送らないよう求め、有料の枠ではプロンプトと回答を製品の改善に使わないこと | Gemini API Additional Terms of Service | 2026-10-14 |
| 人口集中地区の上空、夜間、目視外、人又は物件から30mの距離を取らない飛行などが特定飛行に当たり、基本的に飛行の許可・承認の手続きが必要なこと | 国土交通省: 無人航空機の飛行許可・承認手続 | 2026-10-14 |
| 屋根工事の点検商法の相談が増えていること。相談事例にドローンで撮影したという写真を見せられて契約した例があること。保険金を利用できるというトークに気をつけるよう呼びかけていること | 国民生活センター: 屋根工事の点検商法のトラブルが増えています | 2026-10-14 |
ドローンの飛行の手続きは、機体・操縦者・飛行の場所と方法で変わります。 本記事は国土交通省のページで確認できた範囲だけを扱っています。実際の飛行の前に、最新の手続きを確かめてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1492)についてのご相談はこちらから。
