製造現場の生産管理板(ホワイトボード)の写真から時間帯ごとの計画・実績と停止の理由を読み取り、生産日報にそろえて計画との差が大きい時間帯を拾う
直の終わりに撮った生産管理板の写真から、時間帯ごとの計画・実績・累計・停止の理由を読み取り、生産日報の項目にそろえます。計画との差が大きい時間帯と、読み取りに自信のない欄を班長と係長に返します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 小売/物流/製造
- 対象部門
- 生産
- 対象業務
- データ入力・転記/集計・分析
- 主な課題
- データ分析に時間がかかる/入力作業が多い/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 班長が1時間ごとに実績を数え、管理板に数字と停止の理由を書き込む
- 直の終わりに、班長が管理板の前でタブレットを開き、生産日報のスプレッドシートを表示する
- 時間帯ごとに、計画、実績、停止の時間と理由を打ち込む
- 累計と差はスプレッドシートの計算式で出る。板の累計と合わなければ、どちらかを直す
- 板を消して、次の直の計画を書く
- 翌朝、係長が日報を開き、計画との差が大きい時間帯を拾って打合せの資料にする
- 人班長が1時間ごとに管理板に書き込む(これまでどおり)
- 人直の終わりに、決まった位置から管理板をタブレットで撮影する。板を消す前に撮る
- 自動写真の向き、明るさ、大きさを確かめ、板の部分を切り出す
- 自動写真を AI に渡し、時間帯ごとの各欄の文字と、読み取れた度合いを返させる
- 自動累計が前の時間帯と合うか、計画との差がどれだけあるかを計算する
- 自動停止の理由を、停止の区分の一覧に照らして区分の候補を付ける
- 人班長がタブレットで写真と読み取り結果を並べて見て、印の付いた欄だけを直して確定する
- 自動確定した内容を生産日報に書き込み、差が大きい時間帯を係長のチャットに知らせる
- 人係長が知らせを見て、必要なら次の直の班長に申し送る
各工程の詳しい説明を読む
- 班長が1時間ごとに実績を数え、管理板に数字と停止の理由を書き込む
- 直の終わりに、班長が管理板の前でタブレットを開き、生産日報のスプレッドシートを表示する
- 時間帯ごとに、計画、実績、停止の時間と理由を打ち込む
- 累計と差はスプレッドシートの計算式で出る。板の累計と合わなければ、どちらかを直す
- 板を消して、次の直の計画を書く
- 翌朝、係長が日報を開き、計画との差が大きい時間帯を拾って打合せの資料にする
(a)打ち直しに時間がかかる。 8行×数列の数字と、走り書きの停止の理由を打ち直すのは、慣れた班長でも5分以上かかります。直の終わりは、引継ぎ、片付け、次の直の段取りが重なる時間です。 打ち直しは後回しにされ、板を消す直前に急いで打つことになります。
(b)転記の誤りが集計まで残る。 「6」と「0」、「1」と「7」の読み違い、時間帯の行のずれ。スプレッドシートの累計と板の累計が合わないとき、班長はスプレッドシートの側を板に合わせて直しがちです。 誤りの元が板の書き間違いだった場合、その誤りが日報に残ります。
(c)停止の理由の書き方がばらばら。 「段取」「段替え」「品種切替」は同じことを指していますが、班長ごとに書き方が違います。月次で停止の理由を集計すると、同じ理由が3つに割れます。
(d)大きな差に気づくのが遅い。 係長が差の大きい時間帯を拾うのは、日報がそろった翌朝です。夜の直の設備の不調が、次の日勤の午前中まで誰にも伝わらないことがあります。
- 【人】 班長が1時間ごとに管理板に書き込む(これまでどおり)
- 【人】 直の終わりに、決まった位置から管理板をタブレットで撮影する。板を消す前に撮る
- 【自動】 写真の向き、明るさ、大きさを確かめ、板の部分を切り出す
- 【自動】 写真を AI に渡し、時間帯ごとの各欄の文字と、読み取れた度合いを返させる
- 【自動】 累計が前の時間帯と合うか、計画との差がどれだけあるかを計算する
- 【自動】 停止の理由を、停止の区分の一覧に照らして区分の候補を付ける
- 【人】 班長がタブレットで写真と読み取り結果を並べて見て、印の付いた欄だけを直して確定する
- 【自動】 確定した内容を生産日報に書き込み、差が大きい時間帯を係長のチャットに知らせる
- 【人】 係長が知らせを見て、必要なら次の直の班長に申し送る
7番目が、この設計の分かれ目です。 班長は全部の欄を見直すのではなく、「読めない」「累計が合わない」と印の付いた欄だけを、写真と見比べて直します。 全欄を見直す設計にすると、打ち直しの6分は半分にしかなりません。
2番目の「消す前に撮る」は、手順として板の脇に貼っておきます。 撮り忘れたまま消すと、その直の記録は残りません。撮影したら板の隅のマグネットを裏返す、のような目印を決めておくと、消す人が確かめられます。
1時間ごとに板へ書き込む作業は、変えません。 板はラインの作業者が今どれだけ遅れているかを見るためのもので、見える化の役目はこれまでどおり板が担います。 この構成が置き換えるのは、直の終わりの打ち直しと、翌朝の拾い出しだけです。
02今回想定するシステム構成
生産管理板(ホワイトボード) │ 直の終わりに、決まった位置からタブレットで撮影 ▼【トリガー】写真の保存(ライン・直・日付のファイル名) Python ── 向き・明るさ・大きさの確認、板の部分の切り出し、縮小 │ ▼ Claude API(画像入力)── 時間帯ごとの各欄の文字と、読み取れた度合い │ ▼ Python ── 累計の整合の確認、計画との差の計算、停止区分の照合 │ ▼ 【班長がタブレットで写真と並べて確認・確定】 │ ├──▶ 生産日報に書き込む └──▶ 差が大きい時間帯を係長のチャットに知らせる
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Claude API(画像入力) | OpenAI API、Gemini API |
| 集計 | Python(写真の前処理、累計の確認、差の計算、日報への書き込み) | Google Apps Script |
| 保管 | 共有フォルダ(写真と読み取り結果) | - |
| 確認画面 | 班長用のタブレットで開く簡単な画面 | - |
新しく足すのは、写真を受ける共有フォルダと、Python の処理と、班長が確定するための簡単な画面だけです。 管理板も、生産日報の様式も変えません。生産日報に書き込むのは、班長が確定した後だけです。
読み取りには、Claude の画像入力を使います。 画像は JPEG、PNG、GIF、WebP に対応し、Claude API に直接送る場合は1枚10MB(base64)まで、1枚の大きさは 8000×8000 ピクセルまでとされています。タブレットの写真はそのままでは大きいので、板の部分を切り出してから縮小して送ります。
送る大きさは、モデルの解像度に合わせて決めます。 公式のページでは、Claude 4.7 以降のモデルは長辺 2576 ピクセルまで、それ以外は長辺 1568 ピクセルまでをそのまま扱い、それより大きい画像は縮小されるとされています。縮小されると細い字が読みにくくなるので、自分で板の部分だけを切り出し、長辺をその範囲に収めてから送ります。 板の外の壁や床を写したまま縮小されるのが、いちばん字を小さくします。
公式のページは、限界もはっきり書いています。 画質の低い画像、回転した画像、200ピクセル未満の小さな画像では誤ることがあり、画像の解釈は、とくに重要な用途では人が確かめるよう書かれています。この構成で、班長の確認を外さない理由です。
03どうやって実装するのか
処理の起点を決める
班長が撮影した写真が共有フォルダに保存されたことを起点にします。 タブレットの撮影画面で、ライン番号と直を選んでから撮るようにし、ファイル名を「ライン番号_直_日付」にそろえます。 ファイル名からどのラインのどの直かが決まるので、写真の中の文字からラインを読み取らせる必要がありません。
保存されたら、すぐに読み取りを始めます。班長が片付けをしている間に結果が出て、退勤前に確定できるのが狙いです。読み取りの結果が出るまで板を消さないように、撮影の画面に「確定するまで消さない」と表示しておきます。
撮り直しの写真が来たときは、新しいほうを使います。 同じラインの同じ直で2枚目が来たら、1枚目の読み取り結果は破棄し、どちらを使ったかを記録に残します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 管理板の写真 | 直の終わりに撮った板全体 | 共有フォルダ |
| 板の書式の説明 | 時間帯の行の数と時刻、列の名前と並び | 事務局が作る書式の定義 |
| その直の計画 | 時間帯ごとの計画数(生産計画から) | 生産計画の表 |
| 停止の区分の一覧 | 段取り、材料待ち、設備の故障、品質の確認、その他、と言い換えの例 | 生産管理課が作る一覧 |
| ラインの情報 | ライン番号、品番、タクト、1時間あたりの上限の目安 | ラインの台帳 |
質を決めるのは、2つ目と4つ目です。 書式の説明が無ければ、AIはどの列が「累計実績」かを字の位置から推すことになります。列の並びを先に教えておけば、AIは決まった枠のどこに何が書かれているかを読むだけで済みます。
3つ目の計画を渡すのは、読み取りの確かめのためです。 板の「計画」の欄は班長が手で書いたもので、生産計画の表と食い違っていれば、どちらかが誤っています。 読み取りの誤りか、書き間違いか、計画の変更かを、班長が確かめるきっかけになります。
5つ目の上限の目安は、読み違いを拾うためのものです。 1時間に60個が上限のラインで「160」と読めたら、「1」が余分に読まれたか、書き間違いかのどちらかです。
データの取得方法を決める
写真は、タブレットから共有フォルダへ保存されたものを Python が読みます。読み取りは、1枚の写真を1回のAPI呼び出しで送ります。 写真は画像のブロックとして先に置き、指示の文はその後に置きます。公式のページでは、画像を文より先に置くほうが良い結果になるとされています。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 写真 | 共有フォルダ | 読み取りの材料 |
| ライン・直・日付 | ファイル名 | 日報の行の特定 |
| 時間帯ごとの計画 | 生産計画の表 | 板の計画欄との照合 |
| 停止の区分 | 区分の一覧 | 停止の理由の区分の候補 |
| 上限の目安 | ラインの台帳 | 読み違いの検知 |
前の直の確定した値も読みます。 板の「累計」が直の初めから数えるのか、日の初めから数えるのかは工場によって違います。日の初めから数える書式なら、前の直の最後の累計と、この直の最初の累計がつながるかを確かめます。
停止の区分の一覧には、言い換えの例を必ず添えます。 「段取」「段替え」「品種切替」「型替え」を「段取り」に、「材待ち」「部品待ち」「欠品」を「材料待ち」に、という対応です。区分の候補は、この言い換えの表と板の言葉を Python で照らして付けます。 表に無い言葉は候補を付けず、班長が選びます。新しい言い方が出るたびに表に足せば、第3章の(c)の割れは月を追って減っていきます。
AIへ渡す前に整形する
- ファイル名の確認 … ライン番号、直、日付がそろっていないものは止めて、班長に撮り直しを頼みます
- 向きの補正 … 縦横が逆、上下が逆の写真を直します。公式のページは、回転した画像で誤ることがあるとしています
- 板の部分の切り出し … 板の四隅の位置を決め、板の外を落とします。決まった位置から撮る前提で、床の撮影位置に目印を貼っておきます
- 縮小 … 長辺をモデルが扱う範囲に収めます
- 明るさと反射の確認 … 白く飛んだ部分が多い写真は、撮り直しを頼みます
- 大きさの確認 … 1枚10MBを超えないようにし、形式を JPEG か PNG にそろえます
- 人の映り込みの確認 … 板の前に人が立っている写真は、撮り直しを頼みます
5番目がいちばん多い撮り直しの理由になるはずです。 ホワイトボードは天井の照明を反射し、ちょうど数字が書かれた欄の上に白い帯が乗ります。 撮る位置と角度を一度決めて、反射の出ない場所に目印を貼るのが確実です。
7番目は、読み取りのためでもあり、写真の扱いのためでもあります。 板の前に人が立つと、その後ろの欄が読めません。加えて、作業者の顔が写った写真を外部に送る理由はありません。
AIに処理させる
させるのは、決まった書式の枠の中に書かれた字を、欄ごとに読み、どれくらい読めたかを付けることだけです。
| 欄 | AIがすること | 読めないときの扱い |
|---|---|---|
| 時間帯 | 行の時刻を、書式の定義と突き合わせて確かめる | 定義と違えば needs_check |
| 計画・実績 | 書かれた数字をそのまま読む | 空欄なら empty、字があるが読めなければ unreadable |
| 累計計画・累計実績 | 書かれた数字をそのまま読む | 同上 |
| 差 | 書かれた数字と符号(+、-、▲)をそのまま読む | 同上 |
| 停止・異常の内容 | 書かれた言葉をそのまま書き写す | 一部しか読めなければ、読めた部分だけ写し partial |
| 記入者 | この構成では読まない | - |
| させないこと | 理由 |
|---|---|
| 累計や差の計算 | プログラムで計算し、書かれた値と比べる |
| 読めない数字の推測 | 前後の時間帯から推すと、読み違いが見つからなくなる |
| 停止の原因の推定 | 「材料待ち」を「段取りの遅れ」と読み替えない |
| 停止の区分の決定 | 区分の候補は一覧との照合で付け、班長が決める |
| 記入者の名前の読み取り | 日報には班長のログインから入る。名前を読む必要がない |
2行目がいちばん起きやすい失敗です。 実績の欄がかすれて読めないとき、前後の時間帯が「58」「58」なら、AIは「58」と書きたくなります。その推測が当たっていても外れていても、班長はその欄を見直しません。 読めないものは unreadable として返させ、班長の目に必ず届くようにします。
「差」の欄も、計算せずに書かれたまま読みます。 板の「差」は班長が暗算で書いたもので、プログラムで計算した差と違っていれば、班長の書き間違いか、読み取りの誤りです。 どちらにしても、日報に入れる前に直すべき箇所が1つ見つかったことになります。
指示内容を固定する
添付の写真は、製造ラインの生産管理板(ホワイトボード)を直の終わりに撮ったものです。
板の書式は次のとおりです。
【書式】
- 行:時間帯が8行。上から {time_slots}
- 列:左から「時間帯」「計画」「実績」「累計計画」「累計実績」「差」
「停止・異常の内容」「記入者」
- 「記入者」の列は読まないでください。
【読み方】
- 各欄に書かれた字を、書かれたとおりに読んでください。
- 数字は、計算・補完・修正をしないでください。前後の行から推して
埋めないでください。
- 欄に何も書かれていなければ status を empty にしてください。
- 字が書かれているが読み取れない、または2通り以上に読めるときは
status を unreadable にし、読める候補があれば candidates に挙げてください。
- 消し跡が残っていて、どれが最新の記入か分からないときも unreadable です。
- 「差」の欄は、+、-、▲などの記号も含めてそのまま写してください。
- 「停止・異常の内容」は、書かれた言葉をそのまま写してください。
言い換え、要約、原因の推測をしないでください。
一部しか読めないときは、読めた部分だけを写し、status を partial にしてください。
- 迷ったときに ok を選ばないでください。
【写真そのものについて】
- 板の一部が写っていない、反射で欄が見えない、板の前に物や人がある場合は、
photo_issues にその行と列を書いてください。
- 写真から人を特定したり、人について述べたりしないでください。
「迷ったときに ok を選ばない」を最後に置くのは、誤りの向きをそろえるためです。 読めたものを unreadable にしても、班長が1欄見る手間が増えるだけです。読めていないものを ok にすると、その誤りは日報まで素通りします。
「消し跡」を名指しで書いているのは、ホワイトボードに特有の失敗だからです。 書き直した欄には、前の数字が薄く残っています。AIはどちらか一方を選んで ok にしがちで、それが古いほうだと誤った実績が日報に入ります。
出力形式を固定する
次の形のJSONで受け取ります。
{
"line_id": "",
"shift": "",
"date": "",
"rows": [
{
"time_slot": "08:00-09:00",
"cells": {
"plan": { "text": "", "status": "ok | empty | unreadable", "candidates": [] },
"actual": { "text": "", "status": "ok | empty | unreadable", "candidates": [] },
"cum_plan": { "text": "", "status": "ok | empty | unreadable", "candidates": [] },
"cum_actual": { "text": "", "status": "ok | empty | unreadable", "candidates": [] },
"diff": { "text": "", "status": "ok | empty | unreadable", "candidates": [] },
"stop_note": { "text": "", "status": "ok | empty | partial | unreadable" }
}
}
],
"photo_issues": [ { "time_slot": "", "column": "", "issue": "" } ]
}
Claude の構造化出力は、output_config.format に type: "json_schema" を指定すると返答がスキーマに沿ったJSONになります。enum の大文字・小文字は保証されないとされているので、status の値は小文字にそろえてから比べます。
1つ目の理由は、プログラムで確かめられることです。 受け取ったJSONに対して、Python が次の規則を当てます。
| 規則 | 印 | 班長の扱い |
|---|---|---|
status が unreadable または partial | 読めない | 写真を見て入力する |
| 累計実績 ≠ 前の行の累計実績 + この行の実績 | 累計が合わない | どの欄が誤りかを写真で確かめる |
| 書かれた差 ≠ 計算した差 | 差が合わない | 板の書き間違いか読み違いかを確かめる |
| 計画欄 ≠ 生産計画の表の値 | 計画が合わない | 計画の変更があったかを確かめる |
| 実績 > 1時間あたりの上限の目安 | 値が大きすぎる | 読み違いを疑う |
| 実績が計画の80%未満 | 差が大きい | 停止の理由が書かれているかを確かめる |
2つ目は、確認の画面を作りやすいことです。 時間帯と列ごとに値と印が分かれているので、写真の横に表を出し、印の付いた欄だけ色を変える画面がすぐに作れます。
3つ目は、photo_issues で撮り直しを判断できることです。 反射で見えない欄が3つ以上ある写真は、確認より撮り直しのほうが早く終わります。
「差が大きい」の基準は、ラインごとに生産管理課が決めます。 80%はここでの仮の値です。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 共有フォルダ | Python の定期的な確認 | 新しい写真を検知する |
| Claude API | API呼び出し | 写真の読み取り。構造化出力 |
| 生産計画の表・ラインの台帳 | 読み取りのみ | 計画数と上限の目安 |
| 確認の画面 | タブレットのブラウザ | 写真と読み取り結果を並べ、班長が直して確定する |
| 生産日報 | Python が書き込み | 班長の確定後だけ、時間帯ごとの行を書く |
| チャット | 通知 | 差が大きい時間帯を係長へ |
生産日報への書き込みは、班長の確定を待ちます。 読み取りの直後に書き込むと、印の付いた欄が誤ったまま日報に入り、班長が直し忘れたときにそのまま集計に使われます。 確定のボタンが押されたときに初めて書きます。
停止の区分は、日報の別の列に入れます。 板に書かれた言葉はそのまま「停止の内容」の列に、区分は班長が選んだものを「停止の区分」の列に入れます。元の言葉を消さないので、区分の付け方を後から見直せます。
人が確認する
班長が、退勤の前に確定します。 確認の画面では、写真の横に読み取り結果の表が出て、印の付いた欄が色付きで表示されます。
- 「読めない」の欄を写真で見て入力する … 写真でも読めなければ、板を見て入力します。このため、確定するまで板を消しません
- 「累計が合わない」「差が合わない」を確かめる … 板の書き間違いだったときは、正しい値を入れ、備考に「板の記入誤り」と残します
- 「計画が合わない」を確かめる … 直の途中で計画が変わったなら、その旨を備考に入れます
- 停止の区分を選ぶ … 候補が出ていればそれを確かめ、無ければ一覧から選びます
- 確定する
2番目で「板の記入誤り」を残すのは、班長の書き方の癖を責めるためではありません。 同じラインで同じ誤りが続くなら、板の書式(累計の列の位置など)を見直す材料になります。
係長は、確定した後に届く知らせを見ます。 差が大きい時間帯と、その停止の内容が並んだ知らせです。夜の直の知らせは、翌朝の打合せを待たずに、次の直の班長への申し送りに使えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 撮り忘れて板を消した | その直は読み取りなし。班長が記憶とメモから手で入力し、備考に「写真なし」 |
| 反射・ぼけで読めない欄が多い | photo_issues が多ければ撮り直しを頼む。板を消していなければ撮り直せる |
| ファイル名にラインや直が無い | 処理を止め、撮影の画面から撮り直す |
| 写真が回転している | 前処理で補正する。補正できなければ撮り直す |
| 書式の違う板(試作のライン) | 書式の定義が無いラインは処理しない。手で入力 |
| 1時間ごとの記入が抜けた時間帯 | empty のまま班長に見せる。推測で埋めない |
| 直の途中で計画が変わり、板に二重線がある | 該当の欄を unreadable として班長が入力する |
| 構造化出力が途中で切れる・拒否される | 応答の止まった理由を見て、結果を使わずに再実行する |
| 同じ直の写真が2枚届く | 新しいほうを使い、どちらを使ったかを記録する |
上の2行が、運用の初めの数週間に集中して起きます。 どちらもAIの問題ではなく、撮る手順が定着するかどうかの問題です。 板の脇に撮影の手順と目印を貼り、撮り忘れの件数を週ごとに数えます。
8行目は、Claude の構造化出力のページの注意に合わせたものです。 拒否や出力の上限で止まった応答は、スキーマに沿わないことがあるとされています。止まった理由を確かめてから読み込みます。
記録を残す
- 元の写真と、切り出し・縮小した後の写真
- AIの応答のJSONの全文と、Python が付けた印
- 班長が直した欄と、直す前後の値、備考
- 確定した日時と、確定した班長
- 係長への知らせと、その後の申し送り
- 撮り直しの回数と理由
1つ目で写真を残すのは、板が消えた後に記録をさかのぼれる唯一の手段だからです。 日報の数字に疑いが出たとき、写真があれば、板に何が書かれていたかを後から確かめられます。 保存期間は、日報の保存期間に合わせて決めます。
3つ目の「直す前後の値」は、読み取りの弱いところを見つける材料です。 特定の数字(「1」と「7」など)や、特定のラインの書き癖で直しが集中していれば、指示文に例を足すか、班長に書き方を相談するかを決められます。
04実装レベルの3段階
本記事の想定は半自動化です。 1件9分が3分になるのは、打ち直しと累計の突き合わせが機械に移り、班長は印の付いた欄だけを見るからです。 係長の拾い出しも、印で絞られた時間帯を見るだけになります。 本格構成で増えるのは、当日のうちに差を知らせることです。 夜の直の大きな遅れが、翌朝を待たずに次の直に申し送られます。ただし、知らせの数が多すぎると読まれなくなるので、「差が大きい」の基準はラインごとに調整します。 段階を飛ばさないでください。 半自動化を1か月回すと、撮り直しの多いライン、直しの多い欄が分かります。そこを撮影の手順と板の書式で直してから知らせを足すほうが、知らせの誤りが減ります。
05工数削減シミュレーション
導入後 800件 × 3分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 組立・加工のラインごとにホワイトボードの生産管理板を置き、班長が1時間ごとに計画と実績、止まった理由を手で書き込んでいる工場。直の終わりに、その板の内容を班長が生産日報のスプレッドシートへ打ち直しており、打ち直しの手間と転記の誤りが問題になっている場合。板は消して次の直に渡すため、写真しか記録が残らない場合。
- 設備から生産数が自動で取れており、板は見える化のためだけに書いている場合(数は設備から取るほうが確か)。板の書式がラインごと・班長ごとにばらばらで、時間帯の枠が決まっていない場合(先に書式をそろえる)。ラインが数本で、打ち直しの手間が小さい場合。なお、停止の原因が何だったか、計画との差にどう手を打つかは、班長と係長が判断します。
07最小構成で試す方法
- 1本のラインで、1週間分(10直分)の管理板を、消す前に撮っておく
- 同じ10直分の生産日報(班長が打ち直したもの)を用意する
- 写真を1枚ずつ手元の Claude の画面に貼り、第7章の指示文の【書式】と【読み方】をそのまま使って読ませる
- 読み取り結果を、班長が打ち直した日報と並べる
- 一致しない欄について、写真を見て、どちらが正しいかを確かめる
5番目を必ずやってください。 一致しない欄は、AIの読み違いとは限りません。班長の打ち直しの誤りだったという結果が出ることがあります。
| 出てきた内容 | 判断 |
|---|---|
読めた欄は日報と一致し、読めない欄は unreadable になった | 前処理と確認の画面の作成に進む |
| かすれた欄を前後から推して埋めた | 指示の書き方で直る。構成は有効 |
| 反射で読めない欄が多い | 撮る位置と角度が先。 AIの問題ではない |
| 班長の打ち直しのほうが誤っていた | 第3章の(b)が裏付けられた。撮影の手順の定着を優先する |
3行目が出たら、撮影の目印を決めてから同じ1週間をやり直してください。 撮る位置を変えるだけで、読めない欄の数は大きく変わります。
試すラインは、書き込みの字がいちばん読みにくい班長のラインを選ぶのも一案です。 読みやすいラインで試してうまくいっても、広げたときに読めない欄が急に増えます。難しいほうで unreadable が正直に返るかを見ておけば、ほかのラインで驚くことが減ります。 その際、班長には字の癖を評価するための試験ではないことを先に伝えてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| かすれた数字を前後から推して埋める | 推測を禁じ、unreadable を返させる。迷ったら ok にしない |
| 消し跡の古い数字を読む | 指示に消し跡を名指しで書き、unreadable にさせる |
| 照明の反射で欄が見えない | 撮る位置と角度を決め、目印を貼る |
| 撮り忘れて板を消す | 撮影の後にマグネットを裏返すなど、消す人が確かめられる目印 |
| 板の外まで写して字が小さくなる | 板の部分を切り出してから縮小する |
| 写真が回転している | 前処理で補正する |
| 停止の理由の書き方がばらばら | 元の言葉は残し、区分は一覧との照合で候補を付け、班長が選ぶ |
| 読み取り直後に日報に書き込む | 班長の確定後だけ書く |
| 「差が大きい」の知らせが多すぎる | ラインごとに基準を調整する |
status の大文字・小文字がそろわない | 小文字にそろえてから比べる |
| 作業者の顔が写る | 板の前に人がいない状態で撮る。写っていたら撮り直す |
上の2行が、この構成の失敗のほとんどです。 どちらも、読めていないものを読めたことにするという同じ失敗です。読み取りの精度を上げようとするより、読めないものを読めないと返させることのほうが、日報の正しさに効きます。
3行目と4行目は、AIの外の問題です。 撮影の手順が定着するかどうかで、この構成が回るかどうかが決まります。導入の最初の1か月は、読み取りの結果より撮り直しと撮り忘れの件数を見てください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: ラインごとの時間帯別の生産数と計画、停止の理由(設備の不調や品質の問題を含む)、そして写真に写りうる工場の内部と人です。
- 写真に写る範囲を板に限る … 板の部分を切り出してから送ります。工場の設備の配置や、ほかの工程の様子を外部に送る理由はありません
- 人を写さない … 板の前に人がいない状態で撮ります。Claude は画像の人物を特定しないとされていますが、そもそも人の写った写真を送らない手順にします
- 記入者の名前を読まない … 日報の記入者は班長のログインから入ります。板の記入者の欄は読ませません
- 生産日報に自動で書き込まない … 確定は班長が行います。日報は原価や納期の判断に使われるので、誤った値が素通りする経路を作りません
- 停止の原因の判断をAIにさせない … 板に書かれた言葉を写すだけです。原因が何だったか、どう手を打つかは班長と係長が決めます
- 写真の保存期間を決める … 日報の保存期間に合わせ、それを過ぎたものは消します
誤りが起きた場合のリスクは、誤った実績が日報に入って集計や原価を狂わせることと、読めなかった欄が「生産なし」として扱われることの2つです。 前者は累計と差の確かめで、後者は empty と unreadable を分けることで防ぎます。どちらも、読めないものを読めないと返させる設計から出ています。
もう一つ、班長の負担の置き場所にも気を配ってください。 打ち直しが無くなっても、撮り直しの依頼や確認の印が多すぎれば、班長にとっては別の手間が増えただけになります。 撮り直しと印の件数をラインごとに数え、多いラインは撮影の手順や板の書式を一緒に直します。仕組みのほうを班長に合わせる、という順番を守ってください。
10まず何から始めるか
1週目:撮る手順を決める
1本のラインで、板を撮る位置と角度を決め、床に目印を貼ります。反射が出ないか、板全体が収まるかを、昼と夜の照明で確かめます。 撮影の後に裏返すマグネットも決めます。
2週目:1週間分を撮りためる
そのラインで10直分の板を、消す前に撮ります。班長にはこれまでどおり日報を打ち直してもらいます。
3週目:最小構成で読み比べる
第8章の手順で10直分を読ませ、日報と並べます。一致しない欄が、読み違いなのか、打ち直しの誤りなのかを写真で確かめます。
4週目:書式の定義と確認の画面を作る
板の書式の定義、停止の区分の一覧、上限の目安を用意し、Python の前処理と規則、確認の画面を作ります。この時点では、班長は日報の打ち直しも続け、確定した結果と並べます。
2か月目: 試したラインで打ち直しをやめ、確認の画面での確定に切り替えます。撮り直しと撮り忘れの件数を週ごとに数えます。3か月目以降: ラインを5本ずつ広げ、1件9分が何分になったかを実測します。撮り忘れがほぼ無くなり、班長が退勤前に確定を終えられるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 画像が JPEG、PNG、GIF、WebP に対応すること。Claude API に直接送る場合の1枚の上限が10MB(base64)、大きさの上限が 8000×8000 ピクセルであること。Claude 4.7 以降のモデルは長辺 2576 ピクセル、それ以外は長辺 1568 ピクセルまでを扱い、それより大きい画像は縮小されること。画像が 28×28 ピクセルの区画ごとに数えられること。画像を文より先に置くほうが良い結果になること。画質の低い画像、回転した画像、200ピクセル未満の小さな画像で誤ることがあること。人物の特定に使えないこと。重要な用途では人が確かめるよう求めていること | Claude Docs: Vision | 2026-10-08 |
output_config.format に type: "json_schema" を指定すると返答がスキーマに沿ったJSONになること。オブジェクトでは additionalProperties を false にすること。enum の大文字・小文字が保証されず、大文字・小文字を区別せずに比べるよう推奨されていること。拒否や出力の上限で止まった応答がスキーマに沿わない場合があること | Claude Docs: Structured outputs | 2026-10-08 |
停止の原因や、計画との差にどう手を打つかは、班長と係長が判断してください。 本記事は Anthropic の公開している仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0904)についてのご相談はこちらから。
