razão:
(Também pode ser o motivo pelo qual a máscara não foi adicionada)
A chave para resolver: verifique se o formato das fotos no conjunto de dados está correto
O motivo do erro:
Embora todas as fotos do conjunto de dados estejam no formato .jpg, algumas fotos não foram transcodificadas, mas o sufixo foi alterado, portanto, um erro será relatado quando o modelo for carregado.
O motivo do erro é que o nome do sufixo não corresponde ao formato real da imagem, o que faz com que imread seja lido vazio
Você pode usar a ferramenta PIL para converter todas as imagens jpg em imagens jpg para evitar tais problemas.
# 将所有的图片转换成为jpg格式(防止因为图片格式造成的cv2.imread()异常)
import os
from PIL import Image
train_files = os.listdir('datas/bg_images')
for file in train_files:
img = Image.open(f'datas/bg_images/{
file}')
format = img.format # 图像格式
if format != 'JPEG':
print(file)
print(format)
new_img = img.convert("RGB")
new_img.save(f'datas/bg_images/{
file}', 'JPEG')