Python 多处理 - 进程相互减慢进程

问题描述 投票:0回答:0

我有一个正在运行的 PyQt 应用程序,它包含 4 个独立的多进程(不是池)。我有来自相机、状态机、UI 事件处理程序和机器学习推理的视频捕获。

我正在努力尽可能减少我的 ML 推理,所以速度是我的目标。我注意到,当我暂停显示捕获的图像时,这将显着加快我的 ML 推理速度。

显示捕获的图像是发生在我的视频捕获过程和 UI 事件处理过程之间的过程。为什么当我停止图像从视频捕获到 UI 时,如果它们都是单独的进程,我的 ML 推理会加速吗?在同一个应用程序中生成进程时是否有一些开销?

这里是显着减慢一切的代码。

@pyqtSlot(np.ndarray)
def update_image(self, cv_img):
    def convert_cv_qt(cv_img):
        """Convert from an opencv image to QPixmap"""
        h, w = cv_img.shape
        convert_to_Qt_format = QtGui.QImage(cv_img, w, h, w, QtGui.QImage.Format_Grayscale8)
        p = convert_to_Qt_format.scaled(self.vw.disply_width, self.vw.display_height, Qt.KeepAspectRatio)
        return QPixmap.fromImage(p)

    """Updates the image_label with a new opencv image"""
    qt_img = convert_cv_qt(cv_img)
    self.vw.image_label.setPixmap(qt_img)

最大的时间浪费在下面,它将 720x200 图像缩放到 4k 显示器,大约 3000x1000

p = convert_to_Qt_format.scaled(self.vw.disply_width, self.vw.display_height, Qt.KeepAspectRatio)
pyqt multiprocessing
© www.soinside.com 2019 - 2024. All rights reserved.