报错主要情况:
原因分析
不知道为什么,之前根据另一个博客改了报错这一行的代码,也许是改动的原因所以改回来试试
解决方法:
下面是yolov\utils\dataset.py文件中函数update(),报错是最后两行,注释的是最初原代码,下面一行是后来改的代码,也就是报错的一行
def update(self, i, cap, stream):
# Read stream `i` frames in daemon thread
n, f, read = 0, self.frames[i], 1 # frame number, frame array, inference every 'read' frame
while cap.isOpened() and n < f:
n += 1
# _, self.imgs[index] = cap.read()
cap.grab()
if n % read == 0:
success, im = cap.retrieve()
if success:
self.imgs[i] = im
else:
LOGGER.warning('WARNING: Video stream unresponsive, please check your IP camera connection.')
self.imgs[i] = np.zeros_like(self.imgs[i])
cap.open(stream) # re-open stream if signal was lost
#time.sleep(1 / self.fps[i]) # wait time
if (self.fps != 0): time.sleep(1 / self.fps)
把最后两行改回原来:
def update(self, i, cap, stream):
# Read stream `i` frames in daemon thread
n, f, read = 0, self.frames[i], 1 # frame number, frame array, inference every 'read' frame
while cap.isOpened() and n < f:
n += 1
# _, self.imgs[index] = cap.read()
cap.grab()
if n % read == 0:
success, im = cap.retrieve()
if success:
self.imgs[i] = im
else:
LOGGER.warning('WARNING: Video stream unresponsive, please check your IP camera connection.')
self.imgs[i] = np.zeros_like(self.imgs[i])
cap.open(stream) # re-open stream if signal was lost
time.sleep(1 / self.fps[i]) # wait time
#if (self.fps != 0): time.sleep(1 / self.fps)
最后能够顺利调用摄像头运行了
------------------------后来第二次报该错误----------------------------------
第二天在没有任何改动的情况下在同一个位置报了同一个错误,于是我做了上面相反的操作,即把倒数第二行注释,倒数第一行注释掉,又重新运行成功了,不得不承认深度学习是一门玄学。