-
Количество публикаций
63 -
Зарегистрирован
-
Посещение
-
Days Won
3
Сообщения, опубликованные пользователем idrua
-
-
3 часа назад, Nuzhny сказал:В OpenCV уже давно есть модуль для нейросетей opencv_dnn, есть специализированный для детекции на dnn, а сейчас есть и dnn на CUDA. Так что он актуальности своей терять не собирается, не хороните
А пользоваться этим как? Есть примеры? Ну и касательно сетей. Обучить на Python, а потом подсовывать в OpenCV (или как-то форматировать после обучения)?
Вообще инфы ноль. -
OpenCV тут не помощник. Сеточками надо (Object Detection). Судя по картинке, предположу, что это YOLO3.
https://github.com/aloyschen/tensorflow-yolo3
- 1
-
А просто бинаризировать?
-
Нейросетью можно найти даже на таких картинках. Только для обучения нужна хотя бы сотня картинок.
Помню как-то нужно было искать углы стелажей при разном свете на чб и цветных картинках (на форуме ниже есть описание, если поискать). 97% точности давала сеточка. -
А чем не устраивают готовые пакеты? OpenCvSharp3, например. Там же все уже сделали за вас ))
-
Сейчас в основном нейросетями сравнивают. Точность повыше обычно, чем у классических способов. Хотя, классику тоже нужно помнить и любить ))
-
18 часов назад, Nuzhny сказал:Если размер объекта у тебя никогда не будет меньше 100 пикселей, то можно ставить минимальный размер и больше, чем 20х20, тут проблем у меня не было.
Размер объекта относительно статичен +- 20 пикселей. Больше на сколько? 30х30, 40х40, 80х80. Насколько я понял, чем больше размер объекта, тем дольше ждать результат.
18 часов назад, Nuzhny сказал:P.S. В OpenCV 4 тренировка каскадов уже depricated, а opencv_createsamples удалена из сборки. Фактически есть, но закомментирована и, если включить, не собирается из-за чистки старого API. Так что надо подумать, насколько необходимо использовать каскады Хаара в будущем.
Думал. Стандартными средствами OpenCV я детектирую с точностью 90%, но это не всегда устраивает пользователей. Хотелось уйти в сторону DL, но ПК слабые, не тянут. Какие еще альтернативы?
-
Перечитал много разных публикаций, но не нашел ответа на вопрос высоты/ширины (-w 20 -h 20). Значит ситуация следующая: картинки размеров 400 на 300, сам объект имеет размер 100 на 130. Во всех примерах размер объекта минимален. Что-то из серии 20 на 20 или 30 на 10. Собственно, вопрос. Я должен уменьшать свои картинки, чтобы объект принял нужные размеры? Или как? В одной публикации видел, что объекты еще больше чем у меня (300 на 300), а значения высоты и ширины в параметрах обучения ставят 20 на 20. Или это абстрактные значения в параметрах? Где читать или, может, кто подскажет по своему опыту?
Заранее спасибо!
opencv_createsamples.exe -info E:\BAZAS\Sova\Good.dat -vec samples.vec -w 20 -h 20
-
А края известны или нет? Ну т.е. можем ли мы положить все края, для которых нужно делать размытие, в маску?
-
Если картинки не сдвинуты по осям относительно друг друга, то самый простой и быстрый вариант это использовать логические операции. Тот же XOR, а после смотреть количество белых пикселей countNonZero (если совпали, то их будет мало). Бинаризировать только сперва обе картинки надо.
-
Это ты называешь серьезным распознаванием? Насмешил ))
Картинки покажи. Есть более простые логическое И, ИЛИ и исключающее ИЛИ. Возможно, MorphologyEx+TopHat с маской. Предложил бы классификатор, но ты называешь matching сложным. Всякое можно придумать, в зависимости от задачи. Но все это не очень-то робастно.
-
-
1 час назад, iskees сказал:Через conda установил tensorflow, tensorflow-gpu, keras
Кстати, вопрос. Keras имеет несколько версий инсталла (
keras-gpu
(вер 2.2.2) и keras(вер 2.2.4)). Какую ставить рекомендуется?
Поставил keras-gpu отказал модуль image для аугментаций. Как снести это чудо и поставить просто keras? -
На win действительно проблематично работать с python. Сам недавно столкнулся и через pip tensorflow нормально не установился. Установился через conda install.
Ну а вообще, есть бесплатный Google Colab, где уже всё установлено. Бери и пользуйся.
-
Ого! Спасибо, гляну. Я на C# пишу, но думаю разберусь, OpenCV примерно везде одинаковый.
-
19 минут назад, Nuzhny сказал:Сама работа обученной сети или inference. Да, это делал на С++ и сейчас делаю.
Т.е. обучаешь ты на Python, а inference на плюсах. Я правильно понял?
Ок. Даже если так, то как добыть из файла h5 весовые коэффициенты. Где-то описан формат файла?А были модели на Keras в обучении? Выходной файл обученной модели отличается чем-то для TF и Keras?
-
18 минут назад, Sergey1985 сказал:А где можно почитать про нейросети и про UNet в частности что - нибудь из рубрики ДЛЯ ЧАЙНИКОВ
Это достаточно новая архитектура. Если не ошибаюсь в 2015 изобрели, а в 2016 начали активно использовать. Поэтому с чтением на русском вообще беда.
Далее. Все эти вещи писаны на Python и только. По шагам это выглядит так: изучаем Python, изучаем азы сверточных нейронных сетей, покупаем или арендуем GPU — аллилуйя.
Можно вообще ничего не изучать, а найти на гитхабе или кагле примеры и использовать. Но это тяжело, не зная языка и прочих вещей что-либо делать.3 часа назад, Nuzhny сказал:Все современные подходы к таким вещам сводятся к использованию нейросетей. Если интересует сегментация мостов, то архитектура типа Unet. Если детектирование прямоугольника, то SSD, RetinaNet, Faster RCNN, YOLO.
Серега , все хочу спросить, а ты не переписывал на плюсы подобные архитектуры? Насколько этот процесс трудоемок?
-
Бегло глянул на карты Google. Цвет речки всегда одинаковый. Возможно, выделение по цвету и дальнейший поиск прямых линий что-то даст.
А вообще, конечно, более простой способ это UNet в нейросетях. Достаточно просто собрать датасет, НС сама найдет фичи и выделит мосты. -
44 минуты назад, korvintag сказал:К сожалению, пока есть всего лишь 250.
Чем больше картинок, тем лучше. Попробовать могу и на 250, но это бейзлайн, однозначно.
-
8 часов назад, korvintag сказал:Именно так - вырезать и удалить :-)
Нужный край - это нижний левый край текущей ячейки. Т.е. он отличается логически, но не материалистически. Другие края тоже могут быть нижними левыми краями уже других ячеек. Потому и обрезка нужна.Задача мне кажется интересной. Могу попробовать нейросетями выделить зону с нужной ячейкой. Но есть проблема с картинками. Для обучения потребуется 350 картинок(для начала).
-
3 часа назад, korvintag сказал:Поиск нужно осуществлять только в части изображения (там где ожидается примерно увидеть край уголка ячейки). См. аттач ниже - я пометил зеленым прямоугольником.
Ответ не совсем понятен. Т.е. можно смело вырезать и удалить 50% изображения и оставить только центр? Ведь именно там "ожидается примерно увидеть край уголка ячейки". Или как?
Чем отличается нужный край ячейки от остальных краев на фото? Он всегда под одним углом? -
У меня вопросы есть. А чем отличается этот край уголка от остальных краев?
Каким должен быть конечный результат? Нужен точно такой же круг нарисовать?
-
21 час назад, Nuzhny сказал:На правах идеи, подглядел где-то у Смородова:
3. В цикле увеличиваем размер прямоугольника следующими 4-мя преобразованиями: сдвиг границы прямоугольника влево, вправо, вверх и вниз на 1 пиксель (можно и больше сначала). Получаем 4 новых прямоугольника, у каждого из которых смотрим отношение белых пикселей к общей площади k1. Если отношение больше, скажем, k = 0.95, то получаем новый прямоугольник с центром C1 и размерами на 1 пиксель больше. Из 4-х прямоугольников выбираем тот, у которого отношение наибольшее.
С пунктом 3 как-то не очень понятно.
Было 3х3, увеличили, стало 5х5. Или увеличиваем по одной стороне, а не все сразу?
Имеем 5х5, разбили на 4 по 3х3. Предположим, все белого цвета, отношение одинаковое. Оставляем старый центр?
Еще увеличили и теперь общий размер 6х6. Разбивать с другим размером 4х4?
-
А кто мне подскажет, как найти контуры прямоугольников в такой сложной ситуации? Выделил красным желаемый результат разделения.
Вероятно, можно нейросетями (не пробовал, но уверен, что получится), но хотелось бы классическими методами OpenCV.
Распознавание текста паспорта, OpenCV!
в OpenCV
Опубликовано · Report reply
А первая картинка это что?