Avoid inplace modifying`imgs` in `LoadStreams` (#5850)

When OpenCV retrieving image fail, original code would modify source images **inplace**, which may result in plotting bounding boxes on a black image. That is, before inference, source image `im0s[i]` is OK, but after inference before `Process predictions`,  `im0s[i]` may have been changed.
This commit is contained in:
Yu Zhang 2021-12-02 17:51:19 +08:00 committed by GitHub
parent bc484579d7
commit e8f8f2b903
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 1 additions and 1 deletions

View File

@ -337,7 +337,7 @@ class LoadStreams:
self.imgs[i] = im self.imgs[i] = im
else: else:
LOGGER.warning('WARNING: Video stream unresponsive, please check your IP camera connection.') LOGGER.warning('WARNING: Video stream unresponsive, please check your IP camera connection.')
self.imgs[i] *= 0 self.imgs[i] = np.zeros_like(self.imgs[i])
cap.open(stream) # re-open stream if signal was lost cap.open(stream) # re-open stream if signal was lost
time.sleep(1 / self.fps[i]) # wait time time.sleep(1 / self.fps[i]) # wait time