Czy cięzko stworzyć program do odczytywania tekstu ze zdjęć?

0

Hej

Nie wiedziałem, gdzie umieścić temat, więc umieściłem tutaj, bo najbardziej mi pasował do wszystkich kategorii.

Od razu mówię - nie mam bladego pojęcia o programowaniu. Pytanie nie jest jak to zrobić tylko czy ciężko jest stworzyć taki program? Ponieważ jedyne co wiem to to, że to nie jest takie proste jak z innymi programami. W zwykłych programach głównie piszemy. Tutaj program musi w jakiś sposób spojrzeć naszym okiem na zdjęcie, choć w pierwszej chwili dla komputera jest to zbiór cyfr, a żeby rozpoznać musi popatrzeć z naszej perspektywy. Na jakiś tam sposób "pomyśleć". Pytanie czy jest to bardzo trudne do napisania? W razię czego jak trzeba zacząć to robić, co jest potrzebne? Oczywiście nie ja bym pisał taki program tylko prawdziwy programista.

Z góry przepraszam jak odwaliłem jakąś fuszerkę i dzięki za wyrozumiałość.

0

Temat do poczytania: OCR.
Masz sporo książek na ten temat, natomiast generalnie nie opłaca się tworzyć czegoś takiego od zera na własną rękę.

2

Do tego celu wykorzystuje się np. sztuczne sieci neuronowe. Można tutaj wykorzystać perceptron wielowarstwowy (MLP), ewentualnie może również samoorganizujące się mapy Kohonena (SOM). Generalnie to nie jest taka prosta sprawa bo jeszcze zależy jaki tekst ma być rozpoznawany bo i czcionka się liczy a już pismo ręczne to na pewno trudniej rozpoznać. A sieci neunonowe mogą tylko cześć tekstu rozpoznawać poprawnie i w pewnych przypadkach się mylić.

Wiem że np. Captcha został złamany właśnie przy użyciu sztucznej sieci neuronowej typu MLP i nawet był gdzieś tam kod źródłowy!!! Udało się to jakiemuś magikowi, przy czym na podstawie tego kodu było widać, że wpierw obrazek musiał zostać poddany odpowiedniej obróbce, chodziło o odpowiednią klasyfikację tak żeby SSN to przyjeła. Choć jak widziałem co niektóre zabezpieczenia Captcha to nawet jak próbowałem wprowadzić poprawny kod to nie mogłem tego rozpoznać a co dopiero o wiele bardziej uproszczona sieć typu MLP czy też SOM.

1

Od razu mówię - nie mam bladego pojęcia o programowaniu. Pytanie nie jest jak to zrobić tylko czy ciężko jest stworzyć taki program?

Napisanie czegoś takiemu jest trudne, ale w praktyce to nie będzie prawdopodobnie konieczne - wystarczy wykorzystać gotową bibliotekę do OCR (jak Patryk27 napisał) - np. Tesseract z darmowych.

Przy czym z góry musisz zakładać że to nie będzie działało idealnie i będą błędy częściej albo rzadziej.

1

No cóż, to zależy... gdyby przyszło Ci się samemu pisać wszystko od podstaw do samego końca - jest to niewyobrażalnie trudne albo troszeczkę mniej. Jeżeli chodzi o wykorzystywanie gotowców jest dość łatwo. Polecam bibliotekę OpenCV. Jest to bibliotek do rozpoznawania obrazów napisana i wspierana przez Intela. Posiada masę algorytmów do rozpoznawania kształtów, kolorów oraz wzorców działających m.in. na bazie sieci neuronowych. Jak się uprzesz to na necie znajdziesz mnóstwo prac dyplomowych itp. opisujących algorytmy rozpoznawania m.in. tablic rejestracyjnych, które de facto działają tak jakbyś sobie tego życzył.

edit: tak na marginesie powiem, że napisanie programu, który wpierw prosi o zdjęcie albo pozwala Ci zrobić zdjęcie z kamerki a potem wyszukuje ten obiekt w czasie rzeczywistym zajmuje do 100 linijek kodu w C lub C++. O ile mnie pamięć nie myli można też chyba w pythonie. Wymagana znajomość języków programowania - podstawy + podstawy obiektowości.

0

@Shalom

O to mi konkretniej chodziło, tylko że kodu w Java Script już nie można pobrać:

http://webhosting.pl/Siec.neuronowa.w.skrypcie.do.GreaseMonkey.lamie.kody.CAPTCHA

Tutaj jest analiza fragmentów tego kodu:

http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/

0

Dzięki chłopaki - bardzo pomogliście! Gdybym miał używać, a raczej programista, który by pisał program to byśmy używali gotowych bibliotek. Jednak mam tak to jeszcze kilka pytań. Czy są lepsze i dokładniejsze takie biblioteki dostępne dla takiego Kowalskiego jak ja? Oczywiście wiem, że byłyby płatne. A jeśli są to gdzie można by je zakupić i jaka średnia cena by była?

I takie jeszcze jedno pytanko - czy język programowania programów na komputer jest taki sam jak na aplikacje mobilne? Nie chodzi mi oczywiście o odpalanie tej aplikacji, a raczej o jej treść i wiersze. Czy komendy, używane biblioteki oraz zapis jest inny?

0

Jest już nawet gotowy silnik do tego celu i przykładowe aplikacje uruchamiane z konsoli :-)

https://code.google.com/p/tesseract-ocr/

Można dokonać ekstrakcji tekstu z obrazka do pliku tekstowego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1