Pull to refresh
63
0
Андрей @xaoc80

Разработчик программного обеспечения

Send message
Все так, только не совсем понятно, как обеспечить передачу указателя памяти из vaapi или vdpau/dxva в opencl да еще и каким-то унифицированным способом для всех этих технологий. Плюс, допустим конвертация из NV12 в RGB при помощи opencl может и не дать прироста. Было бы интересно попробовать, кстати.
uint8_t *buff = new uint8_t(1920*3*2);

Так ли необходимо каждый раз буфер выделять?
Возможно, с точки зрения скорости, стоит выделить один раз и сделать его членом класса.
void SaveFrame(uint8_t * f1, uint8_t * f2, int iFrame)

f1, f2 не меняются в коде? Можно сделать их const это позволит избежать некоторых ошибок, тем более вы с памятью работаете
char szFilename[32];


Такие вещи обычно именуются константой, хотя бы так: const int MAX_BUFF_SIZE = 32
Ну и 32 явно может не хватить для файла с длинным названием (например путь до него)
fwrite(buff, 1, 1920 * 3 * 2, pFile);

Обратите внимание, что функция fwrite возвращает некоторое число, которое тоже надо обрабатывать, так как не всегда может получится записать ровно столько байт сколько задумано
if (pFile == NULL)
return;


Возможно, здесь стоит возвращать код ошибки:

if (pFile == NULL)
return S_ERROR;

Так как вы не узнаете иначе про ошибку
avformat_open_input(&input_ctx, filename, NULL, NULL

Стоит добавить, что все функции ffmpeg API стоит проверять на возвращаемое значение и обрабатывать ошибки, так как в противном случае может вылезти сегфолт в самом неожиданном месте и вы долго будете искать почему так.
Да в общем-то ни чем не плохо. Я писал нечто похожее для проекта распознавания лиц и там нужен был BGR, так как использовался opencv и каскады хаара.

В состав ffmpeg входит библиотека swscale, которая позволяет конвертировать в разные цветовые пространства. Все функции там оптимизированы с использованием SSE

Тут согласен, больше он про статью писал

Alan Lockett из университета Техаса вот здесь довольно критично написал про этот метод
В 2001 году примерно увлекся этой интересной темой, когда любимая игрушка перестала запускаться с диска. Что бы перенести ее на жесткий диск вооружился IDA, soft ice и погрузился в исследования. За пару дней написал патч. Как же сложно тогда было найти информацию, которую собирал буквально по крупицам. Использовал frog ice что бы обмануть защиту от отладки. Нашел плагин, который позволял во время отладки слушать winamp. Вот были времена.
PS
Диск, кстати был официально куплен, лицензионный. Из-за порчи поверхности не читались данные, точнее всего лишь один файл с видео. В итоге перенес все, заменил злополучный файл.
Пользуясь случаем хочу спросить насчет предобученных моделей Intel Zoo. У меня наблюдалось некоторое ускорение int8 моделей по сравнению с fp32. Там есть какие-то оптимизации для CPU вроде SIMD или у меня наблюдался эффект ускорения, связанный с уменьшением модели и более эффективным использованием кэша? На каких датасетах эти модели обучали? Можно ли взять модель, обучить на своем, а потом при помощи Model Optimizer сделать оптимизированную модель и запустить на IE?
Я для своих экспериментов просто использовал вот этот проект github.com/kwotsin/TensorFlow-ENet
Все работает из коробки с CamVid, при этом разрешение картинки можно задать в настройках (я потратил минут 20 на все), можно скачать предобученную модель.
Можно использовть свой датасет.

Но, если хотите высокий FPS возьмите модель Road Segmentation из openVino и используйте ее, она хорошо обучена и очень быстрая (у меня на одном ядре I7 работает в реалтайме, правда с Inference Engine). Не знаю, работает ли IE на вашей платформе, но если работает, то 3-4 fps должна выдать. Эта модель больше подходит для вашей задачи. Крмое этого, можете в модели уменьшить число классов до 2-х, этим вы сократите расходы времени CPU на обработку не нужных вам feature maps и тогда сеть будет работать быстрее. В репозитории OpenVino Zoo есть и варианты с int8 моделями, которые на CPU работают еще быстрее.
Я в воскресенье ехал в Москву по одной из главной федеральных трасс. Едва не оставили все колеса за 100 км от Москвы, а здесь и транспортный поток и плотность населения высокие.
Я не один такой тут, оказывается) Из-за загрузки на работе не было времени пройти хороший курс. Но все-таки лучше пройти, так как они систематизируют знания. Мне нравится от Яндекса.
На хабре не принято спрашивать за что минус) Но вот просто интересно, разбор старого жесткого диска с целью извлечения магнитов это какой-то харассмент?)
Подумал, посчитал и выкинул

Я из старых дисков еще неодимовые магниты вытаскивал. Они очень мощные, правда в быту почти бесполезны. Но как-то рука не поднялась их выкинуть.
Хотелось бы подробностей в части выборы модели Resnet50, декодера. Это, кажется, не самая быстрая сеть. Вы пробовали MobileNet, к примеру, в качестве энкодера? Есть какие-то результаты тестов, соображений?

Information

Rating
5,207-th
Location
Россия
Date of birth
Registered
Activity