4-mosaic增强实现原理: yolov7中的4-mosaic增强实现原理-CSDN博客
一、9-mosaic增强的总体思想
1、构建3×3的画布
s = img_size
img9 = np.full((s * 3, s * 3, 3), 114, dtype=np.uint8)
2、将9张图片依次填入画布
中间
img = cv2.imread(path)
## 原图的h和w
h0, w0 = img.shape[:2]
r = self.img_size / max(h0, w0) # resize image to img_size
if r != 1:
interp = cv2.INTER_AREA if r < 1 and not self.augment else cv2.INTER_LINEAR
img = cv2.resize(img, (int(w0 * r), int(h0 * r)), interpolation=interp)
## resize后的图片的h和w
h, w = img.shape[:2]
h0, w0 = h, w
c = s, s, s + w, s + h
padx, pady = c[:2]
x1, y1, x2, y2 = [max(x, 0) for x in c]
img9[y1:y2, x1:x2] = img[y1 - pady:, x1 - padx:]
上方
"""
h和w为当前图片的高和宽
"""
c = s, s - h, s + w, s
padx, pady = c[:2]
x1, y1, x2, y2 = [max(x, 0) for x in c]
img9[y1:y2, x1:x2] = img[y1 - pady:, x1 - padx:]
右上方
"""
hp和wp为前一张图片的高和宽
"""
c = s + wp, s - h, s + wp + w, s
padx, pady = c[:2]
x1, y1, x2, y2 = [max(x, 0) for x in c]
img9[y1:y2, x1:x2] &