Kod kreskowy to nie zwykły napis. Kiedy wybrać dekoder zamiast AI
Odczyt symbolu, cyfr i produktu to różne zadania. Jak odebrać dekoder kodów, dokładność identyfikatora, brak odczytu oraz dalsze wyszukiwanie w katalogu.

W tym artykule
Prosta próba może ujawnić, co narzędzie rzeczywiście odczytuje: przygotuj wariant etykiety z widocznym symbolem i zasłoniętymi cyframi oraz drugi z cyframi bez symbolu. Jeśli oba nazwiesz po prostu „odczytem kodu”, raport ukryje różnicę metody. W tym tekście nie wykonujemy takiej próby obrazu; ustalamy, co powinna rozstrzygnąć.
Kod kreskowy jest sposobem zakodowania danych w określonym symbolu. Tekst obok może je przedstawiać człowiekowi, a nazwa produktu pochodzić dopiero z katalogu. Model potrafiący opisać etykietę nie musi być właściwym narzędziem do każdego z tych etapów. Ładny opis opakowania nie ma uprawnienia do poprawiania jego identyfikatora.
Najpierw ustal, jaki wynik jest potrzebny
Przyjmijmy fikcyjną hurtownię papierów ozdobnych. Pracownik fotografuje paczkę i chce odnaleźć właściwą kartę katalogową. Na etykiecie widzi nazwę kolekcji, format, numer wewnętrzny i kod produktu. Można dobrze przepisać nazwę, a nadal wskazać paczkę o innym formacie. Można też poprawnie odczytać symbol, ale nie znaleźć go w aktualnym katalogu firmy.
Odbiór powinien rozdzielić wynik dekodera, czyli odczytaną zawartość symbolu, od tekstu rozpoznanego przez OCR oraz od rekordu odnalezionego w bazie. OCR to optyczne rozpoznawanie znaków. Te wyniki mogą się uzupełniać, ale nie należy mieszać ich pochodzenia w jednym polu „rozpoznano produkt”.
GS1 opisuje HRI jako czytelną dla człowieka informację odpowiadającą danym zakodowanym w nośniku. Zaznacza też, że nawiasy wyróżniające identyfikatory zastosowań w takim zapisie nie są kodowane w samym nośniku. Odczyt nadruku i dekodowanie symbolu wymagają więc właściwej interpretacji formatu, nawet jeśli dotyczą powiązanych danych.
W naszym procesie można dopuścić obie drogi jako odrębne metody. Jeśli symbol jest nieczytelny, odczyt tekstu może pomóc pracownikowi. Nie przedstawiaj go jednak jako udanego dekodowania. W raporcie zachowaj oznaczenie źródła wyniku, aby później można było ocenić, która metoda działała i przy jakim rodzaju materiału.
Co zrobić, gdy dekoder i OCR zwrócą różne ciągi? Najpierw rozdziel różnicę sposobu zapisu od różnicy danych. Opisane nawiasy mogą należeć do prezentacji, ale rozbieżna cyfra wymaga wyjaśnienia. Nie wybieraj wyniku dlatego, że wygląda znajomo. W hurtowni pracownik może porównać oba odczyty z etykietą; system powinien zachować rozbieżność aż do tego rozstrzygnięcia.
Kontrola OCR przed AI obejmuje dokładność znaków i powiązanie z obrazem. W przypadku kodu dodatkowo dochodzi rozpoznanie rodzaju symbolu oraz reguł jego zapisu. Nie wystarczy zwiększyć stanowczości polecenia „przeczytaj dokładnie”, jeśli zadanie ma wykonać inny rodzaj narzędzia.
Dekoder potrzebuje właściwego zakresu
Do porównania wybierz narzędzie obsługujące rodzaje symboli występujące w materiałach firmy. Nazwy EAN, Code 128 i Data Matrix nie są zamiennymi etykietami dowolnego obrazka z danymi. Przy odbiorze trzeba wiedzieć, jakie formaty są dopuszczone oraz jaki wynik zwraca konkretna wersja biblioteki lub usługi.
README ZXing wymienia obsługiwane formaty kodów jedno- i dwuwymiarowych, a zarazem wskazuje tryb utrzymania projektu. Jest to przykład wyspecjalizowanej biblioteki z określonym zakresem, nie rekomendacja dowolnej starej aplikacji o podobnej nazwie. Wybór wersji i sposobu wdrożenia wymaga osobnego sprawdzenia.
Zestaw prób powinien zawierać czytelny symbol, symbol obrócony, materiał z odblaskiem oraz przypadek bez odczytu. Dodawaj tylko warunki odpowiadające rzeczywistym fotografiom. Zdjęcie czytelnej, płaskiej etykiety na jasnym tle nie potwierdzi pracy na zakrzywionej paczce z błyszczącą folią. Zachowaj oryginał, przygotowany obraz i wersję użytego narzędzia.
Przy kilku kodach na jednej etykiecie trzeba ustalić, którego szukamy. Paczka może mieć symbol producenta oraz dodatkowy kod wewnętrzny. Automatyczny wybór pierwszego rozpoznanego wyniku nie musi odpowiadać zadaniu pracownika. Odpowiedź powinna zachować rodzaj i położenie odczytanego symbolu, jeśli narzędzie je udostępnia.
Jeśli użytkownik zaznacza właściwy obszar zdjęcia, zapisz również ten wybór. Wynik z wyciętego fragmentu nie powinien później wyglądać jak rozpoznanie wszystkich kodów na paczce. Przy dwóch czytelnych symbolach odbiór ma potwierdzić zarówno poprawność obu odczytów, jak i wybór właściwego numeru do katalogu. To oddzielna decyzja od samego stwierdzenia, że biblioteka coś znalazła.
Brak odczytu powinien pozostać brakiem odczytu. Model generujący tekst może zaproponować wiarygodnie wyglądający ciąg, lecz nie staje się on przez to zawartością uszkodzonego symbolu. Właściwy dalszy krok może oznaczać nowe zdjęcie, odczyt nadruku albo ręczne sprawdzenie. Kryterium zależy od znaczenia identyfikatora w procesie.
Warto rozdzielić błąd pobrania pliku od poprawnie wykonanej próby bez rozpoznanego kodu. Gdy materiał nie dotarł do dekodera, jego wynik nie opisuje czytelności etykiety. Brak obsługi danego formatu symbolu nie potwierdza, że kod jest wadliwy. Najpierw ustal, czy zadanie w ogóle mieściło się w zakresie narzędzia.
Nie zapisuj tych różnych stanów jako identyfikatora „0”. Pusta odpowiedź, nieobsługiwany format i awaria mają inne przyczyny oraz inne dalsze kroki. Powinny otrzymać osobne oznaczenie stanu, poza polem zawierającym odczytane dane. W przeciwnym razie wyszukiwarka może dostać sztuczny numer, a raport potraktować awarię jak zwykłą próbę zakończoną brakiem produktu.

Poprawna struktura nie potwierdza całego produktu
GS1 wskazuje cyfrę kontrolną jako element sprawdzania integralności numeru i wyjaśnia, że znaczenie całego GTIN, identyfikatora produktu, wymaga danych z bazy. Kontrola formatu i ustalenie tożsamości produktu są odrębnymi krokami. Sam poprawny wynik kontroli nie dostarcza nazwy, wariantu i potwierdzenia zawartości fotografowanej paczki.
Nie poprawiaj automatycznie ostatniej cyfry tylko dlatego, że odczyt nie przechodzi reguły kontrolnej. Taka zmiana może stworzyć nowy, formalnie poprawny ciąg, który nie odpowiada etykiecie. Zachowaj surowy odczyt oraz wynik weryfikacji. Jeśli system proponuje kandydatów do ręcznego sprawdzenia, pokaż ich jako propozycje, z rozpoznawalną podstawą.
Zera początkowe także należą do zapisu identyfikatora. W obiegu między narzędziami nie traktuj go jak zwykłej liczby przeznaczonej do obliczeń. Zachowaj określoną reprezentację tekstową i uzgodnione reguły przekształcania. Wyświetlenie w arkuszu krótszego ciągu może ukryć zmianę, która później dotrze do zapytania katalogowego.
Reguły przygotowania danych przypisz do konkretnego formatu. Ogólne polecenie „usuń wszystko poza cyframi” nie jest bezpiecznym przepisem na dowolny odczyt symbolu. Hurtownia może obsługiwać własne oznaczenia z literami, obok numerów produktów. Zachowaj dane wejściowe oraz osobno wartość przygotowaną do wyszukania, żeby dało się odtworzyć przekształcenie. Etap przygotowania danych nie powinien po cichu zastępować odczytu zgadywaniem innego identyfikatora.
Verified by GS1 udostępnia określone informacje o firmie związanej z identyfikatorem oraz dane produktowe, gdy są dostępne. Jest to dodatkowe źródło do sprawdzenia tożsamości katalogowej. Nie należy mylić go z samym odczytem symbolu ani z oględzinami zawartości konkretnego opakowania.
W fikcyjnej hurtowni dalszym krokiem jest porównanie z kartą paczki: właściwy papier, format i liczba arkuszy w oferowanym zestawie. Jeśli rekord nie istnieje, system powinien pokazać odczytany identyfikator oraz brak pasującej pozycji. Podstawienie podobnej nazwy kolekcji stworzyłoby wrażenie sukcesu bez potwierdzenia właściwego produktu.
Wyszukiwanie zaczyna się po odczycie
Embeddingi pomagają odnajdywać podobne znaczenie, ale nie zastępują dokładnego numeru części. Dlatego odczytany identyfikator powinien przejść przez uzgodnione dokładne sprawdzenie. Najbliższa karta może być użyteczną podpowiedzią dla pracownika, lecz wymaga osobnej etykiety i potwierdzenia.
Przy wyszukiwaniu hybrydowym łączącym dwa rankingi odbierz również zachowanie identyfikatorów. Wynik leksykalny oparty na dokładnym zapisie nie powinien utracić znaczenia tylko dlatego, że inna karta ma bardzo podobny opis. Sposób łączenia wyników musi odpowiadać zadaniu, w którym różnica jednej cyfry może wskazywać inną pozycję.
Wyszukiwanie wizualne produktu daje jeszcze inny rodzaj podstawy. Podobieństwo fotografii może pomóc zawęzić katalog, ale nie naprawia nierozpoznanego numeru. Zachowaj w wyniku informację, czy propozycja pochodzi z wyglądu, odczytanego tekstu czy dekodowania. Dzięki temu użytkownik rozumie, co ma jeszcze sprawdzić.
Identyfikator rodzaju produktu nie musi wyróżniać każdej fizycznej sztuki. Jeśli dwie paczki mają ten sam kod oferty, nie oznacza to jednego przedmiotu sfotografowanego dwukrotnie. Przy liczeniu odrębnych obiektów ze zdjęć trzeba ustalić osobną podstawę rozróżnienia egzemplarzy. Nie łącz automatycznie wszystkich takich samych numerów w jedną rzecz.
W przeglądzie procesu Aeneia Audit można uporządkować wybór narzędzia, format wyniku i dalsze sprawdzenie katalogowe. Przydatny jest niewielki zestaw dopuszczonych etykiet z oczekiwanym odczytem oraz przykłady bez rozpoznania. Wtedy rozmowa dotyczy rzeczywistego zadania, a nie ogólnego porównania, czy AI dobrze widzi.
Raport powinien pokazać drogę do właściwej karty
Dla każdej próby zachowaj obraz, rodzaj symbolu, metodę odczytu, uzyskany ciąg i wynik dalszej kontroli. Przy ręcznym rozstrzygnięciu dodaj wybrany wynik oraz powód wyboru. Samo nadpisanie pola usunęłoby ślad wcześniejszej rozbieżności, choć to ona tłumaczy udział pracownika. Wystarczy zakres potrzebny do rozstrzygnięcia zadania. Jeśli raport zawiera tylko finalną nazwę papieru, nie pozwoli ocenić, gdzie podmieniono identyfikator lub dlaczego prawidłowy kod nie znalazł karty.
Porównaj metody na tych samych materiałach i według odpowiednich kryteriów. Dekoder odbierasz za odczytaną zawartość symbolu, OCR za znaki, a wyszukiwanie za właściwy rekord. Koszt oraz czas całej drogi można ocenić dodatkowo, jeżeli stanowią część decyzji. Nie wybieraj metody tylko za szybkość zwracania jakiegokolwiek tekstu.
W zaproponowanym raporcie pokaż osobno liczbę dokładnych odczytów, błędnych odczytów i prób bez odczytu. Do każdej z nich zachowaj oczekiwaną odpowiedź ustaloną z materiału wzorcowego. Nie usuwaj trudnych zdjęć z mianownika tylko dlatego, że narzędzie odmówiło wyniku. Uczciwe zatrzymanie ogranicza ryzyko pomyłki, ale nie podnosi liczby poprawnie zdekodowanych etykiet.
Możesz dodatkowo zapisać, ile paczek pracownik ostatecznie powiązał z właściwą kartą i ile wymagało ręcznej pomocy. To wynik całego procesu, obejmujący także dostępność katalogu. Dzięki temu nie obciążysz dekodera brakiem rekordu w bazie ani nie przypiszesz mu sukcesu ręcznego przepisania numeru. Taki podział pomaga wybrać, czy kolejna poprawka ma dotyczyć zdjęć, narzędzia czy danych produktowych.
W naszym przykładzie prawidłowo obsłużona próba kończy się właściwą kartą albo rozpoznawalnym zatrzymaniem do sprawdzenia. Brak odczytu pozostaje przy tym brakiem, a nie poprawnym dekodowaniem zaliczonym do wyniku biblioteki. Tak rozdzielony proces potrafi zatrzymać pomyłkę przed wyborem innego papieru. Sam fakt, że odpowiedź zawiera dużo cyfr, nie jest jeszcze powodem do wysłania jej dalej.
