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