2

我在一个项目中使用了 Mask-RCNN 和 Tensorflow。我过去完成了许多培训。

在最近的一个中,我发现张量板中的损失曲线具有很大的冲击幅度。我在小范围内更改了一些设置,例如 batch_size,但它没用(在我看来)。

发现是第一次用.png来训练,这次训练之前用.jpg,可能这里有问题?</p>

先感谢您。

4

1 回答 1

1

当然,png 和 jpeg 格式是有区别的。PNG支持无损数据压缩,而JPEG始终使用有损压缩。因此,如果我们以不同的格式保存同一张图像,它的数值可能会有所不同。

例子:

我们假设以下 png 图像(确保下载它,以重现此示例)。我们将此图像保存为 jpg,然后将 png 图像与 jpg 图像进行比较:

https://upload.wikimedia.org/wikipedia/commons/6/6c/Belton_Garden.png 示例png

代码:

import cv2
import numpy as np 

img = cv2.imread('./Belton_Garden.png',  -1)

img_png = img 
cv2.imwrite('./Belton_Garden.jpg', img)

img_jpg = cv2.imread('./Belton_Garden.jpg', -1)

diff = img_png - img_jpg
cv2.imwrite('diff.png', diff)
print('diff', diff)

png 和 jpg 图像的区别是这样的:

差异

结论:

不同的图像格式(jpg、png)会影响Mask-RCNN的训练结果吗?

如您所见,它可能会影响您的结果。因此,最好与图像格式保持一致,以消除此错误源。

于 2019-12-06T08:29:44.600 回答