これらの3つのデータを最初にダウンロードしてください
アドレスの入力が文字化けしています。どこからダウンロードすればよいかわかりませんか?
データ注釈処理
def parse_json(d):
arr = np.array([
d ['top']、d ['height']、d ['left']、d ['width']、d ['label']
])
arr = arr.astype(int)
return arr
img = cv2.imread( '…/ input / train / 000000.png')
arr = parse_json(train_json ['000000.png'])
plt.figure(figsize =(10、10))
plt.subplot(1、arr.shape [1] + 1、1)
plt.imshow(img)
plt.xticks([]); plt.yticks([])
範囲内のidxの場合(arr.shape [1]):
plt.subplot(1、arr.shape [1] + 1、idx + 2)
plt.imshow(img [arr [0、idx]:arr [0、idx ] + arr [1、idx]、arr [2、idx]:arr [2、idx] + arr [3、idx]])
plt.title(arr [4、idx])
plt.xticks([]); plt.yticks([])
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tEqYN7Qr-1613922909809)(IMG/Task01/19.png)]
好像之前群里看到说标注得怎么弄?这里的标注是要照搬还是自己弄?
#### 2.2.2 OpenCV
OpenCV是一个跨平台的计算机视觉库,最早由Intel开源得来。OpenCV发展的非常早,拥有众多的计算机视觉、数字图像处理和机器视觉等功能。OpenCV在功能上比Pillow更加强大很多,学习成本也高很多。
|效果| 代码 |
|----|-----|
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NbAmrhqN-1613923020320)(IMG/Task02/Pillow读取原图.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br># Opencv默认颜色通道顺序是BRG,转换一下<br>img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) |
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AOnsU1Va-1613923020321)(IMG/Task02/opencv灰度图.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br>img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)<br># 转换为灰度图 |
|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-97oA8IQA-1613923020322)(IMG/Task02/opencv边缘检测.png)] | import cv2<br># 导入Opencv库<br>img = cv2.imread('cat.jpg')<br>img =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)<br># 转换为灰度图<br># Canny边缘检测<br>edges = cv2.Canny(img, 30, 70)<br>cv2.imwrite('canny.jpg', edges) |
这里有个OpenCV视觉库,这个不太懂,感觉是个特别的专业的库,类似于pandas。
2.3.2 常见的数据扩增方法
在常见的数据扩增方法中,一般会从图像颜色、尺寸、形态、空间和像素等角度进行变换。当然不同的数据扩增方法可以自由进行组合,得到更加丰富的数据扩增方法。
以torchvision为例,常见的数据扩增方法包括:
- transforms.CenterCrop 对图片中心进行裁剪
- transforms.ColorJitter 对图像颜色的对比度、饱和度和零度进行变换
- transforms.FiveCrop 对图像四个角和中心进行裁剪得到五分图像
- transforms.Grayscale 对图像进行灰度变换
- transforms.Pad 使用固定值进行像素填充
- transforms.RandomAffine 随机仿射变换
- transforms.RandomCrop 随机区域裁剪
- transforms.RandomHorizontalFlip 随机水平翻转
- transforms.RandomRotation 随机旋转
- transforms.RandomVerticalFlip 随机垂直翻转
这里感觉主要是做视觉处理的!
文档中介绍了代码读取,以及后续操作,主要自己还没完全有时间弄懂,后面再继续学习!