DAEDALUS
LOCAL TIME --:--:--LOCATION NOVGOROD STATIONWEATHER 15°C · CLEAR ☼

SHOPPYCAT HOUSEHOLD SYSTEM // S05

Product Recognition

Barcode lookup, on-device text recognition, learned community corrections, and bounded image analysis converge on an editable product suggestion with an explicit confidence level.

Barcode and image paths activeSHOPPYCAT.APP ↗

Recognition is evidence, not authority

A barcode can query Open Food Facts for product name, brand, category, image, and package quantity. A photographed product can provide on-device OCR hints, match a previously corrected community item, or use a callable recognition service when the premium path is available.

Every result still lands in a review sheet. Name, quantity, unit, category, destination, recognition source, and confidence remain visible and editable before anything enters a list or pantry.

A layered fallback path

  • CameraX and ML Kit detect a barcode locally
  • Open Food Facts supplies metadata when the code is known
  • Image selection uses sampled bitmaps to control memory use
  • On-device OCR extracts retail text without sending the image
  • Community corrections can recognize a previously learned product
  • Callable recognition can combine image and OCR evidence
  • Local OCR heuristics remain available when remote recognition is unavailable
  • User corrections may be shared deliberately, never silently

Confidence follows the evidence

A result from a known barcode or a strong learned match deserves more confidence than a name inferred from one noisy line of packaging text. The ranking below communicates that distinction and keeps the interface from presenting every guess with the same certainty.

ArcoBASICArcoBASIC communication example: rank recognition evidence
' Assign confidence from the evidence that produced a product.
FUNCTION RecognitionConfidence(evidence)
    score = 0

    ' Independent signals add confidence for understandable reasons.
    IF evidence.KnownBarcode THEN score = score + 70
    IF evidence.CommunityMatch THEN score = score + 55
    IF evidence.VisualModelMatch THEN score = score + 35
    IF evidence.BrandSeenInText THEN score = score + 12
    IF evidence.NameSeenInText THEN score = score + 18

    ' Weak or contradictory text should reduce certainty.
    IF evidence.TextLines < 2 THEN score = score - 12
    IF evidence.SignalsDisagree THEN score = score - 30

    IF score >= 70 THEN RETURN "HIGH"
    IF score >= 40 THEN RETURN "MEDIUM"
    RETURN "LOW"
END FUNCTION

sample = {
    "KnownBarcode": FALSE,
    "CommunityMatch": TRUE,
    "VisualModelMatch": FALSE,
    "BrandSeenInText": TRUE,
    "NameSeenInText": TRUE,
    "TextLines": 4,
    "SignalsDisagree": FALSE
}
PRINT RecognitionConfidence(sample)

Learning remains a choice

When a person corrects an image result, ShoppyCat can create normalized lookup keys and tokens for a community item. Future scans can benefit from that correction, but the contribution control is explicit and the recognized source remains visible.

The system therefore improves without treating a correction as permission to collect everything around it.

Score confidence, don't just produce an answer

The specific evidence sources here, barcodes, OCR, community corrections, are ShoppyCat's recognition pipeline. Another system will read different signals: a fraud model's inputs, a search ranking's features, a monitoring system's alerts. The scoring discipline is what transfers, not the list of signals.

The same shape governs spam filters that combine multiple weak signals into one score, fraud detection weighing device fingerprint against transaction history, and any recommendation system that should show its confidence rather than assert a single answer as fact. A number attached to a guess is only useful if it is honest about how it was earned.

  • RecognitionConfidence adds points for independent corroborating signals, a known barcode, a community match, matching text, and subtracts for contradiction or thin evidence, rather than letting a single source decide the answer outright. Any system combining multiple imperfect signals is more honest when it lets them corroborate or cancel out, instead of picking one signal as the sole authority.
  • A known barcode contributes more to the score than a single noisy OCR line. Weighting signals by how reliable they actually are, rather than treating every input source as equally trustworthy, is what keeps a confidence score meaningful instead of arbitrary.
  • Every recognition result, regardless of score, lands in an editable review sheet before it enters a list or pantry. High confidence should change how much a person trusts the suggestion; it should never change whether they get to see and correct it first.
  • A person's correction can train future community matches, but only when they choose to share it, and the source label stays visible afterward. Any system learning from user corrections should make the contribution opt-in and keep the provenance of a learned answer visible, not blend it invisibly into ground truth.
LEARNING LAYER

Key terms, in plain language

You do not need a systems background to follow the work. These are the specialized terms used on this page.

OCROptical Character Recognition
Software that extracts text from an image. ShoppyCat uses on-device OCR as one source of evidence when identifying photographed products.
Confidence level
A visible estimate of how strongly the available evidence supports a result. It helps a person decide whether to accept, inspect, or correct a recognition.
Callable function
A server-side operation invoked by an authenticated application client. It is useful for protected work such as entitlement checks, notifications, and bounded model-assisted requests.

DAEDALUS_OS TERMINAL

DAEDALUS_OS v3.8.0

CONNECTED.

How can I help?

Technology should adapt to people.

Choose a perspective above or type help for commands.