Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Вот по Вашей теме —https://infostart.ru/public/266244/
Хотелось бы узнать Ваше мнение и в чем отличие. Спасибо.
(1) Она неактивна или находится на модерации
(2)
Название случайно поменял и на модерацию отправил. Я там года четыре назад разработал компоненту. И там на лету также производится поиск артикулов и пр. и в 1С передается.
(2)
https://infostart.ru/video/w267692/
(2) вот видео —
(4) Да это весьма познавательно, я тоже плотно занимаюсь ML и всем этим, но тут суть поста в другом — тестирование системы которую можно отдать кладовщикам в промышленную эксплуатацию. Которая быстро и 100% точно будет считывать. Это вроде бы похоже но кардинально отличается))
(3) я надеюсь потом когда модерации пройдет прочитаю Ваш пост, но как мне кажется там подход как раз такой какой мне не нравится — «компонента отдает артикул 1с» я как раз за другой подход.
(5) Вы какой метод применяете в своей разработке? — (моя продемонстрированная разработка очень старая — сейчас уже мой движок «ушел» на много дальше — сейчас там применяю AdaBoost, нейронные сети и быструю корреляцию. Контурный анализ тоже есть, но он очень чуствителен к шумам — и в итоге выделение контура без разрывов получается только на относительно качественных кадрах. Склеить контур тоже можно, но тут бывает проблема с близким расположением объектов интереса)
(6) Ну Вы же можете на стороне 1С проанализировать этот артикул. Я к примеру, это очень интенсивно использую в этой разработке —https://infostart.ru/video/w630732/
там моя программа анализирует каждый кадр и посылает приемнику (1С, например) распознанные данные. И программа — приемник находит наиболее достоверный результат из всех посланных методов наиболшего кол-ва распознанных версий. Т.е. пришло от моей программы результаты — O345BM52 O345BM52 O346BM52 O845BM52 O345BM52 — мы видим, что в данных O345BM52 встретилось 3 раза (еще можно учесть коэффициент распознавания и учесть средневзвешанный ответ) — и выносим вердикт, что это O345BM52
(8) я с этого начинал, скорость не та — 1с лагает
(7) без понятия)) Гугл какой то использует. Мне даже не интересно. Интересуют только эксплуатационные характеристики
(9)
Ну тогда сама компонента может находить наиболее вероятный, а уже в 1С возвращать результат. Это быстро. Я так и делаю. Все очень быстро.
(11) с наиболее вероятным результатом наиболее вероятно влететь на неустойку в первый же день. Это не устраивает. Я про это и пишу чем такой подход плох. Он может что то о найти а может нет. Я довольно плотно сижу на теме wms и не наблюдаю что распознавание работает повсеместно. Хотя есть потребности, маркировка стоит денег да и не всегда возможна в принципе, чё бы не распознавать казалось бы. То что у Вас есть компонента это прекрасно, но если бы я ее использовал в Simple UI то в том режиме как я использую google vision
(12) Не согласен. Приведу пример из давней уже разработке. В Питерском заводе по сканированию артикулов водных счетчиков — все прекрасно работает вот уже два года. Ошибка распознавания артикула — за два года не обнаружилась ни разу. Могу скинуть видео/фото проекта. Правда, там используется не контурный алгоритм, а быстрая корреляция. Но это суть дела не меняет. Если у Вас есть достаточное количество измерений, то среднее значение (матожидание) будет очень близко к истинному. На этом строиться вся теория бустинга, например. Также и беккинг. А математичесая база в них железобетонная.
(13) Ну я же не спорю. Почему нельзя использовать несколько измерений? Распознал алгоритм 30 блоков, по 10 нашлись артикулы(сразу SQLем), из них один повторился 7 раз допустим, т.е. его частота 7/10, а у остальных меньше — значит берем его. Не?
(14) Если коэффициент распознавания более 0.75 (например), то да. Тот же коэффициент корреляции Пирсона — если коэффициент более 0.75, и таких версий хотя бы две — то тут более 90 процентов вероятность что это правильно распознанных объект. Ну а если более версий — то можно сказать, что все 100. И никто не мешает применить беккинг. Взять три независимых алгоритма распознавания и по трем алгоритмам построить гипотезы. Проверял на бустинге. Строил 80 независимых алгоритмов и делал усреднение по ответам. Точность получалась 99%. И никто не мешает построить не 80, а 200. Там вообще почти все 100 будет.
Вот я тоже писал статью про использование Goggle Cloud Visionhttps://infostart.ru/public/586313/
(16) Интересно
У вас на картинке с шиной 0 не распознался?
(12) Так и Google vision не дает 100% результат и может выдать «похожий» артикул. Значит это решение тоже не подходит для бизнеса?
(18) сначала нет потом — да. Он делает несколько распознаваний в секунду и с нулем и без нуля, по всякому. По каждому распознаванию программа ищет. Как найдет, поиск прерывается. Скрин сделан в момент когда без нуля было, а долей секунды позже произошло распознавание.
(16) А это не тот сервис)) У меня Firebase ML Kit. У того чисто облачное распознавание как я понял.
(19) Так там проверка идет по базе сразу же. В этом смысл.
(22) если, допустим, в базе есть артикул 12345 и 2345, то есть высокая вероятность того, что вместо 12345 ваша система подберет 2345, верно? Здесь нужно вводить контрольный знак и сверять контрольную сумму.
(21) Firebase — это облачные решения. У вас, как я понимаю, отрабатывает библиотека от Google vision и не используются возможности Firebase.
(22) По поводу проверки — опять же это как с номером машины — если в нашей базе есть номер O354BC52, а реально заехала машина O854BC52, но система выдала именно O354BC52, то при проверке по Вашему алгоритму приметься O354BC52 — т.к. этот номер есть в базе. Косяк будет… Как Вы решаете эту проблему? (с артикулом та же история может быть)
(24) не только. Там модель 1 раз скачивается и все работает полностью оффлайн. Такой вот firebase для андроид. Я не знаю почему оно так называется. Насколько я понимаю у Гугл дублируются решения. Т.е. при выключенном вайфай, прочей связи и т.д. Проверено на пактике 100%. В видосе это работает на телефоне у которого нет симки и вайфай выключен.
(23) Так оно не найдет в базе 2345 и продолжит поиск. В этом весь смысл и есть. Вы когда шкод сканируете оно тоже не останавливается пока не отсканирует
(25) Да, такое возможно. В конкретных решениях нужно анализировать базу артикулов на похожесть. Кроме того, Вы подали отличную идею насчет частоты результатов, которую я сейчас встроил в Simple UI и опробую. Обязательно напишу как это на практике.
(28) Спасибо. Интересно узнать о результатах. Но я бы все же лучше привязался не просто к частоте появления, а (если выборка — ответов большая) вычислил -p*log(p) информационную энтропию о оперировал бы ей. Это было бы намного стабильней. Т.к. информационная энтропия учитывает вероятность появления (в контексте Вашей задачи) символа в распознанном артикуле.
(29) p-это вероятность же? какая там выборка должна быть как Вы считаете? Допустим у меня всего 2000 артикулов, из них для 1000 есть похожие варианты 3-4 наверное (для каждого из этих 100) — это очень приблизительно. FPS у меня допусти 5 в секунду. Сколько надо набрать измерений чтобы статистические методы работали?
(30) Да. p — это вероятность. Но тут это ни к чему. На одном ответе нужно посчитать информационную энтропию. Выборка ответов — это не то что Ваша распознающая программа выдала, а это выборка ответов по Вашей базе артикулов (т.е. возможные артикулы). т.е.:
энтропия системы Вашего ответа программы является суммой с противоположным знаком всех относительных частот появления символов в данной позиции артикула, умноженных на их же двоичные(можно и натур. основание использовать — это от выбранной единицы измерения зависит) логарифмы. Т.е. получив артикул из распознающей программы Вы можете высчитать среднюю энтропию Вашего ответа. И чем она меньше, тем более достоверный у Вас результат. А вот уже по Вашей обучающей выборке можно посчитать какая вероятность (p) нахождения конкретного символа в данной позиции.
(27) найдёт, в базе 2345 есть артикул.
(31) Там еще частоту появления в данной позиции артикула символа можно скоррелировать с частотой появления соседних с ним символов. Но это уже нужно применительно к конкретному формату артикула привязывать.