Yourjie 2018-12-03 15:05 采纳率: 0%
浏览 1255

python运用多进程无法开启movidius神经棒

我正在做一个项目其中运用了神经棒,我想用运用多进程将神经棒与另外一个程序进行通讯
,但是我发现用多进程的时候,他总是显示无法开启神经棒不知道是什么原因。有没有大神
能帮忙解决下。
主程序如下:
** from move import Move
from hh import Detect
from capture1 import Capture
from multiprocessing import Process, Queue
import time
import cv2
q1 = Queue()
q2 = Queue()

def CAP_DETC(q1,q2):
cap = Capture()
cap_detc = Detect()
while True:
cap.save_img()
img = cv2.imread('images/1.jpg')
time.sleep(0.1)
if q2.get():
p = cap_detc.preprocess_image(img)
m = cap_detc.predict(p)
n = cap_detc.judge(m)
q1.put(n)
def MOVE(q1,q2):
move = Move()
q2.put(1)
while True:
if q1.get() == 1:
move.turn_right()
elif q1.get() == 2:
move.turn_left()
elif q1.get() == 0:
move.go_forward()
elif q1.get() == 3:
move.stop()
move.turn_left()
else :
print 'Something is wrong!'
move.stop()
p1 = Process(target=CAP_DETC,args=(q1,q2))
p2 = Process(target=MOVE,args=(q1,q2))

p1.start()
p2.start()

p1.join()
p2.join()**

在Terminal显示的错误:
Process Process-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "main_2.py", line 13, in CAP_DETC
cap_detc = Detect()
File "/home/pi/robot/hh.py", line 21, in __init
_
self.device.OpenDevice()
File "/usr/local/lib/python2.7/dist-packages/mvnc/mvncapi.py", line 147, in OpenDevice
raise Exception(Status(status))
Exception: mvncStatus.ERROR
^CTraceback (most recent call last):
File "main_2.py", line 46, in
p2.join()
File "/usr/lib/python2.7/multiprocessing/process.py", line 145, in join
res = self._popen.wait(timeout)
File "/usr/lib/python2.7/multiprocessing/forking.py", line 154, in wait
return self.poll(0)
File "/usr/lib/python2.7/multiprocessing/forking.py", line 135, in poll
pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt
Process Process-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "main_2.py", line 27, in MOVE
if q1.get() == 1:
File "/usr/lib/python2.7/multiprocessing/queues.py", line 117, in get
res = self._recv()
KeyboardInterrupt

如果我采用多线程的方式的话,它是可以进行的。一开启进程就不可以了希望有大神帮忙解决下。

  • 写回答

1条回答 默认 最新

  • devmiao 2018-12-03 15:56
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题