logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Matlab OCR: Korekta obrotu i segmentacja linii oraz znaków w GUI

Denton 30 Mar 2006 13:18 8497 6
  • #1 2474506
    Denton
    Poziom 11  
    Posty: 8
    Witam.

    Pracuje obecnie nad projektem z zakresu rozpoznawania tekstu w programie Matlab przy pomocy sieci neuronowych. Jestem w fazie opracowywania interfejsu użytkownika GUI i natrafiłem tutaj na kilka problemów. Dopiero zaczynam przygodę z matlabem dlatego liczę na waszą pomoc. Po pierwsze co zrobić gdy strona tekstu zostanie zeskanowana krzywo, tzn. linie tekstu zostaną obrócone o kilka stopni od poziomu? Jak "zmusić" matlaba aby automatycznie dokonał korekty obrócenia strony po załadowaniu obrazu. I drugi problem: Jak oddzielić poszczególne linie, a następnie znaki? Bardzo proszę o pomoc

    Pozdrawiam.
  • #2 2474686
    gromnik19
    Poziom 15  
    Posty: 98
    Pomógł: 10
    Robilem kiedys matlabowa aplikacje do rozpoznawania lisci drzew. Program mial do rozroznienia tylko 3 rodzaje lisci. Tymczasem na Duronie 950MHz i 768 RAMu analiza jednego obrazu 128x128 pikseli zajmowala tyle czasu, ze mozna bylo spokojnie isc sobie zaparzyc herbate. Nie uzywalem co prawda do tego sieci neuronowych, a odpowiednich wpolczynnikow i podzial ze wzgledu na ich wartosci, ale podejrzewam ze przy rozpoznawaniu textu twoją metodą bedzie niewiele szybciej.

    Co do twoich pytan: pamietaj ze matlab nie jest narzeciem do pisania OCRow. Ma tylko jakies tam funkcje pozwalajace na przetwarzanie obrazow. Funkcje do obracania textu musisz wiec albo napisac sam, albo algorytm rozpoznawania danej litery uodpornic na jej odwrocenie.

    Oddzielanie znakow: Ja mysle ze najlepiej byloby badac obwod pojedynczego ksztaltu, obszar jaki otacza traktujemy jako litere, wycinamy ja i analizujemy jako osobny obszar. Pamietaj ze tekst to czarne znaki, analizujesz wiec macierz skladajaca sie z 0 i 1.

    Rzuc tutaj okiem, moze ci sie cos przydac, szczegolnie z rozpoznawania obrazow: http://cnap.polsl.pl/piro/
  • Pomocny post
    #3 2475108
    sepher
    Poziom 19  
    Posty: 301
    Pomógł: 21
    Ocena: 4
    W demach Matlaba (przynajmniej w wersji 7) w sekcji Toolboxes -> Image Processing -> Image Registration jest przykład 'Finding the Rotation and Scale of a Distorted Image'. Pokazuje on, jak przy pomocy funkcji z IPT Matlaba sprawdzić o ile obrócony i przeskalowany jest obraz, o ile dysponuje się jakimś obrazem referencyjnym.
  • #4 2475584
    Denton
    Poziom 11  
    Posty: 8
    Gromnik19 dzięki za link, tej strony nie znałem. Zgadzam się z Tobą, że matlab nie jest właściwym narzędziem do OCR, ale niestety wybór programu został mi z góry narzucony.

    Właśnie największym problemem dla mnie jest znalezienie pojedyńczej litery. Podobno można do tego użyć histogramu, ale jak to zapisać w matlabie?

    Dzięki Sepher za zwrócenie mojej uwagi na funkcje Image Registration. Musiałem to przeoczyć. Ale wydaje mi się, że może się nie sprawdzić do analizy tekstu. Kiedy mamy dwa obrazy tego samego obiektu to znalezienie podobieństw i kąta obrotu jest stosunkowo łatwe. Z tekstem może być trudniej. Co wtedy jeśli długość linii, ilość i rozmiar paragrafów jest inny? Trudno znaleźć jeden wzorcowy obraz do porównań.
    Najłatwiej było by znaleźć kąt pomiędzy linijkami tekstu a krawędzią ekranu. Ale czy to jest możliwe i jak to zrobić w matlabie?
  • Pomocny post
    #5 2475806
    gromnik19
    Poziom 15  
    Posty: 98
    Pomógł: 10
    Histogram sluzy do pokazania ile jest pikseli w danym odcieniu, wiec nie wiem jakby ci mial pomoc w poszukiwaniu liter :|

    Co do nachylenia textu, to nie analizujesz chyba recznego pisma tylko druk. Druk, zwykle zapisany jest w obszarze bocznych marginesow, a linijki sa do nich prostopadle. Mozna by wiec pokusic sie o poszukanie najmniejszego prostokata w ktory da sie wpisac text. Stad juz maly krok do zmierzenia nachylenia.

    Inny pomysl: W PDFie ktoryms dotyczacym analizy obrazu sa podane rozne wspolczynniki niektore z nich sa niewrazliwe na obroty. Mozna by policzyc klilka dla kazdej litery alfabetu i je porownywac do wspolczynnikow kazdego elementu obrazu z textem.

    Nie wiem jak innym ale mnie najbardziej cieszy podziekowanie w postaci kliknietego klawisza "pomogl" ;)
  • #6 9682258
    kylix
    Poziom 1  
    Posty: 1
    Witam

    poszukuję specjalistów z zakresu OCR oraz sieci neuronowych do projektu.
    Proszę wszystkich zainteresowanych i mających praktyczną wiedzę o kontakt na prywatną pocztę.
  • #7 9797289
    Blueblacksmith
    Poziom 10  
    Posty: 12
    Jeśli możesz to prosiłbym żebyś się ze mną skontaktował. Napisz do mnie na prv jeśli możesz.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów związanych z implementacją OCR w Matlabie, w szczególności korekty obrotu zeskanowanej strony tekstu oraz segmentacji linii i znaków w interfejsie GUI. Matlab nie jest dedykowanym narzędziem do OCR, oferuje jednak funkcje przetwarzania obrazów, które można wykorzystać do analizy. Do korekty obrotu sugerowano użycie funkcji z Image Processing Toolbox, zwłaszcza przykładów dotyczących Image Registration, które pozwalają określić kąt obrotu i skalę obrazu względem wzorcowego obrazu referencyjnego. Problemem jest jednak znalezienie odpowiedniego obrazu referencyjnego dla tekstu o zmiennej długości i układzie. Alternatywnie proponowano analizę kąta nachylenia linii tekstu względem krawędzi obrazu, np. poprzez znalezienie najmniejszego prostokąta otaczającego tekst. Segmentacja znaków może być realizowana przez analizę obwodów i obszarów poszczególnych kształtów (liter) w obrazie binarnym. Histogramy pikseli nie są efektywne do wykrywania liter, ale mogą służyć do analizy rozkładu jasności. Wskazano również, że metody oparte na współczynnikach niewrażliwych na obrót mogą pomóc w rozpoznawaniu liter niezależnie od ich orientacji. W dyskusji pojawiły się także uwagi o ograniczeniach Matlabu w kontekście OCR oraz poszukiwania specjalistów do projektów związanych z sieciami neuronowymi i rozpoznawaniem tekstu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA