Odczytywanie tablic rejestracyjnych.

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
zwiertara32
Posty: 4
Rejestracja: 12 gru 2012 18:01
Wersja środowiska: LabVIEW 2012

Odczytywanie tablic rejestracyjnych.

Post autor: zwiertara32 »

Witam.

Muszę stworzyć program, który znajdzie na zdjęciu tablicę rejestracyjną i odczyta numery pojazdu.
Dysponuję LabView 2012 i Vision Assistant 2012.

Robiłem próby z samym OCR, ale przy ręcznym zaznaczeniu tablicy efekt jest lepszy niż przy przetwarzaniu całego zdjęcia.
Mógłbym prosić o jakąś wskazówkę jak się za to zabrać?

Z góry dziękuję za pomoc
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Odczytywanie tablic rejestracyjnych.

Post autor: Mikrobi »

Ustal stały Region OF Interest na zdjęciu. Wtedy przetwarzanie jest realizowane dla wybranego obszaru (wybacz trywialność stwierdzenia B-))
To wymusza sztywną lokalizację kamery i (optymalnie) stałe warunki oświetleniowe.

...a! tablice, tablice dobrze będzie jesli będą ... czyste ;)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
zwiertara32
Posty: 4
Rejestracja: 12 gru 2012 18:01
Wersja środowiska: LabVIEW 2012

Odczytywanie tablic rejestracyjnych.

Post autor: zwiertara32 »

Niestety jako dane dostałem zdjęcia, gdzie tablice są w różnych miejscach zdjęcia, mało tego niektóre pod kątem :(
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Odczytywanie tablic rejestracyjnych.

Post autor: Mikrobi »

Obrób wstępnie zdjęcia tak żeby tablice były w miarę powtarzalnych miejscach.
To pozwoli na redukcję ROI.
Ostatnio zmieniony 12 gru 2012 19:34 przez Mikrobi, łącznie zmieniany 1 raz.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
zwiertara32
Posty: 4
Rejestracja: 12 gru 2012 18:01
Wersja środowiska: LabVIEW 2012

Odczytywanie tablic rejestracyjnych.

Post autor: zwiertara32 »

I właśnie tutaj pojawia się pytanie, czy da się zrobić tak aby automat sam obrabiał zdjęcia, np wyszukując i wycinając tablice?
Jeśli skrypt znajdzie przez przypadek więcej niż jedną tablicę na zdjęciu, to nic bo zapewne później OCR się nie powiedzie.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Odczytywanie tablic rejestracyjnych.

Post autor: Mikrobi »

Sprawdź,chyba że jesteś autorem skryptu i rozumiesz w jaki sposób operuje na obrazie.
Pracujesz na pasywnych danych, nie trać czasu na spekulacje, przeanalizuj jak i dlaczego skrypt operuje na zdjęciach o konkretnych cechach.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
zwiertara32
Posty: 4
Rejestracja: 12 gru 2012 18:01
Wersja środowiska: LabVIEW 2012

Odczytywanie tablic rejestracyjnych.

Post autor: zwiertara32 »

Przejęzyczyłem się, chodziło mi o program, nie o skrypt.
Ja potrzebuję zrealizować taki program, niestety nie mam co analizować.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Odczytywanie tablic rejestracyjnych.

Post autor: Mikrobi »

Zatem zacznij od zebrania zdjęć.
Potem działaj bazując na Vision Asistant - to narzędzie które pomaga przygotować skrypt analizy obrazów.
Umożliwi sprawdzenie różnych wariantów przetwarzania potem pozwoli wygenerować kod w LabVIEW.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: Odczytywanie tablic rejestracyjnych.

Post autor: Zyga »

Dużo zależy od tego jak bardzo masz zaszumione tło. Jeśli nie ma tragedii to znajduj najpierw na zdjęciu jakiś charakterystyczny element, np flagę Polski. Później na podstawie jej położenia umiejscawiasz ROI dla OCR.
Awatar użytkownika
Koss
Posty: 23
Rejestracja: 19 paź 2012 20:40
Wersja środowiska: LabVIEW 2012

Re: Odczytywanie tablic rejestracyjnych.

Post autor: Koss »

Zakładając że tablice rejestracyjne wyglądają dość podobnie (nie są szczególnie mocno zniekształcone/poprzekrzywiane) spróbuj użyć Pattern Matching znajdujący tablice i robić OCR w znalezionym miejscu.
Obrazek
Extensa - certyfikowani programiści NI LabVIEW
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Odczytywanie tablic rejestracyjnych.

Post autor: smiga »

Tak się składa, że budowałem system weryfikacji poprawności wykonania tablic w procesie produkcyjnym (dla jednego z polskich producentów tablic) - do dziś działa świetnie i klient jest zadowolony. :-)
http://optinav.pl/pl/info/produkty/optiregplate.html

Badanych jest w nim kilkadziesiąt parametrów, a do wielu z nich potrzebne było przeczytanie treści, czyli OCR. Tablica lądowała na stole pomiarowym w losowy sposób, czyli rotacja, przesunięcie.
Najpierw wykrywany jest stały wzorzec, czyli PL ... (jak sugeruje Zyga, tylko zapomniał, że nie ma już flagi Polski, tylko znak EU :-) ). Przypisujemy do niego wstępny referencyjny układ współrzędnych, na podstawie którego (przesunięcia i rotacje) szukana jest długa krawędź, do której przypisywany jest główny referencyjny układ współrzędnych (długi wektor, większa dokładność i stabilność przy rotacji). Dopiero w stałym położeniu do tego układu przypisywana jest ramka ROI dla OCR'a. W Twoim przypadku podejrzewam wystarczy znaczek PL. Pamiętaj też, że są różne tablice (motocyklowa, motorowerowa), które mają różnej wielkości znacznik PL i w różnych miejscach znaki/numery, a także występują one w jednym lub dwóch rzędach. Temat ogólnie nie jest bardzo trudny do ogarnięcia, ale biorąc pod uwagę 4 typy tablic, wymaga pewnej żonglerki.

Istnieje możliwość, że dostajesz zdjęcia tablic pod kątem, czyli z perspektywą ... to już jest inne wyzwanie, czyli trzeba uwzględnić perspektywę lub ją zlikwidować ... ale nie wiem czy to jest Twój problem.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
alien2507
Posty: 7
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2010

Re: Odczytywanie tablic rejestracyjnych.

Post autor: alien2507 »

Witam,
Odświeżam temat. Stworzyłem przez Geometric Matching wzorzec którym znajduję tablice na różnych zdjęciach pod różnym kątem, ale teraz w jaki sposób powiązać to z OCR? W jaki sposób związać to z np krawędzią lub znaczkiem? W sumie wolałbym z krawędzią tablic bo niektóre tablice są zabrudzone i znaczka nie widać.
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Odczytywanie tablic rejestracyjnych.

Post autor: smiga »

Najprościej, odpalasz Vision Assistant'a i robisz jak na rysunkach poniżej:
Z Assistanta generujesz kod do Labview (Tools/ Create Labview VI...) i widzisz jak to jest zrobione.
Na górnym rysunku (na dole) widzisz Set Coordinate System 2, a na drugim w OCR wybierasz go w Setup/Main
Załączniki
tablica2.jpg
tablica2.jpg (93.69 KiB) Przejrzano 24518 razy
tablica1.jpg
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
alien2507
Posty: 7
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2010

Re: Odczytywanie tablic rejestracyjnych.

Post autor: alien2507 »

Super. O to mi właśnie chodziło. Dziękuję bardzo.
Kornel1985
Posty: 37
Rejestracja: 28 kwie 2007 00:00

Re: Odczytywanie tablic rejestracyjnych.

Post autor: Kornel1985 »

Witam,
Dołączam się do tematu mam taki dziwny problem ściągnąłem z forum skrypt z Vision Assistant do odczytywania numerów tablic. I zawsze pokazuje mi znaki zapytania. Nawet jak wezmę w Vision samo OCR zaznaczę na zdjęciu tablicę odnajdzie litery ale w wyniku w miejscu Text read pokazuje mi znaki zapytania proszę o pomoc. Zdjęcie w załączniku.
Pozdrawiam
Załączniki
Bez tytułu.jpg
Bez tytułu.jpg
ODPOWIEDZ