Claude Media
Claudeで棚割の変更案を作る — 棚の写真と売上CSVを突き合わせる手順

Claudeで棚割の変更案を作る — 棚の写真と売上CSVを突き合わせる手順

店頭の棚を撮った写真をClaudeに読ませて段ごとの配置表に起こし、POSの売上CSVと突き合わせて入替え案を出す手順です。画像の読み誤りを確かめる点も扱います。

棚の写真から棚割の変更案を出す流れ

棚割(プラノグラム)の見直しは、売れ行きの数字と、実際の棚の並びの両方を見ないと決められません。POSの売上CSVは数字を、棚の写真は並びを持っています。この2つをClaudeに渡すと、写真から段ごとの商品配置を読み取らせ、売上の上位・下位に当てて入替え案を出させることができます。

数字だけの分析はClaudeでABC分析 — 売れ筋と死に筋をPOSのCSVからExcelで出す手順やPOS売上CSVをClaudeで分析して店長の週次メモにする手順で扱っています。本記事の違いは、棚の画像を入力にする点です。売れていない商品が「どの段の、どの位置で、何フェイス」置かれているかまで、同じ画面で見られます。

手順

写真から入替え案までの3段階

  1. 1

    写真を配置表に起こす

    段・位置・商品名・フェイス数を1行ずつ並べた表にします。ここは画像の読み取りだけを頼みます。

  2. 2

    読み取り結果を人が確かめる

    商品名とフェイス数を、現場の記憶か棚の実物で直します。

  3. 3

    売上CSVと突き合わせる

    確定した配置表を売上CSVと結び、死に筋・売れ筋に対する棚の取り方を見て入替え案を出します。

読み取りと提案を一度に頼まず、段階を分けるのが要点です。読み誤りが提案の中に溶け込むと、後から原因をたどれなくなります。

写真を渡す前に決めておく3つのこと

画像の渡し方には上限があります。Claudeの画像入力には次の制限があり、棚の撮り方に影響します。

数字

画像入力の主な上限

  • claude.aiの1メッセージ

    20枚

    画像1枚あたり10MBまで

  • 1枚の最大寸法

    8000x8000px

    API・共通

  • APIの1リクエスト

    100〜600枚

    コンテキストが200kトークンのモデルは100枚

Claude API直利用、claude.aiの場合

20枚を超えるリクエストでは、各画像にさらに厳しい寸法の上限がかかります。越えた画像はinvalid_request_errorで拒否され、メッセージに「many-image requests」と上限のピクセル数が出ます。長辺を2000px以下にそろえるか、画像を20枚以内に収めると、どのプラットフォームでも通ります。対応する形式はJPEG・PNG・GIF・WebPで、GIFはアニメーションの先頭1コマだけが使われます。

1枚に収める範囲を決める

画像はサイズが大きいほど縮小されます。標準の解像度のモデルでは長辺1568pxまで、Claude 4.7以降のモデルでは長辺2576pxまでが、そのまま読まれる上限です。棚1本を横長に1枚で撮ると、縮小で値札の文字が潰れます。画像の説明にも「文字が小さいと読みにくい。重要な文字は切り抜かずに読める大きさで写す」という趣旨の注意があります。

実務では、棚の1本を段ごと、または左右2分割で撮ります。値札(棚札)の文字まで読ませたいなら、段単位がよい分担です。1枚に収める棚の量は、次のように見当をつけます。

撮り方向く目的注意
棚1本を引きで1枚向く目的段数・全体のバランスの確認注意値札は読めないと考える
棚1本を左右2分割向く目的商品名とフェイス数の読み取り注意継ぎ目で同じ商品を二重に数えない
段ごとに1枚向く目的値札まで含めた読み取り注意枚数が増える。段の番号を写真に添える

撮影は、正面から、傾けず、反射を避けて行います。回転した画像や200px未満の小さな画像では、誤読や作り話が出やすくなります。写真は向きを直してから渡します。

画像を先、文章を後に置く

画像は文章より前に置くと最もよく読まれます。文章の後に置いても使えますが、可能なら画像を先にします。複数枚を渡すときは、各画像の前に「写真1:上段」「写真2:中段」のような短いラベルを文章で添えます。後の指示で「写真2の左から3つ目」と指させます。

手順1:写真を段ごとの配置表に起こさせる

claude.aiなら、写真をチャットに添付して次のように頼みます。画像を先に置き、頼みごとを後に書きます。

添付の写真1〜3は、同じ棚の上段・中段・下段です。
段ごとに、左から右へ商品を並べた表にしてください。
列は 段 / 位置(左から数えた順) / 値札どおりの商品名 /
フェイス数 / 読み取りの確かさ(高・中・低) / 迷った点 です。
読めない文字は推測で埋めず、「判読不能」と書いてください。
商品名は値札を優先し、値札が写っていなければ
パッケージの表記を書いて、確かさを「低」にしてください。

ここで効くのが「読み取りの確かさ」と「迷った点」の2列です。画像の解釈は誤ることがあるので、人が見るべき行を最初から絞れるようにします。「推測で埋めない」の一文は、読めない箇所を作り話で補われるのを防ぐための指示です。

返ってくる表は、次のような形になります(以下は説明用の例で、実在の商品ではありません)。

段位置商品名フェイス数確かさ迷った点
上段位置1商品名緑茶500mlフェイス数4確かさ高迷った点
上段位置2商品名麦茶500mlフェイス数3確かさ中迷った点奥の列が隠れている
中段位置1商品名炭酸水500mlフェイス数5確かさ低迷った点値札がなくラベルも反射

手順2:読み誤りを人が確かめる

画像の読み取りで、特に外れやすい箇所は決まっています。画像入力の制限事項を棚の写真に当てはめると次のとおりです。

  • フェイス数:物の数え上げは概数になりやすく、小さい物が多いほど外れます。同じ缶が詰まった段は、数が1〜2ずれると考えておきます
  • 商品名の取り違え:同じシリーズで味違いのパッケージは、遠目にそっくりです。値札と突き合わせます
  • 位置:Claudeが返す位置や座標は概算です。左から何番目かは、人が写真と見比べます
  • 奥や重なり:前列に隠れた商品は写真に写りません。奥行きの在庫は数えられません

確認は、確かさが「中」「低」の行から始めます。「高」の行も全部を信じず、売上上位の商品だけは必ず棚で確認します。入替え案が動く商品ほど、誤りの影響が大きいからです。直した表は、そのままCSVかExcelに貼って保存し、次回の比較の元にします。

落とし穴

読み取り表を直さないまま提案に進む

フェイス数が1つずれているだけでも、「売上に比べて棚の取り幅が広すぎる」といった判定が逆になります。手順2で直した表を、手順3の入力として渡し直します。最初の読み取り結果をそのまま使い続けないでください。

手順3:売上CSVと突き合わせて入替え案を出す

確定した配置表と、売上CSVを同じ会話に添付します。商品の呼び名がそろっていないと結べないので、先に結合のキーを決めます。写真から読めるのは棚札の商品名までで、JANコードは読み取りに頼れません。売上CSVの商品名と棚札の商品名が違うときは、商品マスタ(商品名とJANの対応表)を3つ目のファイルとして渡し、名寄せを頼みます。名寄せの結果にも、確かさの列を付けさせます。

claude.aiで使える範囲や、境界の商品を検算するやり方は、前掲のABC分析の記事に詳しく書いています。APIで同じことをする場合は、コード実行ツール(Pythonでの計算)にファイルをアップロードして渡す形になり、CSVやExcelに対応しています。

添付は、確定した棚の配置表(棚.csv)と、直近4週間の売上CSV
(売上.csv)、商品マスタ(マスタ.csv)です。
1. 配置表の商品名を、マスタ経由で売上CSVの商品に結んでください。
   結べなかった行は一覧にして、推測で結ばないでください。
2. 商品ごとに、売上数量の順位と、棚のフェイス数を並べてください。
3. 売上順位が下位なのにフェイス数が多い商品(縮小候補)と、
   上位なのにフェイス数が少ない商品(拡大候補)を挙げてください。
4. 入替え案は、同じ段の中の入替えから先に考えてください。
   理由と、案が外れる条件も書いてください。

最後の「案が外れる条件」は、提案を鵜呑みにしないための指示です。たとえば、売上が低い商品が販促期間の直後だった、新商品で発売から日が浅い、季節要因だった、という条件は、CSVの期間と照らして人が判断する必要があります。死に筋と決めつける前に、売上の期間と品揃えの変更履歴を確認します。

返ってくる入替え案の表は、次のような形になります(例示です)。

段現状案根拠(売上順位とフェイス数)外れる条件
上段現状麦茶500mlが3フェイス案2フェイスに縮小根拠(売上順位とフェイス数)売上は下位、棚の取り幅は上位外れる条件夏の需要期なら据え置き
中段現状炭酸水500mlが5フェイス案現状維持根拠(売上順位とフェイス数)売上は上位外れる条件読み取りの確かさが低いため値札を再確認

出力は案であって、決定ではありません。棚の高さ、陳列什器の制約、什器に合うサイズは写真だけでは判断できないので、入替えの可否は現場で見ます。

写真が変わったら、同じ表を作り直す

棚を替えた後に新しい写真を撮れば、同じ手順で配置表を作り直せます。前回の確定表と新しい表を並べて、変わった点を挙げさせると、変更が意図どおりに入ったかの確認になります。数週間後の売上CSVを渡して、入替えの前後を比べる使い方もできます。

APIで回す場合の画像の渡し方

店舗数が多く、写真を毎週大量に処理するなら、APIで画像を渡します。画像はimageコンテンツブロックとして渡し、ソースは次の3種類から選べます。

  • base64でリクエストに埋め込む
  • 画像のURLを指す
  • Files APIにアップロードして返ってくるfile_idで参照する

Amazon BedrockとGoogle Cloudでは、base64の埋め込みだけが使えます。多数の画像を送るときは、リクエスト全体のサイズ上限(通常のエンドポイントで32MB)に先に達することがあるため、Files APIで一度アップロードしてfile_idを参照する形が勧められています。

次は、base64で棚の写真を渡す最小の形です。画像のブロックを先に、指示の文章を後に置いています。モデル名は公式のサンプルに載っているものです。

import base64
import anthropic
 
client = anthropic.Anthropic()
 
with open("shelf_upper.jpg", "rb") as f:
    data = base64.standard_b64encode(f.read()).decode("utf-8")
 
message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=2048,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "写真1(上段):"},
            {"type": "image", "source": {
                "type": "base64",
                "media_type": "image/jpeg",
                "data": data,
            }},
            {"type": "text", "text": "左から順に、値札どおりの商品名と"
                                       "フェイス数を表にしてください。"
                                       "読めない文字は判読不能と書く。"},
        ],
    }],
)
print(message.content[0].text)

画像1枚あたりの費用

画像は28x28ピクセルのパッチを1トークンとして数えます。トークン数は、横のパッチ数と縦のパッチ数の積です。換算の目安は、1000x1000pxで1296トークン、1920x1080pxは標準の解像度のモデルで1560トークン、Claude 4.7以降のモデルでは縮小されずに2691トークンです。高解像度のモデルは同じ画像で最大およそ3倍のトークンを使います。

文字の細部が要らない用途、たとえば棚の段数やフェイスの大まかな配分を見るだけなら、送る前に縮小するとトークンもレイテンシも抑えられます。値札まで読む用途では縮小しすぎないことが条件です。JPEGやWebPの強い圧縮を何度もかけると文字が読みにくくなるため、圧縮の設定は実際にAPIへ送る画像を見て決めます。

画像を扱うときのデータの扱い

店頭の写真には、客や従業員が写り込むことがあります。Claudeは利用ポリシー(AUP)の規定により、画像の人物を特定して名前を挙げることを行いません。それでも写り込みはデータとして残るので、撮影は客のいない時間帯に行い、人が写った写真は渡す前に切り抜くか撮り直します。

APIで送った画像は、リクエストの間だけ保持され、処理が済むと自動で削除されます。APIで送った画像でAnthropicがモデルを訓練することはなく、画像のメタデータ(撮影位置など)も受け取りません。

claude.aiに添付する場合の扱いは、API経由とは別です。アカウントのプライバシー設定にあるモデル改善の項目で、自分のプランでの設定を確かめてから、店内の写真を添付してください。

棚の写真から入替え案までの要点

画像の読み取りは、配置表という中間の成果物に必ず落とし、そこで人が確かめます。確かさ・迷った点の列を付け、売上上位の商品を重点的に現場と照らす運用にすれば、読み誤りが入替え案に混ざるのを防げます。売上CSVとの突き合わせは、結べなかった行を一覧にさせると、名寄せの穴が見えます。画像は読み取りの入口として使い、判断の根拠は売上の数字と現場の確認に置くのが、この手順の分担です。

この記事を共有:XはてブLinkedIn