несколькими параллельно работающими модулями? Программа выполняет обработку изображений, поступающих с устройства, хотелось бы максимально задействовать процессор, ну и оптимально, сейчас у меня получается что некоторые процессы грузят свой поток на 100%, а там где крутится интерфейс нагрузки нет
import multiprocessing as mp
не уверен что вообще этот подход к структуре оптимальный
А какой сейчас подход? Как выглядит архитектура?
Три функции, общее пространство имен через mp.manager для обмена данными, в одной функции в бесконечном цикле получение картинок и запись в глобальную переменную, в другой - обработка новых изображений так же в бесконечном цикле, в третьей- интрфейс на tkinter, который меняет параметры в общем неймспейсе в реальном времени
обработчик картинок не всегда успевает за входящими кадрами, иногда приходится пропускать
А они откуда входят?
Можно использовать мультипроцессинговую очередь
с камеры типа kinect
Еще можно варьировать число обработчиков взависимости от нагрузки
благодарю, пойду гуглить
Тут особо гуглить нечего, в целом подход такой: периодически в основном процессе проверяешь, сколько элементов в очереди, и если больше некоторого трешхолда (который желательно вынести в конфиг) — создается еще один процесс. Только стоит установить макс лимит на число процессов.
На go перейти)
Кстати, результат обработки надо в реалтайме показывать в интерфейсе?
супертупой ответ
opencv
Не совсем, надо получить некоторые данные в виде координат из облака точек, отображать нужно только при отладке
она там кое-где используется
А результат обработки куда-то записывается?
Нет, уходит через сокет
Обсуждают сегодня