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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题