百度飞桨第二课|数据获取与处理

一、数据集的获取

1.通过飞桨数据集查找

2.利用kaggle查找和下载数据集

3.通过天池、讯飞等平台查找数据集

二、数据处理

图片数据处理流程:

1.图片数据获取

2.图片数据清洗

3.图片数据标注

4.图片数据预处理(标准化、中心化、归一化)

5.图片数据准备(划分训练集,验证集,以及测试集)

6.图片数据增强

       CV常见的数据增强

       · 随机旋转

       · 随机水平或者重直翻转

       · 缩放

       · 剪裁

       · 平移

       · 调整亮度、对比度、饱和度、色差等等

       · 注入噪声

       · 基于生成对抗网络GAN做数搪增强AutoAugment等

纯数据处理流程:

1.感知数据

2.数据清理

3.特征变换

4.特征选择

5.特征抽取

二、数据处理

1.COCO与VOC数据集特征

COCO数据格式

 VOC数据格式

2.数据标注

常见标注工具有labelimg、labelme、PPOCRLabel

3.制作VOC格式与COCO格式数据集并划分

#解压自制数据集
!unzip -oq /home/aistudio/data/data101583/facemask.zip -d work/PaddleDetection/dataset/MaskVOCData
#导入paddlex 
!pip install paddlex
#划分VOC数据集
!paddlex --split_dataset --format VOC --dataset_dir work/PaddleDetection/dataset/MaskVOCData/ --val_value 0.15  --test_value 0.05
%cd work/PaddleDetection/
#制作COCO数据集
#提取文件下img目录所有照片名不要后缀
import pandas as pd 
import os
filelist = os.listdir("dataset/MaskVOCData/JPEGImages")
train_name = []

for file_name in filelist:
    name, point ,end =file_name.partition('.')
    train_name.append(name)

df = pd.DataFrame(train_name) 
df.head(8)

df.to_csv('./train_all.txt', sep='\t', index=None,header=None)
!mkdir -p dataset/MaskVOCData/ImageSets/Main
!mv train_all.txt dataset/MaskVOCData/ImageSets
!mv dataset/MaskVOCData/labels.txt dataset/MaskVOCData/label_list.txt
!cp dataset/MaskVOCData/label_list.txt dataset/MaskVOCData/ImageSets/
#备份VOC 
!cp -r dataset/MaskVOCData  /home/aistudio/
!python tools/x2coco.py \
        --dataset_type voc \
        --voc_anno_dir dataset/MaskVOCData/Annotations \
        --voc_anno_list dataset/MaskVOCData/ImageSets/train_all.txt \
        --voc_label_list dataset/MaskVOCData/ImageSets/label_list.txt \
        --voc_out_name ./dataset/annotations.json
!mv dataset/MaskVOCData dataset/MaskCOCOData
!mv ../../MaskVOCData dataset
!mkdir dataset/MaskCOCOData/annotations
!mv dataset/annotations.json  dataset/MaskCOCOData/annotations
!rm dataset/MaskCOCOData/train_list.txt
!rm dataset/MaskCOCOData/val_list.txt
!rm dataset/MaskCOCOData/label_list.txt
!rm dataset/MaskCOCOData/test_list.txt
!rm -r dataset/MaskCOCOData/Annotations
!rm -r dataset/MaskCOCOData/ImageSets
#划分COCO数据集
!paddlex --split_dataset --format COCO --dataset_dir dataset/MaskCOCOData/annotations --val_value 0.15  --test_value 0.05

三、数据处理方法

1.数据增强

#图像处理示例  目标视野里比较多重叠,或者有点模糊的适用 
path='dataset/MaskCOCOData/JPEGImages/maksssksksss443.png'
img = Image.open(path)
plt.imshow(img)        
plt.show()  


#锐化
img = img.filter(ImageFilter.SHARPEN)
img = img.filter(ImageFilter.SHARPEN)
plt.imshow(img)        
plt.show()          

#亮度变换
bright_enhancer = ImageEnhance.Brightness(img)    # 传入调整系数亮度
img = bright_enhancer.enhance(1.6)
plt.imshow(img)        
plt.show() 

#提高对比度
contrast_enhancer = ImageEnhance.Contrast(img)    # 传入调整系数对比度
img = contrast_enhancer.enhance(1.9)
plt.imshow(img)        
plt.show() 

四、模型训练与评估

import matplotlib
matplotlib.use('Agg') 
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
%matplotlib inline
import warnings
warnings.filterwarnings("ignore")

#num_classes有些模型需要加1 比如faster_rcnn
num_classes = len(train_dataset.labels)

model = pdx.det.PPYOLO(num_classes=num_classes, )

model.train(
    num_epochs=70,
    train_dataset=train_dataset,
    train_batch_size=16,
    eval_dataset=eval_dataset,
    learning_rate=3e-5,
    warmup_steps=90,
    warmup_start_lr=0.0,
    save_interval_epochs=7,
    lr_decay_epochs=[42, 70],
    save_dir='output/PPYOLO',
    use_vdl=True)
!mkdir ./output

!unzip -oq /home/aistudio/data/data101583/PPYOLO_YES.zip  -d ./output
!unzip -oq /home/aistudio/data/data101583/PPYOLO_ALL.zip  -d ./output
!unzip -oq /home/aistudio/data/data101583/PPYOLO_NO.zip   -d ./output


!mv -f output/home/aistudio/PPYOLO_ALL  output
!mv -f output/home/aistudio/PPYOLO_YES  output
!rm -r output/home/

五、模型推理预测

使用模型进行预测,同时使用pdx.det.visualize将结果可视化,可视化结果将保存到work/PaddleDetection/output/PPYOLO/vdl_log下,载入模型推理保存图片至work/PaddleDetection/output/PPYOLO/img下。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值