Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Штрих код и нейросеть  (Прочитано 14869 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Nahel
Новенький

ru
Offline Offline

« : 12-04-2010 07:03 » 

Всем привет!
Задача следующая.
Нужно найти и распознать (на изображении) штрих код code 39. Начитался про нейросети? сейчас каша в голове.
Что можете посоветовать, какая НС лучше подходит под данный тип задачи?
Либо НС тут будет излишней?
Спасибо заранее!
« Последнее редактирование: 12-04-2010 07:53 от Sel » Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 12-04-2010 07:17 » 

Я задачу распознавания кода UPC-A решал без всяких нейросетей. Если картинка чёткая - вообще никаких проблем нет. Нечёткая - тогда потребуются дополнительные трюки.
Кодовый бит ведь фиксированной длины, если всё чётко и разрешение картинки достаточное - читается однозначно.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 12-04-2010 07:18 » 

http://blog.vidikon.com/?cat=3
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 12-04-2010 07:21 » 

Можно без нейросетей - сверткой.

Тут хорошая книга по этому делу, на английском:
http://dspguide.com/

Есть компонент для BCB/Delphi для подобного: Envision Image Library.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Nahel
Новенький

ru
Offline Offline

« Ответ #4 : 12-04-2010 07:42 » 

Я задачу распознавания кода UPC-A решал без всяких нейросетей. Если картинка чёткая - вообще никаких проблем нет. Нечёткая - тогда потребуются дополнительные трюки.
Кодовый бит ведь фиксированной длины, если всё чётко и разрешение картинки достаточное - читается однозначно.
А можно поточнее, алгоритм?

Можно без нейросетей - сверткой.

Тут хорошая книга по этому делу, на английском:
http://dspguide.com/

Есть компонент для BCB/Delphi для подобного: Envision Image Library.
Книгу посмотрю, но, думаю, будет тяжеловато, искать то, чего пока сам не знаю. Что за свертка, чтобы знать, что искать в книге? Сам пишу на MSVC, так что компоненты не подойдут, да и привычка есть изобретать велосипеды )
« Последнее редактирование: 12-04-2010 07:55 от Sel » Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 12-04-2010 07:54 » 

Я задачу распознавания кода UPC-A решал без всяких нейросетей. Если картинка чёткая - вообще никаких проблем нет. Нечёткая - тогда потребуются дополнительные трюки.
Кодовый бит ведь фиксированной длины, если всё чётко и разрешение картинки достаточное - читается однозначно.
а можно поточнее, алгоритм?
Сильно зависит от ваших условий. Для UPC-A в нашем случае пришлось использовать хитрый перебор с аппроксимацией очень нерезкого изображения (камера целевого устройства - полный отстой без автофокуса Улыбаюсь ), плюс, эвристику для поиска ближайшего корректного кода. Ещё и ограничения по времени были серьёзные: всё должно было работать очень быстро и очень просто Улыбаюсь
Но в UPC-A всего 10 кодовых последовательностей для каждой части, да и не нужен перебор на чёткой картинке, когда границы определяются безошибочно (а не с погрешностью до 1-2%, как у нас было).
Записан
Nahel
Новенький

ru
Offline Offline

« Ответ #6 : 12-04-2010 08:05 » 

Сильно зависит от ваших условий. Для UPC-A в нашем случае пришлось использовать хитрый перебор с аппроксимацией очень нерезкого изображения (камера целевого устройства - полный отстой без автофокуса Улыбаюсь ), плюс, эвристику для поиска ближайшего корректного кода. Ещё и ограничения по времени были серьёзные: всё должно было работать очень быстро и очень просто Улыбаюсь
Но в UPC-A всего 10 кодовых последовательностей для каждой части, да и не нужен перебор на чёткой картинке, когда границы определяются безошибочно (а не с погрешностью до 1-2%, как у нас было).
В принципе у меня обычный отсканированный документ на котором буде в каком то из верхних углов отпечатан штрих код. Время пока не особо играет значение, так как это в дальнейшем будет фоновый процесс, пока стоит задача найти и распознать.
Я так понимаю мне для начала нужну будет, перевести изображение в монохром, составить пиксельную матрицу, затем найти штрих код, ну и далее его распознать с учетом перебора и сравнения полученых значений с образцами шрифта?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 12-04-2010 08:13 » 

Тогда да - задача разбивается на 2-3 части:
1. локализация баркода (в нашем случае эта задача была попроще, т.к. баркод заведомо занимал бОльшую часть изображения)
2. распознавание
2.5. валидация Улыбаюсь

По локализации подсказать точно не могу - помню, что в сети попадались статьи, освещающие этот вопрос, но у нас эта задача, как я уже сказал, была не самой сложной, поэтому не вдавался. Факт, что в англоязычных источниках статей на эту тему навалом.

Распознавание - тут у нас сработал именно тот рецепт, который сработал: просто требовалось что-то очень быстро работающее. Хотя есть несколько отличающиеся подходы: советую, опять же, пошариться по англоязычным источникам. Более того, есть какие-то open-source-разработки на эту тему (мой коллега их смотрел, но они нам не подошли) - может, для конкретной задачи сойдут и они.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 12-04-2010 09:33 » 

Для локализации можно использовать ту же свертку и старт-стопные символы в коде. У нас используются "*".

Свертка - convolution. О чем она - надо читать.
В книге есть раздел о поиске на изображении фрагмента:
http://www.dspguide.com/ch24/6.htm
http://www.dspguide.com/ch24/7.htm
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
derzon
Гость
« Ответ #9 : 24-08-2010 12:29 » 

вот форум разработчиков которые вродебы занимаются распознованием штрихкода и нетолько. h**p://www.aivision.ru/forum/viewforum.php?f=2
Там демка с описанием. распознает штрих код EAN-13 Code128
может у них что узнаете
« Последнее редактирование: 24-08-2010 12:39 от Finch » Записан
Nahel
Новенький

ru
Offline Offline

« Ответ #10 : 02-11-2010 08:12 » new

Всем спасибо, пользовался вот этой информацией
http://www.keldysh.ru/papers/2004/prep84/prep2004_84.html
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines