現場の手書き作業日報を読み取って生産実績に反映する
現場で記入された手書きの作業日報を入力に、製造指示番号・良品数・不良数・稼働時間を読み取り、生産管理システムに登録できる形にします。生産管理担当の作業は、日報を見ながら打ち込むことから、読み取り結果を確かめて承認することに変わります。
- 利用ツール
- AWS Textract/Azure AI/ChatGPT/Claude/Gemini/Google Document AI/Make/n8n/Power Automate
- 対象業界
- 建設/物流/製造
- 対象部門
- 品質管理/生産
- 対象業務
- データ入力・転記/集計・分析
- 主な課題
- 入力作業が多い/属人化している/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 作業者が就業終了時に日報を記入し、所定の箱に入れる
- 翌朝、班長が回収して生産管理部へ回す
- 担当者が日報を1枚ずつ見る
- 生産管理システムで製造指示番号を検索し、該当の指示を呼び出す
- 良品数、不良数、段取り時間、稼働時間、停止時間を入力する
- 不良の内容(自由記述)を読み、不良区分のコードに振り分ける
- 停止理由(自由記述)を読み、停止区分のコードに振り分ける
- 稼働時間と生産数の関係がおかしい日報を見つけて、現場に確認する
- 入力済みの日報をファイルに綴じて保管する
- 作業者が日報を記入し、所定の箱に入れる(様式は変えない)
- 班長が回収し、複合機で一括スキャンする(またはタブレットで撮影する)
- 自動スキャンしたファイルを1枚ずつに分割する
- 自動日報の項目を読み取り、項目ごとの確からしさを受け取る
- 自動作業者番号・設備番号・製造指示番号・品番をマスタと照合する
- 自動不良の内容と停止理由の自由記述を、区分コードに振り分ける
- 自動稼働時間・生産数・標準時間の整合を確認する
- 自動記入漏れと、確からしさの低い項目を印を付ける
- 人担当者が確認画面で、原本の画像と読み取り結果を並べて見て承認する
- 自動承認された内容を生産管理システムへ登録する
- 自動現場への確認が必要なものを、班長へその日のうちに通知する
各工程の詳しい説明を読む
- 作業者が就業終了時に日報を記入し、所定の箱に入れる
- 翌朝、班長が回収して生産管理部へ回す
- 担当者が日報を1枚ずつ見る
- 生産管理システムで製造指示番号を検索し、該当の指示を呼び出す
- 良品数、不良数、段取り時間、稼働時間、停止時間を入力する
- 不良の内容(自由記述)を読み、不良区分のコードに振り分ける
- 停止理由(自由記述)を読み、停止区分のコードに振り分ける
- 稼働時間と生産数の関係がおかしい日報を見つけて、現場に確認する
- 入力済みの日報をファイルに綴じて保管する
問題は5つあります。
(a)手書きの数字を読み違える。 月に数件、入力後に発覚します。良品数の読み違いは、在庫の差異と原価の狂いになります。 発覚するのは棚卸のときです。
(b)記入漏れがある。 停止時間だけ書かれて理由が空欄、不良数だけ書かれて内容が空欄、というものが月に100枚近くあります。現場に確認しても、数日経つと本人が覚えていません。
(c)実績が1日遅れる。 当日の進捗が分からないため、遅れに気づくのが翌日になります。
(d)不良区分の振り分けが人による。 「キズ」と書かれていても、外観不良なのか、搬送時の打痕なのか、加工中の問題なのかで区分が変わります。4名の担当者で基準が揃っていません。
(e)整合の確認がされていない。 「稼働時間3時間で良品500個」が妥当かどうかは、品番ごとの標準時間と比べないと分かりません。現状はそこまで見ていません。
- 作業者が日報を記入し、所定の箱に入れる(様式は変えない)
- 班長が回収し、複合機で一括スキャンする(またはタブレットで撮影する)
- 【自動】 スキャンしたファイルを1枚ずつに分割する
- 【自動】 日報の項目を読み取り、項目ごとの確からしさを受け取る
- 【自動】 作業者番号・設備番号・製造指示番号・品番をマスタと照合する
- 【自動】 不良の内容と停止理由の自由記述を、区分コードに振り分ける
- 【自動】 稼働時間・生産数・標準時間の整合を確認する
- 【自動】 記入漏れと、確からしさの低い項目を印を付ける
- 【人】 担当者が確認画面で、原本の画像と読み取り結果を並べて見て承認する
- 【自動】 承認された内容を生産管理システムへ登録する
- 【自動】 現場への確認が必要なものを、班長へその日のうちに通知する
自動化されるのは「読む」「探す」「打ち込む」「振り分ける」「照合する」の5つです。残るのは「数字が合っているかを判断する」です。
02今回想定するシステム構成
作業者(手書きの日報) │ ▼ 班長が回収 → 複合機で一括スキャン │ ▼ 共有フォルダ(工場ごと) │ ▼【トリガー】30分ごと(スケジュール) n8n │ ├──▶ ファイルの分割(1枚1日報) │ ├──▶ Azure AI Document Intelligence │ ├─ カスタム抽出モデル … 定型の日報様式から項目を読み取る │ └─ prebuilt-read … 手書きの判定と確からしさの取得 │ ├──▶ マスタ照合(作業者 / 設備 / 製造指示 / 品番) │ ├──▶ LLM API ── 不良内容と停止理由を区分コードへ振り分け │ + 整合の確認結果の説明 + 現場への確認文 │ ▼ 確認画面(日報の画像と読み取り結果を左右に並べる)──【人が承認】 │ ├──▶ 生産管理システムへ実績登録 └──▶ 班長へ確認依頼(記入漏れ・読めない項目)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Power Automate、個別開発 |
| OCR | Azure AI Document Intelligence(カスタム抽出モデル+prebuilt-read) | Google Document AI、AWS Textract |
| 生成AI | Claude API | OpenAI API、Gemini API |
| 保管 | 共有ファイルサーバ | SharePoint、Box |
| 基幹システム | 生産管理システム | 各社のERP |
現場に端末を置いて直接入力する構成を、先に検討してください。 読み取りの誤りが原理的に発生しないためです。それでも紙が残るのは、現場の作業環境(手袋、油、粉塵、狭い作業スペース)に端末が合わないからです。 この構成は、その現実を前提にしています。
n8n を選んだのは、ファイルの分割・条件分岐・再処理といった処理をコードで細かく書きたい箇所が残るためです。 ワークフローの中にコードを書けるツールであれば、Make でも Power Automate でも成立します。
03どうやって実装するのか
処理の起点を決める
共有フォルダに新しいスキャンファイルが置かれたことを、定期実行で確認します。 n8n の Schedule Trigger は、秒・分・時・日・週・月・cron式の7種類の間隔を設定できます。30分ごとに確認する設定にすれば、午前中に回収した日報が昼までに処理されます。
リアルタイムである必要はありません。 ただし、「翌日」から「当日中」に短縮することには意味があります。 遅れや不良の発生に、その日のうちに気づけるためです。
なお、セルフホストの n8n では既定のタイムゾーンが America/New_York です。環境変数で変更するか、ワークフロー側でタイムゾーンを設定してください。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 日報のスキャン画像 | 1枚1日報(複数枚が1PDFになっていることが多い) | 複合機 → 共有フォルダ |
| 作業者マスタ | 作業者番号、氏名、所属、保有資格 | 人事システム/生産管理システム |
| 設備マスタ | 設備番号、設備名、設置工場 | 生産管理システム |
| 製造指示 | 指示番号、品番、指示数量、納期、進捗 | 生産管理システム |
| 品番マスタ | 品番、品名、標準加工時間、標準段取り時間 | 生産管理システム |
| 不良区分マスタ | 不良コードと名称(外観、寸法、材質、加工、搬送など) | 品質管理部 |
| 停止区分マスタ | 停止コードと名称(段取り、故障、材料待ち、計画停止など) | 生産管理部 |
| 過去の日報の実績 | 過去の「自由記述 → 振り分けたコード」の対応(直近12か月) | 生産管理システム |
「過去の自由記述 → コード」の対応が、振り分けの精度を決めます。 「キズ」という同じ記述が、設備によって違うコードに振り分けられている、という実態が見えます。その実態ごと学習させるのが正しい形です。
データの取得方法を決める
OCR: 2つのモデルを組み合わせます。
- カスタム抽出モデル … 日報の様式が固定しているので、これが本命です。同じ様式の書類が5件あれば学習を始められます。 項目の位置が決まっているため、「この枠の中の数字」として読み取れます
- prebuilt-read … 手書きかどうかの判定に使います。Read モデルは、各テキスト行が手書きかどうかを分類し、確からしさのスコアを付けて返します(
stylesの中にisHandwrittenとconfidenceが入ります)。また、抽出した単語ごとにconfidenceが返ります
この confidence が、この構成の要です。 数値項目の confidence がしきい値を下回ったものを、人の確認に回します。
入力の要件を確認してください。 抽出する文字の高さは、1024×768の画像で12ピクセル以上が目安とされています(150dpiの8ポイント相当)。複合機のスキャン解像度を300dpi以上に設定してください。 200dpiだと、小さく書かれた数字が読めません。
マスタ類: 生産管理システムから日次でエクスポートしたファイルを参照します。リアルタイム連携は不要です。
AIへ渡す前に整形する
- ファイルの分割 … 複合機の一括スキャンは、数十枚が1つのPDFになります。1ページ1日報として分割します
- 向きの補正 … 上下逆に置かれた日報があります。日報の様式に含まれる固定の文字列(表題など)の向きで判定し、回転させます
- 解像度の判定 … 300dpi未満のものを弾きます。読めないものを無理に読ませないことが重要です
- 重複の検出 … 同じ日報が2回スキャンされることがあります。「日付+作業者番号+設備番号」で重複を検出します
- 白紙・非日報の除外 … 仕切り紙や別の書類が混ざります。様式の固定文字列の有無で判定します
- 既登録の確認 … 同じ日付・作業者の実績が既に登録されていないかを確認します。二重登録は在庫と原価を狂わせます
AIに処理させる
OCRとLLMで役割を分けます。
OCR(Document Intelligence)にさせること: 枠内の文字と数字の読み取り、手書きかどうかの判定、確からしさの算出。数値の読み取りはここで完結させます。LLMに数字を推測させません。
LLMにさせること:
| 処理 | 内容 |
|---|---|
| 不良内容の区分への振り分け | 「キズ」「バリ残り」「寸法NG」といった記述を、不良コードに対応づける |
| 停止理由の区分への振り分け | 「材料待ち」「チャック不良」といった記述を、停止コードに対応づける |
| 記入漏れの指摘 | 不良数が書かれているのに内容が空欄、といった不整合を挙げる |
| 整合の確認の説明 | 標準時間との乖離を、担当者が読める形で説明する |
| 現場への確認文の作成 | 班長が作業者に聞ける形の確認文を作る |
| 備考欄の読み解き | 「材料が硬かった」「昼から刃を替えた」といった記述から、実績に関わる事実を取り出す |
LLMに数値を読ませないでください。 数値はOCRの出力をそのまま使い、確からしさが低ければ人に回します。LLMに「この日報の良品数は何個ですか」と画像を渡して聞く構成にすると、確からしさが得られず、誤りの検出ができません。
振り分けについても、既存のコードからのみ選ばせます。 新しい不良区分をAIに作らせると、集計が崩れます。
指示内容を固定する
あなたは、製造現場の作業日報の入力を支援する担当者です。
OCRで読み取られた日報の内容から、自由記述の区分への振り分けと、
確認すべき点の洗い出しを行ってください。
【厳守事項】
- 数値を読み取ったり、書き換えたりしないでください。
良品数、不良数、時間はOCRの結果をそのまま引き継いでください。
OCRが読めなかった項目を、あなたが推測して埋めないでください。
- 不良区分・停止区分は、下記のコード一覧からのみ選んでください。
新しいコードを作らないでください。
該当するものがない場合は code を null にし、
needs_review に「区分に該当なし」と入れてください。
- 自由記述が空欄の場合、区分を推測しないでください。
「不良数が記入されているが、内容が空欄」として needs_review に入れてください。
- 標準時間との乖離について、原因を断定しないでください。
「稼働時間3.0時間に対し標準は5.2時間(乖離42%)」という事実だけを書き、
「段取りに手間取ったと思われる」と推測しないでください。
- 現場への確認文は、作業者がその日のうちに答えられる形で書いてください。
「不良の詳細を教えてください」ではなく、
「不良3個の内容が空欄です。外観・寸法・その他のどれでしたか」と書いてください。
- 備考欄の記述のうち、作業者の体調や勤務態度に関する記述は転記しないでください。
【不良区分のコード一覧】
{defect_codes}
【停止区分のコード一覧】
{stoppage_codes}
【この設備・この品番の過去の振り分け実績(直近12か月)】
{past_classifications}
【OCRの読み取り結果】
{ocr_result}
【マスタ照合の結果】
作業者: {worker} / 設備: {machine} / 製造指示: {order} / 品番: {item}
標準加工時間: {standard_time} / 標準段取り時間: {standard_setup_time}
【整合の計算結果】
{consistency_check}
「数値を読み取ったり、書き換えたりしないでください」の1行が、この構成の安全装置です。 これを書かないと、OCRが空で返した良品数を、LLMが「指示数量と同じでしょう」と埋めます。その数字は原価計算に入ります。
「原因を断定しないでください」も外せません。 「段取りに手間取ったと思われる」と書かれると、担当者がそのまま停止区分を選んでしまいます。事実だけを示し、判断は人に残します。
出力形式を固定する
{
"report_id": "",
"page_image": "",
"extracted": {
"work_date": { "value": "", "confidence": 0.0, "is_handwritten": true },
"worker_no": { "value": "", "confidence": 0.0, "matched": "" },
"machine_no": { "value": "", "confidence": 0.0, "matched": "" },
"order_no": { "value": "", "confidence": 0.0, "matched": "" },
"item_code": { "value": "", "confidence": 0.0, "matched": "" },
"good_qty": { "value": null, "confidence": 0.0 },
"defect_qty": { "value": null, "confidence": 0.0 },
"setup_minutes": { "value": null, "confidence": 0.0 },
"run_minutes": { "value": null, "confidence": 0.0 },
"stop_minutes": { "value": null, "confidence": 0.0 }
},
"classified": {
"defect_code": "",
"defect_text": "",
"defect_basis": "",
"stoppage_code": "",
"stoppage_text": "",
"stoppage_basis": ""
},
"consistency": [
{
"check": "run_time_vs_qty | setup_vs_standard | qty_vs_order | time_total",
"result": "ok | deviation | cannot_check",
"detail": ""
}
],
"low_confidence_fields": [],
"missing_fields": [],
"needs_review": [],
"confirmation_to_site": ""
}
すべての読み取り項目に confidence を持たせます。 これがないと、どの数字を疑うべきかが分かりません。確認画面では、しきい値を下回った項目を色分けします。
matched は、マスタ照合の結果です。読み取った作業者番号がマスタにない場合、matched は空になります。マスタにない番号を自動で登録しないでください。
defect_basis には、その区分を選んだ根拠(過去の振り分け実績のどれに基づくか)を入れます。担当者が「なぜこのコードか」を確かめられるようにするためです。
なお、Claude API には出力をJSONスキーマに沿わせる構造化出力の機能があります(2026-09-15時点ではベータ機能として提供)。項目数が多く後段が機械処理なので、利用できると安全です。
システムへ連携する
承認後、生産管理システムへ実績を登録します。連携方法は3通りあります。
| 方式 | 内容 |
|---|---|
| API連携 | 生産管理システムがAPIを提供していれば、承認と同時に登録する |
| ファイル取込 | 所定のCSV形式で書き出し、生産管理システムの実績取込機能で読ませる |
| RPA | 上記が使えない場合。画面操作を自動化する |
国産の生産管理システムでは、実績のCSV取込が用意されていることが多く、まずそこを確認してください。 APIの有無と仕様は、自社の生産管理システムのベンダーに確認が必要です。この部分は利用環境に応じた個別確認になります。
日報の画像は、登録した実績と紐づけて保管します。あとから「この数字はどの日報から来たのか」を追えるようにするためです。
人が確認する
全件、人が承認します。段階的な自動化もしません。
理由は、実績値が在庫・原価・納期の計算に直結するためです。誤った良品数が登録されれば、在庫が合わなくなり、棚卸まで気づきません。
ただし、確認の重さを分けます。
| 状態 | 確認画面での扱い |
|---|---|
全項目の confidence が高く、整合も問題なし | 1画面で数枚まとめて承認できるようにする |
low_confidence_fields がある | その項目だけを色分けし、原本の該当箇所を拡大表示する |
missing_fields がある | 現場への確認文を添えて、班長への送信ボタンを出す |
consistency に deviation がある | 標準時間との差を表示し、停止区分の選択を促す |
matched が空(マスタにない) | 候補を並べて人に選ばせる |
確認を速くするための設計が重要です。
- 確認画面で、日報の画像と読み取り結果を左右に並べて表示する
- OCRが読み取った箇所を、画像上でハイライトする(座標が返るので実装できます)
- 数値項目は、確からしさの低いものだけにカーソルが飛ぶようにする
- 1枚ずつではなく、同じ設備・同じ日の日報をまとめて表示する
これらがないと、確認に2.5分かかり、削減効果が出ません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 数値が読めない | 空で返し、low_confidence_fields に入れる。推測値を入れない |
| 作業者番号がマスタにない | matched を空にして人へ回す。自動でマスタに追加しない |
| 製造指示番号が存在しない | 人へ回す。指示のない実績を登録しない |
| 不良数が書かれているが内容が空欄 | missing_fields に入れ、現場への確認文を作る |
| 不良区分に該当するコードがない | defect_code を null にして人へ回す。新しいコードを作らない |
| 稼働時間と生産数が標準から大きく外れる | deviation として表示する。原因を推測せず、人が判断する |
| 時間の合計が就業時間を超える | time_total の整合エラーとして挙げる |
| 同じ日報が2回スキャンされた | 「日付+作業者番号+設備番号」で重複を検出し、処理を止める |
| 既に実績が登録されている | 二重登録を防ぐため処理を止め、人に通知する |
| スキャンの解像度が低い | 前処理で弾き、再スキャンを依頼する |
| 上下逆・斜めにスキャンされている | 向きを補正する。補正できないものは人へ回す |
| 日報以外の書類が混ざっている | 様式の固定文字列の有無で判定し、別フォルダへ移す |
| 訂正の書き込みがある(二重線で消して書き直し) | 確からしさが下がるので人に回る。 訂正を自動で解釈しない |
| 備考欄に体調に関する記述がある | 転記せず、needs_review に印だけを付ける |
記録を残す
- 日報のスキャン画像(原本。実績と紐づける)
- OCRの読み取り結果(生の状態。
confidenceと座標を含む) - LLMが振り分けた区分コードと、その根拠
- 整合の確認結果
- 承認者、承認日時
- 人が修正した項目と、修正前後の値
- 現場への確認と、その回答
「人が修正した項目と、修正前後の値」が二重に効きます。 ひとつは読み取り精度の実測値になること。「良品数は98%そのまま通るが、設備番号は15%修正されている」と分かれば、どこを改善すべきかが決まります。 もうひとつは、不良区分の振り分けの基準が蓄積することです。
紙の日報は、法令や社内規程で定めた保存期間に従って扱ってください。 電子化したから廃棄してよいとは限りません。品質記録として保存が求められる場合があります。
04実装レベルの3段階
半自動化の時点で、2.5分が1.3分程度になります。 読み取りと入力の大半が消えるためです。本格構成にすると0.8分程度になりますが、確認画面の作り込みが必要です。ここを省くと削減効果が出ません。
05工数削減シミュレーション
導入後 3,600件 × 0.8分 ÷ 60 = 48 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 現場の作業日報が紙で、月1,000枚以上ある企業。日報の様式が工場内で統一されていること。生産管理システムにCSV取込またはAPIがあること。実績の入力が1日以上遅れていること。
- すでに現場に端末があり、実績を直接入力できている場合。日報が月100枚未満の場合。日報の様式が作業者ごとに異なり、自由記述が中心の場合。実績を原価計算に使っておらず、集計の精度を求めていない場合。
07最小構成で試す方法
- 直近の日報を30枚用意する(作業者と設備をばらばらに選ぶ。字の汚いものを必ず含める)
- 複合機で300dpiでスキャンする
- Document Intelligence Studio(画面上でファイルをアップロードして結果を見られる)に1枚ずつ投入する
- 数値項目(良品数、不良数、稼働時間)が正しく読めているか、項目ごとの確からしさと一緒に確認する
- 30枚のうち、全数値項目が正しく取れたのが何枚かを数える
この検証だけは必ずやってください。 手書きの読み取り精度は、書き手の字と様式の作りに強く依存します。自社の日報で測らないと、導入後の工数が読めません。
判断の目安は次のとおりです。
| 全数値項目の正解率 | 判断 |
|---|---|
| 9割以上 | 自動化する価値がある |
| 7〜9割 | カスタム抽出モデルを学習させる(同じ様式5件から)。枠のある様式なら大きく改善する |
| 7割未満 | 日報の様式を見直す。 数字を1桁ずつ書く枠(1文字1マス)を設けるだけで精度が変わる |
3番目の選択肢を軽視しないでください。 日報の様式に数字を1マスずつ書く枠を入れるのは、現場にとって大きな変更ではありません。端末を導入するより、はるかに受け入れられます。 OCRの精度を上げる手段として、最も効果的で最も安い方法です。
不良区分の振り分けは、過去の「自由記述 → コード」の一覧を生成AIに貼り、新しい記述を振り分けさせるだけで試せます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読めなかった数値をLLMが埋める | プロンプトで明確に禁止する。OCRが空で返した項目に値が入っていないか機械的に検査する |
| 数字の読み違いに気づかない | 項目ごとの confidence を必ず受け取り、しきい値未満を人に回す |
| スキャン解像度が低くて読めない | 300dpi以上に設定する。文字の高さは1024×768の画像で12ピクセル以上が目安 |
| 日報の様式が読み取りに向いていない | 数字を1文字1マスで書く枠を設ける。 最も安上がりで効果の大きい対策 |
| 不良区分に新しいコードが作られる | 既存コードからのみ選ばせる。返り値をコード一覧と機械的に照合する |
| 同じ日報を二重に登録する | 「日付+作業者番号+設備番号」で重複を検出する。必須 |
| 既登録の実績を上書きする | 登録前に既存実績の有無を確認し、あれば処理を止める |
| 確認画面が使いにくく、確認に時間がかかる | 画像と結果を左右に並べ、読み取り箇所をハイライトする。低確からしさの項目にカーソルが飛ぶようにする |
| 標準時間との乖離の原因をAIが断定する | 事実だけを示させる。区分の選択は人が行う |
| 訂正の書き込みを誤って解釈する | 確からしさが下がるので人に回る設計にする。自動解釈しない |
| n8n のタイムゾーンが米国東部のまま | 環境変数またはワークフロー設定で日本時間にする |
| 紙の日報を電子化後すぐ廃棄する | 保存期間を確認する。品質記録として保存が必要なことがある |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 作業者の氏名・番号、設備の稼働状況、生産数量、不良の発生状況。自社の生産能力と歩留まりが分かる情報が含まれます。
- 外部AIへの入力可否 … 日報には品番、生産数、不良率が記載されています。これは自社の原価と生産能力を推測できる情報です。 自社の情報管理規程を確認してください。取引先から預かった図面番号が記載されている場合は、秘密保持契約の対象になることがあります
- 作業者の個人情報 … 作業者番号と氏名が含まれます。LLMに渡す必要があるのは作業者番号だけで、氏名は不要です
- 人事評価に使わない … 個人ごとの生産数や不良発生数を、人事評価に直接結び付けないでください。日報の記入が不正確になり、実績データそのものが使えなくなります。 方針として明文化し、現場に説明してください
- 備考欄の記述 … 「体調が悪かった」「腰が痛い」といった記述が入ることがあります。転記せず、印を付けるだけにしてください
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- アクセス権限 … 日報の画像と実績データの閲覧を、生産管理部門と当該工場の管理者に限定します
- 自動実行してよい範囲 … 読み取りと振り分けまでです。実績の登録は必ず人が承認します。 実績は在庫・原価・納期の計算に直結するため、ここは運用が安定しても変えません
- 記録の保存 … 品質記録として日報の保存が求められる場合があります。電子化したから紙を廃棄してよいとは限りません。 自社の品質マネジメントシステムの規定を確認してください
誤りが起きた場合のリスクは、在庫の差異、原価の誤り、納期の誤認です。いずれも発覚が遅れやすく、棚卸や決算で初めて分かります。 日報の画像と実績を紐づけ、後から追跡できる状態にしてください。
10まず何から始めるか
1週目:読み取り精度を測る
直近の日報30枚を300dpiでスキャンし、Document Intelligence Studio で読み取ります。数値項目の正解率と、項目ごとの確からしさを記録してください。 この結果で導入可否が決まります。
2週目:日報の様式を見直す
読み取れなかった項目を見て、様式の改善点を洗い出します。数字を1文字1マスで書く枠、記入漏れを防ぐチェック欄、設備番号の選択式化などです。 現場の班長と相談して決めます。
この作業を飛ばさないでください。 様式を変えるだけで精度が1割以上上がることがあります。
3週目:不良区分の振り分けを試す
過去12か月の「自由記述 → 不良コード」の一覧を生産管理システムから書き出し、生成AIに貼って新しい記述を振り分けさせます。50件で何件当たるかを数えます。
4〜6週目:半自動化を作る
フォルダ監視 → 分割 → OCR → マスタ照合 → 区分の振り分け → スプレッドシート出力までを作り、1工場で2週間使います。2.5分が何分になるかを実測します。 生産管理システム連携はまだ作りません。
2か月目以降: 確認画面と生産管理システム連携を実装します。確認画面に最も時間をかけてください。 並行して、修正ログから「よく間違える項目」を洗い出し、カスタムモデルの追加学習と様式の再調整を行います。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Azure AI Document Intelligence の Read モデル(prebuilt-read)が、PDFやスキャン画像から活字と手書きの文字を抽出すること。各テキスト行が手書きかどうかを分類し、確からしさのスコアとともに styles に isHandwritten を返すこと。単語ごとに confidence と座標(polygon)が返ること | Microsoft Learn: Read model OCR data extraction | 2026-09-15 |
| カスタム抽出モデルが同一様式5件から学習できること。抽出対象の文字の高さは1024×768の画像で12ピクセル以上(150dpiの8ポイント相当)が目安であること。PDFは最大2,000ページ、S0で500MBまで扱えること | Microsoft Learn: Document processing models | 2026-09-15 |
| n8n の Schedule Trigger が秒・分・時・日・週・月・cron式の7種類の間隔に対応し、セルフホスト版の既定タイムゾーンが America/New_York であること | n8n Docs: Schedule Trigger | 2026-09-15 |
| Claude API に、出力をJSONスキーマに沿わせる構造化出力の機能があること(2026-09-15時点ではベータ機能) | Claude Platform Docs: Structured outputs | 2026-09-15 |
生産管理システムへの登録方式(API / CSV取込 / RPA)は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 日報を品質記録として保存する義務の有無と保存期間は、自社の品質マネジメントシステムの規定および関係法令を確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0094)についてのご相談はこちらから。
