Я написал программу, которая использует OpenCV cvCalcOpticalFlowLK
. Он отлично работает на входе веб-камеры с низким разрешением, но мне нужно запустить его на потоке Full HD со значительными другими вычислениями после анализа оптического потока для каждого кадра. Обработка 5-минутного видео, уменьшенного до 1440x810, заняла 4 часа :( Большая часть времени уходит в cvCalcOpticalFlowLK
.
Я исследовал возможность повышения скорости за счет добавления большего количества необработанных процессоров, но даже если я получу 8-ядерного зверя, а ускорение является теоретическим идеалом (скажем, в 8 раз, поскольку я в основном использую только одно из своих ядер с частотой 2,9 ГГц), Я бы получил только 4FPS. Я хотел бы достичь 30FPS.
Другие исследования, кажется, указывают на реализацию его на графическом процессоре с помощью CUDA, OpenCL или GLSL (?). Я нашел несколько реализаций, подтверждающих концепцию (например, http://nghiaho.com/?page_id=189), и во многих документах в основном говорится: «Это отличное приложение для графического процессора, мы сделали это, это было потрясающе, и мы не будем делиться нашим кодом». Излишне говорить, что я не заставил ни одного из них бежать.
Кто-нибудь знает о реализации на основе графического процессора, которая будет работать на Mac с картой NVIDIA? Существуют ли ресурсы, которые могли бы помочь мне приступить к написанию собственных? Существуют ли другие плотные алгоритмы OF, которые могут работать лучше?
Спасибо!
winSize
. - person Seb Holzapfel   schedule 01.09.2011