sergrt / CameraAiDetector

AI-powered detection/notification system for cameras and video files
MIT License
16 stars 2 forks source link

[WARN ] Buffer size exceeds max (500), delay capture #1

Closed Shnyak closed 1 year ago

Shnyak commented 1 year ago

Добрый день.

Вот такая информация в логе. С периодичностью появляется Соединение с источником кадров потеряно

20231011T143813.3601304 [WARN ] Buffer size exceeds max (500), delay capture 20231011T143814.4715502 [ERROR] FrameReader::getFrame() result: false 20231011T143814.4734223 [ERROR] Can't get frame 20231011T143816.9788732 [ERROR] FrameReader::getFrame() result: false 20231011T143816.9818359 [ERROR] Can't get frame 20231011T143819.4887904 [ERROR] FrameReader::getFrame() result: false 20231011T143819.4920862 [ERROR] Can't get frame 20231011T143822.0127039 [ERROR] FrameReader::getFrame() result: false 20231011T143822.0143157 [ERROR] Can't get frame 20231011T143824.5198943 [ERROR] FrameReader::getFrame() result: false 20231011T143824.5358329 [ERROR] Can't get frame 20231011T143827.0430719 [ERROR] FrameReader::getFrame() result: false 20231011T143827.0445544 [ERROR] Can't get frame 20231011T143830.4310698 [WARN ] Buffer size exceeds max (500), delay capture 20231011T143831.5246119 [WARN ] Buffer size exceeds max (500), delay capture 20231011T143832.5996959 [WARN ] Buffer size exceeds max (500), delay capture 20231011T143833.6978213 [WARN ] Buffer size exceeds max (500), delay capture 20231011T143834.7913168 [WARN ] Buffer size exceeds max (500), delay capture

sergrt commented 1 year ago

Проверяйте нагрузку на процессор, похоже, он не справляется с анализом потока с заданными параметрами

Shnyak commented 1 year ago

Pyhton 73.5% отъедает CameraAiDirector 1.4 % CodeProject.AI.Server 0.4 %

Нагрузка на проц не превышает 87%

sergrt commented 1 year ago

Надо посмотреть в консоль Codeproject AI. Если выставить там нужный уровень логов, то там видно, сколько времени занимает обработка кадра. Далее можно прикинуть, сколько кадров в потоке, какой N-ный кадр отправляется на обработку, и станет понятно, успевает ли обрабатываться. Например, по умолчанию отправляется каждый 5ый кадр. Если поток 25к/с, то это означает, что кадр должен обрабатываться максимум за 200 мс, чтобы очередь не переполнялась. Если обработка (понятно, +накладные расходы на пересылку и пр) превышает минимально необходимое время - буфер будет переполняться.

Shnyak commented 1 year ago

Да, я увеличил минимальное значение с 5 до 50, ошибка пропала. Но это так себе выход из ситуации. С учётом что это одна камера всего ) Думаю проц нужно мощнее или видео карту с Cuda?

sergrt commented 1 year ago

CUDA радикально меняет ситуацию, если есть возможность - этот вариант предпочтительнее

Shnyak commented 1 year ago

Такой вопрос, а возможно красную линию выделяющую объект сделать тоньше и как то с фото получать описание определенного объекта?

sergrt commented 1 year ago

Толщина линии задана здесь: https://github.com/sergrt/CameraAiDetector/blob/97ac485dd640b921be91bf9a8fff427ea21a2190/src/Core.cpp#L10 Передать тип объекта можно вот отсюда: https://github.com/sergrt/CameraAiDetector/blob/97ac485dd640b921be91bf9a8fff427ea21a2190/src/Core.cpp#L143 структура Detection содержит строку "класс объекта": https://github.com/sergrt/CameraAiDetector/blob/97ac485dd640b921be91bf9a8fff427ea21a2190/src/Ai.h#L9

sergrt commented 1 year ago

Closed as not an issue