EfficientNet,VGG16角度检测模型

一.EfficientNet

1.图像预处理

1.1.类别json文件标签格式:

{
    "0": "其他垃圾/一次性快餐盒",
    "1": "其他垃圾/污损塑料",
    "2": "其他垃圾/烟蒂",
    "3": "其他垃圾/牙签"
}

1.2图片生成标签

图片按类放入文件夹,运行other/data_reconstruction_dir2txt.py,每张图片生成label.txt

将包含类别信息的txt数据集类型,转换为文件夹形式,运行data_reconstruction_txt2dir.py,将所有数据放入datasets

1.3.数据归一化

  • 运行Save_path.py得到图像的位置信息

  • 运行mean_std.py得到图像的均值和方差

9417
normMean = [0.92159788 0.90417397 0.89380813]
normStd = [0.15638364 0.1582351  0.15434804]
transforms.Normalize(normMean = [0.92159788 0.90417397 0.89380813], normStd = [0.15638364 0.1582351  0.15434804])
修改mean_std.txt

1.3.标签平滑data_gen.py

修改data_gen.py
# 数据归一化
        img = np.asarray(img, np.float32) / 255.0
        mean = [0.92159788,0.90417397,0.89380813]                                                                                    std = [0.15638364,0.1582351,0.15434804]                                                                                      img[..., 0] -= mean[0]
        img[..., 1] -= mean[1]
        img[..., 2] -= mean[2]
        img[..., 0] /= std[0]
        img[..., 1] /= std[1]
        img[..., 2] /= std[2]

 

2.训练

python run.py \
        --data_url='/data/yyq_process_data/copy_classify_data/datasets' \
        --train_url='./model_snapshots' \
        --deploy_script_path='./deploy_scripts' \
        --num_classes=3 \
        --learning_rate=1e-5 \ 

3.保存为pb

python run.py --mode=save_pb --deploy_script_path='./deploy_scripts' --freeze_weights_file_path='./model_snapshots/weights_002_0.9214.h5' --num_classes=3

4.测试

python run.py --mode=eval --eval_pb_path='./model_snapshots/model' --test_data_url='/data/yyq_process_data/copy_classify_data/datasets/'

以下处理是错的

for file in *.jpg;do convert $file -rotate 90 rotated-$file;done 

生成train.txt和val.txt

 cat yyq.txt |awk -F "_" '{print$NF}'|awk -F ".jpg" '{print$1}' > yyq2.txt
 paste yyq.txt  yyq2.txt >yyq3.txt
sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   yyq3.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' > train.txt

角度检测模型:训练EfficientNet,2019年google出的,据说是分类精度最高的模型

EfficientNetB6输入尺寸:528

效果应该比224尺寸的VGG16好

二.VGG16

https://github.com/lxztju/keras_classfication

1.图像预处理

所有文件名加标签后缀,生成train乱序的list
参考:https://blog.csdn.net/cpongo3/article/details/93624404

rename 's/\.jpg/\_0.jpg/' *

rename 's/\.jpg/\_180.jpg/' *
rename 's/\.jpg/\_180.jpg/' *

rename 's/\.jpg/\_180.jpg/' *
 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值