倉庫・工場のフォークリフトの始業点検で撮った写真から、異常のおそれと撮り漏れを拾い、点検記録の確認に回す
フォークリフトの始業点検で運転者が撮った写真を Gemini API に読ませ、撮影箇所の撮り漏れと、タイヤ・フォーク・チェーン・油漏れ・警告灯の異常のおそれを位置付きで拾います。職長は印の付いた車両だけを現物で確かめます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- 商社/小売/物流/製造
- 対象部門
- 物流/生産
- 対象業務
- 内容確認・チェック/記録・議事録作成
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 運転者が車両の周りを回り、点検表の項目(制動、操縦、荷役、油圧、車輪、灯火、警報)を確かめて「良」「否」を付ける
- 「否」があれば運転者が職長に口頭で伝える
- 職長が朝礼の後に車両を回り、点検表の記入と点検者の名前を確かめて確認の印を押す
- 記入に気になる点があるか、前日に不具合の話があった車両は、職長がタイヤやフォークを自分で見直す
- 異常があれば、使用を止めて修理の依頼をスプレッドシートに書き、整備の業者に連絡する
- 月末に点検表をファイルに綴じる
- 人運転者がこれまでどおり車両の周りを回って点検し、点検の項目を共用のスマートフォンのフォームに入力する
- 人運転者が決められた撮影箇所(フォークとマスト、チェーン、前輪の左右、後輪、計器盤、灯火)を撮り、車両の写真のフォルダに上げる
- 自動5分ごとの定時の実行が、新しいフォームの入力と写真を車両番号と時刻で突き合わせる
- 自動Gemini API が写真ごとに撮影箇所を見分け、写り具合と異常のおそれの候補を位置付きで返す
- 自動撮影箇所の一覧と照らして撮り漏れを数え、運転者の入力と並べる
- 自動規則で車両ごとの印(要確認/撮り直し/印なし)を決め、職長の確認の一覧に書く
- 人職長が一覧で「要確認」の車両の写真と枠を見て、現物を確かめる
- 人異常があれば職長が使用を止め、修理の依頼を記録する
- 人職長が全車両の行に確認の印を入れる
各工程の詳しい説明を読む
- 運転者が車両の周りを回り、点検表の項目(制動、操縦、荷役、油圧、車輪、灯火、警報)を確かめて「良」「否」を付ける
- 「否」があれば運転者が職長に口頭で伝える
- 職長が朝礼の後に車両を回り、点検表の記入と点検者の名前を確かめて確認の印を押す
- 記入に気になる点があるか、前日に不具合の話があった車両は、職長がタイヤやフォークを自分で見直す
- 異常があれば、使用を止めて修理の依頼をスプレッドシートに書き、整備の業者に連絡する
- 月末に点検表をファイルに綴じる
(a)点検表が「良」で埋まり、中身が見えない。 項目に印を付けるだけの点検表は、見たのか、見ずに付けたのかを区別できません。 毎日同じ車両に同じ印が並ぶので、職長も記入の有無を見るだけになります。
(b)職長が全車両を見て回れない。 30台を2エリアに分けても、1人が十数台を朝の短い時間で見ることになります。職長自身が見直すのは、気になった数台に限られます。 気にならなかった車両に異常があれば、そのまま作業に入ります。
(c)タイヤの傷や油漏れが後から分かる。 タイヤの欠けや異物の刺さり、油圧の配管からのにじみは、毎日少しずつ進むので、慣れた目には変化として映りません。 運転中に気づいたときには、修理のために車両を止める時間が作業の真ん中に来ます。
(d)見る基準が人によって違う。 タイヤの摩耗をどこまで許すか、チェーンの錆をどう見るかは、職長ごと、運転者ごとに違います。 交代の前後で同じ車両の評価が変わり、引き継ぎで説明がつきません。
- 【人】 運転者がこれまでどおり車両の周りを回って点検し、点検の項目を共用のスマートフォンのフォームに入力する
- 【人】 運転者が決められた撮影箇所(フォークとマスト、チェーン、前輪の左右、後輪、計器盤、灯火)を撮り、車両の写真のフォルダに上げる
- 【自動】 5分ごとの定時の実行が、新しいフォームの入力と写真を車両番号と時刻で突き合わせる
- 【自動】 Gemini API が写真ごとに撮影箇所を見分け、写り具合と異常のおそれの候補を位置付きで返す
- 【自動】 撮影箇所の一覧と照らして撮り漏れを数え、運転者の入力と並べる
- 【自動】 規則で車両ごとの印(要確認/撮り直し/印なし)を決め、職長の確認の一覧に書く
- 【人】 職長が一覧で「要確認」の車両の写真と枠を見て、現物を確かめる
- 【人】 異常があれば職長が使用を止め、修理の依頼を記録する
- 【人】 職長が全車両の行に確認の印を入れる
7番目が、この設計の分かれ目です。 職長が現物を見に行くのは、AI が異常のおそれを返した車両と、運転者が「否」を付けた車両です。全台を見に行く設計にすると、時間は減りません。ただし、AIが印を付けなかった車両を「異常なし」として扱うわけではありません。 その車両は、運転者の点検の結果のとおり使います。
6番目を規則で決めているのも、意図してのことです。 AIには写真に写っているものの候補を返させ、どの候補で職長を呼ぶかは、自社の基準として規則の側に置きます。 タイヤの摩耗をどこから呼ぶかは、整備の業者と相談して後から変えるからです。
02今回想定するシステム構成
運転者の始業点検 │ 点検の項目をフォームに入力 / 決められた箇所を撮影して写真のフォルダへ ▼【トリガー】5分ごとの定時の実行 Google Apps Script ├──▶ フォームの入力と写真を、車両番号と時刻で突き合わせる ▼ Gemini API ── 写真を見る(その車両の基準の写真と並べて) │ ① 撮影箇所の判別 ② 写り具合(ぶれ・暗さ・欠け) │ ③ 異常のおそれの候補と位置(box_2d) ▼ Google Apps Script ── 撮り漏れを数え、運転者の入力と並べる ├──▶ 規則で車両ごとの印を決める ▼ 職長の確認の一覧(スプレッドシート) ▼ 【職長が「要確認」の車両を現物で確かめる → 使用の停止・修理の依頼】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(撮影箇所の判別、写り具合、異常のおそれの候補と位置) | Claude API、OpenAI API |
| 連携 | Google Apps Script(定時の実行、写真と入力の突き合わせ、規則、一覧の作成) | Make、Power Automate |
| 入力 | Google フォーム(点検の項目の入力) | Microsoft Forms |
| 保管 | Google ドライブ(車両ごとの写真のフォルダ、基準の写真) | Microsoft OneDrive |
点検の項目の入力は、紙の点検表をフォームに置き換えたものです。 項目はこれまでと同じで、写真で見られない制動・操縦の機能も含みます。写真が増えても、運転者が項目を確かめて入力することは変わりません。
土台になるのは、Gemini API が1回のリクエストで複数の画像を扱えることです。 公式の説明では、複数の画像を input の配列に並べて1つのプロンプトで渡せます。対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、画像を直接入れる場合は、指示などと合わせたリクエスト全体が20MBまでです。スマートフォンの写真を7枚と基準の写真を7枚並べると、この上限に近づくので、上げる前に縮めます。
位置は box_2d として [ymin, xmin, ymax, xmax] の順で、画像の大きさに対して0〜1000に正規化された座標で返ります。 元の画像の大きさに戻して枠を描けば、職長は一覧から写真のどこを見ればよいかが分かります。画像1枚に割り当てるトークンは media_resolution で選べ、多くの画像の分析には high が勧められています。 タイヤの溝や小さな欠けを見るので、この構成でも high を使います。
03どうやって実装するのか
処理の起点を決める
5分ごとの定時の実行を起点にします。 Apps Script のインストール型トリガーのうち、時間主導型のものは1分ごとから月1回までの間隔で動かせます。公式の説明では、実行の時刻は少しずれることがあるとされているので、5分ごとに設定して、1回の実行でその時点までに届いた点検をまとめて処理します。
始業点検は朝の作業の前の30分ほどに集中します。 届いた点検を5分ごとに処理すれば、職長は朝礼の後に一覧を開いた時点で、ほとんどの車両の結果を見られます。 交代の時刻にも点検が集中するので、2交代の始まりの前後は同じ間隔で動かし続けます。
フォームの入力と写真の両方がそろった車両だけを処理します。 入力から15分たっても写真が届かない車両は、写真なしとして一覧に「撮り直し」の印で出します。写真を待ち続けると、写真を上げ忘れた車両が一覧に出てこなくなるからです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 点検の入力 | 車両番号、点検者、時刻、項目ごとの「良」「否」、気づいたことの自由記入 | フォームの回答のスプレッドシート |
| 点検の写真 | 決められた撮影箇所の写真(7枚) | 車両ごとの写真のフォルダ |
| 基準の写真 | 整備の直後に同じ箇所を同じ向きで撮った写真 | 車両ごとの基準のフォルダ |
| 車両の台帳 | 車両番号、型式(カウンター型・リーチ型)、タイヤの種類、撮影箇所の一覧 | 車両の台帳(スプレッドシート) |
質を決めるのは、基準の写真です。 タイヤの溝の深さやチェーンの色は、その車両の正常な状態と比べないと、異常かどうかが分かりません。 整備の業者が月次の自主検査をした直後に、職長が同じ箇所を同じ向きで撮って基準にします。基準の写真を更新した日付も台帳に残します。
撮影箇所の一覧は、型式ごとに変えます。 リーチ型とカウンター型では、タイヤの位置と数も、計器盤の形も違います。台帳に型式ごとの撮影箇所を書いておき、それを AI に渡して照らさせます。
データの取得方法を決める
Apps Script が、フォームの回答のスプレッドシートと、写真のフォルダを読みます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| まだ処理していない点検の入力 | 回答のスプレッドシート(処理済みの列が空の行) | 処理の対象の車両と時刻 |
| その車両の、入力の前後15分の写真 | 車両ごとの写真のフォルダ | 撮影箇所の判別と異常のおそれ |
| その車両の基準の写真 | 基準のフォルダ | 比べる相手 |
| 型式と撮影箇所の一覧 | 車両の台帳 | 撮り漏れの判定 |
運転者の点検の入力は、AI には渡しません。 「否」を付けた項目や自由記入の「左前輪に傷」を見せると、AI はその箇所に候補を寄せて返し、ほかの箇所を見なくなることがあります。 写真から出した候補と運転者の申告は、後段の規則で同じ行に並べます。どちらが見落としたかを、後から切り分けられるようにするためです。
写真は、入力の時刻の前後15分の範囲だけを取ります。 運転者が前日の写真を消し忘れていても、今日の点検に混ざらないようにするためです。範囲の外の写真は、処理せずに古い写真のフォルダへ移します。
写真のファイル名に撮影箇所を書かせることはしません。 朝の忙しい時間に運転者にファイル名を付けさせると、付け間違いがそのまま撮り漏れの誤判定になります。撮影箇所は AI が写真の中身から見分けます。 運転者の仕事は、決められた箇所を撮って上げることだけです。
AIへ渡す前に整形する
- 形式の確認 … JPEG・HEIC などの対応する形式かを確かめます。それ以外は撮り直しの印にします
- 大きさの縮小 … 1枚の長い辺を決めた大きさまで縮め、点検の写真と基準の写真を合わせて20MBに収めます
- 向きの補正 … 写真の向きの情報に従って回転させます。公式の説明も、画像が正しく回転しているか確かめるよう勧めています
- 重複の除去 … 同じ時刻にほぼ同じ写真が何枚もあるときは、1枚を残します
- 枚数の確認 … 撮影箇所の数より極端に少ないときも、そのまま AI に渡します。撮り漏れは AI の判別と規則で数えます
2番目と3番目を軽く見ないでください。 スマートフォンの写真は1枚で数MBあり、縮めずに14枚並べると上限を超えます。横倒しのタイヤの写真は、AI が撮影箇所を取り違える原因になります。
AIに処理させる
させるのは、写真ごとに「どの撮影箇所の写真か」「写り具合はどうか」「異常のおそれのある箇所はどこか」を返すことだけです。 異常の候補は、基準の写真と比べて何が違うかを、位置と一緒に返させます。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 撮影箇所 | 台帳の撮影箇所の一覧から1つを選ぶ | どれにも当たらなければ unknown |
| 写り具合 | ぶれ、暗さ、対象の欠け、指や物による遮りを見る | 見分けられない写真は poor |
| 車輪 | 欠け、亀裂、異物の刺さり、溝の減り(基準との比較) | 写り具合が poor なら判定しない |
| フォーク・マスト・チェーン | 曲がりや亀裂の見た目、チェーンの錆、給油の切れの見た目 | 同上 |
| 油漏れの跡 | 車両の下の床や配管の周りの油の染み | 床の汚れと区別できなければ確信度を low |
| 計器盤と灯火 | 警告灯が点いているか、前照灯・後照灯などが点いて写っているか | 灯火が写っていなければ not_visible |
写り具合の行が、この構成でいちばん大事な区別です。 ぶれた写真で「異常なし」と返すと、見えていないことが「問題が無い」に化けます。 写り具合が悪い写真では異常の判定そのものをさせず、撮り直しに回します。
灯火は、点いて写っているかだけを見ます。 前照灯が点いているかは写真で分かりますが、方向指示器や警報装置の機能が正しく働くかは、写真では確かめきれません。 写っていないものは not_visible とし、機能の確認は運転者の入力のほうで記録します。
| させないこと | 理由 |
|---|---|
| 車両を使ってよいかの結論 | 使用の可否は運転者の点検と職長の判断で決める |
| 写真に写らない項目(制動・操縦の機能)の評価 | 写真から分からないことを推測させない |
| タイヤの交換時期や修理の要否の判断 | 整備の業者と自社の基準で決める |
| 写り具合の悪い写真での判定 | 見えていないものを「異常なし」にしない |
| 運転者の点検のやり方の評価 | 撮り漏れの事実だけを返す。指導は職長が行う |
1行目がいちばん起きやすい失敗です。 異常の候補が無い写真について、AI は「使用に問題ありません」と書き添えがちです。一覧にその一文が並ぶと、運転者の点検よりも AI の一文が信じられるようになります。 使用の可否に触れる文は出力の項目に置かず、指示でも禁じます。
指示内容を固定する
あなたは工場の構内でフォークリフトの始業点検の写真を確認する補助をします。
運転者の点検の代わりではありません。写真に写っていることだけを答えてください。
【車両】{vehicle_id}(型式:{model_type})
【撮影箇所の一覧】{positions}
例:fork_mast/chain/tire_front_left/tire_front_right/tire_rear/dashboard/lamps
【写真】点検の写真(P1〜)と、同じ車両の基準の写真(R-箇所名)を順に渡します
【返すこと】
- 点検の写真ごとに:position(撮影箇所の一覧から1つ、当たらなければ unknown)、
quality(good/poor)と、poor の理由(blur/dark/cut_off/obstructed)
- quality が good の写真について、基準の写真と比べて異なる点を findings に:
category(tire_damage/tire_wear/foreign_object/fork_or_mast/chain/oil_trace/
warning_lamp_on/lamp_not_lit/other)、box_2d、何が見えるかの説明、confidence(high/medium/low)
- missing_positions:撮影箇所の一覧のうち、どの写真にも写っていない箇所
【厳守事項】
- quality が poor の写真では findings を返さないでください。
- 写っていないものについて、異常の有無を推測しないでください。
- ブレーキ、ハンドル、方向指示器、警報装置の機能は写真から判断しないでください。
灯火は「点いて写っているか」だけを答え、写っていなければ not_visible としてください。
- 「使用して問題ない」「使用を止めるべき」など、使用の可否を書かないでください。
- タイヤの交換時期や修理の要否を書かないでください。
- 床の汚れと油の染みを区別できないときは、oil_trace として confidence を low にしてください。
- 人の顔が写っていても、人について何も書かないでください。
「quality が poor の写真では findings を返さない」を明記しないと、ぶれた写真にも判定を付けます。 ぶれた写真の判定は、たいてい「目立った異常なし」です。それが一覧に並ぶと、撮り直しを頼む理由が消えます。
「基準の写真と比べて異なる点を」と書くのは、新品のタイヤとの比較を避けるためです。 基準を渡さずに聞くと、AI は一般的な新品の見た目と比べ、使い込んだ正常なタイヤにまで摩耗の候補を付けます。 その車両の正常な状態と比べさせると、候補が実際の変化に絞られます。
出力形式を固定する
次の形のJSONで受け取ります。
{
"vehicle_id": "FL-12",
"inspection_id": "",
"photos": [
{
"photo": "P3",
"position": "tire_front_left | ... | unknown",
"quality": "good | poor",
"poor_reason": "blur | dark | cut_off | obstructed | ",
"findings": [
{ "category": "tire_damage", "box_2d": [412, 380, 655, 590],
"description": "", "confidence": "high | medium | low" }
]
}
],
"missing_positions": ["chain"],
"lamps": { "headlight": "lit | not_lit | not_visible", "rear_light": "lit | not_lit | not_visible" }
}
スキーマでは position・quality・category・confidence を enum にし、box_2d は4つの整数の配列にします。required で photos と missing_positions を必ず返させます。
1つ目の理由は、印を規則で決められることです。 Apps Script は次の規則で車両ごとの印を決めます。AI の出力がどう揺れても、印の決め方は表のとおりです。
| 規則 | 印 |
|---|---|
| 運転者の入力に「否」が1つでもある | 要確認(運転者の申告) |
findings に confidence が high か medium のものがある | 要確認(写真) |
warning_lamp_on または lamp_not_lit がある | 要確認(写真) |
missing_positions が1つ以上、または quality が poor の写真がある | 撮り直し |
findings が low だけ | 印なし(一覧に候補を薄く表示) |
2つ目は、box_2d で職長の確認が速くなることです。 座標を元の写真の大きさに戻して枠を描いた画像を一覧に貼るので、職長は写真のどこを見ればよいかを一目で分かり、現物でもその場所に直行できます。
3つ目は、運転者の入力と同じ行に並べられることです。 運転者が「良」を付けた車輪の行に、写真から tire_damage の候補が出ていれば、点検と写真の食い違いとして職長がすぐ気づけます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| フォームの回答 | Apps Script がスプレッドシートを読む | 処理していない点検の入力を拾い、処理済みの印を付ける |
| 写真のフォルダ | Apps Script がドライブを読む | 入力の前後15分の写真を集める |
| Gemini API | API呼び出し(/v1beta/interactions) | 写真を渡し、構造化出力で受け取る |
| 職長の確認の一覧 | スプレッドシートに書く | 1行1車両。印、候補の説明、枠を描いた写真、職長の確認の欄 |
| 修理の依頼の記録 | 職長が書く | この構成からは書かない |
修理の依頼と使用の停止は、この構成からは行いません。 要確認の車両を現物で見て、使用を止めるかを決めるのは職長です。AI の候補から自動で修理を依頼すると、床の汚れの写真で整備の業者が呼ばれます。
人が確認する
職長が開くのは「要確認」と「撮り直し」の車両です。 印の無い車両は、一覧で運転者の入力と写真の枚数を流し見て、確認の印を入れます。
- 「要確認(運転者の申告)」を先に見る … これまでどおり現物を確かめ、使用を止めるかを決めます
- 「要確認(写真)」の枠を見て現物に行く … 枠の場所を自分の目で見ます。写真の候補が誤りなら、一覧に「誤り」と記録します
- 「撮り直し」の運転者に声をかける … 撮り漏れの箇所か、写り具合の悪い写真を撮り直してもらいます
- 全車両の行に確認の印を入れる … 印を入れた時刻が残ります
2番目の「誤り」の記録を省かないでください。 同じ車両で同じ誤りが続くなら、基準の写真が古いか、撮る向きがずれています。誤りの記録が、基準の写真を撮り直す合図になります。
目標は、600件をならして1件1分です。 印の無い車両は数秒、要確認の車両は現物を見るので数分です。要確認が全体の1割を大きく超える月は、基準の写真が古くなっているか、撮影の向きがそろっていません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 入力から15分たっても写真が届かない | 「撮り直し」の印で一覧に出す |
| 写真はあるがフォームの入力が無い | 一覧に「入力なし」で出す。点検の記録が無い車両として職長が確かめる |
| リクエストが20MBを超える | 写真をさらに縮めるか、点検の写真と基準の写真を2回に分けて渡す |
撮影箇所が unknown の写真がある | 撮り漏れの判定には数えず、一覧に写真を出して職長が見る |
暗い場所で全部の写真が poor | 撮り直しの印。照明のある場所で撮る決まりを作る |
| 交代の前後で同じ車両に点検が2回入る | 入力ごとに別の点検として処理し、写真の時刻の範囲を重ねない |
| 基準の写真が無い車両(新しく入った車両など) | 比較なしで判定させ、候補をすべて low 扱いにする。基準の写真を先に撮る |
| Gemini API が応答しない、エラーを返す | 処理済みの印を付けずに次の実行で再試行。2回続けて失敗したら印なしで一覧に出し、職長が写真を見る |
最後の行で、API が止まっても一覧から車両が消えないようにします。 写真の確認が止まっても、運転者の点検と職長の確認は止めません。
記録を残す
- 点検の入力の全項目と、写真のファイルの場所
- Gemini API に渡した写真の一覧と、返ってきたJSONの全文
- 規則で決めた印と、その根拠になった項目
- 職長の確認の印、現物を見た結果、写真の候補を「誤り」とした記録
- 使用を止めた車両と修理の依頼との対応
- 車両ごと・撮影箇所ごとの撮り漏れの回数
最後の行は、点検のやり方を見直す材料になります。 特定の運転者や特定の箇所で撮り漏れが続くなら、撮りにくい位置にあるか、点検の手順そのものが伝わっていません。
04実装レベルの3段階
最小構成では30台をさばけません。 1台7枚の写真を毎朝手で添付するのは、職長が見に行くより時間がかかります。確かめるための段階です。 半自動化で、1件4分が2分程度になります。 撮り漏れと候補は一覧になりますが、運転者の入力と写真を並べて見る作業と、写真のどこを見るかを探す作業が残ります。本格構成で1分になり、この段階が本記事の想定です。 差が大きいのは、運転者の入力との突き合わせと枠を描いた写真が、職長が現物に行くまでの時間を縮めるからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、撮り漏れの多い箇所、基準の写真が合っていない車両が先に分かります。そこを直してから印の規則を決めるほうが、要確認の空振りが減ります。
05工数削減シミュレーション
導入後 600件 × 1分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 工場の資材置場や物流センターで数十台のフォークリフトを毎日使い、運転者が始業点検をして紙の点検表に記入し、職長が点検表を集めて確認している事業所。点検表がいつも「良」で埋まり、タイヤの傷や油漏れが後から見つかることがある場合。車両ごとに共用のスマートフォンかタブレットを置ける場合。
- フォークリフトが数台で、職長が毎朝すべての車両を自分の目で見て回れる場合。屋外の暗い場所や雨の中で点検することが多く、写真が安定して撮れない場合。点検の記録の仕組みをすでに車両のメーカーの点検アプリなどにそろえていて、写真を別に扱う余地が無い場合。なお、制動装置や操縦装置の機能のように写真では確かめられない項目の点検と、車両を使ってよいかの判断は、この構成では代替できません。
07最小構成で試す方法
- 3台の車両を選び、整備の直後に決められた箇所を撮って基準の写真にする
- その3台について、2週間、運転者に点検の後で同じ箇所を撮ってもらう(わざとぶれた写真と、1箇所撮り忘れた日を入れる)
- 組織で利用を認められたAIの画面に、基準の写真と点検の写真を並べて添付する
- 「点検の写真ごとに撮影箇所を答え、ぶれや暗さで判断できない写真を示し、基準の写真と比べて異なる点があれば場所を示してください。使用してよいかは書かないでください」と指示する
- 出てきた結果を、職長がその日に現物を見た結果と突き合わせる
2週間は、同じ車両の写真を毎日比べるために要ります。 1日だけでは、AI の候補が写真の撮り方の違いなのか、車両の変化なのかを見分けられません。
| 出てきた内容 | 判断 |
|---|---|
| 撮り忘れた箇所とぶれた写真を当てた | 定時の実行と一覧の作成に進む |
| 床の汚れを油漏れとして返す | 指示で low に寄せ、規則で印を付けない。構成は有効 |
| 毎日違う候補が出る | 撮る向きと距離が日ごとに違う。 撮り方の決まりが先 |
3行目が出ることは珍しくありません。 失敗ではなく、写真を記録として使うには撮り方をそろえる必要がある、ということが分かったということです。 車両の床に撮る位置の印を貼るなど、撮り方を決めてから同じ2週間を取り直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| ぶれた写真に「異常なし」が付く | 写り具合が悪い写真では判定させず、撮り直しに回す |
| 制動・操縦の機能まで写真で評価される | 指示で禁じ、出力の項目にも置かない |
| 使い込んだ正常なタイヤに摩耗の候補が付く | その車両の基準の写真と比べさせる |
| 床の汚れが油漏れとして出る | 確信度を low に寄せ、規則で印を付けない |
| 写真が20MBを超えて送れない | 上げる前に縮め、必要なら2回に分ける |
| 横倒しの写真で撮影箇所を取り違える | 向きの情報に従って回転させてから渡す |
| 前日の写真が今日の点検に混ざる | 入力の前後15分の写真だけを取る |
| 運転者にファイル名を付けさせて誤る | 撮影箇所は AI に写真の中身から見分けさせる |
| AI の一文が使用の可否として読まれる | 使用の可否に触れる文を出力させない |
| 要確認の候補から自動で修理を依頼する | 修理の依頼は職長が現物を見てから |
上の2行が、この構成の失敗のほとんどです。 どちらも「写真に写っていないことを、写真から判断させる」ところから起きます。見えないものは見えないと返させる設計で、まとめて防げます。
下の2行は、点検の責任の所在の問題です。 AI の候補は職長が現物を見に行く理由であって、車両を使う・止めるの判断の代わりではありません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 車両の写真、点検者の名前と点検の時刻、点検の項目の結果です。写真には、構内の設備の配置や、ときに作業者の姿が写ります。
- 点検の責任を写真に移さない … 労働安全衛生規則は、点検を行って異常を認めたときは、直ちに補修その他必要な措置を講じなければならないと定めています。点検をして措置を講じるのは事業者の側で、AI の候補はその判断を助ける材料にとどめます
- 写真に人を写さない撮り方を決める … 撮影箇所は車両の部位に限り、人の顔が入らない向きで撮ります。指示でも、人について何も書かないよう求めます
- 有料の枠で使う … Gemini API の追加利用規約では、無料の枠では送った内容が製品の改善に使われ、人が読むことがあるとされています。構内の設備が写る写真を送るので、有料の枠を前提にします
- 点検者の評価に使わない … 撮り漏れの回数は、点検のやり方を見直す材料です。運転者を個人として評価する材料にすると、写真を撮ることそのものが形だけになります
- 月次の自主検査と特定自主検査は別に行う … この構成が扱うのは始業点検の記録だけです。整備の業者による定期の検査を、写真で代えることはしません
誤りが起きた場合のリスクは、異常を見落として作業に入ることと、正常な車両を止めることの2つです。 前者はぶれた写真や写らない項目を「異常なし」と読ませると起き、後者は基準の写真が古いと起きます。写り具合で判定を止める設計と、基準の写真の更新の記録で守ります。
10まず何から始めるか
1週目:撮影箇所と撮り方を決める
型式ごとに撮影箇所を決め、どの位置から、どの向きで、どの距離で撮るかを写真の見本付きで1枚にまとめます。車両の周りの床に、撮る位置の目印を貼るのも有効です。
2週目:3台で試す
3台の基準の写真を撮り、2週間分の点検の写真を集めます。組織で利用を認められたAIの画面で撮影箇所と候補を答えさせ、職長が現物を見た結果と突き合わせます。ぶれた写真に判定を付けていないかを最優先で見ます。
3週目:基準の写真をそろえる
整備の業者の月次の自主検査に合わせて、全30台の基準の写真を撮ります。 撮った日付を台帳に残します。
4週目:フォームと写真の一覧までをつなぐ
紙の点検表の項目をフォームに移し、Apps Script で写真と入力を突き合わせ、Gemini API の結果を一覧に書き出すところまで作ります。この時点では印を付けず、候補をそのまま並べます。
2か月目: 規則による印と、枠を描いた写真を足し、要確認と撮り直しの件数を毎週数えます。3か月目以降: 職長の「誤り」の記録をもとに基準の写真と撮り方を見直し、1件4分が何分になったかを実測します。要確認の空振りが減り、撮り漏れが続く箇所がなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 労働安全衛生規則第151条の25で、フォークリフトを用いて作業を行うときは、その日の作業を開始する前に、制動装置及び操縦装置の機能、荷役装置及び油圧装置の機能、車輪の異常の有無、前照灯・後照灯・方向指示器・警報装置の機能を点検すること。第151条の26で、点検で異常を認めたときは直ちに補修その他必要な措置を講じること。第151条の22で月次の自主検査が定められていること | e-Gov 法令API: 労働安全衛生規則 | 2026-10-13 |
対応する画像の形式が PNG、JPEG、WEBP、HEIC、HEIF であること。画像を直接入れる場合、指示などと合わせたリクエスト全体が20MBまでであること。複数の画像を1つのプロンプトで渡せること。位置を box_2d として [ymin, xmin, ymax, xmax] の0〜1000の座標で返すこと。画像が正しく回転しているか確かめるよう勧めていること。例が /v1beta/interactions を使っていること | Gemini API: Image understanding | 2026-10-13 |
画像1枚に割り当てるトークンの上限を media_resolution で選べること(low・medium・high・ultra_high)。多くの画像の分析に high が勧められていること | Gemini API: Media resolution | 2026-10-13 |
構造化出力を /v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定すること。enum と required が使えること。JSONとして正しくても値はアプリケーションの側で検証するよう案内されていること | Gemini API: Structured output | 2026-10-13 |
| Apps Script の時間主導型のトリガーが1分ごとから月1回までの間隔で動かせること。実行の時刻が少しずれることがあること | Google Apps Script: Installable triggers | 2026-10-13 |
点検の方法と、異常を認めたときの措置は、自社の安全衛生の体制と整備の業者で決めてください。 本記事は上記の公式情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1383)についてのご相談はこちらから。
