Вход камеры в режиме реального времени для Джулии-Ланг - PullRequest
0 голосов
/ 31 января 2019

TLDR: Как я могу получить доступ к веб-камере с малой задержкой и низким быстродействием в Джулии?

edit: Я также разместил это на julia devs forum

Я новичок в Юлии.Я заинтересован в обработке видеопотока с подключенной веб-камеры и вижу, какую производительность я могу добиться от Джулии.

Я работаю в Linux Ubuntu, 16.04.

Единственный способЯ обнаружил, что вход для веб-камеры через video4linux, через VideoIO , который работает на моей системе.Однако видео имеет недопустимую задержку до 4 секунд.Я предполагаю, что это дается буферизацией кадров драйвером и / или libav (или это ffmpeg, я не знаю).С любой камерой api, достойной своего имени, я смогу получить доступ к последнему полученному кадру камеры ... или, по крайней мере, установить размер очереди, из которой я получаю кадры.Кажется, что нет такой опции в VideoIO, или, может быть, я ее упускаю.

Для меня действительно важно иметь возможность продемонстрировать Джулию как высокопроизводительный язык для нетехников ... так что это отставание разрушит демонстрацию, которую я надеюсь собрать.

edit: вот часть кода, который у меня есть:

module myViewCam
export myView

import VideoIO, ImageView;

function myView() 
        camera = VideoIO.opencamera();
        buf = VideoIO.read(camera);
        guidict = ImageView.imshow(buf);
        while !eof(camera)
            VideoIO.read!(camera, buf);
            ImageView.imshow(guidict["gui"]["canvas"], buf);
            sleep(0.00001);
        end
    end
end

Предполагается, что выше приведено содержимое myViewCam.jl в приглашении Julia («REPL»), я набираю:

include("myViewCam.jl");
myViewCam.myView();

Обратите внимание, что это исправление для функции "VideoIO.viewcam ()", которая, кажется, не работает "из коробки".

В моей системе это вызывает поток Juliaпримерно до 100% использования процессора, в начале видеопотока задержка составляет около 4 секунд, но это с течением времени выравнивается, пока не достигнет задержки примерно 0,5 секунды.Очевидно, есть какая-то очередь, откуда появляются кадры.

...