privetvision
-
Количество публикаций
51 -
Зарегистрирован
-
Посещение
-
Days Won
2
Сообщения, опубликованные пользователем privetvision
-
-
В 25.05.2016 at 23:43, Smorodov сказал:Ух!
Нарисовал последовательность шагов.
1) Берем начальную гипотезу границы (случайно).
ищем ближайшие точки из каждого набора (E и H).
2) Передвигаем прямую так, чтобы выровнять расстояния.
3) Заново ищем ближайшие точки.
4) Опять выравниваем расстояния.
5) повторять до сходимости.
6) Нормировать коэффициенты так, чтобы расстояние до каждого класса было равно единице.
Вроде так должно получиться.
- 2
-
Народ хелп...
-
Я попробовал через множители Лагранжа сделать, но застрял здесь. Пробовал найти производную по лямбда 1, 2, 3 объеденить в систему в решить, но в итоге крамером не решается, т.к. бесконечное множество решений, а гаусс выдал x = -3, y = -2, но это не совпадает с решением на этом сайте.
-
В общем сделал как на первом видео. Я ошибся, вектор нормали был (3;0), а не (0;3) поэтому там все нормально.
Только вот проблема, получается этот упрощенный метод только для двух точек?
-
Правильно ли я понимаю, что после того, как мы уровняли расстояние от прямой до точек из разных кластеров, мы должны поворачивать эту прямую вокруг своей оси на 360*, чтобы найти максимальное расстояние.
Хотя, так подумав, максимальным расстоянием до прямой между двумя точками будет перпендикурялр опущенный к центру этого расстояния
-
-
-
Мне кажется так не сработает, потому что не понятно какой брать наклон гиперплоскости
-
-
-
Недавно стало известно, что приложение MSQRD купил Facebook за 10 млрд руб. (российских)
MSQRD - мобильное приложение, созданное Белорусскими разработчиками (10 человек).
Понятно, что такие деньги были отвалены за быстрый алгоритм трекинга лица, то и правда лицо находит без лагов и задержек, часто хватает даже небольших черт лица.
Пробовал кто-нибудь ресерчить и пробовать ускорять имеющиеся алгоритмы?
-
2 часа назад, Smorodov сказал:Просто берете две ближайшие друг к другу точки соседних выборок
Ну вот, я этот момен описал более детальнее:
18 часов назад, privetvision сказал:Вот вопрос, в начале когда у нас два класса: круги и квадраты, нам надо найти:
1. крайний правый круг для левого класса
2. крайний левый квадрат для правого класса?
Путем сравнения координат по x и y?
А дальше работать с этими двумя точками, как в алгоритме выше
Цитата, проводите между ними прямую, находите середину этой прямой, проводите перпендикуляр через эту точку.
Хм, вот этого раньше не встречал! Круто! Вопрос, перпендикуляр это вектор нормали, он же w в нашем алгоритме верно?
ЦитатаДелите координаты всех точек (и коэффициенты прямой) на половину расстояния между двумя ближайшими точками.
хм, не понял зачем делить координаты ВСЕХ точек? Что это дает? например точка p7 (3; 2) ее коорды делить на ||w||/2, пусть ||w|| = 10, тогда будет p7 / 5, в итоге у нас будет новый вектор p7 (3/5; 2/5), что он дает?
п.с. извиняюсь за глупые вопросы, приходится разобраться в алгоритме, чтобы реализовать на яве.
-
1 час назад, Smorodov сказал:Не "крайний левый" и "крайний правый", а ближайший к границе со стороны квадратов и ближайший к границе со стороны кругов (это и будут опорные векторы).
PS: Есть формула для определения расстояния от точки до прямой.
Я про самое начало, на примере рассматриваются 2 точки, а если их больше будет? Где сам алгоритм выбора этих 2-ух точек? Граница ищется относительно этих 2 точек, а как их выбрать, если их множество. Тут на ум приходит только самый крайний левый и крайний правый. А вы уже рассказываете конец алгоритма.
-
Вот вопрос, в начале когда у нас два класса: круги и квадраты, нам надо найти:
1. крайний правый круг для левого класса
2. крайний левый квадрат для правого класса?
Путем сравнения координат по x и y?
А дальше работать с этими двумя точками, как в алгоритме выше
-
Постепенно подкапываюсь к понимаюнию. Только вот, что это такое? Двойной модуль? Или корень от квадрата w?
И немного перепутал w и w0, в первом случае это вектор весов или нормали к гиперплоскости, а w0 - это омега, какое-то число, пока не понял для чего.
П.С. что-то хостинг периодически жалуется на лимит ресурсов процессора
-
Отступление:
Перебрал кучу разных статей по svm и везде одно и тоже, ну так сухо рассказывают, просто жесть, такое ощущение, что читатели априори математики. И нигде нет примера на пальцах, ну как же без примера? Ну на кой черт сухие формулы пихать. Достаточно одного рабочего примера, что вот это X, а это Y, тут 1 а тут 2, теперь складываем, получаем вектор, это дает нам это, а вот дальше делим на это число и получаем. НО нет, они рассказывают все заумными фразами, что мне хочется зевать.
Проблема.
Не могу найти пример на пальцах (с подставленными значениями), точнее нашел, но не полный.
Что мне не понятно.
Понятно, что надо найти максимальное расстояние между двумя группами объектов и гиперплоскость
Не понимаю что делать в самом начале алгоритма. Вот у нас имеется квадраты и кружочки.
1. Находим крайнюю кружочек и крайний квадрат.2
2. Получаем их координаты, на видео это x1 = (1,1) и x2 = (2,3)
3. Потом ищется вектор весов (или нормали) w = (2,3) - (2,1) = (1, 2) = (a, 2a) - первый вопрос зачем? Что это?
4.Потом берется формула w*x1 - w0 = 1 и w*x2 - w0 = -1. Что такое w0?
5. Далее подставляем в формулу значения и выражаем w0 = 1 - 8a и w0 = -1 - 3a
6. Выражаем одно через другое, 1 - 8a = -1 -3a, 5a = 2, и получаем a =2/5
7. Потом подставляем a = 2/5 в формулу w0 = 1 - 8a и получаем w0 = - 11/5
8. Подставляем a=2/5 в вектор w = (a, 2a) = (2/5, 4/5) - повторный вопрос это что за вектор?
9.Ну и наконец мы подставляем координаты вектора w в формулу g(x) = 2/5 * z1 + 4/5 * z2 - w0. Тут вопрос, что это за функция g(x), что это за значения z1 и z2?
И как все-таки мы построили гиперплоскость? Как получить координаты гиперплоскости? Что-то я упустил
- 1
-
Да тут много алгоритмов, вот один на русском: http://cppalgo.blogspot.ru/2010/12/quick-hull.html
На англ. https://en.wikipedia.org/wiki/Convex_hull_algorithms
Отличная и понятная инфа на русском!
-
Все просто, ищем convexHull, затем для каждой точки контура ищем расстояние до ближайшей грани convexHull-а, находим экстремумы вот и дефекты.
А как ищутся выпуклые точки с точки зрения математики?
-
Что с точки зрения математики представляют собой выпуклые и дефектны точки? Каким образом они находятся. Проще говоря мне нужно понять внутренность opencv-ой функции convexityDefects.
Как я понимаю:
Что-то похоже на график функции, если он пошел на спад по Y, то это начальная точка выпуклая, потом в цикле ищется конечная выпуклая точка, которая должна быть >= по Y начальной точке, если так, то мы нашли начальную и конечную выпуклые точки. Затем находим точку дефектную в пределах этого отрезка, фильтруем по глубине.
-
В общем целый день про*ался, в итоге так и не получилось собрать gpu под mingw.
Валится на 56%, поиск в гугле ничего не дает, уже что только не искал...
Скрин ошибки.
-
Медленно работающие участки можно определить профилировщиком (profiler) (их много разных, есть и в студии : ссылка )
Пишу на Qt в Qt Creator
-
Есть такая проблема, видео с одной камеры отображается быстро, но если в этой же программе поулчать кадры со второй камеры, то начинает подтормаживать. В чем зарыта проблема? Что является узким горлышком?
Пробовал разбивать на два отдельных потока, для каждой камеры свой, но результата не дало. Вот погуглил про GPU, есть у кого примерчик простой, как получать с камеры поток кадров и распараллелить вычисления на gpu?
Только не понятно, из вычислений - только поток кадров получаем, подойдет ли для этого GPU.
-
В opencv, можно выключить автоэкспозицию, с помощью
mCapture.set(CAP_PROP_AUTO_EXPOSURE, -1);
И настроить как надо, с помощью:
mCapture.set(CAP_PROP_EXPOSURE, -6);
-
Заметил такую вещь, когда освещение плохое, движение руки происходит быстро, без лагов, как только увеличить освещение в помещении, то видна задержка обработки, рука перемещается уже с лагами. Как это называется, где копать?
Как можно получать быстрее кадры, но хуже по качеству?
Метод опорных векторов
в OpenCV
Опубликовано · Report reply
Вы лучше скажите, что делать после того как как вычислил производные по лямбда 1, 2, 3. Мне главное математически понять, а там закодить получится.