-
Количество публикаций
3 873 -
Зарегистрирован
-
Посещение
-
Days Won
346
Сообщения, опубликованные пользователем Smorodov
-
-
Попробуйте поиграть с градиентами, на размытом изображении они должны быть менее резкими.
-
Посмотрите еще Watershed. Пример здесь: https://docs.opencv.org/3.3.1/d3/db4/tutorial_py_watershed.html
-
DLIB-овский детектор лучше работает и обучается относительно быстро, и данных требует не так много.
http://blog.dlib.net/2014/02/dlib-186-released-make-your-own-object.html
В примерах есть пример обучения и инструмент для разметки данных.
-
Для гомографии есть пример здесь: https://github.com/alexhagiopol/deep_homography_estimation
В вашем случае должно быть проще, т.к. меньше степеней свободы.
-
Посмотрите здесь, это не 100% надежная штука, но при определенных условиях работает неплохо: https://github.com/Smorodov/LogPolarFFTTemplateMatcher
-
Ну, что то типа того, но размер файла не уверен что будет меньше, чем стандартный mpeg.
Можно что типа RLE сжатия заюзать, в начале каждой строчки с пикселями, писать их количество в текущем блобе для этой строки, и дальше только значения пикселей.
-
Если контурами, то можно так:
номер кадра, количество контуров в кадре, кол-во точек в контуре №1, список точке контура №1, кол-во точек в контуре №2, список точке контура №2, ....
-
Ну и в DLIB встроили весьма неплохой распознаватель: http://blog.dlib.net/2017/02/high-quality-face-recognition-with-deep.html , плюс на OpenCV вполне заводятся модельки от sphereface: https://github.com/wy1iu/sphereface только не забудьте что в матлаб матрицы в памяти транспонированными хранятся относительно OpenCV-шных.
-
Если блобов в результате больше выходит, то и ресурсов больше для их обработки понадобится, насколько сильно больше, зависит от программы и от исходных данных.
-
Дык, в вопросе нет кода
-
-
В Opencv реализована только часть прямого прогона я имею ввиду dnn модуль конечно, а не ml, в ml - по нейросетям только классическая сеть прямого распространения (не глубокая и не сверточная).
Обратного нет -> учить нельзя, да и GPU используется не особо интенсивно (opencl).
TF - полноценный фреймворк для полного цикла разработки нейронок (и не только нейронок).
- 1
-
Median cut (можно перетащить на CPP отсюда): https://imagej.nih.gov/ij/source/ij/process/MedianCut.java
Для выравнивания освещенности можно использовать что-нибудь отсюда: https://clouard.users.greyc.fr/Pantheon/experiments/illumination-correction/index-en.html
- 1
-
Тогда вообще мало что понятно.
Что общего имеют объекты, которые вы хотите искать ?
Выше упомянуто что форма разная, цвет разный.
И примеров изображений нормальных тоже нет.
-
Здравствуйте, ну так круги ищем или что то другое ?
По изображению похоже на контактные площадки печатных плат.
Возможно по цвету искать лучше.
-
Тогда ваша проблема называется детектор лиц, распознавание - это обычно понимается как проблема различения людей.
По классике, детектор строится на методе скользящего окна. То есть мы пробегаем по изображению окном фиксированного размера, двигаемся с заданным небольшим шагом, так чтобы соседние положения окна перекрывали друг друга. Каждый раз в новой позиции окна извлекается фрагмент изображения и подается на метод извлечения признаков (HOG в вашем случае), далее эти признаки (вектор постоянной размерности), поступают на классификатор (нейронная сеть в вашем случае), классификатор выдает ответ, считать изображение (извлеченное окном в данной позиции) искомым объектом или нет, некоторые из классификаторов выдают вероятность, некоторые только решение.
Чтобы обучить такую систему, вам нужен обучающий набор данных, состоящий из обучающих пар (изображение, его класс). На первом этапе извлекаете из всех озображений их векторы признаков и получаете входные данные для обучения классификатора (вектор признаков, класс ). Эти данные используете для обучения классификатора.
Для того, чтобы охватить разные размеры объектов, делается пирамида изображений, то есть изображения прогоняются в разных масштабах, окном постоянного размера.
Нейронку в качестве классификатора для подобных целей (в паре с HOG) не встречал, там обычно SVM используется.
-
То есть найти лица на фотографии, а не отличить одного человека от другого. Так ?
-
Тут, мне кажется надо прояснить.
Распознавание или детектирование ?
Есть у меня сомнение что возникла путаница.
-
-
В 32 шаг свертки больше, результат грубее получается чем в 16 или 8.
Восьмерка самая аккуратная по опыту. А так то там, можно вероятности получить размыть и по порогу отсечь должно как раз дать плавные границы.
-
Встроенной функции нет, надо цепляться к WinAPI.
-
У меня такие же проблемы были с утилиткой для аннотации. Сейчас пишу сам, на Qt, с полигонами и Live wire, может еще и другие типы добавлю. Но пока не готово, как будет, может на гитхаб выложу, если что стОящее получится.
-
Есть еще https://lear.inrialpes.fr/people/klaeser/software_image_annotation но что то под Убунтой файловая панелька пустая.
Так что не знаю как насчет больших файлов.
-
Это старые файлы, видимо они потерялись.
Сейчас я не работаю с C++ builder, поэтому не могу их загрузить заново.
Определение резкости на участке изображения, отделение заднего плана
в OpenCV
Опубликовано · Report reply
Для начала Sobel.