Closed lightchaser0 closed 1 week ago
因为想使用新版数据集训练,Train_textBPN.py文件修改如下 trainset = TotalText( data_root='data/Total-Text', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) ) 然后根据total-text下readme调整了数据集路径(Total-Text/gt/Polygon/Test,Total-Text/gt/Polygon/Train) 训练数据集的注释:test集的注释使用的是https://github.com/cs-chan/Total-Text-Dataset/tree/master/Groundtruth/Text的Legacy version版本,train集的注释使用的是Latest refined version,(举例:gt/polygon/Train/gt_img11.mat),也就是我的训练集的注释使用的是最新版本,没有修改其他位置的代码。 训练执行代码如下:CUDA_LAUNCH_BLOCKING=1 python3 train_textBPN.py --exp_name Totaltext --net resnet50 --scale 1 --max_epoch 660 --batch_size 12 --gpu 0 --input_size 640 --optim Adam --lr 0.001 --num_workers 20 --viz --viz_freq 80 使用该代码跑total-text-mat(dataset/TotalText)下的数据集是没问题的,也就是Legacy version。 trainset = TotalText_New( data_root='data/total-text-mat', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) ) 即上面这个版本是正常运行的。 但是改用新数据集,即Trainset(TotalText_New)报如下错误 (在执行数据增强时,RandomCropFlip类中的call函数中ppi = Polygon(polygon.points).buffer(0)这一行代码ValueError: A linearring requires at least 4 coordinates)
trainset = TotalText( data_root='data/Total-Text', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) )
CUDA_LAUNCH_BLOCKING=1 python3 train_textBPN.py --exp_name Totaltext --net resnet50 --scale 1 --max_epoch 660 --batch_size 12 --gpu 0 --input_size 640 --optim Adam --lr 0.001 --num_workers 20 --viz --viz_freq 80
trainset = TotalText_New( data_root='data/total-text-mat', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) )
因为想使用新版数据集训练,Train_textBPN.py文件修改如下
trainset = TotalText( data_root='data/Total-Text', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) )
然后根据total-text下readme调整了数据集路径(Total-Text/gt/Polygon/Test,Total-Text/gt/Polygon/Train) 训练数据集的注释:test集的注释使用的是https://github.com/cs-chan/Total-Text-Dataset/tree/master/Groundtruth/Text的Legacy version版本,train集的注释使用的是Latest refined version,(举例:gt/polygon/Train/gt_img11.mat),也就是我的训练集的注释使用的是最新版本,没有修改其他位置的代码。 训练执行代码如下:CUDA_LAUNCH_BLOCKING=1 python3 train_textBPN.py --exp_name Totaltext --net resnet50 --scale 1 --max_epoch 660 --batch_size 12 --gpu 0 --input_size 640 --optim Adam --lr 0.001 --num_workers 20 --viz --viz_freq 80
使用该代码跑total-text-mat(dataset/TotalText)下的数据集是没问题的,也就是Legacy version。trainset = TotalText_New( data_root='data/total-text-mat', ignore_list=None, is_training=True, load_memory=cfg.load_memory, transform=Augmentation(size=cfg.input_size, mean=cfg.means, std=cfg.stds) )
即上面这个版本是正常运行的。 但是改用新数据集,即Trainset(TotalText_New)报如下错误 (在执行数据增强时,RandomCropFlip类中的call函数中ppi = Polygon(polygon.points).buffer(0)这一行代码ValueError: A linearring requires at least 4 coordinates)