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

Железо для real-time обработки видео

Recommended Posts

Razangann    0

Всем здравствуйте!

Недавно начал изучать opencv. Тестирую производительность, разные методы, даже написал пару своих методов которые в моем случае справляются быстрее чем встроенные. Задумал переходить на новое железо, а именно хочется одноплаточные пк.

Купив себе для тестов orange pi pc с процессором cortex a7 4*1.2 ГГЦ собрал библиотеку и начал тестировать. Обработка одного кадра 300*200 занимает 150-200 мс на одном ядре. Этого не достаточно. Хочется прикрутить платку к ip камере и в реальном времени обрабатывать видео. Если частота камеры 20fps, то 1 кадр нужно обрабатывать минимум за 50мс. В Принципе распараллелить на все ядра можно, но хочется оставить запас на другие нужны, ведь получение кадра, доступ по ssh, какие-то дополнительные плюшки потребуют своей производительности...

Может кто-то использовал для обработки какое-то интересное железо? На пример dsp платы или плис? Интересна производительность...

И второй вопрос, orange pi pc на базе armv7 имеет 32-битную архитектуру, а armv8 уже х64. Будет ли прирост скорости на 64-битной версии?

Заранее благодарю:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Razangann    0

Спасибо, но к сожалению это слишком дорогое решение...может есть что дешевле? В пределах до 5 тыс на пример?:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Nuzhny    207
20 hours ago, Razangann said:

И второй вопрос, orange pi pc на базе armv7 имеет 32-битную архитектуру, а armv8 уже х64. Будет ли прирост скорости на 64-битной версии?

armv8 будет явно быстрее.

Но тут же всё зависит больше от алгоритма обработки видео. Что это? В каждой новой версии OpenCV всё больше функций имеют реализацию через NEON. Возможно ли при обработке использовать их? Или свой алгоритм переписать на NEON? Низкоуровневая или алгоритмическая оптимизация в принципе возможны? Или код и алгоритм уже ускорить нельзя, а вся надежда на железо?

  • Thanks 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Razangann    0

Про NEON пока не слышал, почитаю, спасибо:)

Алгоритм по сути не сложный, собственная реализация threshold + morphologyEX, но вместо морфологии придумал свою реализацию, пускаю лучи с центра объекта и обрабатываю столкновения, считаю углы между точками :) Оптимизировать можно, но судя по замерам, то одна функция cvtColor() уже требует 8-10мс...

На orange pi pc есть еще графический проц, можно подумать разделить участки обработки и выполнять часть кода на gpu, но даже не знаю есть ли смысл...:)

Мне как-то говорили что проц работает быстрее с целочисленными, значит есть смысл минимизировать float переменные? Или в моем случае это тоже бессмысленно?:)

Вообще, если у кого-то есть свободное время и желание, могу показать код, может поможете в реализации:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Pavia00    24

Железо. 

orange pi pc - оптимизированы для снежения энергопотребления. Поэтому скорости от них ждать не стоит.  

Что касается 64-битных процессоров то при одинаковой частоте они в 2 раза медленее по умножению.  В среднеем по остальным командам на 30-50% медлее чем 32 бита.

Вот если бы вы использовали криптографию тогда выигрышь возможен. 

Fpga сравнимый с pi вам обойдётся в 10 раз дорожи 150-300$. 

Dsp - как правило заточены под радио и звук. В таких платах просто нехватает памяти и производительности.

Нужны специальные видеопроцессоры. А они как правило очень дорогие. 

Есть ещё процессоры для видеорегистраторов. 4 раз быстрее чем CPU - pi. Одна беда close hardware. Через несколько лет возможно появятся как открытые. 

 Так что после pi берём дешовый комп i3 за 250-300 баксов. И если надо то видеокарту.

Или б/у ноутбук, комп можно сэкономить.

 

Код. Вам однозначно надо оптимизировать. Расчёт углов это медленная операция. 

А вот прр GPU - отпишитесь как удалось завести его или нет? 

 

  • Thanks 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
vasiy13    1
Razangann    0
18 часов назад, Pavia00 сказал:

Железо. 

orange pi pc - оптимизированы для снежения энергопотребления. Поэтому скорости от них ждать не стоит.  

Что касается 64-битных процессоров то при одинаковой частоте они в 2 раза медленее по умножению.  В среднеем по остальным командам на 30-50% медлее чем 32 бита.

Вот если бы вы использовали криптографию тогда выигрышь возможен. 

Fpga сравнимый с pi вам обойдётся в 10 раз дорожи 150-300$. 

Dsp - как правило заточены под радио и звук. В таких платах просто нехватает памяти и производительности.

Нужны специальные видеопроцессоры. А они как правило очень дорогие. 

Есть ещё процессоры для видеорегистраторов. 4 раз быстрее чем CPU - pi. Одна беда close hardware. Через несколько лет возможно появятся как открытые. 

 Так что после pi берём дешовый комп i3 за 250-300 баксов. И если надо то видеокарту.

Или б/у ноутбук, комп можно сэкономить.

 

Код. Вам однозначно надо оптимизировать. Расчёт углов это медленная операция. 

А вот прр GPU - отпишитесь как удалось завести его или нет? 

 

Спасибо за краткое описание систем:)

На счет GPU, еще не пробовал, думаю можно сделать пару тестов.

По поводу ПК c i3, у меня сейчас такое реализовано, i3-4160(3.6ГГЦ) тащит 12 камер и тратит всего 6-8% цп. Идея была в разделении обработки каждой камеры отдельным модулем. К одному такому ПК можно подключить и 80 камер, но там уже будет проблема с кабелями, свичами и тд... В идеале думал микрокомпьютер на одну камеру, к нему wifi модуль, обрабатывать само видео на микропк и слать по сети уже готовые данные по wifi.

Что на счет одноплатных от intel? Intel N2930 или какой-нибудь Atom? :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
LexaP    0
В 16.09.2017 at 13:20, Razangann сказал:

Спасибо за краткое описание систем:)

На счет GPU, еще не пробовал, думаю можно сделать пару тестов.

По поводу ПК c i3, у меня сейчас такое реализовано, i3-4160(3.6ГГЦ) тащит 12 камер и тратит всего 6-8% цп. Идея была в разделении обработки каждой камеры отдельным модулем. К одному такому ПК можно подключить и 80 камер, но там уже будет проблема с кабелями, свичами и тд... В идеале думал микрокомпьютер на одну камеру, к нему wifi модуль, обрабатывать само видео на микропк и слать по сети уже готовые данные по wifi.

Что на счет одноплатных от intel? Intel N2930 или какой-нибудь Atom? :)

 

Вопрос.

Вы используете IP камеры?

Сам работаю с ними через RTSP, декодирую через FFMPEG, но при этом только на одну камеру нужно порядка 5% процессора уровня intel i5. Интересно как у Вас получилось с 12 камер...6-8% загрузки ЦП?

PS. Многое еще от камер зависит, т.к были камеры которые на декодирование тратили 1%

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×