Jetson Nano + Cuda сжатие изображений, C++, OpenCV

10 000 руб. за проект
09 апреля 2020, 13:31 • 4 отклика • 50 просмотров
Первый уровень - Необходимо написать C++ программу, производящую сжатие изображений в формат JPEG. Простое консольное приложение, не принимающее параметров. Средствами OpenCV создаёт RGB(BGR) изображение размером 1920х1080, рисует на нём прямоугольник и самое важное – средствами GPU производит сжатие этого изображения в JPEG формат, при этом уменьшает раз-мер до 1024х768, уровень сжатия JPEG – 70. Результирующий файл сохраняется C++ программой в файл result.jpg. Сохранение производить через std::ofstream (т.е. нужно гарантировать наличие до-ступа к сжатым данным в памяти устройства)
Второй уровень – Доработать первую программу, чтобы она получала изображения от USB web-камеры и сохраняла их в JPEG, при этом имя файла должно соответствовать timestamp кадра. На каждом кадре через OpenCV нарисовать небольшой красный прямоугольник (т.е. гарантировать доступ к несжатому изображению), а средствами CUDA изменить размер и сжать в JPEG.
Третий уровень – обеспечить сжатие в H.264 аппаратными средствами Jetson (не Cuda, выделенный чип). Так же получать картинку от usb-камеры, рисовать прямоугольник, сжимать в поток H.264. Са-мое важное – C++ программа должна получить доступ к сжатым H.264 кадрам и самостоятельно за-писывать их в .h264 файл (просто последовательно пишутся кадры в один файл без каких-либо осо-бых заголовков) через std::ofstream. Допускается использовать GStreamer через Opencv::VideoWriter, если вы сможете получить доступ к сжатым кадрам h264
При необходимости мы предоставим доступ к Jetson Nano через SSH.
Результат должен быть оформлен в виде .tar.gz архива с исходными кодами и CMakeLists.txt, сборка должна быть через CMake. В архиве должна быть инструкция по сборке, в которой также указать дополнительные зависимости, которые пришлось установить для работы.