Перейти к содержимому
Compvision.ru

VironZizu

Пользователи
  • Количество публикаций

    63
  • Зарегистрирован

  • Посещение

  • Days Won

    1

Все публикации пользователя VironZizu

  1. Smorodov Сейчас попробую! Стабильно находит всегда верхний прямоугольник, т.е. область где описано кем и когда выдан, единственно, получается не всегда прямоугольник)) так как угол может быть допустим замят!) не знаю как эту задачку решить) p/s/ а про блюр не знал, спасибо!)) сразу все по удалял со страху)) mrgloom С Хоугом по игрался немного, нужные мне линии он отказался находить, реализовал через approxPoly! Проблемы возникают когда паспорт рядом с кромкой кладешь! Вот сейчас опробую совет Smorodova!) Правда остается проблема, если уголки страницы загнуты!
  2. Я видимо не совсем так расписал!) Мне нужно на отсканированном изображении, найти сам паспорт Вот пример: Мой алгоритм вроде находит, но стоит положить паспорт к кромке сканера, алгоритм перестает работать...
  3. С этапом бинаризации более менее разобрался, применил Адаптивную, она как то лучше с градиентными картинками справляется! И решил я тут отталкиваться от позиции паспорта, т.е. найти его на картинке, задача оказалась не тривиальной. Мой алгоритм ищет все прямоугольные области, потом отсеивает по размеру нужную. Алгоритм нахождения прямоугольников брал здесь: 0. rectangles <- {} 1. image <- load image 2. for every channel: 2.1 image_canny <- apply canny edge detector to this channel 2.2 for threshold in bunch_of_increasing_thresholds: 2.2.1 image_thresholds[threshold] <- apply threshold to this channel 2.3 for each contour found in {image_canny} U image_thresholds: 2.3.1 Approximate contour with polygons 2.3.2 if the approximation has four corners and the angles are close to 90 degrees. 2.3.2.1 rectangles <- rectangles U {contour} Но отрабатывает этот алгоритм только в случае если паспорт положить по центру сканера, если положить в притык к кромке, то все, сам прямоугольник паспорта не находится в принципе. По советуйте пожалуйста, что в этой ситуации можно сделать? Вчера весь день потерял на это) Может искать на изображении не прямоугольники, а что то другое, по чему можно отследить позицию паспорта?)
  4. Ребят, а по советуйте метод бинаризации, чтобы немного блеклые края букв все таки не уходили, использую Отсу, но варианты где немного картинка засвечивается при сканировании не очень бинаризуются...
  5. 1) масштаб не меняется, все сканится с разрешением 300dpi 2) поворот пока не рассматриваю, пытаюсь сделать для идеального варианта! 3) сканеры примерно одной серии в идеале у них будут схожие настройки, в общем отталкиваемся от того что сканеры одинаковые!) Остановился на том, что выдаю впринципе нормальное бинаризованное изображение с нужным текстом в tesseract, сейчас главная проблема - не распознается должным образом слипшийся текст! Пытался его разделять средствами того же tesseract а потом распозновать по одной букве с опцией PageSegMode.SingleChar но результаты стали даже хуже чем при переводе всего текста разом! И вот здесь у меня полное замешательство, куда двигаться дальше!? Толи пытаться обучить tesseract распознованию слипшегося текста, но не факт что у него это получится, толи писать свой алгоритм разделения слова на буквы, но тут опять же не факт распознает ли tesseract по одной букве, даже идеально выделенной, судя по моему примеру предыдущему тоже далеко не факт... Тоже очень интересно, выше писал такой же вопрос) з.ы. форум так преобразился, что у меня аж пост стерся))
  6. Опыта по обучению tesseract ни у кого нет?)
  7. Обучать свою нейронную сеть получится слишком долго по времени, решил попробовать обучить tesseract, скачал jtesseract, правда пока не могу разобраться с ним)) з.ы. Кстати шрифт нифига не одинаковый)) Я чем больше смотрю на паспорта, тем больше удивляюсь, какие они все разные))
  8. По делил буквы средствами того же tesseract, результат ужастный, вернее делит то хорошо, но распознает потом эти символы просто убого... не знаю с какой ещё стороны к нему подойти
  9. с k-means довелось немного по играться, благо был пример в врапере. Собственно удалось картинку отчистить, получаю только нужный текст. Тут всплыла очередная проблема) Tesseract отлично получает изображения слов, но очень плохо делит слова на буквы, особенно если эти буквы "слипшиеся" , так вот, есть какой нибудь алгоритм деления слова на буквы!? Может у OpenCV что-нибудь есть? Читал блог Abby на хабре, но там все к сожалению в очень размытых чертах описано...
  10. А можно по подробней? про сегментацию!)
  11. Smorodov ну изначально на вход идет цветное изображение! Думаете они через цвет взаимодействовали? Как они так все помехи по убирали и при это даже те помехи которые на буквы наложились!
  12. Ребят, что это за алгоритм такой адовый, вот сижу смотрю и ума не приложу как он отрабатывает!? даже кавычку не тронул)) мой сносит всё подряд, похоже на Dilate, но точно не он, так бы все подряд уменьшил!Может у вас какие догадки есть? а то уже час в эту картинку впяливаюсь))
  13. В общем ход такой, практически всё лишнее нормально удаляется с помощью контуров! 1)Но вариант с точки зрения адаптивности не очень хорош, так как параметры задаются в ручную и если допустим в паспорте попадется нужный мне текст с шрифтом размеров с мелкий шрифт ("Дата выдачи" и тд), то он тоже замажется, что не очень хорошо. 2) Потом есть еще не приятный момент, на некоторых паспортах нужные надписи налазиют на "Дата выдачи" и тд, тоже не понятно как в таких случаях поступать... 3) Бывает печать налазиет на "Дата выдачи" и тд и получается что контур увеличивается и эта клякса остается По хорошему нужно ещё запустить дополнительный уровень проверок, но каких именно, есть идеи?) по цвету? по геометрическому расположению?
  14. Спасибо Smorodov, тоже нашел уже!) Смотрю на примерах С++ работают с внутренними и внешними контурами через hierarchy, но блин в враппере нету такого параметра у этого метода, хотя параметр ContourRetrieval.CComp для чего то же сделали!? в общем всю голову сломал с этими контурами уже)
  15. Вроде как дело продвигается, слова нахожу с помощью tesseract, пробую делить буквы с помощью tesseract, для раздельных вариантов все нормально, но для слипшихся печально, вот думаю как можно преобразовать? или уже писать свой алгоритм разделения слова на буквы, у OpenCV нет такой возможности? p/s блин не могу полый прямоугольни нарисовать!))) т.е. чтобы у него белый фон был, а то он дает только кромку окрасить!
  16. Nuzhny Спасибо за инструкцию, ноутбук с линуксом должен на днях подвернуться, на нем и опробую! Я так понимаю нахождение текста появилось только в 3.0 версии OpenCV? Тот пример, что на первой странице выложен, там как раз и есть этот поиск или вы какой то свой метод реализовали с помощью OpenCV? У вас случайно нету примера реализации стандартного метода OpenCV3.0 поиска текста? просто интересно глянуть как он отрабатывает! з.ы. Если честно, в голове уже всё перемешалось, tesseract, open cv и тд) Уже не знаешь за какой конкретно метод хвататься первым ))
  17. оу, сорри за невнимательность! Просто решил немного систематизировать подход, нашел сайт , где ребята уже реализовывали подобное, они немного расписывают процесс создания, думаю нужно идти по их пути, рас у них уже получился готовый продукт по этим технологиям. OpenCV+tesseract Весь секрет успешного результата в подавании на распознание в tesseract одной буквы, т.е. нахождение строк, разбивка строк на слова, затем на буквы - это задача реализуемая OpenCV как я понял Что думаете по этому поводу?
  18. Нашел интересный проект по нахождению текста на картинке, ребята писали под телефон Н900, но потом переписали и под PC У меня скомпилировать не получилось, проект снова на плюсах :\ Может у кого получится с компилировать и попробовать результат с моей картинкой? ссылка на github
  19. Cube есть такое! попробую его или имеете ввиду cube&tesseract? эта опция с русскими словарем вроде как не пашет... Single line тоже есть! Не знал что по одной строчке он распознает удачней чем весь абзац! p/s/оказалось опция OEM_TESSERACT_CUBE_COMBINED не работает с русским словарем, только инглиш...
  20. Nuzhny Я тоже убедился что все печально)) Запускаю пока так Bitmap pictureInfoArea = src.ToBitmap(); TesseractEngine engine = new TesseractEngine("tessdata/", "rus", EngineMode.Default); var page = engine.Process(pictureInfoArea, PageSegMode.Auto); string s = page.GetText(); Собственно никаких наворотов не делал, задаем путь к словарю (3.02), EngineMode по дефолту, ну собственно практически ничего не делал с настройками, просто из настроек ещё есть разделение по блокам, по считать буквы\слова\предложения, а само распознавание при это остается в печале) Smorodov Спасибо!) сейчас опробую) не знал про такую штуку интересную)
  21. я в полной растеренности, пробую распознать текст с помощью tesseract но распознавание просто ужастно, даже если я предварительно в ФШ удаляю все лишнее, перевожу в ч.б и тд! Может кто работал с этой библиотекой и может поделиться опытом распознавания русского языка?
  22. Блин, у меня винда 32)))) А можно ещё сами файлы проекта вложить, чтобы я смог с компилировать?) чтобы можно было с параметрами по играть ещё и другие примеры С++ кода опробовать! Был бы премного благодарен!
  23. Ребят, хотел попробовать код на С++ с помощью VS12, но не могу либу OpenCV подрубить! Целая туча заморочек с ней. Может кто-нибудь залить проект с уже настроенными связями с OpenCV!? Я качал нагетом, в проекте либа с хедерами появляется, но сам проект эти хедеры не видит... На C# как то все было проще))
  24. Спасибо за вариант! примерно тоже самое у меня получалось, но тут буквы сильно видоизменяются, их потом tesseract не хочет нормально распозновать и CuneiFrom OCR, тоже не может)
  25. Очень интересный вариант! Как раз на выходных опробую) самая большая для меня проблема этот код перевести в C#))
×