内装工事の会社が完了の写真を Gemini で見て、仕上げ表と照らした手直しの一覧と、施主への完了の報告書の下書きを作る
内装工事の完了のときに撮った部屋ごとの写真を Gemini API で見て、仕上げ表の面ごとに手直しの候補を枠つきで返します。職人に回す手直しの一覧と、施主への完了の報告書の下書きを作ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 不動産/小売/建設
- 対象部門
- 品質管理/営業
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 属人化している/書類作成に時間がかかる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 現場監督が事務所で工事のフォルダを開き、完了の写真を部屋ごとに並べ直す
- 仕上げ表を横に開き、どの写真がどの部屋のどの面かを見当をつける
- 写真を1枚ずつ拡大し、クロスの継ぎ目・浮き・汚れ、巾木のすき間、床の傷、プレートの傾きなどを探す
- 見つけた箇所を、写真の番号と部屋の名前を添えてチャットで職人に送る
- 手直しの後の写真が届いたら、どの指摘に対する写真かを探して見比べる
- 報告書の書式に、部屋ごとの写真と施工の内容、手直しの記録を貼り込む
- 上長が読み直し、施主に送る
- 人職人か現場監督が、部屋ごとに決まった撮り方で完了の写真を撮り、工事のフォルダの部屋ごとの置き場に入れる
- 自動写真がそろったことを合図に、サーバーが仕上げ表から部屋ごとの面の一覧を作る
- 自動写真の向きと大きさを整え、人の顔や私物の書類が写っていれば塗りつぶす
- 自動Gemini API が、部屋ごとに、面ごとの候補と枠、写っていない面を返す
- 自動サーバーが候補に番号を振り、写真に印を描いて、手直しの候補の一覧を作る
- 人現場監督が候補を写真で確かめ、「手直しする」「該当なし」を選び、写っていない面の撮り直しを頼む
- 自動「手直しする」になった候補を、職人ごとの手直しの一覧にしてチャットに送る
- 人職人が手直しをして、候補の番号を付けて後の写真を入れる
- 自動Gemini API が、候補ごとに前後の写真を見比べ、「直って見える」「まだ残って見える」「比べられない」を返す
- 人現場監督が前後の組を確かめ、報告書の下書きを読み直して上長に回す
各工程の詳しい説明を読む
- 現場監督が事務所で工事のフォルダを開き、完了の写真を部屋ごとに並べ直す
- 仕上げ表を横に開き、どの写真がどの部屋のどの面かを見当をつける
- 写真を1枚ずつ拡大し、クロスの継ぎ目・浮き・汚れ、巾木のすき間、床の傷、プレートの傾きなどを探す
- 見つけた箇所を、写真の番号と部屋の名前を添えてチャットで職人に送る
- 手直しの後の写真が届いたら、どの指摘に対する写真かを探して見比べる
- 報告書の書式に、部屋ごとの写真と施工の内容、手直しの記録を貼り込む
- 上長が読み直し、施主に送る
(a)写っていない面に気づかない。 3番目は、写っている傷を探す作業です。写真の中に天井や入口側の壁が一度も出てこない部屋があっても、そのことには気づきません。 引渡しの後に施主から「入口の上のクロスが浮いている」と言われて、初めてその面を誰も見ていなかったと分かります。
(b)見る目が監督ごとに違う。 継ぎ目の開きをどこから手直しとするか、コーキングのはみ出しをどこまで許すかは、監督の経験で決まっています。 同じ協力会社の職人が、監督によって指摘されたりされなかったりします。
(c)前後の写真がつながらない。 4番目で送った指摘に対して、職人は「直しました」と写真を何枚か返します。どの指摘の写真かは書かれていないことが多く、5番目で監督が写真の見た目から探して当てはめます。1件の工事で指摘が10か所を超えると、ここで時間がかかります。
(d)報告書づくりが最後にまとめて来る。 6番目は、写真を選んで貼り、施工の内容を仕上げ表から書き写す作業です。引渡しが月末に集中すると、監督は夜に報告書を作ることになります。
- 【人】 職人か現場監督が、部屋ごとに決まった撮り方で完了の写真を撮り、工事のフォルダの部屋ごとの置き場に入れる
- 【自動】 写真がそろったことを合図に、サーバーが仕上げ表から部屋ごとの面の一覧を作る
- 【自動】 写真の向きと大きさを整え、人の顔や私物の書類が写っていれば塗りつぶす
- 【自動】 Gemini API が、部屋ごとに、面ごとの候補と枠、写っていない面を返す
- 【自動】 サーバーが候補に番号を振り、写真に印を描いて、手直しの候補の一覧を作る
- 【人】 現場監督が候補を写真で確かめ、「手直しする」「該当なし」を選び、写っていない面の撮り直しを頼む
- 【自動】 「手直しする」になった候補を、職人ごとの手直しの一覧にしてチャットに送る
- 【人】 職人が手直しをして、候補の番号を付けて後の写真を入れる
- 【自動】 Gemini API が、候補ごとに前後の写真を見比べ、「直って見える」「まだ残って見える」「比べられない」を返す
- 【人】 現場監督が前後の組を確かめ、報告書の下書きを読み直して上長に回す
6番目と10番目が、この設計の分かれ目です。 AIが返すのは候補と見比べの結果までで、どれを手直しにするか、手直しが済んだとするかは監督が決めます。 監督の時間は、写真の中から傷を探す作業ではなく、印の付いた所を確かめる作業に移ります。
2番目で面の一覧を先に作るのも、意図してのことです。 AIに「傷を探して」とだけ頼むと、見つけたものしか返ってきません。仕上げ表から作った面の一覧を渡し、面ごとに答えさせることで、見ていない面が記録に残ります。
02今回想定するシステム構成
完了の写真(工事のフォルダの部屋ごとの置き場) ▼【トリガー】部屋の写真がそろった印 Python のサーバー ├── 仕上げ表から部屋ごとの面の一覧を作る ├── 写真の向き・大きさを整える、人の顔や書類を塗りつぶす ▼ Gemini API(画像の理解・構造化出力)── 部屋1つ分の写真と面の一覧 │ 面ごとの候補と枠、写っていない面 ▼ Python ── 候補に番号を振り、写真に印を描く ▼ 【人】現場監督が候補を確かめる → 手直しの一覧をチャットへ ▼ 手直しの後の写真(候補の番号つき) ▼ Gemini API ── 候補ごとに前後を見比べる ▼ 報告書の下書き(部屋ごとの施工内容、前後の写真の組) ▼ 【人】現場監督と上長が確かめる → 施主へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(部屋ごとの写真から面ごとの候補を返し、手直しの前後を見比べ、報告書の文の下書きを作る) | Claude API、OpenAI API |
| 連携 | Python(写真の受け取り、仕上げ表の読み取り、前処理、呼び出し、印の描画、報告書の組み立て) | Google Apps Script |
| 仕上げ表 | 工事ごとの仕上げ表と工事台帳(スプレッドシート) | - |
| 連絡 | 職人との連絡用のチャット | - |
新しく足すのは、Python のサーバーと Gemini API の契約です。 仕上げ表・工事台帳・報告書の書式は今のものを使い、写真の置き場を部屋ごとに分ける決まりだけを足します。
写真を見る土台は、Gemini API の画像の理解です。 公式の案内では、対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示の文や画像を合わせたリクエスト全体が20MBまでです。1回のリクエストに入れられる画像は最大3,600枚とされていますが、大きさの上限があるので、部屋1つ分ずつに分けて呼びます。
位置は枠で返させます。 枠は [ymin, xmin, ymax, xmax] の順で、画像の大きさに対して0〜1000に正規化され、元の大きさに戻して使うよう案内されています。サーバーが元の大きさに戻して写真に印を描きます。
出力は構造化出力で受けます。 /v1beta/interactions に送り、response_format で mime_type を application/json にし、schema にスキーマを入れます。文字列の enum、配列の minItems・maxItems が使えます。一方で minLength・maxLength は効かず、エラーにならずに外されるとされているので、文の長さはサーバーで見ます。値が正しいかはアプリ側で検証するよう公式に書かれています。
03どうやって実装するのか
処理の起点を決める
部屋の写真がそろったときに、部屋ごとに動きます。 写真を入れた人が、部屋の置き場に「そろった」の印のファイルを置くか、チャットで部屋の名前を送ると、サーバーがその部屋を処理します。写真が1枚入るたびに動かすと、まだ撮っていない面を「写っていない」と返し、撮り直しの依頼が無駄に飛びます。
手直しの後の写真は、別の合図で動きます。 職人が候補の番号を付けて後の写真を入れたら、その番号の候補だけを見比べます。番号の付いていない写真は見比べに回さず、現場監督に「どの候補の写真か」を聞く一覧に入れます。
1日に1回、写真がそろっていない部屋を数えます。 引渡しの予定日が近いのに「そろった」の印が無い部屋を、現場監督に知らせます。引渡しの前日に写真が足りないと分かる形を、ここで防ぎます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 完了の写真 | 部屋の四隅からの全体、天井、入口側、気になる所の近く | 工事のフォルダの部屋ごとの置き場 |
| 仕上げ表 | 部屋ごとの床・壁・天井・巾木・見切り・建具・器具の材料と品番 | 工事ごとのスプレッドシート |
| 工事の情報 | 工事の種類(原状回復・改装・リフォーム)、引渡しの予定日、担当の職人 | 工事台帳 |
| 面の一覧 | 仕上げ表から作った「部屋×面」の一覧(例:会議室の北の壁、会議室の天井) | サーバーが作る |
| 候補の種類の一覧 | クロスの継ぎ目の開き・浮き・しわ・汚れ・破れ、巾木・見切りのすき間、コーキングの切れ・はみ出し、床材の傷・すき間・段差に見える所、プレートの傾き、養生テープ・保護シートの残り、汚れ・手あと、器具の付け忘れに見える所 | サーバーに持たせる |
| 社内の手直しの基準 | どの見え方から手直しにするかの決まり(監督たちで書き出したもの) | スプレッドシート |
質を決めるのは、写真の撮り方と面の一覧です。 撮り方は「部屋の四隅から全体を1枚ずつ」「天井を1枚」「入口側の壁を1枚」「器具と建具の近くを1枚ずつ」と決め、写真のファイル名か撮る順番で、どの向きから撮ったかが分かるようにします。
面の一覧は、仕上げ表の行をそのまま使います。 壁が4面あっても仕上げ表に「壁:クロス」とだけあるなら、サーバーで東西南北に分けます。分けておかないと、AIは4面のうち1面だけを見て「壁は候補なし」と返せてしまいます。
データの取得方法を決める
写真と仕上げ表は、サーバーが工事のフォルダとスプレッドシートから読みます。 工事の番号でフォルダと仕上げ表の行を結び付け、部屋の名前は仕上げ表の書き方にそろえます。 写真の置き場の名前が「会議室」で仕上げ表が「会議室A」なら、対応の表で結び付けます。
Gemini API へは、部屋1つにつき1回、写真と面の一覧をまとめて渡します。 全体の写真と近くの写真を一緒に渡すと、近くの写真の傷が、どの面のものかを全体の写真と結び付けて返せます。 写真には番号と撮った向き(北東の隅から、天井、など)を添えます。
手直しの見比べでは、候補1つにつき前後の写真を1組ずつ渡します。 前の写真は候補の枠の付近を切り出したものと元の写真、後の写真は職人が撮ったものです。部屋全体を渡し直さないのは、ほかの面の新しい候補と混ざらないようにするためです。
有料の利用枠で使い、store を false にします。 Gemini API の規約では、有料のサービスではプロンプトと応答が製品の改善に使われないとされています。Interactions API は既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできると案内されています。store=false にすると前の回のやり取りを引き継ぐ使い方はできないので、呼び出しは毎回、必要な写真と一覧をそろえて送ります。
AIへ渡す前に整形する
- 向きの補正 … スマートフォンの写真の向きの情報で回転しているだけのものは、画素を回転させます
- 縮小 … 全体の写真は長い辺を1,600ピクセル程度に縮めます。近くの写真は、継ぎ目やすき間が分かるよう大きめに残します
- 塗りつぶし … 居住中のリフォームで写った住人の顔、机の上に残った書類、表札、窓の外の隣の建物の中を塗りつぶします
- 暗さとぶれの確認 … 照明が付いていない部屋の写真や、手ぶれの大きい写真は、AIに渡さずに撮り直しの候補にします
- 大きさの確認 … 部屋1つ分の写真と指示の文を合わせて20MBを超えないかを見ます。超えるときは、全体の写真と近くの写真を2回に分けます
- 面の一覧の付け足し … 仕上げ表から作った面の一覧と、写真の番号と向きの対応を指示の文に入れます
4番目を軽く見ないでください。 内装の完了のときは照明器具を付けたばかりで、電気が来ていない部屋で撮った写真が混ざります。 暗い写真では継ぎ目もすき間も分からず、AIは「候補なし」と返しがちです。暗い写真で「候補なし」と出ることが、いちばん危ない見落としです。
AIに処理させる
させるのは、面ごとに候補を枠で返すこと、写っていない面を返すこと、手直しの前後を見比べることだけです。
| 返すもの | 中身 | 判断できないときの扱い |
|---|---|---|
| 面ごとの状態 | 面の一覧の1行ずつに candidates(候補あり)/clear(候補なし)/not_visible(写っていない) | 一部しか写っていなければ partly_visible |
| 候補 | 写真の番号、枠、面、種類、見え方の短い説明 | 傷か光の反射か分からなければ unclear |
| 仕上げ表と見た目の違い | 「床はタイルカーペットの表なのに、木目に見える」のような、材料の種類の見た目の違い | 品番や色の違いは書かせない |
| 手直しの前後 | 候補ごとに fixed_looking(直って見える)/remaining_looking(まだ残って見える)/not_comparable(比べられない) | 角度や明るさが違えば not_comparable |
面ごとに clear と not_visible を分けて返させるのが、この構成の要です。 写っていない面を「候補なし」と同じに扱うと、第3章の(a)がそのまま残ります。 not_visible と partly_visible が1つでも残る部屋は、サーバーが報告書に進めず、撮り直しの依頼を出します。
| させないこと | 理由 |
|---|---|
| 手直しが必要かどうかの判断 | 社内の基準と施主との取り決めで決まる。規則と監督の側で決める |
| 品番や色の番号を写真から言い当てること | 写真の色は照明とカメラで変わる。品番は仕上げ表と納品書で確かめる |
| すき間や段差の寸法を数字で書くこと | 写真の角度で変わる。必要なら現地で測る |
| 下地の不具合、水漏れ、結露の原因を書くこと | 写真の表面からは分からない |
| 職人の腕や責任について書くこと | 手直しの一覧が職人への評価の文になってしまう |
| 施主への報告書で「問題ありません」と書くこと | 確かめたのは写真に写った範囲だけ |
1行目がいちばん起きやすい失敗です。 候補を返させると、AIは「早急に補修が必要です」「施工不良です」と書きたがります。その言葉が職人への一覧に入ると、監督が確かめる前に職人に責めの言葉が届きます。 返すのは見え方までにし、手直しにするかは、社内の基準の表とあわせて監督が決めます。
手直しの候補の付け方は、サーバーが次のように振り分けます。
| 振り分け | 付け方の例(監督たちで決める) |
|---|---|
| まず見る | 浮き・破れ・床材の傷・器具の付け忘れに見える所 |
| ふつう | 継ぎ目の開き・コーキングの切れ・巾木のすき間 |
| 掃除で済む見込み | 養生テープ・保護シートの残り、汚れ・手あと |
| 撮り直し | not_visible、partly_visible、unclear が残る面 |
指示内容を固定する
あなたは内装工事の会社で、工事の完了のときに撮った写真を見る手伝いをする係です。
この部屋の写真の番号と撮った向きは次のとおりです。
{1: 北東の隅から全体, 2: 南西の隅から全体, 3: 天井, 4: 入口側の壁, 5: コンセントの近く ...}
【この部屋の面の一覧】
{会議室A-床, 会議室A-北の壁, 会議室A-東の壁, 会議室A-南の壁, 会議室A-西の壁,
会議室A-天井, 会議室A-巾木, 会議室A-入口の建具, 会議室A-照明・スイッチ・コンセント}
【仕上げ表の材料の種類】{床: タイルカーペット, 壁: ビニルクロス, 天井: ビニルクロス ...}
【やること】
1. 面の一覧の1行ずつについて、candidates / clear / not_visible / partly_visible の
どれかを選ぶ。一覧にない面を足さない。一覧の面を飛ばさない。
2. 次の種類の候補を探し、写真の番号と枠を [ymin, xmin, ymax, xmax] の順で、
0〜1000 に正規化して返す。面と種類、見え方を短く書く。
クロスの継ぎ目の開き・浮き・しわ・汚れ・破れ、巾木・見切りのすき間、
コーキングの切れ・はみ出し、床材の傷・すき間・段差に見える所、
プレートの傾き、養生テープ・保護シートの残り、汚れ・手あと、
器具の付け忘れに見える所
3. 仕上げ表の材料の種類と、見た目の種類が違って見える面があれば書く。
【厳守事項】
- 写真に写っていない面を clear にしないでください。not_visible にしてください。
- 暗い写真、ぶれた写真だけで見た面は、partly_visible にしてください。
- 傷か光の反射か分からないものは、kind を unclear にして候補に入れてください。
- 手直しが必要か、施工不良か、補修の方法を書かないでください。
- すき間や段差の大きさを数字で書かないでください。
- 品番や色の番号を書かないでください。
- 職人の腕や責任について書かないでください。
- 人、書類、表札、窓の外については何も書かないでください。
「一覧の面を飛ばさない」「写っていない面を clear にしない」を並べているのは、どちらも同じ失敗を防ぐためです。 何も言わないと、AIは候補のあった面だけを返し、残りの面について何も言いません。 その沈黙をサーバーが「候補なし」と読むと、見ていない天井が報告書に「確認済み」と載ります。
手直しの前後の見比べは、別の指示で呼びます。 候補の番号、面、種類、前の写真の枠、後の写真を渡し、「前の枠の所の見え方が、後の写真で直って見えるか、まだ残って見えるか、比べられないかを選ぶ。後の写真がほかの場所を写していると思えば not_comparable にする」と指示します。「直りました」とは書かせず、見え方の比較だけを返させます。
報告書の文の下書きは、さらに別の呼び出しで作ります。 監督が確かめた結果だけを渡し、「施工した面と材料は仕上げ表の言葉をそのまま使う」「確認した範囲は写真に写った範囲と書く」「問題ありません、完璧に仕上がりました、のような言い切りをしない」を入れます。
出力形式を固定する
部屋1つごとに、次の形の JSON で受け取ります。 status、kind は enum で決まった文字列に絞り、surfaces は面の一覧と同じ数を minItems・maxItems で求めます。
{
"job_id": "K-2026-1043",
"room": "会議室A",
"surfaces": [
{ "surface": "会議室A-北の壁", "status": "candidates | clear | not_visible | partly_visible", "photos": [1, 4] }
],
"findings": [
{ "photo": 4, "box_2d": [210, 640, 330, 700], "surface": "会議室A-北の壁",
"kind": "seam_gap | lifting | wrinkle | stain | tear | baseboard_gap | caulk_break | caulk_excess | floor_scratch | floor_gap | step_looking | plate_tilt | tape_left | handprint | fixture_missing_looking | unclear",
"note": "窓の右の縦の継ぎ目が、上の方で線のように見える" }
],
"material_mismatch": [ { "surface": "会議室A-床", "note": "表はタイルカーペットだが、木目に見える" } ]
}
1つ目の理由は、surfaces をそのまま「見た面の記録」にできることです。 面の数がそろっていなければサーバーが呼び直し、not_visible と partly_visible の面は、撮り直しの一覧に自動で入ります。
2つ目は、findings に番号を振れば、手直しの指示と前後の見比べの鍵になることです。 サーバーは候補に「K-2026-1043-07」のような番号を振り、職人への一覧と後の写真の受け取りに同じ番号を使います。前後の写真が番号でつながるので、第3章の(c)がなくなります。
3つ目は、報告書の表をそのまま組み立てられることです。
| 部屋 | 施工した面と材料(仕上げ表から) | 手直し | 写真 |
|---|---|---|---|
| 会議室A | 床:タイルカーペット/壁・天井:ビニルクロス/巾木:ソフト巾木 | 2か所(前後の写真あり) | 全体4枚、前後2組 |
| 給湯室 | 床:長尺シート/壁:ビニルクロス/天井:化粧石こうボード | なし | 全体4枚 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 写真の共有フォルダ | サーバーが読み取る | 部屋ごとの完了の写真と、手直しの後の写真 |
| 仕上げ表と工事台帳 | 読み取り | 面の一覧、材料の種類、引渡しの予定日、担当の職人 |
| Gemini API | API呼び出し(/v1beta/interactions、store=false) | 面ごとの候補、前後の見比べ、報告書の文の下書き |
| 職人との連絡用のチャット | 投稿 | 監督が「手直しする」にした候補の一覧と、印の付いた写真 |
| 報告書の書式 | 書き込み | 部屋ごとの表と前後の写真の組 |
職人への一覧は、監督が選んだ候補だけを送ります。 AIの候補をそのまま送ると、光の反射や家具の影まで手直しとして届き、職人の手間と監督への信頼が両方減ります。
施主への報告書は、下書きまでにします。 監督と上長が読み直してから送ります。写真に写っていない所まで「確認済み」と読める文が、施主の手元に残らないようにします。
人が確認する
- 候補を写真で確かめる … 一覧の上から順に、印の所を見て「手直しする」「該当なし」を選びます
- 撮り直しを頼む …
not_visible、partly_visible、unclearの残る面について、撮る向きを添えて頼みます - 仕上げ表と見た目の違いを確かめる … 材料の種類が違って見える面は、納品書と現地の残りの材料で確かめます
- 手直しの前後を確かめる …
fixed_lookingも含めて前後の組を見て、済んだかを決めます - 報告書を読み直す … 施工した面と材料、手直しの記録、確認した範囲の書き方を見て、上長に回します
4番目で fixed_looking を素通りしないでください。 後の写真の角度が違えば、継ぎ目の開きは見えなくなります。見比べの結果は、監督が前後の写真を開く順番を決めるためのもので、済んだかを決めるものではありません。
目標は、80件をならして1件15分です。 候補の少ない小さな原状回復は数分で済み、店舗の改装のように部屋と器具が多い工事は30分を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 暗い・ぶれた写真が多い | AIに渡さず、撮り直しの一覧に入れる |
面の一覧と surfaces の数が合わない | 呼び直す。2回合わなければ監督が写真を見る |
| 仕上げ表が無い・古い | 工事台帳から部屋の名前だけで面の一覧を作り、監督に確かめてもらう |
| 写真の置き場の部屋の名前が仕上げ表と合わない | 対応の表に無ければ処理を止め、監督に聞く |
| 後の写真に候補の番号が無い | 見比べに回さず、監督に「どの候補の写真か」を聞く |
| 居住中で家具や荷物が面を隠している | partly_visible のまま、報告書に「家具の裏は確認していない」と書く |
| 指示に反して手直しの要否や寸法を書いた | その出力を保存せずに捨て、呼び直す |
JSON の値が enum に無い | 候補を出さず、監督が写真を見る |
| API が応答しない | 部屋の印を残したまま、時間をおいて呼び直す |
上から2行目までが大半を占めます。 どれもAIの精度の問題ではなく、写真の撮り方と、面の一覧の作り方の問題です。 7行目は、note に「必要」「不良」や寸法の数字が入っていないかをサーバーで見ます。
記録を残す
- 部屋ごとの元の写真と、塗りつぶして AI に渡した写真
- 渡した面の一覧と、Gemini API が返した JSON
- 候補ごとに監督が付けた「手直しする」「該当なし」と、足した箇所
- 手直しの前後の写真の組と、見比べの結果、監督が「済み」とした日
- そのときの社内の手直しの基準の版、送った報告書
3つ目と4つ目が、基準を直す材料になります。 監督が「該当なし」にした候補の種類を数えると、どの見え方をAIが拾いすぎているかが分かります。協力会社ごとの手直しの件数も出せますが、職人の評価に使うかどうかは、協力会社と話してから決めます。
04実装レベルの3段階
最小構成では件数がさばけません。 部屋ごとに貼り付けるので、月80件には使えません。確かめるための段階です。 半自動化で、1件45分が28分程度になります。 写真を拡大して探す作業と面を見当づける作業は減りますが、前後の写真の当てはめと報告書づくりが残ります。 本格構成で15分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の記録を1か月見ると、どの部屋で not_visible が多いか、どの候補を監督が外すことが多いかが分かります。
05工数削減シミュレーション
導入後 80件 × 15分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 店舗・事務所の原状回復やテナントの入居の工事、住まいのリフォームの内装を、月に数十件まとめて引き渡している内装工事の会社。現場監督が完了の写真を事務所で1枚ずつ見て、手直しの指示と施主への報告書を作っている場合。部屋ごとの仕上げ表(床・壁・天井の材料の一覧)を工事ごとに作っている場合。手直しの見落としが、引渡しの後の施主からの指摘で分かることがある場合。
- 工事が月に数件で、現場監督が引渡しに立ち会って目で確かめれば足りる場合。仕上げ表を作っておらず、どの部屋に何を張ったかが図面と職人の記憶にしかない場合。下地の不具合・音・におい・建具の動きの重さなど、写真に写らない点の確認が中心の場合。なお、仕上がりが契約の品質に合っているかの判断、手直しの要否の最終の判断、施主との引渡しの合意は、この構成では代替できません。
07最小構成で試す方法
- 先月引き渡した工事から20件を選ぶ(うち数件は、引渡しの後に施主から指摘があったものを入れる)
- その20件について、当時の手直しの指示と、引渡しの後の指摘を書き出す
- 20件の写真を、部屋ごとに手元の Gemini の画面に貼り付ける
- 「この部屋の写真で、床・4面の壁・天井・巾木・建具・器具のそれぞれについて、クロスの継ぎ目の開き・浮き・汚れ、巾木のすき間、床の傷、プレートの傾き、テープの残りを探してください。写っていない面は『写っていない』と答えてください。手直しが必要かは書かないでください」と指示する
- 出てきた候補と「写っていない」を、当時の指示と引渡しの後の指摘と突き合わせる
20件は必ずやってください。 サーバーを作る前に、「今の撮り方の写真から、手直しの候補が出るのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 引渡しの後に指摘された所が候補か「写っていない」に出た | サーバーと面の一覧の作成に進む |
| 写っていない面を「問題なし」と答えた | 指示の書き方で直る。構成は有効 |
| 暗い写真や全体の写真だけで、継ぎ目が分からない | 撮り方の決まりが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、引渡しの後に指摘が出ていた理由が1つ分かったということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 写っていない面が「候補なし」に紛れる | 面の一覧を渡して面ごとに答えさせ、not_visible を分ける |
| 暗い写真で「候補なし」が出る | 前処理で暗さを見て渡さない。暗い写真だけで見た面は partly_visible |
| 光の反射を継ぎ目の開きと言う | unclear を許し、監督が外した理由を記録する |
| 「施工不良」「補修が必要」と書く | 指示で禁じ、note の言葉をサーバーで見る |
| 後の写真がどの指摘のものか分からない | 候補の番号で受け取り、番号の無い写真は見比べない |
| 角度の違う前後の写真で「直って見える」と出る | not_comparable を許し、監督が前後を必ず開く |
| 壁を1面だけ見て「壁は候補なし」 | 仕上げ表の「壁」を東西南北に分けてから渡す |
| 写真が多く20MBを超える | 部屋1つ分ずつ、全体と近くの2回に分ける |
| 品番や色の違いを言い当てようとする | 指示で禁じ、材料の種類の見た目の違いだけを返させる |
| 手直しの一覧が職人への評価の文になる | 職人の腕や責任を書かせず、見え方だけを送る |
| 手直しの基準が監督の頭の中にしかない | 1週目に書き出し、振り分けの表にしてから AI をつなぐ |
上の2行が、この構成の失敗のほとんどです。 どちらも「候補が出なかった」を「問題がなかった」と読むことから出ています。写っていない面と暗い写真を、候補なしとは別の答えとして返させることが、指示と規則の両方で守る線です。
下の行も、早く効いてきます。 基準が言葉になっていないまま候補を出すと、監督ごとに手直しにする・しないが分かれ、第3章の(b)が残ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 施主の名前と工事の場所、部屋ごとの写真、仕上げ表、手直しの記録です。居住中のリフォームや入居中の事務所では、住人や社員の顔、机の上の書類、表札、私物が写り込みます。
- 写真に写った人や書類を、個人情報として扱う … 個人情報保護委員会のガイドラインは、個人情報の例として本人が判別できる映像情報を挙げ、個人に関する情報には顔画像のように個人を識別する情報が含まれるとしています。前処理で塗りつぶしてから渡し、元の写真は社内にだけ残します
- 施主の建物の中を外に広げない … 店舗や事務所の間取り、金庫や機器の置き場所が写ります。写真を見られる人を工事部と上長に限り、報告書は施主にだけ送ります
- この構成は品質の判断を代替しません … 仕上がりが契約の品質に合っているか、手直しが要るかは、監督と施主の取り決めで決めることです。 この構成が出すのは、写真にどう見えたかという候補だけです
- 職人への言葉に気を配る … 手直しの一覧には見え方だけを書き、「不良」「やり直し」のような言葉をAIに書かせません
- 使うのは社内の担当だけにする … AIの結果を見るのは監督と上長だけです。Gemini API の規約は、18歳以上であることを利用の条件とし、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていません。施主や住人がAIに触れる画面は作りません
- AI側にやり取りを残さない … 有料の利用枠で使い、
store=falseを付けます
誤りが起きた場合のリスクは、手直しを見落として引き渡すことと、問題の無い所を職人に直させることの2つです。 前者は写っていない面や暗い写真を「候補なし」と扱うと起き、後者はAIの候補をそのまま職人に送ると起きます。どちらも、候補と判断を分けることから外れたときに起きるので、そこを設計で守ります。
10まず何から始めるか
1週目:手直しの基準と撮り方を書き出す
監督たちで、どの見え方から手直しにするか、掃除で済むのはどれかを書き出し、第7章の振り分けの表にします。あわせて、部屋の四隅・天井・入口側・器具の近くという撮り方を決めます。
2週目:20件で試す
先月の工事から20件を選び、手元の Gemini の画面に部屋ごとに貼って候補を挙げさせます。写っていない面を「写っていない」と答えているか、手直しの要否を書いていないかを最優先で見ます。
3週目:面の一覧を作る
仕上げ表から「部屋×面」の一覧を作る手順を決めます。壁を4面に分け、部屋の名前を写真の置き場とそろえます。 協力会社の職人に、撮る向きと置き場の決まりをお願いします。
4週目:まとめて候補を出す
監督が1日分の工事のフォルダをまとめて API に渡し、面ごとの記録と印の付いた写真の一覧を作るところまで作ります。この時点では職人への一覧も報告書も出さず、候補と面の記録だけを見ます。
2か月目: 外されやすい候補を指示と振り分けに入れ、候補の番号と職人への一覧を足します。3か月目以降: 手直しの前後の見比べと報告書の下書きを足し、1件45分が何分になったかを実測します。引渡しの後の指摘を、見た面の記録と並べて見直すようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG・JPEG・WEBP・HEIC・HEIF であること。画像を直接入れる場合は指示の文などを合わせたリクエスト全体が20MBまでであること。1回のリクエストの画像が最大3,600枚であること。位置が [ymin, xmin, ymax, xmax] の順で0〜1000に正規化されて返り、元の大きさに戻して使うこと。384ピクセル以下の画像が258トークンで、それより大きい画像はタイルに分けて数えること。media_resolution が画像1枚あたりのトークンの上限を決めること。呼び出しが /v1beta/interactions であること | Google AI for Developers: Image understanding | 2026-10-28 |
構造化出力を /v1beta/interactions の response_format(mime_type に application/json、schema)で指定すること。文字列の enum、配列の minItems・maxItems が使えること。minLength・maxLength はエラーにならずに外されること。値はアプリ側で検証するよう書かれていること | Google AI for Developers: Structured output | 2026-10-28 |
Interactions API が既定でやり取りを保存し(有料の枠で55日、無料の枠で1日)、store=false で保存しない動きにできること。store=false では前のやり取りを引き継ぐ使い方ができないこと | Google AI for Developers: Interactions API | 2026-10-28 |
| 利用には18歳以上であることが必要で、18歳未満の人に向けた、または使う見込みのあるアプリでの利用を認めていないこと。有料のサービスではプロンプトと応答が製品の改善に使われないこと | Gemini API Additional Terms of Service | 2026-10-28 |
| 個人情報の例として本人が判別できる映像情報が挙げられ、個人に関する情報に顔画像など個人を識別する情報が含まれること | 個人情報保護委員会: 個人情報の保護に関する法律についてのガイドライン(通則編) | 2026-10-28 |
どの見え方を手直しにするか、どこまでを施主に報告するかは、自社の基準と施主との取り決めに合わせて決めてください。 本記事は上の公式の情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2106)についてのご相談はこちらから。
