-
Количество публикаций
3 873 -
Зарегистрирован
-
Посещение
-
Days Won
346
Все публикации пользователя Smorodov
-
Трехмерная мапа x,y и scale. Это дает менее дискретное нахождение масштаба, т.к. с интерполяцией, ну и еще надежнее получается, т.к. если объект присутствует в кадре, то он должен отметиться не на одном этаже пирамиды а на нескольких смежных. Причем эти этажи должны идти подряд, если нет, это шум. Если ищем на каждом отдельно, получается больше шума. Слой может дать высокий отклик а на соседних ничего нет, в таком случае, вряд-ли там есть объект, размытие по этажам, кстати, уменьшает вес таких пиков. Затем убрав шум (взяв только правильные этажи), можно уточнить координаты рамки. ЗЫ: ничего против NMS боксов не имею, работают в большинстве случаев отлично.
-
Конвертация RLE аннотаций датасета MS COCO
Smorodov replied to maxfashko's topic in Вопросы по нейросетям и ИИ
Чтобы сохранить данные нужно самому дописать функции сохранения. Покопайте здесь: https://github.com/pdollar/coco/tree/master/PythonAPI/pycocotools -
Конвертация RLE аннотаций датасета MS COCO
Smorodov replied to maxfashko's topic in Вопросы по нейросетям и ИИ
Так там же есть питонский экстрактор. Просто при помощи этого экстрактора перезапишите все в более удобном для вас формате. -
Рекомендательная система вектор-вектор
Smorodov replied to mrgloom's topic in Обсуждение общих вопросов
Я предлагаю соорудить маппинг свойств юзера (юзер-метрика) на свойства юзера которого он лайкает (лайк-метрика). Похожие юзеры будут лайкать примерно одинаково. -
Я так делал, размытие помогает собрать более-менее гладкий сгусток иначе получаются сплошные квадраты. Наслаивая как кальку, получим максимальную вероятность. Найдя x,y координаты, смотрим по слоям вдоль оси масштабов, там, при достаточном количестве этажей пирамиды будет кривая с максимумом. Аппроксимируем ее гауссианом или параболой и получаем координату максимума по масштабу.
-
Рекомендательная система вектор-вектор
Smorodov replied to mrgloom's topic in Обсуждение общих вопросов
Соорудить пространство юзеров по их свойствам, затем выполнить ембеддинг (t-sne например) по лайк-метрике и мерять расстояния между юзерами. -
Не а, если размывать гауссианом в 3D, то мы и получим максимум в 3D точке, а масштаб можно легко вывести аппроксимацией (Z координата), впихнув точки в колокол и посмотрев где максимум.
-
А почему нет ? Привести к общему масштабу и сложить, неплохо еще после этого 3D гауссианом размыть (по слоям (X,Y) и между слоями (Z) ).
-
Рекомендательная система вектор-вектор
Smorodov replied to mrgloom's topic in Обсуждение общих вопросов
Что то не очень понятно. Можно с минимальным примером ? -
Наконец то добавили выделялку ROI: http://www.learnopencv.com/how-to-select-a-bounding-box-roi-in-opencv-cpp-python/ Как юзать: #include <opencv2/opencv.hpp> // selectROI is part of tracking API #include <opencv2/tracking.hpp> using namespace std; using namespace cv; int main (int argc, char **arv) { // Read image Mat im = imread("image.jpg"); // Select ROI Rect2d r = selectROI(im); // Crop image Mat imCrop = im(r); // Display Cropped Image imshow("Image", imCrop); waitKey(0); return 0; }
-
VOTR имеет скрипт на питоне, правда там для трекинга одной цели, как я понимаю. Вот для нескольких целей: https://github.com/glisanti/CLEAR-MOT И чедендж: https://motchallenge.net
- 48 replies
-
- 1
-
- детектор движения
- motion detection
- (и ещё %d)
-
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
По классике для сравнения объектов, обычно выделяются признаки, совокупность которых, по сути своей, является компактным представлением класса объектов, позволяющим максимально точно различать эти объекты между собой. Если мы имеем дело с лицами, то признаками может быть например словесное описание особенностей лица, если человек знает с чем имеет дело, то ему и не нужно описывать как выглядит лицо, так как большинство лиц похожи. А важна только информация, позволяющая выделить конкретного человека. Классификатор, это такой инструмент, который позволяет вывести необходимые нам признаки, чтобы мы могли различать объекты, подавая на него новые данные. Могут быть как обучаемые, так и жестко заданные вручную. Обучаемые могут быть построены на основе простых математических правил (если a > 0.5 тогда это "кот" иначе "собака"), математической статистики (задаются распределения и выводится вероятность принадлежности объекта к заданному классу ("кот") ), или нейронных сетей (тоже бывают разные). Как признаки, так и правила разделения классов могут быть как заданными вручную, так и обучаемыми на данных. см. "собственные лица" (eigen faces) как обучаемые признаки, или SIFT, FAST, LBP, SURF и т.д. как универсальные синтетические признаки (созданы вручную). Метки объектов, это просто их удобное для компа представление (0-фон, 1-кот, 2-пес). Каскадное преобразование, я имел ввиду проводим одно и то же действие с одним и тем же изображением но в разных масштабах. Можно изменять масштаб после обработки, например суперпикселями, а после обратным ходом, объединив суперпиксели и передав метки с наименьшего масштаба наибольшему получить сегментацию для исходной картинки. Ну это просто как вариант. После этого объединяем результат. Еще называется "пирамида". -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Да кривых рассеяния важно именно что там после рендеринга получается картинка очень близкая к исходному растру. А хранить нужно только эти самые кривые. Почему привел ? потому что это метод уменьшения избыточности изображения. Сеперпиксели также позволяют уменьшить размерность задачи и поводить сегментацию изображения по меньшему количеству элементов. Можно провести каскадное преобразование или пропустить через классификатор и получить метки объектов. Ваш метод безусловно интересен, и результаты очень хорошие, но пользы от количества предоставленной по нему информации не много. -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Как варианты могут быть интересны: Кривые рассеяния: https://habrahabr.ru/post/156903/#first_unread http://lcs.ios.ac.cn/~guofu/files/vectorization/SparseImageCurves.pdf Суперпиксели: http://ivrl.epfl.ch/research/superpixels -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Да вроде его и собирать то не нужно, заголовки включил и ладно. Вот тут посмотрите: https://eigen.tuxfamily.org/dox/TopicMultiThreading.html -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Я говорил что метод тяжелый . У меня вообще прямолинейный реализован, тупо решает систему уравнений как есть. Есть разные оптимизации, но почти все будут требовать много ресурсов . Вот список: http://www.alphamatting.com/eval_25.php Все равно на CUDA будет лучше. Еще можете попробовать robust matting: main.cpp но он тоже не быстрый 8 сек для 500x500 на Core i-7-4790. Кстати, на нейронке тоже есть (и датасет автор обещает выслать ): http://www.cse.cuhk.edu.hk/leojia/projects/automatting/index.html -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Что то мне кажется что тут сегментация по цвету не прокатит, на примере автора вопроса даже участков кожи-то нет. -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Ну если так, то остается еще GabCut и Matting оба метода тяжелые, но часто дают неплохой результат. При крепил результат Matting, на входе trimap и изображение, на выходе маска. Тут правда и обычный порог хорошо справится, но другие пример искать долго А вот, кстати нашел: Есть довольно быстрые методы маттинга, в сети видел такие, но реалтайм не встречал, везде секунды и больше на кадр. -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Ну так бы и сказали Вот сюда попробуйте фотки загрузить и посмотреть результат: http://www.robots.ox.ac.uk/~szheng/crfasrnndemo (почему то у меня открывается только через tor браузер). А вот исходники этой радости: https://github.com/torrvision/crfasrnn -
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
Smorodov replied to maxfashko's topic in OpenCV
Да, сильно смахивает на edge preserving smoothing группу алгоритмов по определению. Посмотрите в сторону алгоритмов базирующихся на решении уравнений пуассона, здесь есть пример реализации суть в том, что можно выделить градиенты из изображения, отфильтровать их как нужно и восстановить изображение обратно. При подавлении слабых градиентов, изображение станет более "плоским". Есть еще selectiveGaussian пощупать можно в gimp, оптимизированные исходники там-же, если по простому, то создается маска, выделяющая точки которые более чем на заданный порог отличаются от всех точек скользящего окна, также создается обычное размытое изображение, и последним шагом пиксели исходного изображения по маске заменяются на пиксели размытого изображения. Параметры метода: величина порога, и размер скользящего окна (размер окрестности). По поводу фильтров еще есть такая популярная картинка, BLF это билатеральный фильтр, WLS это взвешенные наименьшие квадраты оба фильтра есть в OpenCV. WLS - аналог вроде называется FastGlobalSmootherFilter и находится в файле contrib/modules/ximgproc/src/fgs_filter contrib. Ну и для коллекции: https://github.com/soundsilence/ImageSmoothing -
Как взвешивать классы для семантической сегментации?
Smorodov replied to BeS's topic in Вопросы по нейросетям и ИИ
Так там про нормирование в интервал [0:1] и не говорится, а говорится о взвешивании. Если у нас открытое множество данных, то заранее невозможно установить рамки так, чтобы оптимально по распределению и умещалось в заранее заданный интервал. Просто взяли некую площади за единицу, и посчитали соотношения.- 6 replies
-
- caffe
- deep learning
- (и ещё %d)
-
Как взвешивать классы для семантической сегментации?
Smorodov replied to BeS's topic in Вопросы по нейросетям и ИИ
Ну так взяли за единицу нечто среднее, вот и скачет в обе стороны, тем более площадь, там же квадратичная зависимость от стороны. ЗЫ: А что за синий текст ?- 6 replies
-
- caffe
- deep learning
- (и ещё %d)
-
Алгоритмы определения эмоций человека
Smorodov replied to Andrei1992's topic in Обсуждение общих вопросов
Отдельная история. Контора специально собирала (3ТБ данных), естественно они под NDA . -
Добавьте в библиотеки imgcodecs (у меня называется opencv_imgcodecs310.lib ). Она была добавлена в третьей версии.
-
Простейший пример: #include "opencv2/opencv.hpp" using namespace cv; int main(int argc, char** argv) { Mat img; img=imread("image.png",1); imshow("my image",img); waitKey(); return 0; } А для вывод на форму посмотрите это: SimpleQTApp.rar