工事現場の入口の掲示板の写真から、建設業の許可票・労災保険関係成立票などの法定の掲示物がそろっているかと記載の食い違いを確かめる
工事現場の入口の掲示板を撮った写真から、建設業の許可票・労災保険関係成立票などの掲示物が写っているかを見分けます。記載された許可番号や技術者の氏名を工事台帳と照らし、掲示の漏れと食い違いを是正の依頼の下書きにします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- 不動産/建設/自治体
- 対象部門
- 品質管理/総務
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 現場代理人が掲示板の全体と、掲示物を何枚か寄って撮り、共有フォルダの現場のフォルダに入れる
- 担当が写真を開き、拡大しながら掲示物を1つずつ見る
- 工事台帳を開き、その工事が建築確認の対象か、解体・改修を伴うか、下請がどこまで入っているかを確かめる
- 許可票の許可番号・技術者の氏名、建築確認の表示の確認番号などを、台帳と見比べる
- 足りない掲示物や食い違いを、是正の記録に書く
- 現場代理人あてに是正の依頼をメールで送る
- 次の回の写真で、直ったかを確かめる
- 人現場代理人が、決めた撮り方で掲示板の全体1枚と、掲示物ごとの寄りの写真を撮り、現場のフォルダに入れる
- 自動Google Apps Script が定時にフォルダを見回り、新しい写真がそろった現場を拾う
- 自動工事台帳から、その工事の条件(元請か、建築確認の対象か、解体・改修を伴うか、施工体系図の要否)を引き、その工事に要る掲示物の表を作る
- 自動Gemini API が、写真に写る掲示物の種類と位置、記載された許可番号・氏名・番号を返す
- 自動スクリプトが、要る掲示物の表とAIの答えを照らし、掲示物ごとに区分を付ける
- 自動是正の依頼の下書きを作り、前回の指摘が直ったかも付ける
- 人担当が「不足」「食い違い」「撮り直し」の現場だけ写真を開いて確かめ、依頼を送る
各工程の詳しい説明を読む
- 現場代理人が掲示板の全体と、掲示物を何枚か寄って撮り、共有フォルダの現場のフォルダに入れる
- 担当が写真を開き、拡大しながら掲示物を1つずつ見る
- 工事台帳を開き、その工事が建築確認の対象か、解体・改修を伴うか、下請がどこまで入っているかを確かめる
- 許可票の許可番号・技術者の氏名、建築確認の表示の確認番号などを、台帳と見比べる
- 足りない掲示物や食い違いを、是正の記録に書く
- 現場代理人あてに是正の依頼をメールで送る
- 次の回の写真で、直ったかを確かめる
(a)写真を読むのに時間がかかる。 掲示板には法定の掲示物のほか、工事のお知らせ、安全の標語、緊急連絡先が並びます。どれが許可票かを探し、小さな文字を拡大して読むところから始まります。
(b)その工事に何が要るかを毎回調べ直す。 建築確認の表示は確認の対象になる工事にだけ要り、石綿の事前調査結果の掲示は解体や改修の作業にだけ要ります。担当はそのたびに工事台帳を開き、工事の条件を確かめています。
(c)記載の中身までは見きれない。 掲示物があることは確かめても、技術者の氏名がいまの台帳と合っているかまで照らす時間がありません。 交代した技術者の名前が何か月も残っている現場が、パトロールで見つかります。
(d)見る項目が担当者で違う。 3名で75現場を分けているため、施工体系図の更新日まで見る担当と、掲げてあれば良しとする担当がいます。 前回の指摘が直ったかの追いかけも、担当の記憶に頼っています。
- 【人】 現場代理人が、決めた撮り方で掲示板の全体1枚と、掲示物ごとの寄りの写真を撮り、現場のフォルダに入れる
- 【自動】 Google Apps Script が定時にフォルダを見回り、新しい写真がそろった現場を拾う
- 【自動】 工事台帳から、その工事の条件(元請か、建築確認の対象か、解体・改修を伴うか、施工体系図の要否)を引き、その工事に要る掲示物の表を作る
- 【自動】 Gemini API が、写真に写る掲示物の種類と位置、記載された許可番号・氏名・番号を返す
- 【自動】 スクリプトが、要る掲示物の表とAIの答えを照らし、掲示物ごとに区分を付ける
- 【自動】 是正の依頼の下書きを作り、前回の指摘が直ったかも付ける
- 【人】 担当が「不足」「食い違い」「撮り直し」の現場だけ写真を開いて確かめ、依頼を送る
3番目が、この設計の分かれ目です。 何が要るかを工事台帳から決めるので、AIは「写っているもの」を答えるだけで済みます。 AIに「この現場に何が足りないか」を考えさせると、工事の条件を知らないまま、要らない掲示物まで「無い」と答えます。
02今回想定するシステム構成
現場代理人(スマートフォン) │ 掲示板の全体1枚+掲示物ごとの寄りの写真 ▼ Google ドライブの現場のフォルダ 【トリガー】Google Apps Script の時間主導型トリガー(1時間ごと) Google Apps Script ├── 工事台帳 ── 工事の条件 → その工事に要る掲示物の表 ├──▶ UrlFetchApp ▼ Gemini API ── 掲示物の種類・位置・読み取った記載 ▼ Google Apps Script ── 要る掲示物の表と工事台帳に照らして区分を付ける ▼ 是正の記録(下書き)/ 是正の依頼の下書き ▼ 【担当が「不足」「食い違い」「撮り直し」だけを写真で確かめる】 └──▶ 現場代理人へ依頼のメール
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(掲示物の種類・位置の判定と記載の読み取り) | Claude API、OpenAI API |
| 連携 | Google Apps Script(写真の収集、呼び出し、照合、下書きの作成) | Make、Power Automate |
| 連携 | Google スプレッドシート(工事台帳、掲示物の表、是正の記録) | Microsoft Lists |
| 保管 | Google ドライブ(現場ごとの写真のフォルダ) | 社内のファイルサーバー |
| 撮影 | 現場代理人のスマートフォン | タブレット |
工事台帳と是正の記録は、すでにあるスプレッドシートを使います。 新しく作るのは、工事の条件から要る掲示物を決める「掲示物の表」だけです。
つなぎには Google Apps Script を使います。 写真の置き場所と工事台帳がどちらも Google Workspace にあるため、別の連携の製品を足さずに済みます。外部への呼び出しは UrlFetchApp で行い、POST の大きさは1回50MBまでです。1回の実行は6分まで、トリガーで動かせる時間の合計は Workspace のアカウントで1日6時間までなので、1回の実行で数現場ずつ処理し、残りは次の回に回します。 月150件なら、この枠に十分収まります。
写真を見る土台は、Gemini API の画像理解です。 対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、1回のリクエストに複数の画像を入れられます。 画像を直接入れる場合は、指示などと合わせたリクエスト全体が20MBまでです。掲示物の位置は box_2d として [ymin, xmin, ymax, xmax] の形で、0から1000に正規化した座標で返せます。この座標を使って、是正の依頼に「全体写真のどの位置か」を示します。
03どうやって実装するのか
処理の起点を決める
時間主導型トリガーで1時間ごとにフォルダを見回ります。 現場代理人は朝礼の後や昼休みに写真を入れることが多く、届いた順にその日のうちに区分が出れば十分です。写真1枚ごとに動かす仕組みにはしません。
1つの現場の写真がそろってから処理します。 決まりは「全体1枚+掲示物ごとの寄り」です。ファイル名の先頭に工事番号と撮影日を付け、スクリプトは全体の写真があり、最後の写真が入ってから30分たった現場を「そろった」とみなします。全体の写真が無い現場は処理せず、「全体の写真が無い」として下書きに出します。
月初と月半ばの締めの日を決めます。 締めの日の翌朝に、その回の写真が1枚も入っていない現場を一覧にします。写真が来ない現場は、点検が漏れている現場です。点検の結果より先に、この一覧を担当に見せます。
月2回の定期の点検のほか、掲示物が変わる出来事のときにも撮ってもらいます。 技術者の交代、施工体系図の更新、解体から新築への切り替えの日です。工事台帳の側でこれらの日付が変わったら、スクリプトが現場代理人に「掲示板の写真をお願いします」と知らせるようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 掲示板の写真 | 全体1枚と、掲示物ごとの寄りの写真。工事番号と撮影日 | 現場のフォルダ |
| 工事台帳 | 工事番号、工事名、元請か、許可の業種と許可番号、主任技術者・監理技術者の氏名、建築確認の対象か・確認番号、解体・改修を伴うか、施工体系図の要否 | 工事台帳 |
| 掲示物の表 | 工事の条件ごとに要る掲示物と、照らす記載の項目 | 掲示物の表 |
| 前回の結果 | 同じ現場の前回の区分と、出した是正の依頼 | 是正の記録 |
質を決めるのは、掲示物の表です。 法令が求める掲示物と、それが要る条件を、安全品質部が1つの表に書き出します。 法令で確かめられる範囲は次のとおりです。
| 掲示物 | 要る条件 | 照らす記載 |
|---|---|---|
| 建設業の許可票 | 発注者から直接請け負った工事の現場 | 一般・特定の別、許可年月日・許可番号・業種、商号、代表者、主任技術者または監理技術者の氏名 |
| 労災保険関係成立票 | 建設の事業 | 自社の様式の欄(保険関係成立年月日、労働保険番号など)を表に書く |
| 建築確認の表示 | 確認を受けた建築・大規模の修繕・模様替の工事 | 建築主、設計者、工事施工者、現場管理者、確認があった旨 |
| 施工体系図 | 特定建設業者が元請で、下請の代金の総額が政令で定める額以上の工事 | 下請の商号と分担が最新か(更新日) |
| 石綿の事前調査結果 | 解体・改修の作業を行う作業場 | 調査終了日と、調査の結果の概要 |
この表は、工事の条件を引くだけで「要る・要らない」が決まる形にします。 自社の決まりで足している掲示物(緊急連絡先、工事のお知らせなど)があれば、同じ表に「自社の決まり」として足します。法令の掲示物と自社の決まりを区分しておくと、是正の依頼の書き方を分けられます。
工事台帳の技術者の氏名は、交代のたびに更新される前提です。 台帳が古いと、正しく差し替えた現場を「食い違い」と出します。照らす前に、台帳の更新日を見ます。
データの取得方法を決める
Google Apps Script が、次の順に集めます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 写真 | 現場のフォルダ(DriveApp) | AIに渡す |
| 工事番号と撮影日 | ファイル名 | 台帳の引き当て |
| 工事の条件と記載の正 | 工事台帳(SpreadsheetApp) | 要る掲示物の表と、照らす値 |
| 要る掲示物 | 掲示物の表 | 区分の決定 |
| 前回の結果 | 是正の記録 | 直ったかの判定 |
AIには、工事の条件も、台帳の氏名や番号も渡しません。 渡すのは写真と、「見分ける掲示物の種類の一覧」だけです。正の値を渡すと、AIは写真の文字をその値に寄せて読みます。 「山田」と渡せば、かすれた「山口」を「山田」と答えることがあります。読み取りと照合を分け、照合はスクリプトで文字列を比べます。
写真は base64 にしてリクエストに直接入れます。寄りの写真を含めて1現場で数枚なので、20MBの上限には通常届きません。スマートフォンの写真が大きすぎるときは、前処理で長辺を縮めます。
AIへ渡す前に整形する
- 枚数と名前の確認 … 全体の写真があり、ファイル名が「工事番号_撮影日_全体/寄り」の決まりどおりかを見ます
- 向きの補正 … 写真の向きの情報で、横倒しの写真を正しい向きにします
- 大きさの調整 … 長辺が大きすぎる写真は縮めます。寄りの写真は、文字が潰れない大きさを残します
- 写りの確認 … 極端に暗い写真、ぶれの大きい写真は、AIに送らず「撮り直し」とします
- 人の写り込みの確認 … 作業員や通行人が大きく写っている写真は、撮り直しにします
- 工事の条件の確認 … 台帳の更新日が古い工事は、照合の前に担当に知らせます
3番目で寄りの写真を縮めすぎないでください。 許可票の許可番号や技術者の氏名は、掲示板の全体の写真ではほとんど読めません。記載の照合は寄りの写真で行い、全体の写真は「何が掲げてあるか」を見るためと役割を分けます。
AIに処理させる
させるのは、写真に写る掲示物ごとに、次の4つを答えることだけです。
| 見るもの | 答え方 | 判断できないときの扱い |
|---|---|---|
| 掲示物の種類 | construction_license / rousai / building_confirmation / subcontract_chart / asbestos_survey / other | 種類が決まらなければ unknown |
| 位置 | 写真の番号と box_2d | - |
| 読みやすさ | clear / partial / unreadable | 反射・汚れ・小ささで読めなければ unreadable |
| 記載 | 種類ごとに決めた欄の文字列(許可番号、氏名、確認番号、調査終了日など) | 読めない欄は空にし、unread_fields に欄の名前を入れる |
写真の単位でも2つ答えさせます。 掲示板の全体が写っているか(board_fully_visible)と、掲示板の一部を隠している物(資材、車、のぼり旗)があるか(obstruction)です。掲示板の端が切れていれば、そこに掲示物があっても見えません。 この2つが、「掲げていない」と「写っていない」を分ける材料になります。
| させないこと | 理由 |
|---|---|
| その工事に何が要るかの判断 | 工事の条件は台帳にあり、掲示物の表で決める |
| 法令に適合しているかの結論 | 最終の判断は担当と、必要なら行政の窓口 |
| 台帳との照合 | 正の値を渡すと、読み取りがその値に寄る |
| 読めない文字の補完 | 番号の桁や氏名をそれらしく埋めない |
| 写っている人についての記述 | 点検に要らない。写り込みは撮り直しで扱う |
4行目がいちばん起きやすい失敗です。 かすれた許可番号の1桁を、AIはそれらしい数字で埋めます。埋めた番号が台帳と合えば「一致」と出て、退色した許可票が見逃されます。 読めない欄は空にさせ、空の欄が多い掲示物は「読めない」として扱います。
指示内容を固定する
あなたは工事現場の掲示板の写真を見て、掲げてある掲示物を書き出す立場です。
同じ現場の写真を複数枚渡します。1枚目は掲示板の全体、2枚目以降は掲示物に寄った写真です。
写真に見えるものだけを答えてください。
【見分ける掲示物の種類】
- construction_license:建設業の許可票
- rousai:労災保険関係成立票
- building_confirmation:建築基準法による確認の表示
- subcontract_chart:施工体系図
- asbestos_survey:石綿の事前調査結果の掲示
- other:上のどれでもない掲示物(お知らせ、標語、連絡先など)
- unknown:種類が決められない掲示物
【掲示物ごとに答えること】
- type:上の種類
- photo_no と box_2d:その掲示物が写っている写真の番号と位置
- readability:clear / partial / unreadable
- fields:種類ごとに決めた欄の文字列(下の一覧)
- unread_fields:読めなかった欄の名前
【種類ごとの欄】
- construction_license:license_type(一般か特定か)、license_no、license_date、
license_trades、company_name、representative、chief_engineer
- building_confirmation:confirmation_no、owner、designer、contractor、site_manager
- asbestos_survey:survey_end_date、summary
- subcontract_chart:updated_date
- rousai:見えている欄の名前と値をそのまま
【厳守事項】
- 文字は見えるとおりに写してください。かすれた文字や欠けた桁を、推測で補わないでください。
読めない欄は空にして、unread_fields に入れてください。
- この現場に何の掲示物が必要か、足りないかを書かないでください。
- 法令に適合しているかを書かないでください。
- 掲示板の全体が写っていなければ board_fully_visible を false にしてください。
- 掲示板の一部を隠す物があれば、obstruction にその位置と物を短く書いてください。
- 写真に写っている人について、何も書かないでください。
- 同じ掲示物が全体の写真と寄りの写真の両方に写っているときは、1つとして答え、
fields は寄りの写真から読んでください。
「何が必要か、足りないかを書かない」を明記しないと、AIは書きます。 掲示板に建築確認の表示が無ければ、「建築確認の表示がありません」と添えます。その工事が確認の対象でなければ、要らないものを「無い」と言っていることになります。 要否は表に寄せます。
「全体と寄りで同じ掲示物を1つとして答える」も入れておきます。 入れないと、許可票が2枚あるように数え、寄りの写真の記載と全体の写真の読めない記載が別々に返ります。
出力形式を固定する
構造化出力で、現場ごとに次の形のJSONを受け取ります。
{
"board_fully_visible": true,
"obstruction": [ { "photo_no": 1, "box_2d": [0, 0, 0, 0], "note": "" } ],
"signs": [
{ "type": "construction_license | rousai | building_confirmation | subcontract_chart | asbestos_survey | other | unknown",
"photo_no": 2,
"box_2d": [0, 0, 0, 0],
"readability": "clear | partial | unreadable",
"fields": { "license_no": "", "chief_engineer": "" },
"unread_fields": [] }
]
}
種類と読みやすさを enum にして、決めた値以外を返させません。 Gemini API の構造化出力は、/v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定し、enum と required が使えます。ただし、JSONとして正しくても値が正しいとは限らないため、アプリケーションの側で値を確かめるよう案内されています。 スクリプトで、box_2d が0から1000の範囲にあるか、photo_no が渡した枚数の中にあるかを確かめます。
区分は、スクリプトが掲示物の表と工事台帳から決めます。
| 区分 | 条件 |
|---|---|
| 不足 | 要る掲示物が無く、board_fully_visible が true で obstruction も無い |
| 撮り直し | 要る掲示物が無いが、全体が写っていないか、隠す物がある。または unreadable |
| 食い違い | 読み取った記載が工事台帳と合わない(技術者の氏名、許可番号、確認番号など) |
| 確認が要る | partial、unknown、unread_fields が残る、台帳の更新日が古い |
| 前回から継続 | 前回と同じ区分(前回の依頼からの日数を付ける) |
| そろっている | 要る掲示物がすべてあり、記載が台帳と合う |
「不足」と「撮り直し」を分ける条件が、この構成でいちばん大事な区別です。 掲示物が見当たらないとき、掲示板の全体が見えていて隠す物も無いときだけ「不足」にします。それ以外は写真の問題として、現場には撮り直しだけを頼みます。
照合は文字列の比べ方を決めておきます。 許可番号は全角・半角と空白をそろえてから比べ、氏名は姓と名の間の空白を除いて比べます。それでも合わないものは「食い違い」とし、担当が寄りの写真で確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google ドライブ | DriveApp | 写真の検知・読み取り・処理済みへの移動 |
| 工事台帳・掲示物の表 | SpreadsheetApp の読み取り | 工事の条件と照らす値 |
| Gemini API | UrlFetchApp | 掲示物の種類・位置・記載の読み取り |
| 是正の記録 | SpreadsheetApp の書き込み | 下書きの列だけに書く |
| メール | 担当が送る | 是正の依頼の下書きを貼る |
是正の依頼は、担当が確かめてから送ります。 下書きをそのまま自動で送ると、撮り方の問題で正しく掲げている現場に是正を求めることになります。依頼の下書きには、掲示物の種類、写真の番号と位置、台帳の値と読み取った値を並べます。
工事台帳は読み取りだけです。 許可票の技術者の氏名が台帳と違っても、台帳のほうを書き換えません。どちらが正しいかは、担当が工事の担当部署に確かめて決めます。 台帳の更新漏れが見つかることも、この点検の効果の1つです。
人が確認する
すべての現場で、担当の確定を通します。 写真を開く現場は区分で絞ります。
- 「写真が来ていない現場」を最初に見る … 締めの日の翌朝に一覧を見て、現場代理人に連絡します
- 「不足」と「食い違い」を確かめる … 寄りの写真と全体の写真で、本当に掲げていないか、本当に違うかを目で確かめ、依頼を送ります
- 「撮り直し」「確認が要る」を片付ける … 撮り直しの依頼を出し、台帳の更新日が古い工事は工事の担当部署に確かめます
- 「そろっている」は一覧で確定する … 下書きを流し見て、まとめて確定します
2番目を省かないでください。 「不足」は現場代理人への是正の依頼に直結します。掲げてあったのに依頼を出せば、次からその現場は写真を丁寧に撮らなくなります。
目標は、150件をならして1件4分です。 「そろっている」の現場は一覧で1分もかかりません。「不足」「食い違い」の現場は写真を開いて確かめ、依頼を書くので数分から十数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 全体の写真が無い | 処理せず「全体の写真が無い」として下書きに出す |
| 締めの日までに写真が来ない | 「写真が来ていない現場」に載せる |
| 掲示板が資材や車で隠れている | obstruction から「撮り直し」。現場に掲示板の前を空けるよう頼む |
| 雨や日差しで反射して読めない | unreadable から「撮り直し」。時間を変えて撮る |
| 工事台帳に無い工事番号 | 処理せず担当に知らせる。着工したばかりの工事の台帳の登録漏れを疑う |
| 台帳の技術者の欄が空 | 照合せず「確認が要る」 |
| 掲示板が2か所に分かれている現場 | 掲示板ごとに全体の写真を撮る決まりにし、全部の写真をまとめて渡す |
| Gemini API が応答しない | その現場は「未処理」。担当がこれまでどおり写真で見る |
| 6分の実行時間を超えそう | 処理中の現場を終えたら止め、残りは次の回に回す |
「未処理」を「そろっている」と混ぜないでください。 AIが応答しなかった現場を点検済みと扱うと、その回の点検が抜けたことに誰も気づきません。
記録を残す
- 現場ごとの写真と、撮影日、撮った現場代理人
- AIの答え(掲示物の種類・位置・読みやすさ・記載・読めなかった欄)
- 区分と、そのとき使った掲示物の表の版、照らした工事台帳の値
- 担当が直した区分と、確定した日
- 出した是正の依頼と、直ったことを確かめた日
- 現場ごとの「撮り直し」の回数
是正の記録の下書きは、たとえば次の形にします。
【掲示の点検】2026-10-01 回(工事番号 B-2041 ○○ビル新築工事)
建設業の許可票 食い違い:主任技術者の氏名(掲示「○○」/台帳「△△」、台帳 9/20 更新)
労災保険関係成立票 そろっている
建築確認の表示 そろっている
施工体系図 確認が要る:更新日が読めない(写真3 右下)
石綿の事前調査結果 要らない(解体・改修の作業なし)
前回の指摘 10日目で解消(工事のお知らせの差し替え)
「そのとき使った台帳の値」を残すのは、台帳が後から直されるためです。 技術者の交代の日付を台帳で直すと、過去の「食い違い」の意味が変わります。当時の値が残っていないと、どちらが遅れていたのかが分かりません。
04実装レベルの3段階
最小構成では75現場をさばけません。 確かめるための段階です。 半自動化で、1件12分が7分程度になります。 掲示物を探して拡大して読む①は無くなりますが、工事の条件を台帳で確かめて見比べる②と、依頼の③が手で残ります。 本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、②の照合が台帳と表で自動になるためです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、「撮り直し」が続く現場と、台帳の更新が遅れがちな項目が分かります。そこを直してから区分を付けるほうが、担当が下書きを信用します。
05工数削減シミュレーション
導入後 150件 × 4分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 元請として同時に数十の現場を動かし、本社や支店の安全・品質の担当が、現場の掲示板の写真を見て法定の掲示物を確かめている建設会社。主任技術者の交代や、解体から新築への工程の切り替えで、掲示の差し替えが漏れることがある場合。工事台帳がスプレッドシートなどで整い、工事ごとの許可番号・技術者・建築確認の有無を引ける場合。発注者として施工者の現場を巡回するデベロッパーや自治体の工事の担当にも当てはまります。
- 同時に動く現場が数か所で、担当が現地で毎回見て回れる場合。工事台帳が無く、工事ごとに必要な掲示物を決める材料が無い場合。現場の写真を外部のAIに送ることが社内の方針で認められていない場合。なお、掲示が法令に適合しているかの最終的な判断、掲示物の作成そのもの、労働基準監督署や建築主事の検査への対応は、この構成では代替できません。
07最小構成で試す方法
- 建築・土木・解体を含む現場を10か所選ぶ(うち数か所は、掲示の漏れや技術者の交代があったと分かっている現場を入れる)
- 各現場の掲示板の全体1枚と、掲示物ごとの寄りの写真を用意する(人が写っていないもの)
- 手元の Gemini の画面に、1現場分の写真を貼り付ける
- 「この写真に写る掲示物を、建設業の許可票、労災保険関係成立票、建築確認の表示、施工体系図、石綿の事前調査結果の掲示、その他に分けて書き出し、許可番号や技術者の氏名などの記載を見えるとおりに写してください。読めない文字は補わずに空けてください。何が足りないかは書かないでください」と指示する
- 出てきた記載を、工事台帳と担当が手で照らす
試すときも、会社が使ってよいと決めた有料の枠で行います。 現場の写真には、工事の場所や関わる会社の名前が写っています。
| 出てきた内容 | 判断 |
|---|---|
| 掲示物の種類と記載が、担当の目視と合う | 掲示物の表の作成に進む |
| 許可番号や氏名の桁や字を補っている | 指示の書き方で直る。構成は有効 |
| 寄りの写真でも記載が読めない | 撮り方が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 屋外の掲示物は日に焼け、雨に濡れます。現場代理人に、掲示物そのものの状態も確かめてもらってください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 要らない掲示物まで「無い」と出る | 要否は工事台帳と掲示物の表で決め、AIには書かせない |
| 掲示板の端が切れているのに「不足」と出る | board_fully_visible と obstruction が問題ないときだけ「不足」にする |
| かすれた番号や氏名を補って読む | 読めない欄は空にさせる。正の値をAIに渡さない |
| 全体と寄りで同じ掲示物を2つと数える | 1つとして答え、記載は寄りの写真から読むよう指示する |
| 台帳が古くて「食い違い」が続く | 照らす前に台帳の更新日を見て、古ければ「確認が要る」 |
| 文字の比べ方で食い違いが出る | 全角・半角、空白をそろえてから比べる |
| 人が写った写真を送ってしまう | 人がいないときに撮る決まりと、写り込みの撮り直し |
| 6分を超えて止まる | 1回で処理する現場の数を絞り、残りを次の回へ |
| 写真が来ない現場が埋もれる | 締めの日の翌朝に「写真が来ていない現場」を最初に出す |
| 是正の依頼を自動で送る | 下書きまでにする。送るのは担当 |
上の2行が、この構成の失敗のほとんどです。 どちらも「無い」と出してはいけないものを「無い」と出す失敗です。要否を表に、写っているかどうかを写真の条件に分けておけば、現場への誤った依頼は減ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 工事現場の掲示板の写真、工事台帳(工事名・技術者の氏名・許可番号・確認番号)、是正の記録です。掲示物の多くは公衆に見せるためのものですが、写真には現場の様子や周りの建物、人が写り込むことがあります。
- 人の顔が分かる写真を送らない … 人がいないときに撮る決まりにし、写り込んだ写真は撮り直します。AIへの指示でも、人について何も書かせません
- 台帳の値を外へ送らない … AIに渡すのは写真と掲示物の種類の一覧だけです。照合はスクリプトの側で行います
- 有料の枠で使う … Gemini API の規約では、無料の枠では送った内容が製品の改善に使われ、人が読むことがあるとされています。有料の枠では、プロンプトや応答を製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録するとされています
- 保存される場所を確かめる … 有料の枠でも、内容はどの国でも一時的に保存・キャッシュされうるとされています。発注者との契約で現場の写真の扱いに決まりがある場合は、先に確かめてください
- 法令への適合の判断をAIに寄せない … この構成が出すのは、写真に何が掲げてあり、台帳と合うかという事実です。どの掲示物が要るか、様式や記載が足りているかの最終的な判断は、担当が法令と行政の案内で確かめます
- API キーと編集の権限を絞る … スクリプト プロパティに入れ、スクリプトを編集できる人を限ります
誤りが起きた場合のリスクは、掲示の漏れを見逃すことと、正しく掲げている現場に是正を求めることの2つです。 前者は「撮り直し」や「未処理」を「そろっている」に混ぜると起き、後者は「写っていない」を「掲げていない」と扱うと起きます。どちらも、写真の条件を区分に入れることで守ります。
10まず何から始めるか
1週目:掲示物の表を作る
法令で求められる掲示物と、それが要る工事の条件を書き出します。工事台帳に「元請か」「建築確認の対象か」「解体・改修を伴うか」「施工体系図の要否」の列があるかを確かめ、無ければ足します。
2週目:撮り方を決めて10現場で試す
「全体1枚+掲示物ごとの寄り」の撮り方とファイル名の決まりを決め、10現場で撮ってもらいます。手元の Gemini の画面で読み取らせ、記載を補って読んでいないか、全体の写真で掲示物を見分けられるかを最優先で見ます。
3週目:照合の決まりを決める
台帳の値と読み取った値の比べ方(全角・半角、空白、旧字体)を決めます。台帳の技術者の欄が交代のたびに更新されているかを、工事の担当部署と確かめます。
4週目:フォルダから一覧までをつなぐ
Google Apps Script で、フォルダの見回り、Gemini API の呼び出し、答えの一覧への書き出しまで作ります。区分はまだ付けず、担当の目視と並べて答え合わせをします。
2か月目: 掲示物の表と工事台帳で区分を付け、是正の依頼の下書きを出します。3か月目以降: 1件12分が何分になったかを実測し、「撮り直し」が続く現場の撮り方を直します。技術者の交代や工程の切り替えの後、次の点検で掲示の差し替えの漏れが拾えるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 建設業者は店舗と、発注者から直接請け負った建設工事の現場ごとに、公衆の見やすい場所に標識を掲げなければならないこと(第40条)。特定建設業者が下請の代金の総額が政令で定める額以上のとき施工体系図を作り、工事現場の見やすい場所に掲げなければならないこと(第24条の8第4項) | e-Gov 法令API: 建設業法 | 2026-10-08 |
| 建設工事の現場の標識の記載事項が、一般建設業又は特定建設業の別/許可年月日・許可番号・許可を受けた建設業/商号又は名称/代表者の氏名/主任技術者又は監理技術者の氏名であること。現場の標識は別記様式第29号によること(第25条) | e-Gov 法令API: 建設業法施行規則 | 2026-10-08 |
| 労災保険の保険関係が成立している建設の事業の事業主は、労災保険関係成立票(様式第4号)を見やすい場所に掲げなければならないこと(第77条) | e-Gov 法令API: 労働保険の保険料の徴収等に関する法律施行規則 | 2026-10-08 |
| 確認を要する建築、大規模の修繕又は大規模の模様替の工事の施工者は、工事現場の見易い場所に、建築主・設計者・工事施工者・現場管理者の氏名又は名称と確認があった旨の表示をしなければならないこと(第89条) | e-Gov 法令API: 建築基準法 | 2026-10-08 |
| 解体等の作業を行う作業場には、事前調査の調査終了日と、調査した部分・材料ごとの石綿等の使用の有無等の概要を見やすい箇所に掲示すること(第3条第8項) | e-Gov 法令API: 石綿障害予防規則 | 2026-10-08 |
対応する画像の形式が PNG、JPEG、WEBP、HEIC、HEIF であること。画像を直接入れる場合、指示などと合わせたリクエスト全体が20MBまでであること。1回のリクエストに複数の画像を入れられること。位置を box_2d として [ymin, xmin, ymax, xmax] の0〜1000の座標で返すこと。例が /v1beta/interactions を使っていること | Gemini API: Image understanding | 2026-10-08 |
構造化出力を /v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定すること。enum と required が使えること。JSONとして正しくても値はアプリケーションの側で検証するよう案内されていること | Gemini API: Structured output | 2026-10-08 |
| 無料の枠では送った内容が製品の改善に使われ、人が読むことがあること。有料の枠では製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録すること。どの国でも一時的に保存・キャッシュされうること | Gemini API Additional Terms of Service | 2026-10-08 |
| 1回の実行時間が6分まで、URL Fetch の POST の大きさが1回50MBまで、トリガーの実行時間の合計が Workspace のアカウントで1日6時間までであること | Google Apps Script: Quotas | 2026-10-08 |
掲示物の様式(大きさ・記載の欄)と、自社の工事でどの掲示物が要るかは、各法令の様式と所管の行政の案内で確かめてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1141)についてのご相談はこちらから。
