Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36

Распознавание автомобильных номеров (Java or C++)

16.04.2016, 21:29. Показов 8496. Ответов 14

Студворк — интернет-сервис помощи студентам
По сабжу, получил тему диплома: Распознавание автомобильных номеров Украины в реальном времени. Язык - предпочтительно java, с++ в крайнем случае так как по нему ну совсем у меня туго(
Порыскав по просторам интернета нашел либы opencv и javaANPR. Просмотрев возможности opencv - понял, что штука мощная, но видеопоток не захватывает (vlcj с той же ссылкой на rtsp хавает). Но подхода как связать opencv и vlcj не нашел. Оpencv не хочет подключатся даже по http к камере. Задача следующая: необходимо кроссплатформенное приложение для работы с IP камерами фирм Hikvision и GreenVision для фирмы, где непосредственно прохожу практику. Может уже кто-то работал с таким. Помогите пожалуйста советом бедному студенту.

Добавлено через 26 минут
В vlcj поток получаю так
Java
1
2
3
4
5
6
7
8
9
10
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:\\Program Files\\VideoLAN\\VLC");
        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
        JFrame frame = new JFrame("Test");
        mediaPlayerComponent = new EmbeddedMediaListPlayerComponent();
        frame.setContentPane(mediaPlayerComponent);
        frame.setLocation(100, 100);
        frame.setSize(1050, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        mediaPlayerComponent.getMediaPlayer().playMedia("rtsp://admin:12345678q@192.168.1.8:554");
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2016, 21:29
Ответы с готовыми решениями:

Распознавание автомобильных номеров
Здравствуйте, всем! У меня одна просьба не могли бы вы подсказать как написать алгоритм по распознаванию номеров автомашин, на с++, без...

Готовое решение для распознавание автомобильных номеров
Подскажите, где взять готовое решение для определение номера и считывании символов, чтобы можно было встроить в php код? Дипломная...

Заполнение массива значениями автомобильных номеров
Подскажите пожалуйста, как организовать цикл, который сможет по порядку начиная от A000AA, A001AA, ...., A000AB, заканчивая X999XX...

14
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
17.04.2016, 07:09
статья хорошая. может Вы уже знакомы: http://www.ibm.com/developerwo... index.html

Добавлено через 8 минут
https://www.cyberforum.ru/post2927113.html
1
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
18.04.2016, 11:18  [ТС]
Спасибо. Да, с этой статьей я уже знаком. С помощью нее, в принципе, и узнал про opencv и javaANPR.

Добавлено через 2 минуты
Есть ли смысл колупать связку java + opencv? Или же есть еще какие-то SDK? Читал еще про javaCV, но у него проблема с совместимостями версий самого javaCV и opencv.
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
18.04.2016, 12:05
я тоже до вчерашнего момента не был знаком, даже не думал об этом... но прочитав Ваш вопрос подумал можно же написать такую программу и интегрировать уже имеющуюся систему... так что за идею Вам спасибо
а на счет Вашего вопроса скорей всего ответят гуру форума, которые уже что то делали в этом направление...
З.Ы. вчера где то читал что из опенсорсев самый нормальный это opencv, только сказали чтоб не смотреть как все это реализована...

Добавлено через 2 минуты
http://gerasimchuk.blogspot.ru/2012/07/javacv.html
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
18.04.2016, 12:21  [ТС]
Вот аналогичная ситуация. До диплома даже и не задумывался над этим. А практику прохожу в фирме, которая занимается видеонаблюдением.
И на за что за идею. Можно будет как-то скоопироваться :3
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
18.04.2016, 13:57
Цитата Сообщение от kinndzadza Посмотреть сообщение
Можно будет как-то скоопироваться
как Вы представляете это?
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
18.04.2016, 16:06  [ТС]
Да вот в том то и дело что пока никак.

Добавлено через 15 минут
Есть два варианта построения приложения:
1) Разпознавание номера со скриншота (от той же пикассы);
2) Распознавание номера с видеопотока (что предпочтительней).
Второй вариант заканчивается на том, что не удается подключится к камере. Модели тестовых камер Green Vision GV-004-IP-E-COS14-20 и Hikvision DS-2CD2420F-IW. Нашел ссылку где указаны адреса для подключения, к тому же хику тут. Перепробовал все, что по http. Результата ноль. Прошу помощи

Добавлено через 1 час 3 минуты
Пока получилось следующее: подключится к камере удалось, используя класс FFmpegFrameGrabber. Удалось сделать 100 последовательных снимков с камеры.
Вот код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import org.bytedeco.javacv.*;
import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_highgui.*;
import static org.bytedeco.javacpp.opencv_imgcodecs.*;
 
public class Main {
 
    public static IplImage image;
 
    public static void main(String[] args) throws FrameGrabber.Exception {
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("rtsp://admin:12345678q@192.168.1.8:554/Streaming/Channels/1");
        grabber.start();
        OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
int i = 0;
        while(i < 100) {
            ++i;
            image = converter.convert(grabber.grab());
if(image != null) {
                cvSaveImage("capture_" + i + ".jpg", image);
            }
 
        }
 
    }
}
На выходе получаю 100 снимков и небольшой лог, в котором указано вроде о потере пакетов.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[h264 @ 15b4d860] RTP: missed 37 packets
[h264 @ 15b4d860] left block unavailable for requested intra4x4 mode -1 at 0 17
[h264 @ 15b4d860] error while decoding MB 0 17, bytestream 118800
[h264 @ 15b4d860] concealing 6169 DC, 6169 AC, 6169 MV errors in I frame
[h264 @ 15b4d860] RTP: missed 149 packets
[h264 @ 15b4d860] error while decoding MB 22 12, bytestream -18
[h264 @ 15b4d860] concealing 6747 DC, 6747 AC, 6747 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 6 packets
Input #0, rtsp, from 'rtsp://admin:12345678q@192.168.1.8:554/Streaming/Channels/1':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuv420p, 1920x1080, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[h264 @ 15fa5b80] left block unavailable for requested intra4x4 mode -1 at 0 17
[h264 @ 15fa5b80] error while decoding MB 0 17, bytestream 118800
[h264 @ 15fa5b80] concealing 6169 DC, 6169 AC, 6169 MV errors in I frame
[h264 @ 16300160] error while decoding MB 17 12, bytestream -8
[h264 @ 16300160] concealing 6752 DC, 6752 AC, 6752 MV errors in P frame
[h264 @ 16172820] error while decoding MB 41 50, bytestream -6
[h264 @ 16172820] concealing 2168 DC, 2168 AC, 2168 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 7841 packets
[h264 @ 15b4d860] RTP: PT=60: bad cseq 4862 expected=29c1
[h264 @ 15b4d860] RTP: missed 7843 packets
[h264 @ 15b4d860] RTP: PT=60: bad cseq 4864 expected=29c1
[h264 @ 15b4d860] RTP: missed 7844 packets
[h264 @ 16172820] concealing 4821 DC, 4821 AC, 4821 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 16 packets
[h264 @ 16300160] concealing 4958 DC, 4958 AC, 4958 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 37 packets
[h264 @ 15b4d860] RTP: missed 7 packets
[h264 @ 16300160] concealing 3607 DC, 3607 AC, 3607 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 7 packets
[h264 @ 16172820] error while decoding MB 110 51, bytestream -6
[h264 @ 16172820] concealing 1979 DC, 1979 AC, 1979 MV errors in P frame
[h264 @ 15b4d860] RTP: missed 39 packets
[h264 @ 15b4d860] RTP: missed 106 packets
[h264 @ 15b4d860] RTP: missed 97 packets
[h264 @ 16300160] left block unavailable for requested intra4x4 mode -1 at 0 4
[h264 @ 16300160] error while decoding MB 0 4, bytestream 20872
[h264 @ 16300160] concealing 7729 DC, 7729 AC, 7729 MV errors in I frame
Добавлено через 15 минут
Точнее всего 42. Видимо как раз эти потери пакетов. Пока не могу догнать почему
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.04.2016, 16:47
обычно на камерах для отдачи видео по сети надо создавать отдельный профиль (у которого будет своя ссылка) и не отдавать видео full hd формата, это не кинотеатр что бы пулять такой поток по сети
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
19.04.2016, 07:40
kinndzadza, как успехи?
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
19.04.2016, 22:55  [ТС]
Ну пока на этом и остановился. Переговорив еще раз с руководством фирмы - было принято решение распознавать номера со снимков, а не с потока. Так что теперь упор в это. Т.е остается только понять алгоритм распознавания, его построение ну и написать. Плюс насколько я понял нужен список так называемых "белых" (или эталонных) изображений. Может уже у кого-то есть на украинские автомобильные номера?

Добавлено через 13 часов 40 минут
Порысачив по просторам интернета нашел следующее:
На хабре: тык (правда на си-шарп)
и вот такое тык
Единственное что остается - это нахождение области номерного знака средствами opencv (размер заведомо известен благодаря ДСТУ), скрин этого изображения и сохранение его с занесением в БД, обработка этого изображения: бинаризация и т.д для распознавания. Уважаемые софорумники, помогите пожалуйста примерами алгоритмов, буду очень признателен. Так как я новичек в этой области. Максимум с чем работал - это Hibernate, JSP, JPA, JBoss
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
27.05.2016, 01:28  [ТС]
Спустя долгое время гугления, чтения доков, просмотра примеров, исходников - все же дал старт приложению.
Но, пока застопорился.
Зону номера нахожу каскадом Хаара. Обрезаю интересующую зону и отдаю на обработку (бинаризация и т.д). Проблема следующая. Не всегда ведь номер расположен горизонтально. Часто попадается повернутый.
Вопрос следующий, как обрезать изображение по горизонтальным линиям номера? Гугление в эту сторону только дало названия операций. Как таковых реализаций - не нашел, только на плюсы (внедрить в джаву как-то сложно).
На первом изображении номер еще более-менее приемлемо расположен, а вот на втором, нужно крутить. Угол, на который необходимо повернуть, нужно соответственно рассчитать. Понаходил решения с заранее известным углом.
Миниатюры
Распознавание автомобильных номеров (Java or C++)   Распознавание автомобильных номеров (Java or C++)  
0
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
27.05.2016, 08:16
Чойто как-то для диплома тема немного сложновата, если по-мне.
Сорри за офф.
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
27.05.2016, 14:49  [ТС]
Цитата Сообщение от korshun84 Посмотреть сообщение
Чойто как-то для диплома тема немного сложновата, если по-мне.
Сорри за офф.
Для техникума - да. В придачу, еще и диплом исследовательского характера

Добавлено через 5 часов 15 минут
Никак не могу понять, как мне найти угол отклонения от 90 градусов по иксу. Или же есть реализация в самой opencv, или придется изобретать велосипед?
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
27.05.2016, 14:55
Задача похожа на задачу распознавания капчи.
0
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 36
28.05.2016, 11:42  [ТС]
Цитата Сообщение от chizz Посмотреть сообщение
Задача похожа на задачу распознавания капчи.
В целом да, но скорее всего с некоторыми доработками

Добавлено через 20 часов 21 минуту
При попытке написать под джаву из примера на С# возникает куча вопросов и ошибок. Большинство статей были написаны под версии opencv 2.3 - 2.4, у меня в проекте используется версия 3.1.0. В ней и методы изменили, все изменили.
Вод допустим пример кода на шарпе.
C#
1
2
3
CvInvoke.cvSmooth(gray, gray, Emgu.CV.CvEnum.SMOOTH_TYPE.CV_GAUSSIAN, 5, 5, 25, 25);
                CvInvoke.cvSobel(gray, sobel, 0, 1, 3); 
                CvInvoke.cvConvert(sobel, gray);
cvSmooth как я понял был изменен в blur, с ним еще как-то получалось работать. А вот Собель вылетает с ошибкой что на указанную аргументом 1-цу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2016, 11:42
Помогаю со студенческими работами здесь

Подключение lib библиотеки чтения автомобильных номеров
Здравствуйте.Пытаюсь подключить библиотеку к проекту,написанному в visual studio 2008,пишет ошибку: megalib1.lib: fatal error LNK1136:...

Управление шлагбаумом на основе распознавания автомобильных номеров
Здравствуйте, коллеги. Необходимо на объект установить систему, которая бы при распознавании автомобильных номеров открывала или не...

Определите объем памяти, отводимый для записи 60 автомобильных номеров
В некоторой стране автомобильный номер длиной 7 имволов составляют из заглавных букв(используется только 14 различных букв) и любых...

Опредилить объем памяти необходимой для хранения 32 автомобильных номеров
В некоторой стране автомобильный номер длиной 7 символов составляется из заглавных букв (всего используется 30 букв) и десятичных цифр в...

Написание программы для распознавания автомобильных номеров с загруженного кадра видео
Здравствуйте. Подскажите, пожалуйста, я ещё начинающий программист и мне нужно написать такую программу, есть интерфейс: Далее мне в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru