跳至主要内容

[19.01] RPC Dataset

Z. Yuan
Maintainer

老闆,買單!​

RPC: A Large-Scale Retail Product Checkout Dataset


這篇論文做一個新的資料集,叫做 RPC(Retail Product Checkout)。

我們發現很多和相關論文都會用到這個資料集。不僅如此,從這篇論文出發查找文獻,能更快速地找到最新的研究成果。

這麼重要的節點,你肯定也不能錯過。

資訊

排行榜:RPC-Leaderboard


資料集下載:

  1. https://rpc-dataset.github.io/
  2. Kaggle - RPC Dataset
  • 我們建議使用 Kaggle 下載,比較方便。

定義問題​

在傳統零售業中,「辨識商品」這件事佔據了大量人力成本。隨著電腦視覺技術逐漸成熟,自動結帳(Automatic Check-Out, ACO)這個應用場景開始受到關注。它的目標是:從顧客購買商品的影像中,自動生成對應的購物清單,取代人工掃描、提升效率並降低成本。

但是,這不是一個單純的分類或偵測任務,ACO 同時具備以下幾個挑戰特性:

  • 大規模(large-scale):商品類別數量龐大,超市中常見的 SKU 往往超過上千種;
  • 細粒度(fine-grained):許多商品外觀極為相似,差異可能僅在小標籤或包裝細節;
  • 少樣本(few-shot):大多數商品只能蒐集到極少的訓練樣本;
  • 跨域(cross-domain):訓練資料通常為展示用的乾淨單品照,測試場景則來自真實結帳畫面,背景混亂、商品堆疊、光線不穩、遮擋嚴重,產生明顯 domain gap。

這些因素在電腦視覺中本就分別構成重大難題,而 ACO 的挑戰在於:這些問題同時存在!

過去也有一些資料集嘗試處理其中部分問題,例如:

  • SOIL-47 測試光照與視角變化的影響;
  • Supermarket Produce Dataset 聚焦於水果與蔬菜分類;
  • Grozi-120 / Grocery Products / Freiburg Dataset 收錄網路圖與店鋪實景圖;
  • MVTec D2S 提供 pixel-level 分割標註,用於工業物件語意分割。

但這些資料集通常類別數量有限,或是拍攝場景過於簡化,與真實結帳流程相去甚遠。它們多半只解決單一子任務,無法同時測試「堆疊、多類、遮擋」等真實難題。

資料量不足也讓學習模型更為困難。雖然傳統 data augmentation 方法(翻轉、平移、色彩擾動等)能略為擴充資料分佈,但無法真正模擬測試場景的雜訊與語意組合。

所以,最根本的問題在於:

我們能不能建立一個足夠大、足夠多樣化的資料集,能同時涵蓋上述所有挑戰?


資料集設計理念​

overview

在現實零售場景中,顧客將商品放上結帳台時,ACO 系統的理想目標是:

一眼就能辨識出商品的種類與數量,並自動產出購物清單。

與其說這是「分類」或「偵測」,不如說它更接近一種「多物件計數與辨識的組合任務」。

從定義上來看,ACO 的輸入是一張拍攝於結帳場景的影像,其中可能包含任意數量、任意組合的商品。而我們擁有的訓練資料,卻往往只有單品照。

提示

什麼是單品照?

單品照,原文為 single-product exemplar image,指的是專門拍攝單一商品的圖像。這些圖像通常用於電商平台或商品目錄中,目的是清楚展示商品外觀與細節。

真正困難的地方在於:商品庫存清單持續更新,要蒐集涵蓋所有商品組合的結帳影像幾乎不可能。因此,一種更實際的做法,是利用這些單品資料進行訓練,在完全未見過商品堆疊的情況下,讓模型學會在混亂中辨識出多物件、多種類、多數量。

這樣的問題可被形式化為:

  • 給定一組商品類別集合 P={pi}P = \{p_i\},與一張測試影像 ItI_t。
  • 目標即:預測所有在該影像中出現過的商品 pp 的出現次數 count(p)\text{count}(p)。
  • 如果某商品未出現,則 count(p)=0\text{count}(p) = 0。

可使用的訓練資源包含:

  • 一組單品影像資料集 S={(Is,ys)}S = \{(I_s, y_s)\},每張圖對應一項商品類別;
  • 一組可選的結帳影像資料集 C={(Ic,Yc)}C = \{(I_c, Y_c)\},其中 YcY_c 可能包含不同程度的標註資訊。

這樣的設定極具挑戰性,也提供了探討「分類、計數、偵測、弱監督、domain shift」等任務交集的空間。


資料集設計​

針對上述挑戰,作者設計了 RPC(Retail Product Checkout)資料集,有六大關鍵特色:

  1. 大規模商品種類與樣本數

    • 共收錄 200 種商品類別(SKU),每類約 4 件實體商品,共取得 83,739 張圖像。

    • 其中包含 53,739 張單品 exemplar 圖,以及 30,000 張結帳影像,規模遠大於既有公開資料集。

      dataset

      dataset infos

  2. 雙類型影像:單品圖與堆疊圖

    • 單品 exemplar 圖:多角度拍攝的商品清楚圖,模擬電商網頁商品圖。
    • 結帳影像:在模擬結帳台上拍攝,包含多個商品、視角固定、堆疊與真實遮擋情況。
  3. 場景擬真

    • 商品在結帳圖中為隨機挑選、隨機數量、任意擺放;
    • 含有大量遮擋、旋轉、多物件重疊,模擬實際零售流程的複雜性。
  4. 層級式商品分類結構

    • 所有商品共分為 17 個上位類別(meta-categories),如瓶狀、盒狀、袋狀等。
    • 有助於模型學習類別間語意結構,亦可作為輔助監督訊號,或階層分類的研究方向。
  5. 雜亂程度標註

    clutter levels

    • 根據每張結帳圖中的商品種類與數量,將其劃分為三種 clutter level,有助於分析模型在不同複雜度場景下的表現穩定性。
  6. 三種監督強度

    week to strong

    • 弱監督:購物清單(僅提供商品種類與數量);
    • 中監督:點位標註(標示每個商品的中心點與類別);
    • 強監督:邊界框(完整標示每個商品的 bounding box 與類別)。

這些設計讓 RPC 成為一個高度可擴充的 benchmark,不僅能評估模型辨識與計數能力,更能延伸至弱監督偵測、domain adaptation、多尺度分類等多種研究路徑。

資料建構流程​

meta-categories

本資料集共收錄 200 個零售商品類別(SKU),依照外觀與功能分為 17 個上位類別(meta-categories),涵蓋從食品到生活用品的多元型態:

puffed food、dried fruit、dried food、instant drink、instant noodles、dessert、drink、alcohol、milk、canned food、chocolate、gum、candy、seasoner、personal hygiene、tissue、stationery。

這些類別對應的外觀結構多樣,從瓶狀、盒狀、罐狀到袋狀都有涵蓋。

同一 meta-category 下的 SKU 通常具有高度外觀相似性,例如同樣是「果汁」,可能只差一條文字或標籤顏色,這正是 ACO 任務中最棘手的「細粒度辨識」難題之一。


單品 exemplar 圖像​

dataset infos

為了獲得每個商品在多視角下的外觀資訊,作者設計了一套自動化拍攝流程:

  • 使用 四台固定視角攝影機,分別對應:上視角(top view)、水平視角(side view)、30° 與 45° 斜視角;
  • 每個商品被放置於可旋轉的 360 度轉盤 上,每 9 度拍攝一次,共取得 40 張圖像;
  • 每台攝影機各拍攝 40 張 → 每個 SKU 共產生 160 張視角圖像;
  • 若商品具有上下外觀差異(如盒狀、袋狀),則會進行「翻面後再重拍一次」,以補齊底部特徵。

最終,這一階段共拍攝 53,739 張 exemplar 圖像,全部為乾淨背景、多視角、單一商品的樣貌,對應於訓練階段常見的 source domain 圖像。

dataset infos


結帳影像的構建流程​

dataset infos

與 exemplar 不同,結帳圖像的目標是模擬真實結帳情境,因此設計上刻意導入混亂與遮擋:

  • 拍攝背景為一張 80cm × 80cm 白板,攝影機從正上方拍攝,解析度為 1800 × 1800;
  • 每張圖中放置的商品種類與數量均為隨機組合,但依據預設的「雜亂程度」進行控制;
  • 商品會隨機擺放、角度任意、不進行人工對齊,進一步模擬多件商品堆疊的真實情境。

根據遮擋與密度程度,資料集將結帳圖像分為三種雜亂等級:

雜亂等級商品種類數商品實例總數特徵
Easy少(例如 3–5 種)總數低幾乎無遮擋,間距大
Medium中(例如 6–10 種)總數中等偶有遮擋,有一定密度
Hard多(超過 10 種)總數高高度堆疊與遮擋,難以辨識

每個雜亂等級都各收錄 10,000 張圖像,總計構成 30,000 張結帳圖像。

評估指標​

自動結帳任務的目標是:正確預測一張影像中所有商品的種類與數量。

為了量化模型在這類任務上的表現,RPC 資料集提出了一套針對 ACO 任務設計的專屬評估指標,從單張影像準確性、數量誤差、類別層次表現到語意一致性皆有考量。

以下是主要的四個核心指標。

Checkout Accuracy(cAcc)​

cAcc 代表整體準確率。

ACO 系統的最終目的是在一張影像中,完整預測出購物清單,因此最核心的指標是:

若模型預測的所有商品種類與數量皆與 GT 完全一致,則該張影像判定為「正確」。

這項指標的公式如下:

cAcc=1N∑i=1Nδ(∑k=1K∣Pi,k−GTi,k∣,0)cAcc = \frac{1}{N} \sum_{i=1}^{N} \delta \left( \sum_{k=1}^{K} |P_{i,k} - GT_{i,k}|, 0 \right)
  • Pi,kP_{i,k}:模型對第 ii 張影像中第 kk 類商品的預測數量;
  • GTi,kGT_{i,k}:該類商品的真實數量;
  • δ(⋅)\delta(\cdot):若預測完全正確(所有類別皆 0 誤差)則回傳 1,否則為 0。

這是一個極為嚴格的指標,只要預測錯一件商品,就會判定該張影像不通過。

Average Counting Distance(ACD)​

ACD 表示平均數量誤差。

若不要求「完全正確」,而是評估模型平均犯錯幾次,可採用 ACD:

衡量每張影像中,模型對所有類別的總體預測誤差(L1 距離)。

公式如下:

ACD=1N∑i=1N∑k=1K∣Pi,k−GTi,k∣ACD = \frac{1}{N} \sum_{i=1}^{N} \sum_{k=1}^{K} |P_{i,k} - GT_{i,k}|

這項指標適合用於比較模型在數量預測上的精度,與分類準確無關,只在意「錯了幾件」。


Mean Category Counting Distance(mCCD)​

mCCD 表示類別平均誤差比率,其將注意力放在各商品類別的辨識難度上:

衡量模型在每個類別上,預測誤差與實際數量的比例,平均所有類別。

公式如下:

mCCD=1K∑k=1K∑i=1N∣Pi,k−GTi,k∣∑i=1NGTi,kmCCD = \frac{1}{K} \sum_{k=1}^{K} \frac{ \sum_{i=1}^{N} |P_{i,k} - GT_{i,k}| }{ \sum_{i=1}^{N} GT_{i,k} }

這項指標反映了模型是否在某些類別(如細粒度商品)上容易高估或低估,可用來評估類別不平衡問題與長尾分布下的預測穩定性。


Mean Category IoU(mCIoU)​

mCIoU 表示購物清單相似度。

最後,作者定義了一個類似 IoU(Intersection over Union)的指標,用來衡量預測與實際購物清單在語意層次上的接近程度:

mCIoU=1K∑k=1K∑i=1Nmin⁡(Pi,k,GTi,k)∑i=1Nmax⁡(Pi,k,GTi,k)mCIoU = \frac{1}{K} \sum_{k=1}^{K} \frac{ \sum_{i=1}^{N} \min(P_{i,k}, GT_{i,k}) }{ \sum_{i=1}^{N} \max(P_{i,k}, GT_{i,k}) }
  • 若某類商品預測數量與實際數量越接近,該項在分子與分母中比值越高;
  • 若預測為 0 或實際為 0,IoU 值會趨近於 0。

mCIoU 是一項語意導向、可容忍小誤差的指標,特別適合用來分析「即便不完全正確,模型是否能抓對主體內容」。

基準方法實驗​

由於自動結帳問題本身是跨域、少樣本、細粒度的複合型任務,目前尚無統一的解法架構。

為建立 RPC 資料集上的 benchmark,作者嘗試將 ACO 問題視為一種 cross-domain detection task,並提出四種逐步遞進的基線方法,全部僅使用 exemplar 單品圖進行訓練,不依賴結帳圖的標註。


Single​

這個方法是直接用 exemplar 訓練 FPN。

最直覺的策略,是直接將單品 exemplar 圖作為監督資料,訓練一個物件偵測模型。作者選用 Feature Pyramid Network (FPN) 作為 backbone。

然而這個 baseline 幾乎無法泛化到結帳圖,因為 exemplar 是單物件、無遮擋的乾淨圖,而測試資料卻是多物件、堆疊遮擋、光影混亂的 domain。這個 domain gap 使得模型即使在 easy 模式下也表現極差,成為最弱的 baseline。


Syn​

這個策略是合成結帳場景圖進行訓練。

為了縮小這個 domain gap,第二種方法將 exemplar 商品圖「剪下貼上」,合成出模擬結帳的圖像。具體步驟如下:

  • 使用顯著區域分割與 CRF(條件隨機場)後處理取得商品 mask;
  • 將多個商品隨機貼到空白背景上,建立多物件堆疊場景;
  • 依據不同 clutter 等級規則,合成出 10 萬張訓練用的合成結帳圖。

這種策略讓訓練資料更接近測試場景,cAcc 提升明顯,尤其在 easy clutter 模式下提升約 18%,但在 medium 與 hard 模式仍表現有限,說明純合成圖仍不足以填補風格與雜訊的 domain gap。


Render​

cycle-gan

這個方法採用 Cycle-GAN 跨域風格轉換。

如上圖所示,左邊是簡單拼貼的合成結帳圖,右邊是經過 Cycle-GAN 風格轉換後的圖像,看起來更自然、更接近真實結帳場景,整體流程為:

  • 對合成圖進行 Cycle-GAN 翻譯,使其風格更接近真實結帳圖;
  • 使用翻譯後圖像訓練 FPN 偵測器。

這種 domain translation 策略顯著提升泛化能力,在各 clutter 模式下皆有穩定成長,證明 Cycle-GAN 能有效填補視覺風格落差,強化 cross-domain detection 能力。


Syn+Render​

最後一種策略是混合資料訓練,提升樣本多樣性。

作者嘗試將 render 後的資料與原始 synthetic 合成圖混合訓練,期望透過樣本多樣性進一步提升模型泛化能力,結果顯示比單獨使用 Syn 或 Render 效果更佳。

這說明資料風格的一致性(render)與樣本組合的多樣性(syn)兩者可互補,有助於模型學習更穩健的判斷邊界。


詳細評估表格​

benchmark

實驗同時採用:

  • ACO 任務指標(cAcc、ACD、mCCD、mCIoU);
  • 標準偵測指標(mAP@50, mmAP)。

訓練設定如下:

  • 輸入圖像縮放最短邊為 800px;
  • 使用同步 SGD,兩張圖/卡 × 2 GPU;
  • 每張圖最多採樣 512 個 RoI;
  • 起始學習率 0.02,60K iter 後降為 0.002;
  • 各 clutter 模式中,使用 2,000 張圖作驗證集,8,000 張作測試集。

實驗結果顯示:即使是最佳 「Syn+Render」,在 medium 與 hard 模式下的表現仍未達實用水準。這表示 ACO 的難度不僅來自 domain shift,還包含堆疊遮擋、細粒度辨識與長尾分布。

儘管在 mAP 指標下表現良好(如 hard 模式下達到 72.72% mmAP),但從 cAcc 角度看仍遠遠不足,正確辨識整張圖的完整購物清單仍是一項極嚴格的任務要求。

失敗案例分析指出主要錯誤來源包含:

  1. 漏檢(missed detection);
  2. 密集排列造成遮擋;
  3. 細粒度商品誤辨;
  4. 誤判(false positives)。

這些挑戰也為後續研究指出明確方向:弱監督、多視角融合、語意對齊、樣本生成多樣性皆是未來可挖掘的切入點。

提示

這篇論文提到所使用的架構是 FPN,但沒有說明是用 ResNet-50 還是 ResNet-101。

在另外一篇 DPNet 論文中有提到在比較中使用的架構是 ResNet-101,所以這裡我們假設是 ResNet-101。

參考文獻如下:[19.04] Data Priming Network for Automatic Check-Out

未來研究方向​

雖然本文以 cross-domain detection 為切入點建立了 RPC 的 baseline,但 ACO 任務的本質遠比單一解法更為開放與多元。RPC 資料集提供了可彈性擴展的結構與標註方式,因此也啟發了許多值得探索的潛在研究路線:

  • 線上學習與動態擴充:

    現實情境中,商品清單並非固定不變,新品持續上架意味著系統需要具備即時學習與增量更新的能力。如何不重訓整個模型,快速將新商品納入辨識範圍,構成一個典型的 online learning 問題。特別是 ACO 的跨域與細粒度特性讓這項任務更加困難,可能需要全新的架構與策略設計。

  • 跳過偵測的清單預測模型:

    一種不同的方向,是不透過 bounding box 或偵測流程,而直接從結帳影像預測購物清單,將問題轉化為一種多類別多實例的物件計數(object counting)任務。

    但與傳統 counting 任務不同,ACO 涉及數百種物件、極少樣本、外觀高度相似,因此可視為一種全新形式的跨類別計數問題。

  • 混合監督的學習架構:

    RPC 提供了三種監督強度的 checkout 標註(list-level, point-level, bbox-level),但如何有效結合這些異質標註資源,設計一個具適應性與抽象能力的混合監督學習框架,仍是一個尚未解決的開放問題,尤其在數據收集成本極高的場域下格外重要。

  • 延伸至其他電腦視覺任務的應用場景:

    儘管 RPC 是為自動結帳而生,其影像與標註架構也可支援其他電腦視覺研究方向,如:

    • 物件檢索(object retrieval)
    • 少樣本學習(few-shot detection)
    • 弱監督學習(weakly-supervised detection)
    • 全監督偵測(fully-supervised detection)

    特別是結帳圖中提供了完整 bounding box 與 SKU 類別標註,使其具備訓練與評估偵測模型的條件,可作為通用物件偵測任務的補充資料集之一。

結論​

本篇論文發表於 2019 年,而我們回顧它的時刻已經是 2025 年。

在這幾年間,大型視覺語言模型快速發展,對圖像中商品的辨識與推理能力已有初步展現,不少人開始探索其應用於自動結帳場景的可能性。

不過目前似乎還沒有看到可行的進展,原因可能在於 ACO 問題中的細粒度辨識、遮擋處理與跨域穩定性到問題依然沒辦法被完全解決。

這也顯示出 RPC 資料集的價值:它不僅是過去的里程碑,更是未來研究的基石。希望未來能有更多研究者在此基礎上,提出創新的方法與解決方案,推動自動結帳技術的實用化。

☕ 一杯咖啡,就是我創作的燃料!

贊助我持續分享 AI 實作、全端架構與開源經驗,讓好文章不斷更新。

cta-button
AI / 全端 / 客製 一次搞定 icon
ALL

AI / 全端 / 客製 一次搞定

從構想到上線,涵蓋顧問、開發與部署,全方位支援你的技術實作。

包含內容
  • 顧問服務 + 系統建置 + 客製開發
  • 長期維運與擴充規劃

🚀 你的專案準備好了嗎?

如果你需要客製服務或長期顧問,歡迎與我聯繫!