Python скрипт для Raspberry Pi 5
спасибо
Ваша проблема це сама Raspberry))
Ця плата призначена для того, щоб створювати проблеми, де їх не повинно бути з usb і так далі.
Вся справа в тому, що в цих платах Лінукс не головна система, там править вбудована Rtos, яка регулює навантаження на процесор, знижує його частоту і т.д.
Ви не отримаєте контрольовану систему.
Вам варто спробувати інші плати, де Лінукс головна система.
Наприклад - Nano pi Neo.
смените плату. любая обработка изображение для расбери это ресурсоемко. она не предназначена для этого.
В додатку є скріншот - ресурси взагалі майже не задіяні під час виконання скрипта
это ничего не значит. не одним процессором обходится работа компа. есть еще шина памяти, сама память. пропускная способность. есть масса примеров когда загрузка проца 30-50% а комп не может пошевелиться. у меня тоже есть расбери и любая обработка изображений на нем это долго. а у вас видеоряд.
для проверки - попробуйте реализовать это на обычном компе и вы удивитесь.
разные процессора. на расбери стоит risc , а в дохлом ноуте CISC
поэтому дохлый ноут с изображениями справляеться легко в отличии от арм архитектуры. арм просто тупо под это не заточен. у него нет таких команд для обработки масивов что нужно для обработки изображений.для решения своего вопроса вы можете взять любой неттоп за 2-4к грн (на аукционах запросто можно купить неттоп за 2-3 тыщ с хорошим процом и памятью ддр4)
именно по этой причине к арм процессору добавляют еще гпу по типу manli что бы он обрабатывал графику для дисплеев и в т.ч. раскодировка видео
кстати - проверьте на тротлинг. это довольно часто у расбери. может в этом проблема.
з цим все норм
знайшов методом виключень, що код довго виконуэться саме із за трекінгу цього типу
tracker = cv2.TrackerCSRT_create()
трекінг - це ж великі розрахунки з матрицями, чому тоді RAM та CPU показники не ростуть навіть до середніх значень
а кто вам сказал что этот показометр работает адекватно? это такая же программа которая там что то себе вычисляет (причем на общих началах) эмпирическую цифру. в процессоре нет такой ячейки где сидит загрузка проца
сделайте такую штуку.
перед cv2.TrackerCSRT_create() запомните отметку времени. и после. вычислите разницу. и посмотрите сколько времени занимает 1 кадр. ну дальше уже посчитаете
и второе - выключите иксы для начала
тут не зовсім розумію.
я спробував не виводити взагалі
cv2.imshow('frame',frame) - закоментив
але результат майже не змінився по часу обробки
ви за це маєте на увазі?
start_time = time.time() # Начало измерения времени
в начало цикла
end_time = time.time() # Конец измерения времени elapsed_time = end_time - start_time # Разница времени print(f"Время выполнения цикла: {elapsed_time:.6f} секунд")
в конец. узнаете время. а там посчитаете
вимкнув взагалі графічну оболочку, але результат змінився з 47 сек до 45 сек
що вцілому не сильно змінило ситуацію (на дряхлому ноуті виконується за 17 сек)
но вы конечно смелый человек. поставили иксы и хотите чтобы работало. делайте все на минималках (типа для начала отключите иксы) и тогда может счастье вам улыбнеться.
Колись ще давно була статья як распбері працює , ознайомтесь з нею https://habr.com/ru/articles/440584/