mrgloom
-
Количество публикаций
2 302 -
Зарегистрирован
-
Посещение
-
Days Won
142
Сообщения, опубликованные пользователем mrgloom
-
-
ЦитатаCurrent implementation has a "soft" assumption that the devices being used are homogeneous. In practice, any devices of the same general class should work together, but performance and total size is limited by the smallest device being used. e.g. if you combine a TitanX and a GTX980, performance will be limited by the 980. Mixing vastly different levels of boards, e.g. Kepler and Fermi, is not supported.
-
Кстати тут вроде описано про модель
https://github.com/BVLC/caffe/blob/master/docs/multigpu.md
ЦитатаThe current implementation uses a tree reduction strategy. e.g. if there are 4 GPUs in the system, 0:1, 2:3 will exchange gradients, then 0:2 (top of the tree) will exchange gradients, 0 will calculate updated model, 0->2, and then 0->1, 2->3.
Так что не совсем так как я сказал.
-
Цитатачто если есть TBB, то OpenMP задействовано не будет?
Ну да там вроде исключающие дефайны.
Я не уверен что в OpenCV всё сделано через cv::parallel_for_
IPP да это скорее performance primitives, быстрые конструкции типа SSE, для ускорения, а не для распараллеливания.
Чтобы понять что пересборка что то даёт надо найти какой то код в opencv который использует cv::parallel_for_ или OpenMP и т.д. в явном виде и написать сентетический тест.
-
Посмотрите сорцы, где там TBB, IPP, OpenMP секции.
Хотя не очень понятно типа cv::parallel_for может иметь несколько "бэкэндов"
-
Надо сначала понять какая модель параллелизма там.
Мне кажется что происходит примерно так :
1. На 1 GPU прогнали batch, проапдейтили веса, повторили.
2. На N GPU прогнали batch для каждого GPU, проапдейтили N раз веса у каждого GPU (порядок не важен?), повторили.
ЦитатаParallelism: the
-gpu
flag to thecaffe
tool can take a comma separated list of IDs to run on multiple GPUs. A solver and net will be instantiated for each GPU so the batch size is effectively multiplied by the number of GPUs. To reproduce single GPU training, reduce the batch size in the network definition accordingly.Т.е. по сути можно увеличить итоговый batch size, оставя на каждом GPU такой же как был до этого на 1 GPU.
Caffe и так поддерживает флаг
-gpu all, так что непонятно что там в этом форке добавилось.
ЦитатаМогу ли я увеличить upsample layer в segnet_train.prototxt чтобы память шарилась?
Если вопрос о том как сложить память всех GPU в 1 кусок, то думаю так просто это нельзя сделать. Это можно было бы сделать если первые k1 слоев лежали на первом GPU, k2 последующих на втором GPU и т.д. но я не знаю как это сделать в Caffe.
-
Вопрос по коду
void transformImg(Mat& img,vector<Point2f>& src_pts,Mat& Tau,Mat& dst)
https://github.com/Smorodov/TILT-Cpp-port/blob/master/src/TILT.cpp#L49
1. Почему мы сразу не берем Tau, которая как я понимаю и есть матрица перспективного преобразования, а ищем по точкам?
2. Как решается проблема: когда мы берем некий кроп от изображения и варпаем то на краях будет черная область \ либо не валидная старая которая по идее будет мешать оптимизации? По идее надо брать всегда рамку заведомо меньше чем изображение, чтобы при любом варпе не было таких областей.
-
Так а это не оно?
http://docs.opencv.org/2.4/modules/objdetect/doc/latent_svm.html
а наверно в контрибе добавили каскад.
-
А пример можно?
Можно сделать сериализацию модели например через Filestorage руками если эту информацию можно вытащить из CvSVM
-
Допустим что камера двигается параллельно плоскости, т.е. возможен только сдвиг по x,y.
Камера снимает видео, мы бьем видео на кадры, используем phaseCorrelate для нахождения сдвига, весь bundle adjustment в этом случае сводится к решению разреженной системы линейной уравнений.
Но тут есть несколько вопросов
1. Какой выбрать критерий для отфильтровывания ложных срабатываний, допустим камера движется не совсем равномерно и мы не знаем какое кол-во кадров перекрывается в реальности или не хотим задавать это значение жестко.
2. Что если на некоторых кадрах мы получили неправильные x,y и это получились выбросы, как их отфильтровать? Или какой должен быть робастный метод решения линейной системы?
3. Как в идеале проверять геометрическую адекватность восстановленной панорамы, если наносить на снимаемую поверхность метки это будет не честно т.к. упрощает задачу.
-
Нарисовать контуры заполненными, т.е. получить бинарную маску, потом использовать маску src.copyTo(dst, mask)
-
https://software.intel.com/sites/default/files/Fast Panorama Stitching.pdf
Сравнение и описание как сшивать быстро для мобильных платформ
- 1
-
Это шарится при каком то специальном multi gpu моде в DIGITS или в caffe
-gpu all
? и загружена на 60 более новая карта? -
Какая может быть методика настройки детектора на видео \ группу видео?
Допустим есть детектор из opencv в нём есть некие параметры, которые надо настроить под конкретное видео, как это сделать с наименьшими усилиями?
Пока в голову приходит только выдрать несколько кадров из видео, разметить там bounding box'ы и по этим данными считать некую метрику как PASCAL VOC challenge(intersection over union).
http://stackoverflow.com/questions/22314949/compare-two-bounding-boxes-with-each-other-matlab
Насколько это применимо к видео? там могут быть смазанные кадры, т.е. надо брать какие то особые кадры?
Как сливать детекции с N последовательных фреймов в 1 объект? Нужен трекинг?
Вышеобозначенная метрика не учитывает случая, когда например объект присутвует на 10 кадрах, а мы его сдетектировали на 2 из 10. Как это учитывать? Делать разметку каждого кадра?
-
Это они обе вставлены? Если протестить по 1 в отдельности?
-
Видимо, да, если WITH_OPENMP не включён по умолчанию.
-
А как делают?
-
Какие то куски кода opencv распараллелены с помощью OPENMP.
http://stackoverflow.com/questions/29494503/how-to-compile-opencv-with-openmp
- 1
-
Вот такой пример есть
https://introlab.github.io/find-object/
https://github.com/introlab/find-object/wiki/BeersWall
Кстати эту задачу для мерчендайзинга кто то уже коммерчески решил?
по Texture object detction
Так там надо облако точек, т.е. надо 2 камеры или кинект?
-
А есть ли возможность поставить на серверное оборудоавние GTX 980Ti или GTX Titan? Какой должен быть формфактор и поддержка какого слота (PCI-E 3.0?) и поддержка чего если несколько карт?
-
А размеченные данные есть? Можно было бы попробовать для интереса прогнать на этих данных 1 алгоритм.
-
Как не странно BruteForce может быть быстрее.
-
Там же есть из коробки codeblocks-16.01mingw-setup.exe
http://www.codeblocks.org/downloads/26
Я точно не уверен, но x32 должно хватить, т.к. есть кросскомпиляция же.
Потом по идее вам надо собрать OpenCV используя MinGW.
http://kevinhughes.ca/tutorials/opencv-install-on-windows-with-codeblocks-and-mingw/
http://stackoverflow.com/questions/10860352/getting-started-with-opencv-2-4-and-mingw-on-windows-7
-
Видимо можно пофильтровать по какому либо критерию найденные особые точки до вычисления дескрипторов и матчинга.
-
Нет необходимости явно вызывать .Release у Mat
Какая точно ошибка?
Как определить где старые ф-ии?
в OpenCV
Опубликовано · Report reply
Скрипты для поиска ф-ии
#To find function in headers
nm -C -A lib/*.so | grep <function_name> | grep -v U