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

Pavia00

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

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

  • Посещение

  • Days Won

    15

Сообщения, опубликованные пользователем Pavia00


  1. Если будете использовать cvUndistort2, то да должны получить. Причём строго.

    А вот почему Smorodov сопротивляется не понятно. Хотя зерно разума есть, длины до точек то разные. Поэтому при выводе теоретического расчёта надо быть аккуратным. Но cvUndistort2 устраняет "не сферичность" и надо считать проекцию параллельной.

    • Like 1

  2. Линза в камере вносит не линейные изменения. Поэтому разные фрагменты контура имеют разные масштабы.

    Калибровка поможет. Только учти что под калибровкой иногда понимают более частный случай -получение пространственных координат и угла. Что не относится к искажениям вносимой линзой.


  3. Классическая схема распознавания.

    Берём изображение выделяем признаки.

    Затем берётся прямоугольник который накрывает некоторое под пространство.

    Сверяя значение координат признаков и их количество в этом подпространстве происходит классификация. Принадлежит ли этот набор признаков к заданному классу. То есть мы решаем является этот набор признаков нашим объектом.

    Идёт перебор координат прямоугольника.

    Так вот в каскаде используется не нейронная сеть, а двоичные деревья решений.

    Где каждый узел либо принимает объект к классу либо отвергает. Если отвергает, то остальные условия не проверяются. Переходим к следующий позиции.

    Это значительно ускоряет обработку по сравнению с НС. И качество распознавания не сильно страдает, можно сказать практически не страдает.

    Могу и ошибаться так как сам до конца не разбирался, но как-то так.

    Использовать можно для любого объекта. Вернее в большинстве случаев оно вам подойдёт.

    • Like 1

  4. Виола-Джонес должен быстро искать. Примерно так высота изображения умножить на ширину умножить на 2 умножить на время обработки одного пикселя думаю не должно привишать ~100-150 тактов вот это всё поделить на частоту процессора. Если код раскидать по ядрам, то ещё поделить на число ядер.

    У меня для одного ядра с частотой 2.5 ГГц получилось примерно 0.1-0.15 секунд. А да если там качество регулируется, то время пойдёт в верх.

    Алгоритм на видео карту хорошо ложится.

    Ускорить можно если обрабатывать не всю картинку, а сделать детектор движения и использовать для поиска только изменившуюся часть изображения.

    • Like 1

  5. dasg. Мне бы ваши проблемы.

    Давно интересует тест производительности OpenCV и GPU.

    Cuda не пользуюсь так как карта AMD.

    Но у меня на GPU Собель раз в 10 быстрее считался, правда эксперимент был не совсем чистым.

    По поводу скорости. Зависит от процессора.

    Ну вот считай CPU, у меня Core 2 Due T7500 2 ядра. Каждое ядро может обрабатывать одновременно 2 команды SSE. Каждая команда SSE имеет 4 блока данных(128/32; 32 бита берём float) а если брать не флоат, а слова 128/16=8 блоков данных.

    Частота процессора 2.4 ГГц

    Итого:2*2*4*2.4=38,4 операций/с

    Видео карта, У меня ATI HD3470. 40 ядер каждое ядро содержит 5 алу. Но из этих 5 алу только четыре выполняют основные операции, а пятый считает сложные операции такие как Sin, sqrt. Каждое АЛУ работает над вектором из 4 чисел. Частота 680 МГц

    Итого=40*4*4*0.680=435,2 операций/с

    Видео карта Geforce 9600M GS. Число ядер 32 частота 1035 МГц каждое ядро способно выполнять кучу операций параллельно, примерно столько же сколько и ATI .

    Итого 32*4*4*1.035=529,92 операций/с


  6. Для ускорения используй отсечения. К примеру считаешь среднюю сумму по окрестности 20х20 пикселей. И сравнивай эталонным значением плюс допуска.

    другое придумывать?
    Думаю что да - надо придумывать.

    ИХМО OpenCv обычно за максимальной скоростью не гонится, но в основном достаточно быстро работает.

×