Unverified 提交 3c3f8fbd authored 作者: Glenn Jocher's avatar Glenn Jocher 提交者: GitHub

Improved BGR2RGB speeds (#3880)

* Update BGR2RGB ops * speed improvements * cleanup
上级 9e8fb9fd
...@@ -259,7 +259,7 @@ class AutoShape(nn.Module): ...@@ -259,7 +259,7 @@ class AutoShape(nn.Module):
files.append(Path(f).with_suffix('.jpg').name) files.append(Path(f).with_suffix('.jpg').name)
if im.shape[0] < 5: # image in CHW if im.shape[0] < 5: # image in CHW
im = im.transpose((1, 2, 0)) # reverse dataloader .transpose(2, 0, 1) im = im.transpose((1, 2, 0)) # reverse dataloader .transpose(2, 0, 1)
im = im[:, :, :3] if im.ndim == 3 else np.tile(im[:, :, None], 3) # enforce 3ch input im = im[..., :3] if im.ndim == 3 else np.tile(im[..., None], 3) # enforce 3ch input
s = im.shape[:2] # HWC s = im.shape[:2] # HWC
shape0.append(s) # image shape shape0.append(s) # image shape
g = (size / max(s)) # gain g = (size / max(s)) # gain
......
...@@ -218,7 +218,7 @@ class LoadImages: # for inference ...@@ -218,7 +218,7 @@ class LoadImages: # for inference
img = letterbox(img0, self.img_size, stride=self.stride)[0] img = letterbox(img0, self.img_size, stride=self.stride)[0]
# Convert # Convert
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB and HWC to CHW img = img.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
img = np.ascontiguousarray(img) img = np.ascontiguousarray(img)
return path, img, img0, self.cap return path, img, img0, self.cap
...@@ -264,7 +264,7 @@ class LoadWebcam: # for inference ...@@ -264,7 +264,7 @@ class LoadWebcam: # for inference
img = letterbox(img0, self.img_size, stride=self.stride)[0] img = letterbox(img0, self.img_size, stride=self.stride)[0]
# Convert # Convert
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB and HWC to CHW img = img.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
img = np.ascontiguousarray(img) img = np.ascontiguousarray(img)
return img_path, img, img0, None return img_path, img, img0, None
...@@ -345,7 +345,7 @@ class LoadStreams: # multiple IP or RTSP cameras ...@@ -345,7 +345,7 @@ class LoadStreams: # multiple IP or RTSP cameras
img = np.stack(img, 0) img = np.stack(img, 0)
# Convert # Convert
img = img[:, :, :, ::-1].transpose(0, 3, 1, 2) # BGR to RGB and BHWC to BCHW img = img[..., ::-1].transpose((0, 3, 1, 2)) # BGR to RGB, BHWC to BCHW
img = np.ascontiguousarray(img) img = np.ascontiguousarray(img)
return self.sources, img, img0, None return self.sources, img, img0, None
...@@ -526,7 +526,6 @@ class LoadImagesAndLabels(Dataset): # for training/testing ...@@ -526,7 +526,6 @@ class LoadImagesAndLabels(Dataset): # for training/testing
if random.random() < hyp['mixup']: if random.random() < hyp['mixup']:
img, labels = mixup(img, labels, *load_mosaic(self, random.randint(0, self.n - 1))) img, labels = mixup(img, labels, *load_mosaic(self, random.randint(0, self.n - 1)))
else: else:
# Load image # Load image
img, (h0, w0), (h, w) = load_image(self, index) img, (h0, w0), (h, w) = load_image(self, index)
...@@ -579,7 +578,7 @@ class LoadImagesAndLabels(Dataset): # for training/testing ...@@ -579,7 +578,7 @@ class LoadImagesAndLabels(Dataset): # for training/testing
labels_out[:, 1:] = torch.from_numpy(labels) labels_out[:, 1:] = torch.from_numpy(labels)
# Convert # Convert
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3 x img_height x img_width img = img.transpose((2, 0, 1))[::-1] # HWC to CHW, BGR to RGB
img = np.ascontiguousarray(img) img = np.ascontiguousarray(img)
return torch.from_numpy(img), labels_out, self.img_files[index], shapes return torch.from_numpy(img), labels_out, self.img_files[index], shapes
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论