
AVAPAX Catalog Recognizer
Rozpoznawanie SKU i infografik w katalogach PDF, z eksportem macierzy 0/1 do Excela.
- PROJECT
- CNC-050
- OCR
- RapidOCR + ONNX RUNTIME
- WEJŚCIE
- KATALOG PDF
- WYJŚCIE
- MACIERZ 0/1 W XLSX
- BAZA
- SQLITE (WZNAWIANIE)
- STATUS
- UKOŃCZONY
- DATA
- 13 sierpnia 2026
Lokalny system, który czyta katalog produktowy w PDF, rozpoznaje numery katalogowe i ikony właściwości technicznych przy każdym produkcie, a następnie generuje macierz zero-jedynkową w arkuszu. Działa w pełni offline na RapidOCR i ONNX Runtime, bez API chmurowych.
Linia przechodzi po stronie katalogu z góry na dół. Za nią zapalają się numery katalogowe odczytane przez OCR i ikony właściwości dopasowane do wzorców z legendy. Po prawej narasta macierz zero-jedynkowa — to ona jest właściwym produktem tego programu, a strona z podświetleniami służy tylko do weryfikacji przez człowieka.
PROBLEM
Katalog produktowy zawiera przy każdym produkcie zestaw ikon opisujących właściwości techniczne. Przepisanie tego do arkusza — kilkaset produktów razy kilkadziesiąt ikon — to praca na kilka dni, wykonywana ręcznie przy każdej nowej edycji katalogu.
Automatyzacja jest trudna z dwóch powodów: ikony nie mają warstwy tekstowej, a numery katalogowe bywają w PDF-ie obrazem, nie tekstem.
POMYSŁ
Rozwiązać zadanie dwuetapowo: najpierw nauczyć się legendy (strony katalogu, na której ikony są opisane), a dopiero potem szukać tych samych kształtów przy produktach. Legenda daje wzorce, produkty dają dopasowania.
Do tego twarda zasada kontrolna: jeśli liczba rozpoznanych ikon nie zgadza się z oczekiwaną, eksport się zatrzymuje ze statusem wymagającym weryfikacji, zamiast wypuścić niekompletną macierz.
PROJEKT
Proces zaczyna się od etapu zerowego — diagnozy struktury PDF. To on odpowiada na pytanie, czy dokument ma tekst, czy jest skanem, i gdzie leżą strony legendy. Legendę można wskazać ręcznie, podać jako osobny wektorowy PDF (wtedy kontenery ikon lokalizowane są deterministycznie z rysunków wektorowych) albo zdać się na autodetekcję po nagłówku i siatce ikon.
OCR numerów katalogowych wspiera opcjonalny słownik oficjalnych SKU. Korekta następuje wyłącznie wtedy, gdy istnieje dokładnie jeden jednoznaczny kandydat — przy dwóch podobnych system woli zostawić surowy odczyt niż zgadnąć.
Analiza zapisuje postęp w SQLite, więc przerwane przetwarzanie wznawia się od miejsca zatrzymania, pomijając strony oznaczone jako gotowe.
REALIZACJA
Program ma cztery tryby uruchomienia: pełną analizę, diagnozę struktury, interfejs graficzny z trybem weryfikacji oraz ponowny eksport z bazy bez powtarzania rozpoznawania. Ten ostatni jest praktyczny — poprawki w arkuszu nie wymagają przeliczania całego katalogu.
Tryb weryfikacji w GUI pokazuje operatorowi przypadki niepewne obok fragmentu strony, na której zostały znalezione. Decyzja człowieka trafia do bazy i jest uwzględniana przy kolejnym eksporcie.
Wskazanie legendy jako osobnego pliku wektorowego jest ścieżką najpewniejszą i wartą użycia, gdy tylko taki plik istnieje. Kontenery ikon lokalizowane są wtedy deterministycznie z rysunków wektorowych, bez rozpoznawania obrazu — a więc bez klasy błędów, którą OCR wnosi z definicji.
EFEKT
Przetworzenie katalogu zajmuje minuty zamiast dni, a wynik jest sprawdzalny: każdą jedynkę w macierzy da się cofnąć do konkretnej strony i konkretnego miejsca. Diagnostyka struktury zapisuje osobny raport JSON, przydatny przy katalogu o nietypowym układzie.
Możliwość przetworzenia podzbioru stron okazała się praktyczniejsza, niż zakładałem. Przy dopracowywaniu rozpoznawania pracuje się na kilku stronach zamiast na całym katalogu, co skraca cykl poprawek z minut do sekund.
GALERIA
02 ZDJĘĆCatalog Recognizer — rozpoznane ikony i SKU na stronie produktowej · zrzut z projektu
Catalog Recognizer — strona katalogu z naniesionym audytem rozpoznania · zrzut z projektu
WNIOSKI
Zasada „lepiej zatrzymać eksport niż wypuścić niepewne dane” jest tu ważniejsza od skuteczności rozpoznawania. Macierz właściwości trafia do systemów sprzedażowych — błędna jedynka przy funkcji, której produkt nie ma, wraca jako reklamacja.


