上云无忧 > 文档中心 > 零基础实践深度学习 第四章:目标检测YOLOv3(下) - AI识虫比赛
飞桨PaddlePaddle开源深度学习平台
零基础实践深度学习 第四章:目标检测YOLOv3(下) - AI识虫比赛

文档简介:
查看环境并准备数据: # 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原。 # View dataset directory. This directory will be recovered automatically after resetting environment. !ls /home/aistudio/data
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

查看环境并准备数据

# 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原 # View dataset directory. 
This directory will be recovered automatically after resetting environment.  !ls /home/aistudio/data
data67206  data69377

# 查看工作区文件, 该目录下的变更将会持久保存. 请及时清理不必要的文件, 避免加载过慢. 
# View personal work directory. All changes under this directory will be kept even
 after reset. Please clean unnecessary files in time to speed up environment loading. !ls /home/aistudio/work

# 将数据解压缩到 /home/aistudio/work目录下面 # 初次运行时需要将代码注释取消 !
unzip -d /home/aistudio/work /home/aistudio/data/data67206/insects.zip

# 进入工作目录  /home/aistudio/work %cd  /home/aistudio/work
/home/aistudio/work
# 查看工作目录下的文件列表 !ls

启动训练

通过运行train.py 文件启动训练,训练好的模型参数会保存在/home/aistudio/work目录下。

!python train.py

启动评估

通过运行eval.py启动评估,需要制定待评估的图片文件存放路径和需要使用到的模型参数。评估结果会被保存在pred_results.json文件中。

  • 为了演示计算过程,下面使用的是验证集下的图片./insects/val/images,在提交比赛结果的时候,请使用测试集图片./insects/test/images

  • 这里提供的yolo_epoch50.pdparams 是未充分训练好的权重参数,请在比赛时换成自己训练好的权重参数

# 在测试集test上评估训练模型,image_dir指向测试集集路径,weight_file指向要使用的权重路径。 
# 参加比赛时需要在测试集上运行这段代码,并把生成的pred_results.json提交上去 !python eval.py 
--image_dir=insects/test/images --weight_file=yolo_epoch50.pdparams

# 在验证集val上评估训练模型,image_dir指向验证集路径,weight_file指向要使用的权重路径。
 !python eval.py --image_dir=insects/val/images --weight_file=yolo_epoch50.pdparams

计算精度指标

通过运行calculate_map.py计算最终精度指标mAP

  • 同学们训练完之后,可以在val数据集上计算mAP查看结果,所以下面用到的是val标注数据./insects/val/annotations/xmls

  • 提交比赛成绩的话需要在测试集上计算mAP,本地没有测试集的标注,只能提交json文件到比赛服务器上查看成绩

!python calculate_map.py --anno_dir=insects/val/annotations/xmls/ --pred_result=pred_results.json
Accumulating evaluatation results...
mAP(0.50, 11point) = 71.97

预测单张图片并可视化预测结果

!python predict.py --image_name=./insects/test/images/3157.jpeg --weight_file=./yolo_epoch50.pdparams 
# 预测结果保存在“/home/aistudio/work/output_pic.png"图像中,运行下面的代码进行可视化

# 可视化检测结果 from PIL import Image import matplotlib.pyplot as plt

img = Image.open("/home/aistudio/work/output_pic.png")

plt.figure("Object Detection", figsize=(15, 15)) # 图像窗口名称 plt.imshow(img)
plt.axis('off') # 关掉坐标轴为 off plt.title('Bugs Detestion') # 图像题目 plt.show()

<Figure size 1080x1080 with 1 Axes>

提升方案

这里给出的是一份基础版本的代码,可以在上面继续改进提升,可以使用的改进方案有:

  • 1、使用其它模型如faster rcnn等 (难度系数5)

  • 2、使用数据增多,可以对原图进行翻转、裁剪等操作 (难度系数3)

  • 3、修改anchor参数的设置,教案中的anchor参数设置直接使用原作者在coco数据集上的设置,针对此模型是否要调整 (难度系数3)

  • 4、调整优化器、学习率策略、正则化系数等是否能提升模型精度 (难度系数1)

相似文档
  • 自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。它主要研究人与计算机之间,使用自然语言进行有效通信的各种理论和方法。简单来说,计算机以用户的自然语言数据作为输入,在其内部通过定义的算法进行加工、计算等系列操作后(用以模拟人类对自然语言的理解),再返回用户所期望的结果,如 图1 所示。
  • 在自然语言处理任务中,词向量(Word Embedding)是表示自然语言里单词的一种方法,即把每个词都表示为一个N维空间内的点,即一个高维空间内的向量。通过这种方法,实现把自然语言计算转换为向量计算。
  • 自然语言情感分析和文本匹配是日常生活中最常用的两类自然语言处理任务,本节主要介绍情感分析和文本匹配原理实现和典型模型,以及如何使用飞桨完成情感分析任务。
  • THUNews文本分类比赛: 通过前面情感分析章节的学习,大家已经清楚了自然语言处理建模的一般步骤: 读取文本数据,并将其转化为字典中对应字或词的ID,然后输入给模型。 将字或词对应的ID映射为对应的词向量embedding。 模型根据embedding进一步计算,得到模型输出。 将模型的输出映射为对应的语义tag。
  • 当我们苦于听到一段熟悉的旋律而不得其名,看到一段电影片段而不知其出处,心中不免颇有遗憾。在另外一些场景,我们偶然间在某些音乐平台、视频平台的推荐页面找到了心仪的音乐、电影,内心却是极其激动的。这些背后往往离不开推荐系统的影子。 那究竟什么是推荐系统呢? 在此之前,我们先了解一下推荐系统产生的背景。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部