入荷した貨物の破損と員数違いを写真で記録して、運送会社への申し立て資料を作る
入荷した貨物をスマートフォンで撮った写真を入力に、外装の破損、荷崩れ、荷札の記載、個口数を読み取り、検品記録の下書きを作ります。異常があれば運送会社への申し立て文も同時に用意します。
- 利用ツール
- AWS Textract/Azure AI/ChatGPT/Claude/Gemini/Google Apps Script/Google Document AI/Make/n8n/Power Automate/Python
- 対象業界
- 商社/小売/物流/製造
- 対象部門
- 物流/購買
- 対象業務
- 内容確認・チェック/記録・議事録作成
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 半自動化
- 費用感
- SaaS追加(小)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- トラックが着車し、荷物をホームに下ろす
- 担当者が外装を目で見て、破損や濡れがないかを確かめる
- 送り状の個口数と実際の個口数を数えて突き合わせる
- 異常があればスマートフォンで写真を撮る(撮り方は人によって違う)
- 手元の伝票に手書きでメモを残す
- 事務所に戻り、検品台帳(Excel)に日付・便名・仕入先・異常の内容を打ち込む
- 写真をパソコンに取り込み、日付のフォルダに入れる
- 破損が大きいものは、上長に相談して運送会社へ連絡する
- 担当者が入荷した荷物を、決められた3カットで撮る(荷姿全体/荷札/気になる箇所)
- 自動写真がSharePointの入荷フォルダに保存される
- 自動荷札の文字をOCRで読み、送り状番号・仕入先・個口数を取り出す
- 自動生成AIが写真を見て、外装の破損、濡れ、荷崩れ、封かんの状態を判定する
- 自動送り状の個口数と、写真に写っている個口数を突き合わせる
- 自動検品記録の下書きを作り、WMSの入荷予定と照合する
- 人担当者が画面で内容を確認し、異常の有無を確定する
- 自動異常ありと確定したものは、運送会社への申し立て文と社内報告の下書きを作る
- 自動写真と記録を、送り状番号で引けるかたちで保管する
各工程の詳しい説明を読む
- トラックが着車し、荷物をホームに下ろす
- 担当者が外装を目で見て、破損や濡れがないかを確かめる
- 送り状の個口数と実際の個口数を数えて突き合わせる
- 異常があればスマートフォンで写真を撮る(撮り方は人によって違う)
- 手元の伝票に手書きでメモを残す
- 事務所に戻り、検品台帳(Excel)に日付・便名・仕入先・異常の内容を打ち込む
- 写真をパソコンに取り込み、日付のフォルダに入れる
- 破損が大きいものは、上長に相談して運送会社へ連絡する
問題は4つあります。
(a)記録が二度手間になっている。 現場で手書きし、事務所で打ち直しています。この転記の途中で、便名や仕入先が抜けたり違ったりします。
(b)写真と記録がつながっていない。 写真はフォルダに日付順で入るだけなので、3か月後に「この破損の写真はどれか」を探すと出てきません。申し立ての根拠として使えない写真が大量にたまります。
(c)撮り方が人によって違う。 破損部分だけを寄って撮る人と、荷姿全体を撮る人がいます。荷札が写っていないと、どの荷物の写真かが分かりません。
(d)申し立ての判断が現場任せになっている。 「これくらいなら通る」と現場が判断して報告しないことがあります。積み上げると年間で無視できない金額になりますが、記録がないので金額も分かりません。
- 担当者が入荷した荷物を、決められた3カットで撮る(荷姿全体/荷札/気になる箇所)
- 【自動】 写真がSharePointの入荷フォルダに保存される
- 【自動】 荷札の文字をOCRで読み、送り状番号・仕入先・個口数を取り出す
- 【自動】 生成AIが写真を見て、外装の破損、濡れ、荷崩れ、封かんの状態を判定する
- 【自動】 送り状の個口数と、写真に写っている個口数を突き合わせる
- 【自動】 検品記録の下書きを作り、WMSの入荷予定と照合する
- 【人】 担当者が画面で内容を確認し、異常の有無を確定する
- 【自動】 異常ありと確定したものは、運送会社への申し立て文と社内報告の下書きを作る
- 【自動】 写真と記録を、送り状番号で引けるかたちで保管する
自動化されるのは「読む」「数える」「打ち込む」「探せるように整理する」です。異常かどうかの最終判断は人が行います。
02今回想定するシステム構成
倉庫でのスマートフォン撮影(荷姿 / 荷札 / 気になる箇所) │ ▼ SharePoint の入荷フォルダ(送り状番号でフォルダを分ける) │ ▼【トリガー】ファイルが作成されたとき Power Automate │ ├──▶ Azure AI Document Intelligence(prebuilt-read) │ └─ 荷札の文字を読み、送り状番号 / 仕入先 / 個口数 を取り出す │ ├──▶ Claude API(画像入力) │ └─ 破損 / 濡れ / 荷崩れ / 封かん の判定と、個口数の目視カウント │ ├──▶ Python ── WMSの入荷予定との突合、判定結果の整形 │ └──▶ 検品記録の下書き作成 │ ▼ 確認画面(写真と判定結果を左右に並べる)──【人が確定】 │ ▼ 検品台帳へ登録 + 異常ありなら申し立て文を下書き
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Claude API | OpenAI API、Gemini API |
| OCR | Azure AI Document Intelligence(prebuilt-read) | Google Document AI、AWS Textract |
| ワークフロー | Power Automate | Make、n8n |
| 実行環境 | Python | Google Apps Script |
| 連携 | WMS | 各社の倉庫管理システム |
WMSに写真つきの検品機能があるなら、まずそちらを確認してください。 国内のWMSには入荷検品の写真添付を標準で持つ製品があります。自前で組む価値があるのは、判定と申し立て文の作成まで含めたい場合か、WMSの改修費が見合わない場合です。
03どうやって実装するのか
処理の起点を決める
SharePointの入荷フォルダにファイルが作成されたことを起点にします。Power Automate の SharePoint コネクタには「ファイルが作成されたとき」トリガーが標準で用意されています。
撮影から保存までは、スマートフォンのSharePointアプリでフォルダを開いて撮る運用にします。送り状番号のフォルダを先に作り、そこに撮るのが要点です。あとからファイル名で紐づけようとすると、必ず取り違えが起きます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 入荷写真 | 1納品につき3枚以上(荷姿全体・荷札・気になる箇所) | SharePoint |
| 入荷予定 | 発注番号、仕入先、予定個口数、予定日 | WMS |
| 送り状情報 | 送り状番号、運送会社、個口数 | 荷札のOCR結果 |
| 過去の異常記録 | 仕入先別・運送会社別の異常の履歴 | 検品台帳 |
データの取得方法を決める
荷札の読み取り: Azure AI Document Intelligence の read モデルにファイルを渡します。このモデルは印刷文字と手書き文字を行と単語として抽出し、単語ごとに位置(バウンディングポリゴン)と確信度を返します。画像の寸法は50×50ピクセルから10,000×10,000ピクセルの範囲で扱えます。
写真の判定: Claude API に画像を渡します。画像はbase64、URL、Files APIのfile_idのいずれでも渡せます。1リクエストに複数枚を含められるため、同じ納品の3枚をまとめて1回で見せます。 公式ドキュメントでは、画像はテキストより前に置くほうが結果がよいとされており、複数枚のときは「Image 1:」のような短いラベルを各画像の前に入れて、プロンプト側から呼べるようにします。
入荷予定: WMSのAPI、または日次でエクスポートした予定データを参照します。リアルタイム連携は必須ではありません。
AIへ渡す前に整形する
- 画像の縮小 … スマートフォンの写真はそのままだと大きすぎます。Claude API では1リクエストに20枚を超える画像を含めると各画像の寸法上限が厳しくなるため、長辺2,000ピクセル以下に縮める運用にしておくと、枚数が増えても引っかかりません
- 向きの補正 … 横持ちで撮った写真が回転していることがあります。Exifの向き情報に従って回転させます
- 暗い写真の除外 … 倉庫の奥で撮ると真っ暗になります。明るさが一定以下の写真は撮り直しを促し、AIに渡しません
- 同一納品のまとめ … 送り状番号のフォルダ単位で1回の処理にします。1枚ずつ処理すると、個口数のカウントができません
AIに処理させる
OCRと生成AIで役割を分けます。
OCRにさせること: 荷札と送り状の文字の読み取り。送り状番号、仕入先名、個口数の数字。ここは生成AIにさせません。数字の読み取りは専用モデルのほうが安定します。
生成AIにさせること:
| 処理 | 内容 |
|---|---|
| 外装の状態判定 | 破れ、へこみ、濡れ、テープの剥がれ、荷崩れがあるかを写真から判定する |
| 個口数の目視カウント | 荷姿全体の写真に写っているケースの数を数える |
| 記録文の生成 | 「段ボール上面に10センチ程度の破れ。内容物の露出なし」のような記録文を作る |
| 申し立て文の下書き | 運送会社へ送る連絡文を、送り状番号と状況を入れて作る |
指示内容を固定する
あなたは入荷検品の記録を支援する担当者です。
同じ納品を撮った複数の写真を見て、外装の状態を記録してください。
【厳守事項】
- 写真に写っているものだけを書いてください。
「おそらく内部も破損している」のような推測を書かないでください。
- 個口数は数えた数をそのまま返してください。
重なって見えない箇所があるときは、count_confidence を low にし、
note に「奥が見えない」と書いてください。
- 破損の有無を判断できない写真は、damage を "unknown" にしてください。
「問題なし」と書かないでください。
- 荷札の文字は、OCRの読み取り結果をそのまま引き継いでください。
写真から読み直して書き換えないでください。
- 人が写り込んでいても、人については何も書かないでください。
【OCRで読み取った荷札】
{ocr_result}
【WMSの入荷予定】
{expected_delivery}
【この仕入先の過去の異常記録(直近12か月)】
{past_incidents}
「写っているものだけを書く」の1行が重要です。 破損の写真を見せると、生成AIは内容物の状態まで推測して書きます。申し立て文にその推測が混ざると、事実と違う主張をすることになります。
出力形式を固定する
{
"waybill_no": "",
"supplier_name": "",
"carrier": "",
"expected_packages": 0,
"counted_packages": 0,
"count_confidence": "high | medium | low",
"damage": "none | found | unknown",
"damage_items": [
{
"part": "",
"description": "",
"photo_file": "",
"severity": "low | medium | high"
}
],
"package_count_match": "matched | mismatched | unknown",
"label_issue": "",
"needs_review": [],
"note": ""
}
個口数は文字列でなく数値で返させます。文字列にすると「6個」のように単位つきで返り、後段の突合で壊れます。
システムへ連携する
確定後、検品台帳に登録します。連携方法はWMSによって3通りあります。
| 方式 | 内容 |
|---|---|
| API連携 | WMSがAPIを提供していれば、確定と同時に入荷実績を更新する |
| ファイル取込 | 所定のCSV形式で書き出し、WMSの取込機能で読ませる |
| 台帳のみ | WMSは従来どおり手で入力し、記録と写真だけを別台帳で持つ |
まずは3つめで始めるのが現実的です。 写真と記録がつながるだけで、申し立ての根拠は揃います。WMSとの連携は効果を確かめてからで間に合います。
異常ありと確定したものは、運送会社の担当者へのメールを下書きします。自動送信はしません。 申し立ては取引先との交渉の入口なので、文面は必ず人が見てから出します。
人が確認する
全件、人が確定します。
理由は2つあります。ひとつは、破損の有無が支払いや返品につながる判断だからです。もうひとつは、写真に写らない異常(内部の破損、におい、温度)があるためです。AIは写真に写っているものしか見ていません。
確認を速くするための設計が重要です。
- 確認画面で、写真と判定結果を左右に並べて表示する
count_confidenceが low、damageが unknown のものを先頭に並べる- 予定個口数と数えた個口数が一致したものは、その旨を大きく表示する
- 異常なしのものは、1タップで確定できるようにする
月900件のうち、異常は月40件前後です。860件を速く流せる作りにしないと、削減効果が出ません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 荷札が汚れて読めない | OCRの確信度が低いものは needs_review に入れる。推測で送り状番号を埋めない |
| 写真が暗い・ぶれている | 前処理ではじき、その場で撮り直しを促す |
| 個口数が多くて数えきれない | count_confidence: low を返し、人が数える。パレット単位の入荷は最初から対象外にする |
| 荷姿の写真を撮り忘れた | 荷札だけでも記録は作る。個口数の突合は「unknown」にする |
| 同じ送り状番号のフォルダが二重にできた | 送り状番号で既存の記録を照合し、重複なら処理を止めて通知する |
| 破損が微妙で判断がつかない | damage: unknown を返す。「none」に倒さない |
| 通信が届かない倉庫の奥 | 端末にいったん保存し、電波の届く場所で同期する運用にする |
| 運送会社から反論があった | 写真の撮影日時と保存ログを提示する。ここで記録の価値が出る |
記録を残す
- 入荷写真の原本(送り状番号のフォルダに、撮影日時のまま)
- OCRの抽出結果(生の状態)
- 生成AIの判定結果と
count_confidence - 確定した担当者と確定日時
- 人が修正した項目と、修正前後の値
最後の項目が精度の実測値になります。「個口数はそのまま通るが、破損の判定は4割が修正されている」と分かれば、どこを直すべきかが決まります。
写真の保存期間は、運送約款上の申し立て期間と、社内の品質記録の保存年限の長いほうに合わせます。
04実装レベルの3段階
半自動化の時点で、6分が3分程度になります。 転記が消えるだけで手間の半分は減ります。本格構成にすると2.4分程度になりますが、確認画面とWMS連携の実装が必要です。
05工数削減シミュレーション
導入後 900件 × 2.4分 ÷ 60 = 36 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 入荷が月500件以上あり、外装の破損や員数違いが毎月発生している。倉庫でスマートフォンまたはタブレットを使える環境があること。
- 入荷が月100件未満で、検品の記録が数行で済んでいる場合。入荷の大半が自社便で、運送会社への申し立てが発生しない場合。WMSに検品の写真記録機能が既にある場合。
07最小構成で試す方法
- 直近の入荷で異常が出たもの10件と、異常がなかったもの10件の写真を用意する
- Claude や ChatGPT の画面に、1納品ぶんの写真をまとめて貼る
- 上のプロンプトを貼り、判定結果を見る
- 20件のうち、破損の有無が正しく出たのが何件かを数える
- あわせて、個口数が正しく数えられたのが何件かを数える
この検証だけは必ずやってください。 写真の判定精度は、倉庫の明るさと撮り方に強く依存します。他社の事例ではなく、自社の倉庫で撮った写真で測らないと、導入後の工数が読めません。
判断の目安は次のとおりです。
| 破損の判定が正しかった件数 | 判断 |
|---|---|
| 18件以上 | 自動化する価値がある |
| 14〜17件 | 確認に時間はかかるが、記録の手間は減る。撮り方の標準化から始める |
| 13件以下 | 撮影のルール(距離・角度・明るさ)を決め直してから測り直す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 撮り方が人によって違い、判定が安定しない | 3カット(荷姿全体・荷札・気になる箇所)を決め、撮影画面に見本を出す |
| 荷札が写っていない写真が届く | 荷札のOCRが失敗したら、その場で撮り直しを促す |
| 個口数が重なって数えられない | 「数えられない」を返させる。無理に数えさせると、合っているように見えて違う |
| 生成AIが内容物の破損まで推測して書く | プロンプトで「写っているものだけ」と明示する。必須 |
| 写真が大きすぎて処理が遅い・費用がかさむ | 送信前に長辺2,000ピクセルへ縮小する |
| 1リクエストの画像が20枚を超えて弾かれる | 納品単位で分割する。20枚を超えると各画像の寸法上限が厳しくなる |
| 倉庫の奥で電波が届かず、写真が上がらない | 端末に保存して後で同期する。同期漏れを検知する仕組みを入れる |
| 写真と送り状番号がつながらない | 先に送り状番号のフォルダを作ってから撮る。ファイル名の後付けはしない |
| 判定が「異常なし」に倒れて見落とす | unknown を必ず返させ、unknown は人が見る運用にする |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 仕入先名、送り状番号、取引数量、倉庫内の様子。取引先との取引条件が推測できる情報が含まれます。
- 写り込みへの配慮 … 倉庫で撮る写真には、作業者やドライバーが写り込みます。生成AIには人物について何も書かせない指示を入れ、社内の個人情報の取り扱いルールに沿って保存期間を決めてください
- 外部AIへの入力可否 … 荷札には仕入先名と数量が書かれています。自社の情報管理規程と、主要仕入先との契約を確認してください
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- 申し立て文の自動送信をしない … 運送会社への連絡は交渉の入口です。AIの判定だけで送る構成にしないでください
- アクセス権限 … 写真と記録の保管場所を、物流部門と購買部門に限定します
誤りが起きた場合のリスクは、誤った申し立てによる取引先との関係悪化と、見落としによる取りはぐれです。判定ログと確定者を残し、後から追跡できる状態にしてください。
10まず何から始めるか
1週目:撮り方を決める
3カットの見本を作り、A4に印刷してホームに貼ります。AIを入れる前に、この1週間で写真の質が揃うかを見てください。 揃わないなら、AIを入れても結果は揃いません。
2週目:判定の精度を測る
1週目に撮った写真から20件を選び、生成AIの画面で判定させます。破損の有無と個口数が何件正しく出たかを数えます。この結果で導入可否が決まります。
3〜4週目:半自動化を作る
フォルダ監視 → OCR+判定 → スプレッドシート出力までを作り、入荷担当1名が2週間使います。6分が何分になるかを実測します。WMS連携はまだ作りません。
2か月目以降: 削減効果が確認できたら、確認画面と台帳登録を実装します。並行して、過去1年で申し立てをしなかった破損が何件あったかを棚卸してください。記録が残る運用にしたときの本当の効果は、そこに出ます。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Claude API が1リクエストに複数の画像を含められること。API では200kトークンのコンテキストを持つモデルで100枚、それ以外で600枚、claude.ai では1メッセージ20枚が上限。画像1枚の寸法上限は8,000×8,000ピクセル。20枚を超えると各画像に厳しい寸法上限がかかり、長辺2,000ピクセル以下に収める必要があること。対応形式はJPEG・PNG・GIF・WebP。画像はテキストより前に置くほうが結果がよいこと。視覚トークンは28×28ピクセルのパッチ単位で数えること | Claude Docs: Vision | 2026-09-17 |
| Azure AI Document Intelligence の read モデルが、印刷文字と手書き文字を行・単語として抽出し、単語ごとの位置と確信度を返すこと。画像の寸法は50×50から10,000×10,000ピクセルの範囲 | Microsoft Learn: Read model OCR data extraction | 2026-09-17 |
| Power Automate の SharePoint コネクタに「ファイルが作成されたとき」トリガーがあること | Microsoft Learn: SharePoint コネクタ | 2026-09-17 |
WMSへの登録方式(API / CSV取込 / 台帳のみ)は製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 運送会社への申し立て期間は運送約款と個別契約によって異なるため、自社の契約書で確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0106)についてのご相談はこちらから。
