本项目基于paddlex实现目标检测

一、项目背景

本项目基于paddlex实现目标检测。

效果如图

在这里插入图片描述

下载版本小于2.0.0的paddlex

!pip install "paddlex<2.0.0" -i https://mirror.baidu.com/pypi/simple

定义参数

#config
val_radio=0.2
train_list='data/train_list.txt'
val_list='data/val_list.txt'
label_list='data/labels.txt'
data_dir='data'
num_epochs=20
train_batch_size=16
learning_rate=0.000125
lr_decay_epochs=[210, 240]
save_interval_epochs=10

载入所需库

import paddlex as pdx
from paddlex.det import transforms
import linecache  
import random

二、数据集介绍

本项目使用的数据集为VOC2012数据集,其中标签有aeroplane,bicycle,bird,boat,bottle,bus,car,cat,chair,cow,diningtable,dog,horse,motorbike,person,pottedplant,sheep,sofa,train,tvmonitor。

解压数据集并将数据集放入data目录

!unzip /home/aistudio/data/data105732/VOC2012.zip
!mv Annotations data
!mv JPEGImages data
!mv train_list.txt data
!mv labels.txt data

将数据集划分为训练集和验证集

!paddlex --split_dataset --format VOC --dataset_dir data --val_value 0.2

对数据预处理

train_transforms = transforms.Compose([
    transforms.MixupImage(mixup_epoch=250),
    transforms.RandomDistort(),
    transforms.RandomExpand(),
    transforms.RandomCrop(),
    transforms.Resize(target_size=608, interp='RANDOM'),
    transforms.RandomHorizontalFlip(),
    transforms.Normalize(),
])
eval_transforms = transforms.Compose([
    transforms.Resize(target_size=608, interp='CUBIC'),
    transforms.Normalize(),
])

数据载入

train_dataset = pdx.datasets.VOCDetection(
    data_dir=data_dir,
    file_list=train_list,
    label_list=label_list,
    transforms=train_transforms,
    shuffle=True)
eval_dataset = pdx.datasets.VOCDetection(
    data_dir=data_dir,
    file_list=val_list,
    label_list=label_list,
    transforms=eval_transforms)

三、模型组网和训练

num_classes = len(train_dataset.labels)
model = pdx.det.YOLOv3(num_classes=num_classes, backbone='DarkNet53')
model.train(
    num_epochs=num_epochs,
    train_dataset=train_dataset,
    train_batch_size=train_batch_size,
    eval_dataset=eval_dataset,
    learning_rate=learning_rate,
    lr_decay_epochs=lr_decay_epochs,
    save_interval_epochs=save_interval_epochs,
    save_dir='output/yolov3_darknet53',
    use_vdl=True)

四、模型预测

model = pdx.load_model('output/yolov3_darknet53/best_model')
image_name = 'work/plane.jpg'
result = model.predict(image_name)
pdx.det.visualize(image_name, result, threshold=0.5, save_dir='./output/yolov3_darknet53')

五、自我介绍

太原理工大学 软件学院 软件工程专业 2020级 本科生 王志洲

AIstudio地址链接:https://aistudio.baidu.com/aistudio/personalcenter/thirdview/559770

码云地址链接:https://gitee.com/wang-zhizhou_1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扬志九洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值