Обмен изображениями и данными между двумя процессами Python, работающими одновременно с многопроцессорностью - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время я работаю над проектом Python.Речь идет об обнаружении изображений.Я должен к процессам, которые работают одновременно с многопроцессорностью.Первая функция связывается с фрейм-граббером и выполняет некоторую обработку изображения.Вторая функция связывается с нейронной сетью, которая выполняет фактическое обнаружение изображения.Для второй функции требуется изображение, захваченное в первой функции для обнаружения.Затем вторая функция должна предоставлять результаты, которые используются первой функцией для рисования прямоугольников в видеопотоке (где обнаружены объекты).

Код выглядит примерно так:

import multiprocessing
import cv2
import json

def fun1():
while True:
# Shows video-stream, does image editing, grabs frames
# and stores them in an external folder
# Accesses the result for drawing rectangles from the
# .json file

def fun2():
while True:
# Uses frames from the external folder
# does image-detection, saves result to .json file

if __name__ == "__main__":
s = Process(target=fun1)
r = Process(target=fun2)
s.start()
r.start()
s.join()
r.join()

Как видите, оба процесса работают в бесконечном цикле while.На данный момент я сохраняю изображения, созданные в fun1, в папке, где fun2 может получить к ним доступ.Результаты из нейронной сети из fun2 сохраняются в файле .json, где fun1 может получить к ним доступ.

И результат, и изображение меняются при каждой итерации.Мне было интересно, есть ли способ отправить текущее изображение напрямую в fun2 и отправить результат из fun2 в fun1 без использования внешнего файла .json.Есть ли способ связаться напрямую?

Я надеюсь, что смогу объяснить мою проблему по понятным причинам.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...