Может ли оптическое распознавание текста (OCR) работать так же быстро, как сканирование штрих-кода, и что для этого надо сделать? UPD 11.12.19 вошло в релиз https://infostart.ru/public/1166378/

0. informa1555 1519 28.11.19 07:53 Сейчас в теме
В статье рассматривается решение важной проблемы – сканирование объектов, на которые не нанесен или не может быть нанесен штрихкод или RFID по технологическим причинам, но при этом присутствует номер, артикул или какой-либо другой цифро-буквенный идентификатор. Т.е. распознавание текста с целью идентификации объектов учета. Приложено короткое видео с примерами работы. UPD: функции встроены в конструктор https://infostart.ru/public/1166378/

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. protexprotex 126 28.11.19 08:44 Сейчас в теме
Вот по Вашей теме - https://infostart.ru/public/266244/
Хотелось бы узнать Ваше мнение и в чем отличие. Спасибо.
2. informa1555 1519 28.11.19 08:45 Сейчас в теме
(1) Она неактивна или находится на модерации
3. protexprotex 126 28.11.19 08:48 Сейчас в теме
(2)
Название случайно поменял и на модерацию отправил. Я там года четыре назад разработал компоненту. И там на лету также производится поиск артикулов и пр. и в 1С передается.
6. informa1555 1519 28.11.19 09:12 Сейчас в теме
(3) я надеюсь потом когда модерации пройдет прочитаю Ваш пост, но как мне кажется там подход как раз такой какой мне не нравится - "компонента отдает артикул 1с" я как раз за другой подход.
8. protexprotex 126 28.11.19 09:20 Сейчас в теме
(6) Ну Вы же можете на стороне 1С проанализировать этот артикул. Я к примеру, это очень интенсивно использую в этой разработке - https://infostart.ru/video/w630732/
там моя программа анализирует каждый кадр и посылает приемнику (1С, например) распознанные данные. И программа - приемник находит наиболее достоверный результат из всех посланных методов наиболшего кол-ва распознанных версий. Т.е. пришло от моей программы результаты - O345BM52 O345BM52 O346BM52 O845BM52 O345BM52 - мы видим, что в данных O345BM52 встретилось 3 раза (еще можно учесть коэффициент распознавания и учесть средневзвешанный ответ) - и выносим вердикт, что это O345BM52
9. informa1555 1519 28.11.19 09:59 Сейчас в теме
(8) я с этого начинал, скорость не та - 1с лагает
11. protexprotex 126 28.11.19 10:27 Сейчас в теме
(9)
Ну тогда сама компонента может находить наиболее вероятный, а уже в 1С возвращать результат. Это быстро. Я так и делаю. Все очень быстро.
12. informa1555 1519 28.11.19 11:45 Сейчас в теме
(11) с наиболее вероятным результатом наиболее вероятно влететь на неустойку в первый же день. Это не устраивает. Я про это и пишу чем такой подход плох. Он может что то о найти а может нет. Я довольно плотно сижу на теме wms и не наблюдаю что распознавание работает повсеместно. Хотя есть потребности, маркировка стоит денег да и не всегда возможна в принципе, чё бы не распознавать казалось бы. То что у Вас есть компонента это прекрасно, но если бы я ее использовал в Simple UI то в том режиме как я использую google vision
13. protexprotex 126 28.11.19 12:35 Сейчас в теме
(12) Не согласен. Приведу пример из давней уже разработке. В Питерском заводе по сканированию артикулов водных счетчиков - все прекрасно работает вот уже два года. Ошибка распознавания артикула - за два года не обнаружилась ни разу. Могу скинуть видео/фото проекта. Правда, там используется не контурный алгоритм, а быстрая корреляция. Но это суть дела не меняет. Если у Вас есть достаточное количество измерений, то среднее значение (матожидание) будет очень близко к истинному. На этом строиться вся теория бустинга, например. Также и беккинг. А математичесая база в них железобетонная.
14. informa1555 1519 28.11.19 16:43 Сейчас в теме
(13) Ну я же не спорю. Почему нельзя использовать несколько измерений? Распознал алгоритм 30 блоков, по 10 нашлись артикулы(сразу SQLем), из них один повторился 7 раз допустим, т.е. его частота 7/10, а у остальных меньше - значит берем его. Не?
15. protexprotex 126 28.11.19 16:55 Сейчас в теме
(14) Если коэффициент распознавания более 0.75 (например), то да. Тот же коэффициент корреляции Пирсона - если коэффициент более 0.75, и таких версий хотя бы две - то тут более 90 процентов вероятность что это правильно распознанных объект. Ну а если более версий - то можно сказать, что все 100. И никто не мешает применить беккинг. Взять три независимых алгоритма распознавания и по трем алгоритмам построить гипотезы. Проверял на бустинге. Строил 80 независимых алгоритмов и делал усреднение по ответам. Точность получалась 99%. И никто не мешает построить не 80, а 200. Там вообще почти все 100 будет.
informa1555; +1 Ответить
19. memb3r 29.11.19 17:09 Сейчас в теме
(12) Так и Google vision не дает 100% результат и может выдать "похожий" артикул. Значит это решение тоже не подходит для бизнеса?
22. informa1555 1519 29.11.19 17:20 Сейчас в теме
(19) Так там проверка идет по базе сразу же. В этом смысл.
23. memb3r 02.12.19 08:48 Сейчас в теме
(22) если, допустим, в базе есть артикул 12345 и 2345, то есть высокая вероятность того, что вместо 12345 ваша система подберет 2345, верно? Здесь нужно вводить контрольный знак и сверять контрольную сумму.
27. informa1555 1519 02.12.19 09:21 Сейчас в теме
(23) Так оно не найдет в базе 2345 и продолжит поиск. В этом весь смысл и есть. Вы когда шкод сканируете оно тоже не останавливается пока не отсканирует
32. memb3r 02.12.19 12:00 Сейчас в теме
(27) найдёт, в базе 2345 есть артикул.
25. protexprotex 126 02.12.19 08:53 Сейчас в теме
(22) По поводу проверки - опять же это как с номером машины - если в нашей базе есть номер O354BC52, а реально заехала машина O854BC52, но система выдала именно O354BC52, то при проверке по Вашему алгоритму приметься O354BC52 - т.к. этот номер есть в базе. Косяк будет... Как Вы решаете эту проблему? (с артикулом та же история может быть)
memb3r; informa1555; +2 Ответить
28. informa1555 1519 02.12.19 09:28 Сейчас в теме
(25) Да, такое возможно. В конкретных решениях нужно анализировать базу артикулов на похожесть. Кроме того, Вы подали отличную идею насчет частоты результатов, которую я сейчас встроил в Simple UI и опробую. Обязательно напишу как это на практике.
Прикрепленные файлы:
29. protexprotex 126 02.12.19 10:08 Сейчас в теме
(28) Спасибо. Интересно узнать о результатах. Но я бы все же лучше привязался не просто к частоте появления, а (если выборка - ответов большая) вычислил -p*log(p) информационную энтропию о оперировал бы ей. Это было бы намного стабильней. Т.к. информационная энтропия учитывает вероятность появления (в контексте Вашей задачи) символа в распознанном артикуле.
informa1555; +1 Ответить
30. informa1555 1519 02.12.19 10:20 Сейчас в теме
(29) p-это вероятность же? какая там выборка должна быть как Вы считаете? Допустим у меня всего 2000 артикулов, из них для 1000 есть похожие варианты 3-4 наверное (для каждого из этих 100) - это очень приблизительно. FPS у меня допусти 5 в секунду. Сколько надо набрать измерений чтобы статистические методы работали?
31. protexprotex 126 02.12.19 11:58 Сейчас в теме
(30) Да. p - это вероятность. Но тут это ни к чему. На одном ответе нужно посчитать информационную энтропию. Выборка ответов - это не то что Ваша распознающая программа выдала, а это выборка ответов по Вашей базе артикулов (т.е. возможные артикулы). т.е.:
энтропия системы Вашего ответа программы является суммой с противоположным знаком всех относительных частот появления символов в данной позиции артикула, умноженных на их же двоичные(можно и натур. основание использовать - это от выбранной единицы измерения зависит) логарифмы. Т.е. получив артикул из распознающей программы Вы можете высчитать среднюю энтропию Вашего ответа. И чем она меньше, тем более достоверный у Вас результат. А вот уже по Вашей обучающей выборке можно посчитать какая вероятность (p) нахождения конкретного символа в данной позиции.
33. protexprotex 126 02.12.19 12:01 Сейчас в теме
(31) Там еще частоту появления в данной позиции артикула символа можно скоррелировать с частотой появления соседних с ним символов. Но это уже нужно применительно к конкретному формату артикула привязывать.
4. protexprotex 126 28.11.19 08:51 Сейчас в теме
5. informa1555 1519 28.11.19 09:04 Сейчас в теме
(4) Да это весьма познавательно, я тоже плотно занимаюсь ML и всем этим, но тут суть поста в другом - тестирование системы которую можно отдать кладовщикам в промышленную эксплуатацию. Которая быстро и 100% точно будет считывать. Это вроде бы похоже но кардинально отличается))
7. protexprotex 126 28.11.19 09:15 Сейчас в теме
(5) Вы какой метод применяете в своей разработке? - (моя продемонстрированная разработка очень старая - сейчас уже мой движок "ушел" на много дальше - сейчас там применяю AdaBoost, нейронные сети и быструю корреляцию. Контурный анализ тоже есть, но он очень чуствителен к шумам - и в итоге выделение контура без разрывов получается только на относительно качественных кадрах. Склеить контур тоже можно, но тут бывает проблема с близким расположением объектов интереса)
10. informa1555 1519 28.11.19 10:01 Сейчас в теме
(7) без понятия)) Гугл какой то использует. Мне даже не интересно. Интересуют только эксплуатационные характеристики
16. kiv1c 561 29.11.19 16:40 Сейчас в теме
Вот я тоже писал статью про использование Goggle Cloud Vision https://infostart.ru/public/586313/
17. protexprotex 126 29.11.19 16:55 Сейчас в теме
21. informa1555 1519 29.11.19 17:16 Сейчас в теме
(16) А это не тот сервис)) У меня Firebase ML Kit. У того чисто облачное распознавание как я понял.
theelectric; +1 Ответить
24. memb3r 02.12.19 08:50 Сейчас в теме
(21) Firebase - это облачные решения. У вас, как я понимаю, отрабатывает библиотека от Google vision и не используются возможности Firebase.
26. informa1555 1519 02.12.19 09:19 Сейчас в теме
(24) не только. Там модель 1 раз скачивается и все работает полностью оффлайн. Такой вот firebase для андроид. Я не знаю почему оно так называется. Насколько я понимаю у Гугл дублируются решения. Т.е. при выключенном вайфай, прочей связи и т.д. Проверено на пактике 100%. В видосе это работает на телефоне у которого нет симки и вайфай выключен.
18. memb3r 29.11.19 17:03 Сейчас в теме
У вас на картинке с шиной 0 не распознался?
20. informa1555 1519 29.11.19 17:13 Сейчас в теме
(18) сначала нет потом - да. Он делает несколько распознаваний в секунду и с нулем и без нуля, по всякому. По каждому распознаванию программа ищет. Как найдет, поиск прерывается. Скрин сделан в момент когда без нуля было, а долей секунды позже произошло распознавание.
34. dkvartal69@yandex.ru 29.04.20 18:09 Сейчас в теме
Интересны ваши решения. На базе своих разработок мобильное приложение создать сможете?
35. informa1555 1519 29.04.20 18:11 Сейчас в теме
(34)Спасибо. Конечно смогу. Тем и промышляю
36. dkvartal69@yandex.ru 30.04.20 08:58 Сейчас в теме
Отлично. Какие данные требуются от меня и каким образом (канал) можем пообщаться?
37. informa1555 1519 30.04.20 09:49 Сейчас в теме
(36) Здравствуйте! моя почта dv1555(собакен)hotmail.com. По почте отвечу по остальному.
Оставьте свое сообщение
Вопросы с вознаграждением