LINUX.ORG.RU

Буфер кадров с камеры в python

 , , , ,


0

3

Имеется скрипт для распознавания человека в кадре и автоматической записи видео. Работает на rpi3 и т.к. для обработки нейросетью каждого кадра мощности не хватает, то кадры подаются в отдельный поток через каждые 2 секунды (+ время на обработку кадра), соответственно запись начинается с момента когда человек находится уже посередине коридора. После пропадания человека из поля зрения камеры записывается еще 100 кадров.

Вопрос в том, как сделать буфер кадров, что бы при обнаружении человека запись начиналась с кадров в буфере, что бы сохранялись записи с момента появления человека в поле зрения камеры? Если можно то с примером, мну не программист.

Спасибо!

Просто 1 процесс получает данные с буфера камеры и пишет ВСЕ. 2-й процесс определяет КОГДА появился и исчез человек. И если его небыло удаляет старые файлы.

dem ★★
()
Ответ на: комментарий от lucky_guy

Так пиши локально и переноси на NFS только те файлы что надо. Памяти у тебя мало, а тоб писал на какойнибудь диск в памяти. Тут даже ведь сетка будет потреблять все время. У камеры тоже ресурс забрать нельзя - она просто потеряет кадры.

dem ★★
()
Ответ на: комментарий от lucky_guy

Как насчёт кэшировать в памяти последние н минут? Только cstringio берите наверно (в 3 это io.BytesIO).

anonymous
()
Ответ на: комментарий от anonymous

Та не. Проще будет (и компактнее) читать с камеры каким нибудь тулом который жрет меньше памяти чем python и писать в tmpfs какойнибудь который может жить in memory, а потом уже сеткой на питоне читать и поехали... Прочел - нашел человека пометил 2 минуты спереди. (а все что до 2-х минут стереть) потерял человека - ждешь сто кадров и если он пропал - запускаешь процесс переноса на NFS и стираешь. Читаешь следующую партию...

dem ★★
()

соответственно запись начинается с момента когда человек находится уже посередине коридора

Создаешь collections.deque с maxlen нужного размера и скидываешь туда все кадры. Потом добавляешь эти кадры к записи и все.

KillTheCat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.