Wybierz region
pl
  • PL
  • EN
Wydrukuj

„Wykryj je wszystkie! Nowoczesne podejścia do Detekcji i Rozpoznawania Tekstu w Naturalnej Scenerii”

Z artykułu dowiesz się więcej o podejściach stosowanych do rozpoznawania tekstu w scenerii naturalnej, aktualnych modelach SOTA w tej dziedzinie oraz ich implementacji w kodzie, którą możesz i Ty zastosować.

Od lat technologia rozpoznawania tekstu, znana głównie jako OCR (Optical Character Recognition), znalazła zastosowanie w przekształcaniu obrazów zawierających tekst na postać cyfrową. Wykorzystuje się ją szeroko do konwersji danych z dokumentów papierowych, takich jak książki, faktury czy dokumenty urzędowe, ułatwiając cyfrowe przetwarzanie informacji. Jednakże, poszukiwanie tekstu w naturalnych sceneriach, takich jak uliczne krajobrazy, plakaty reklamowe czy obrazy z kamer monitoringu, otwiera przed nami nowe zastosowania. Zadanie to nazywane często Scene Text Detection and Recognition, jest o wiele bardziej złożone i wymaga użycia najnowszych podejść z Deep Learningu przez Data Scientistów.

Dlaczego STD&R jest trudniejsze niż tradycyjne OCR?

Rozpoznawanie tekstu w naturalnej scenerii różni się znacząco od konwencjonalnego OCR stosowanego do cyfrowego przetwarzania dokumentów.

Różnice wynikają przede wszystkim z:

  • Zmiennej jakości i stylu pisania: Tekst napotykany w środowisku naturalnym może występować w różnorodnych stylach, czcionkach i stopniach czytelności.
  • Warunków oświetlenia: Nierównomierne oświetlenie lub jego brak może znacząco obniżać widoczność tekstu.
  • Różnorodnego tła: Oprócz tekstu na obrazie mogą pojawiać się inne obiekty, które zakłócają jego odczyt.
  • Perspektywy i orientacji: Tekst może być umieszczony pod różnymi kątami i w różnych obszarach obrazu, w przeciwieństwie do standardowego odczytu dokumentów.

Zastosowania

Jest to aktualnie popularna dziedzina przez uniwersalność jej zastosowań w różnorodnych obszarach. Moglibyśmy wskazać tu m.in.:

  • Pomoc dla osób niedowidzących: Aplikacje mogące odczytać i opisać otoczenie osoby niedowidzącej.
  • Tłumaczenia w czasie rzeczywistym: Tłumaczenie znaków i informacji w miejscach publicznych dla turystów.
  • Systemy nawigacyjne: Interpretacja znaków drogowych dla autonomicznych pojazdów.
  • Augmented Reality: Wzbogacenie świata rzeczywistego o dane cyfrowe poprzez rozpoznawanie tekstu w polu widzenia użytkownika.

Czym jest Scene Text Detection and Recognition?

Scene Text Detection and Scene Text Recognition to proces odczytu tekstu znajdującego się na obrazach lub wideo, które zostały utrwalone w naturalnych warunkach. Proces ten składa się z dwóch głównych etapów:

  1. Detekcji tekstu (Text Detection): Lokalizowanie obszarów obrazu, na których znajduje się tekst.
  2. Rozpoznawania tekstu (Text Recognition): Odczytywanie tekstu znajdującego się w zlokalizowanych obszarach.

Metody Detekcji Tekstu

Zanim przystąpimy do opisu procesu detekcji tekstu, musimy zdefiniować oczekiwaną końcową formę wyniku. Najczęściej chcielibyśmy otrzymać współrzędne obszarów tekstu lub punkty z krzywej Beziera, które dokładniej odwzorowują jego kształt.

W celu uzyskania wspomnianych współrzędnych, możemy zacząć od wykorzystania konwolucyjnych sieci neuronowych (CNN), takich jak ResNet lub VGGNet. Te sieci są w stanie wykryć istotne cechy obrazu, takie jak kształty i tekstury związane z tekstem. Następnie, możemy dodać warstwy dense sieci i przy odpowiednio zaprojektowanym zbiorze danych, gdzie do obrazu mamy dołączone współrzędne tekstu jako odpowiedź, trening pozwoliłby na zwrócenie tej informacji.

Jest to podejście oparte na regresji. Jego zaletą jest relatywnie niska złożoność obliczeniowa i prostość procesu. Jednakże, w przypadkach, gdzie na obrazie jest dużo zakłóceń lub mamy do czynienia z tekstem o nietypowym kształcie lub orientacji, istnieje podatność na błędy.

Czy można do tego podejść lepiej? Po ekstrakcji cech z obrazu, możemy skupić się na poszczególnym pikselu. Będziemy próbować uzyskać prawdopodobieństwa per piksel, informujące nas, czy jest na nim zawarta część tekstu. W efekcie otrzymujemy heatmapę z prawdopodobieństwem wystąpienia napisów na poszczególnych obszarach obrazu. Następnie, poprzez zastosowanie technik klasteryzacji i dodatkowych kroków postprocessingowych, można pogrupować obszary na te z tekstem i bez niego.

Takie podejście oparte jest na segmentacji. Pozwala ono radzić sobie z trudniejszymi przypadkami obrazów, ale niesie za sobą większą złożoność obliczeniową. Dodatkowo, kwestią do rozważenia jest podejście do klasteryzacji w przypadku nachodzącego na siebie tekstu, ponieważ budowanie zarysu na podstawie heatmapy w takim przypadku może utrudnić separację tekstu.

Modele do Detekcji Tekstu

Na liście aktualnie najlepszych modeli do detekcji na zbiorze benchmarkowym Total-Text znajdują się:

1. MixNet

2. SRFormer

3. DPText-DETR

Pozostałe możemy podejrzeć na stronie: Total-Text Benchmark (Scene Text Detection) | Papers With Code

Model MixNet, który zajął pierwsze miejsce, został wydany w sierpniu 2023 roku. Autorzy modelu połączyli zalety sieci neuronowych i transformerów. Opracowali oni skuteczniejszą architekturę o nazwie FSNet, która generuje lepszej jakości cechy niż popularne architektury sieci konwolucyjnych, takie jak ResNet. Następnie, wstępna heatmapa jest przetwarzana przez moduł oparty na transformerze, który identyfikuje środkową linię tekstu. Jest to podejście bardziej efektywne w separacji nachodzących napisów niż koncentrowanie się na jego krawędziach. Uzyskana środkowa linia wraz z cechami obrazu z CNN jest ostatecznie przetwarzane przez kolejny moduł transformerów, z którego uzyskiwana jest dokładniejsza końcowa predykcja.

Szczegółowy opis możemy znaleźć w artykule twórców MixNet: 2308.12817.pdf (arxiv.org)

Metody w Rozpoznawaniu Tekstu

Pierwsze to co mogłoby nam przyjść do głowy, kiedy mamy już zlokalizowany obszar z tekstem, byłoby rozpoznawanie poszczególnych znaków poprzez zastosowanie prostego klasyfikatora. Mógłby on klasyfikować poszczególne znaki indywidualnie bazując wyłącznie na cechach wizualnych (czyli cechach wyekstrahowanych ze zdjęcia). Takie podejście nazywa się podejściem bezkontekstowym. Niestety w warunkach naturalnych nie wszystkie znaki tekstu są widoczne na zdjęciu – w takim wypadku klasyfikator nie ma szans na poprawne rozpoznanie całego ciągu znaków.

Z pomocą przychodzą nam metody kontekstowe, które poza cechami wizualnymi, wykorzystują również cechy tekstowe – semantykę, strukturę itp. Są one wyuczane na bazie zbioru treningowego przez zintegrowany model językowy (który może być wewnętrzny lub zewnętrzny – wewnętrzny zależy warunkowo od wyekstrahowanych cech wizualnych, a zewnętrzny nie). Dla metod kontekstowych wykorzystujących wewnętrzny model językowy najprostszym modelem jest model autoregresyjny.

Jak on działa?

Wyobraźmy sobie 4-literowe słowo “pies”. Starając się rozpoznać 3 znak “e”, poza dostępem do cech wizualnych (wyekstrahowanych ze zdjęcia), model autoregresyjny ma również dostęp do informacji o predykcji 1 i 2 znaku (znaki “p” oraz “i”). Wykorzystując zewnętrzny model językowy, można myśleć o modelu tekstowym, który pełni funkcję “nauczyciela sprawdzającego pisownię” – początkowa predykcja bazująca tylko na cechach wizualnych jest poprawiana w oparciu o odpowiedź tego modelu. Jednak oba te podejścia wykazują wady, bo w przypadku modeli autoregresyjnych, kontekst jest tylko jednokierunkowy (od lewej do prawej), a “nauczyciel” będzie popełniał błędy w przypadku, gdy oryginalny tekst jest napisany niepoprawnie (będzie korygował na poprawną pisownię, co spowoduje uzyskanie w ostateczności niepoprawnie rozpoznanego tekstu). Dlatego potrzebujemy czegoś lepszego. A gdzie możemy znaleźć coś lepszego? Na przykład sprawdzając modele SOTA dla STR.

Modele do Rozpoznawania Tekstu

Na zbiorze benchmarkowym ICDAR2013, najlepszymi aktualnie modelami są:

1. CLIP4STR-L*

2. DTrOCR

3. MGP-STR

Resztę modeli można sprawdzić na: ICDAR2013 Benchmark (Scene Text Recognition) | Papers With Code

Modelem, który dostosowaliśmy do naszego problemu biznesowego jest PARSeq, zajmuje on 5 miejsce we wskazanym wyżej benchmarku. Umożliwia on na 3 typy wnioskowania: bezkontekstowe, kontekstowe (które poznaliśmy) oraz na iteracyjne wzmocnienie.

W celu wyjaśnienia iteracyjnego wzmocnienia, należy wprowadzić najważniejszy termin dla modelu PARSeq, którym jest permutacja. Przypomnijmy sobie nasze słowo “pies”. Dla modelu autoregresyjnego dla trzeciego znaku mieliśmy dostęp do predykcji pierwszego i drugiego znaku. Jesteśmy wstanie to zapisać wyrażając to jako permutację znaków [1, 2, 3, 4], gdzie kolejne z nich, korzystają z informacji o poprzednich predykcjach. W przypadku iteracyjnego wzmocnienia, możemy pomyśleć natomiast o bardziej złożonej permutacji, np. [3, 1, 4, 2], gdzie rozpoznając czwarty znak, mamy dostęp do informacji o trzecim i pierwszym znaku, ale nie mamy dostępu do informacji o predykcji drugiego. Łatwo się domyślić, że liczba takich permutacji rośnie wykładniczo wraz z długością rozpoznawanego tekstu. Autorzy wybrali doświadczalnie liczbę 6, co pozwoliło im na zachowanie balansu między skutecznością i czasem wnioskowania. PARSeq osiąga wyniki SOTA dla STR, przy okazji będąc łatwym w adaptacji dla swojego problemu biznesowego (np. finetuning). Model można wykorzystywać zarówno na GPU, jak i CPU, a jego uruchomienie jest relatywnie proste porównując je do innych modeli SOTA.

Więcej o modelu PARSeq można przeczytać tutaj: 2207.06966.pdf (arxiv.org)

Kod

Kod potrzebny do wytworzenia potoku przetwarzania wykorzystujący wyżej opisane modele znajduje się w notebooku: https://github.com/mazurykm/STD-R

Pokazuje on implementację rozpoznawania tekstu na obiekcie jakim jest puszka napoju Redbull. Krok po kroku przedstawione są kolejne etapy, które prowadzą od momentu surowego zdjęcia, po rozpoznany tekst.

 

Scene Text Detection and Recognition to dynamicznie rozwijająca się dziedzina z zakresu Computer Vision, zajmująca się zadaniem odczytywania tekstu w naturalnych sceneriach. Pomimo wyzwań, rosnące potrzeby rynku napędzają doskonalenie tej technologii, przez co badane są ciągle nowe podejścia i opracowywane modele, przesuwające granice skuteczności oraz ustalające nowe punkty odniesienia.


Asseco Data Science Team

Autorami tego tekstu są Piotr Matys, Inżynier AI oraz Michał Mazuryk, Data Scientist. Panowie są częścią zespołu Data Science w Asseco Poland. Pracowali nad projektami AI w dziedzinach Widzenia Komputerowego (CV), w szczególności Rozpoznawania Tekstu w Scenerii Naturalnej (STD&R), jak i Przetwarzania Języka Naturalnego (NLP) dotyczących zastosowania Dużych Modeli Językowych (LLM). Miłośnicy AI, nowych technologii i stałego rozwoju.


Wydrukuj