在做手势图像分类的时候,遇到了数据集不均衡的问题。于是对部分图像少的类别进行了数据集扩充。
具体如何扩充的参考了这位博主的方法:
数据集太少怎么办?数据集扩充方法
后续继续对数据集进行训练的时候就遇到了如题目所示的问题:cv2.error: (-215:Assertion failed) !ssize.empty() in function ‘resize‘
第一次遇到这种问题确实不太懂为什么,我也检查了我的路径、文件,发现都没有问题,全程没有出现中文路径或者中文命名。
应该是哪张图片出现了问题,但我的训练集有两万多张图片,要怎么去找有问题的图片也是蛮困难的。
最后我的解决办法:
import os
import cv2
filpath='F:/A_DG_Static/v_3/validv_3'
image_list = os.listdir(filpath) # 读取文件夹中所有的图片
print(image_list)
i=0
for picname in image_list:
i += 1
img = cv2.imread((filpath + '/' + picname), 0)
try:
img = cv2.resize(img, (64, 64))
print(i, picname) #打印当前成功处理的图片数量图片名称
except :
print(picname) #打印出有问题的图片名
break
最后打印出那张图片的名字就是有问题的图片了。
参考了这位博主的办法:
error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize’报错的原因
最后成功找到了有问题的两张图片,把图片删除后就能成功训练了。
虽然也不是我自己想的办法,但也还是记录一下,希望能帮到大家。