Перейти к содержимому
Compvision.ru

Nuzhny

Пользователи
  • Количество публикаций

    1 427
  • Зарегистрирован

  • Посещение

  • Days Won

    176

Все публикации пользователя Nuzhny

  1. ASM/AAM в OpenCV

    Поддерживаю ответ Смородова. Но если хочется именно сабж, то я пробовал stasm, работало нормально.
  2. Трекеры на Малабе я точно пробовать не буду - слишком долго переписывать. Могу какие-нибудь исходники на С++ заинтегрировать.
  3. Можно, конечно.
  4. Я использую тул от Google - butteraugli.
  5. Продолжу задавать вопросы. Есть такая штука, как Gaussian Mixture Probability Hypothesis Density for Visual People Tracking. Даже исходники есть: https://github.com/blefaudeux/gmphd Кто-нибудь применял или имеет мнение об этой штуке? Как она для трекинга в детекторе движения? Стоит смотреть и разбираться?
  6. Недавно обсуждали похожую тему
  7. mat::inv() - не работает?

    Ха! Это шутка такая?
  8. Ну так надо освоить работу с компилятором/Студией. Всё таки рабочий инструмент как-никак.
  9. Перекомпилировать, чтобы битность совпадала.
  10. SWT уже не особо актуально. Для начала OpenCV. В последнем tesseract'е, кстати, уже вовсю используют нейросети. Так что надо убедиться, что использовался именно он.
  11. Убрать наклон.
  12. 1. По определению. Это просто операция интегрирования функции - вейвлета Хаара. Если бы он имел другой вид, то производилась бы другая операция. 2. А что дало бы сложение двух областей? Ответ: для всех вариантов вейвлетов мы бы получили одно и тоже число, а именно сумму в квадратике. И зачем это надо? Разница же показывает, какая часть темнее, а какая светлее.
  13. Вейвлеты Хаара. Сложение - это интегрирование. Если бы что-то умножалось, то признаки не назывались бы признаками Хаара, а какими-нибудь другими. То есть ответ на вопрос - складываются по определению. Теперь второй вопрос - почему именно вейвлеты Хаара взяты за базис? Потому что суммы можно очень быстро вычислять по интегральному изображению: 4 считывания в память и 3 сложения. Это очень быстро. И третий вопрос, который может возникнуть. Есть ли что-то ещё? Есть и много. Мы сейчас говорим о классической связке признак + классификатор, а именно о Haar + AdaBoost. Также популярна связка LBP + AdaBoost, которая быстрее, но менее точна. Есть HOG + SVM, её для лиц использует библиотека dlib (вроде как там сложнее, чуть ли не dpm, но это уже детали). Так вот связка Haar + AdaBoost была прорывной в своё время, впервые для прикладных задач появилась возможность искать объект на изображениях в реальном времени. В фотоаппаратах появилась функция поиска лиц, функция автоматической съёмки по улыбкам. Это всё Haar + AdaBoost и чуть позже LBP + AdaBoost. Типа революционная фича, которая сейчас используется намного реже. Началась эра глубоких нейросетей.
  14. Получить общие точки SURF

    cv::warpPerspective P.S. Я люблю читать исходники библиотек, которые использую. Можно делать это и в отладчике. После этого большинство вопросов проясняется.
  15. На картинке показан вертикальный профиль изображения, в каждой строке которого вычислено некоторое значение. Данные разрежены. На этой картинке не очень заметно, но это должна быть синусоида. Мне хочется её как-нибудь аппроксимировать. МНК? Фурье? Здесь про какого-то Писаренко рассказывают. От меня это всё как-то далековато, может есть у кого-нибудь опыт в таких штуках? P.S. Если вдруг разыщется ещё и ссылка на плюсовую библиотеку, то буду невероятно благодарен.
  16. Думаю, да, особых проблем не вижу. Другое дело, что к этой задаче у меня как-то и интереса нет, и времени нет свободного тоже.
  17. И правда, такой подход выглядит наиболее вменяемым. Для сравнения как раз и создана, упомянутая выше функция, cv::matchTemplate.
  18. Тогда рекомендую начать с Фотошопа или Гимпа. Если научиться работать с порогами руками, то повторить это в программе будет легче за счёт наличия понимания: как оно вообще работает.
  19. Просто порогами не получается?
  20. stereo 3d reconstruction (продолжение)

    Повторить Photoscan за 5 штук? Нееее
  21. Размер, угол - меняется? Если нет, то простой корреляцией можно найти (cv::matchTemplate).
  22. Получить общие точки SURF

    Код на С# выглядит довольно страшно и громоздко. Умножать как обычно: строка на столбец, всё как в школе учили. Отрицательные значения координат появиться могут: допустим, плата смещена на втором изображении сильно влево, выходит за границы. Конечно, координаты будут отрицательными. А нельзя написать пример на С++, убедиться, что он работает, а только потом переписывать? Потому что проблемы с типами (double или float) быть могут, почему нет? В С++ проблем с этим нет, потому что всё решается на этапе компиляции. А твои конверты типа BitConverter.ToDouble(arr, 0) могут привести к чему угодно, если ты с типом не угадал. P.S. В очередной раз убеждаюсь, что лучше всего писать такого рода приложения на С++ или Питоне, в крайнем случае на Матлабе.
  23. Получить общие точки SURF

    1. Отрицательные конечно могут быть: там же смещения и углы поворота есть. Можно же поворачивать в разные стороны и сдвигаться в разные стороны. 2. (x, y, 1). Откуда на плоскости z?
  24. Получить общие точки SURF

    Надо к координатам добавить 1 и получится вектор 3х1. Это называется однородные координаты.
×