Supermarket Product Recognition

Recognises what's on the shelf and at the till; a new product joins the catalogue from a few photos.

Recognise every product on a checkout belt or shelf: checkout gets an item list, the shelf reports empty and misplaced slots. Register a new product from 3–8 photos, with no retraining.

SenseCraftAdvanced90minVision & Video AIAI Agent Ready

One shelf, four rows of five slots, read in a single scan on an RK3588 board — each slot boxed by its verdict, green ok and orange empty, with the board, the scan window and the mismatch count along the bottom: 0 of 20 here

The same twenty-slot layout after a slot was restocked with the wrong product — that box turns red and reads wrong_sku while the other nineteen stay green

A checkout replay on the RK3588 board — each item keeps its track id and instance number as it moves across the counter

The checkout and shelf board — the most recent basket on the left, the four-state slot snapshot on the right. Synthetic demo data from the upstream web_demo tool, not field results

The recognition events list — scene, device, box count and item summary per window, filterable by scene, device, SKU and time. Synthetic demo data from the upstream web_demo tool, not field results

One event's detail drawer — per-box similarity, top-2 margin, OCR rerank status and VLM fallback, plus the gallery version and model hashes it was scored against

The product gallery — version history with rollback, and the SKUs registered in the current version with their aliases, image counts and license

Reusable Site Templates

Stores with a fixed camera, lookalike packaging, and a catalogue that keeps changing.

Checkout lane

Checkout lane

Tills in convenience stores and fresh-food supermarkets. The camera reads a basket instead of each barcode.

Shelf audit

Shelf audit

Supermarket facings, inner shelves of unattended cabinets. Gaps and misplacements are reported without a walk-round.

Stores that change SKUs weekly

Stores that change SKUs weekly

Snack discounters, trial-launch shops. A new SKU is registered from 3 to 8 photos, with no training run.

Not a fit: certified weighing, a legally binding price, or theft detection. The number of registration photos moves accuracy most, so shoot several angles. A crowded shelf frame takes far longer than a small basket.

How it works

A camera over the belt or facing the shelf captures the view, a recognition host (reComputer J40 Series or reComputer RK3588 Series) makes the call, an on-site console collects the results, and they go to your till or replenishment system.

Four things: a camera over the belt or facing the shelf, one host that runs the detector and the embedder, a console host that mints the gallery and serves the UI, and whatever reads the events. All of them sit on site. The console host is shared infrastructure — every preset needs it, because that is where a new SKU is registered.

Camera

One camera over the checkout belt or facing the shelf, over RTSP or USB. Nothing runs on the camera.

  • Checkout and shelf use different model builds. The checkout build takes 640² frames, the shelf build 1280², so distant shelf products are not lost.
  • Plan by item count, not frame rate. Each item in the frame is looked up once, so a crowded shelf frame takes far longer than a five-item basket.

Shelf use needs frame skipping or slot-by-slot sampling.

Engineering details, test methodology and measured dataRead the engineering wiki →

How well it works

What the store manager sees and operates in a browser once it is running.

An event log you can audit frame by frame

  • Filter events by scene, device, SKU or time
  • Detail view shows track id, similarity and gallery version
  • Close calls flagged red and routed to OCR rerank

Shelf and checkout on one board

  • Top cards show event count, gallery version and item total
  • Slots sorted into ok, empty, wrong SKU or unknown
  • Odd slots name the expected vs actual SKU

A versioned product gallery — roll back mistakes

  • Each version tracks parent, SKU count and vector dimension
  • Roll back any non-current version with one click
  • Devices pick up the change on their next pull

Registering a new SKU

  • Enter SKU id, name and aliases; upload 3–8 photos
  • Submitting builds a new version, not an in-place edit
  • Old version stays for rollback
Measured results

Replays on the device and a public-dataset benchmark, not a certified count or price.

What the store getsTypicalDevice
Checkout: item detected to result published22.3 ms p50 (42.8 ms p95)reComputer J40 Series (J4012, Orin NX 16GB)
Frames dropped over a 2 956-frame checkout replay0reComputer J40 Series
Shelf: item detected to result published924 ms p50 (1153 ms p95)reComputer RK3588 Series
Shelf item top-1 on 704 crops, against the CPU reference541 / 704, identicalreComputer RK3588 Series

Recognition on the Grocery Store Dataset (81 classes), with 8 photos per SKU: 84.67% top-1, 96.66% top-5.

The number of registration photos moves accuracy most: 79.11% top-1 with 8 photos, 51.11% with one (smaller model). Photograph each SKU from several angles. For per-device latency and recognition benchmarks, see Engineering Wiki · Edge Product Recognition.

Test methodology, scope footnotes and the four full measurement tables · Read the engineering wiki →
What you get out of it

Once deployed, these three interfaces are the whole surface, all on the local network.

InterfaceWherePayload
MQTT retail/v1/eventsBroker on the console host, 1883One JSON message per frame: each item's track id, box, SKU and similarity, a summary (checkout items and quantities, empty and wrong shelf slots), plus the library version and model hashes
HTTP /v1/gallery/*Registration service, 8089Register a SKU from 3–8 images as a new version, list versions, download the current version, roll back
HTTP /api/*Management UI, 8080Event list filtered by scene, SKU, device and time; per-item detail; the checkout and shelf board

Most integrations read only the summary block. A similarity score is meaningful only with the library version and model in the same message. Access needs a token with a viewer, operator or admin role; the bundled broker has no password, so add accounts before leaving the bench.

Every payload field and the Home Assistant discovery entities · Read the engineering wiki →
Porting It to Your Own System

The reusable unit is not "groceries" — it is the chain find items → identify each against a versioned library → aggregate → MQTT. Only the library contents are bound to a catalogue; everything else carries over unchanged.

LayerWhat porting costs you
Item detector and the two input sizesreuse as-is; retrain only if your objects look nothing like packaged goods
Identification model and its quantisation recipereuse as-is
Versioned product library and rollbackreuse as-is
Registration API, photo quality check, access rolesreuse as-is
MQTT message and per-frame summaryadjust the summary for the new counting rule
Library contents and registration photoscollect for the new catalogue

Fits: parts bins and kitting stations, returns sorting, asset check-in, tool-crib tracking.

Where this shape does not fit

  • A legally binding count or price. It counts what it can see; no certified scale, no theft claim.
  • Items told apart only by fine print. Label reading is not implemented, so near-identical packages are not separated.
  • Commercial use of the shipped weights. Both models inherit non-commercial dataset terms and must be retrained.

How to deploy

Tell us about your site — we work out the hardware, then you connect the data and follow the steps.

Configure yours

Tell us what the camera watches and how fast you need results — we work out the hardware.

Self-service Consult & Deploy

Camera Scene

What does the camera watch? The scene decides the compiled input size and how many crops one frame costs.

Configure yours

Tell us what the camera watches and how fast you need results — we work out the hardware.

  • Rockchip NPU — RK3588 / RK3576

    The detector runs on the Rockchip NPU as an fp16 `.rknn` converted on an x86_64 host. On RK3588 that path agrees with the CPU reference on 99.85% of boxes at 56.7 ms p50; the INT8 variant is 2.2x faster at 98.35%. The default embedder has no RKNN conversion and falls back to onnxruntime on the Rockchip CPU, where it has never been timed. With the embedder swapped to RKNN fp16 on the NPU instead, a 20-SKU shelf replay ran the full device-side chain end to end once — 924 ms p50 / 1153 ms p95, top-1 accuracy matching the fp32 CPU reference on 704 crops (541/704 both sides). On RK3576, the same 704 crops were run through detector+embedder RKNN fp16 together, scoring 76.28% top-1 (537/704) against 76.99% (542/704) on CPU fp32, 99.29% same-SKU agreement; the embedder alone ran 61.0 ms p50 per crop — component figures on RK3576, with no device-side chain or console run.

    硬件/物料名称数量型号/SKU说明
    reComputer RK3588-30 (8 GB)1100071234-
  • reComputer R2000 Series (R2035-12, Hailo-8) — Detector on the NPU, Embedder on the CPU

    Both stages have run on the target hardware here too — an INT8 HEF detector at 9.04 ms p50 with 94.77% box agreement, and a dynamically quantised INT8 DINOv2-small on the host's four cores at 91.95 ms per crop, within 0.65 pp of its own fp32 retrieval accuracy. The embedder is on the CPU because it has to be: both Hailo quantisation attempts failed. Budget by crop count — a five-item basket is about half a second, a 160-box shelf frame about 14 seconds.

    硬件/物料名称数量型号/SKU说明
    reComputer Industrial R2035-12 (Hailo-8 option)1100020831-
  • reComputer J40 — TensorRT, Both Stages on the GPU

    The fastest of the three, and now measured on both reComputer J40 series tiers. On the Orin NX 16GB (J4012): detection 5.18 ms p50 at 99.91% box agreement, embedding 4.23 ms per crop, retrieval within 0.241 pp of fp32 across 21 metrics, and a 2 956-frame checkout replay finished in 198 s with no dropped frames. On the Orin Nano 8GB (J3011): detection 5.88 ms p50 at 99.27% box agreement, embedding 5.06 ms per crop, retrieval within 0.21 pp of fp32, and a 6 726-frame replay (2.27 loops) with zero dropped frames and all 84 events published. The Rockchip preset has run a comparable full-chain shelf replay too (see its own card). The 1280² shelf artifact has not been replayed on either tier.

    硬件/物料名称数量型号/SKU说明
    reComputer Super J40121114110314-
    reComputer Super J30111114110312-
Or compare them yourself: preset specificationsDeployment Guide · 90min →

Hardware Equipment List by Preset

SetupRoleDeviceQty
Rockchip NPU — RK3588 / RK3576Console HostConsole / On-Prem Host1
Recognition HostreComputer RK3588 Series / reComputer RK3576 Series(either one)1
CameraRTSP / USB Camera1
reComputer R2000 (Hailo-8)Console HostConsole / On-Prem Host1
Recognition HostreComputer Industrial R20 Series1
CameraRTSP / USB Camera1
Jetson Orin — TensorRTConsole HostConsole / On-Prem Host1
Recognition HostreComputer J40 Series (Jetson Orin NX) / reComputer J30 Series (Jetson Orin Nano)(either one)1
CameraRTSP / USB Camera1

Technical Specifications & Implementation Comparison

PresetRecognition hostFinding itemsIdentifying itemsWhole chain run on the device
Rockchip NPU — RK3588 / RK3576reComputer RK3588NPURockchip CPU by defaultShelf replay
reComputer R2000 Series (R2035-12, Hailo-8) — Detector on the NPU, Embedder on the CPUreComputer R2000 Series with the Hailo-8 option (R2035-12)Hailo-8Host CPUNot included
reComputer J40 — TensorRT, Both Stages on the GPUreComputer J4012 (Orin NX 16GB) or J3011 (Orin Nano 8GB)GPUGPUCheckout replay on both tiers
  • Every preset also needs the console host and a camera. Both console images are built on that host; no prebuilt image is published.
  • Difficulty is rated advanced; the guide budgets about 90 minutes per preset.

FAQ

No. Photograph the SKU 3 to 8 times and upload the photos to the console, which creates a new library version. Fewer than three photos is refused.

Didn't find your answer?
Contact Us
We Are Glad to Be Your Hardware Partner !
Next