比赛分享!科大讯飞安全帽检测算法赛baseline
来源:投稿 作者:LSC
编辑:学姐
最终成绩是:68.46473 第二名
比赛网址
http://challenge.xfyun.cn/topic/info?type=helmet-wear&option=ssgy
赛题任务
在本次比赛中需要参赛选手搭建计算机视觉模型识别出照片中的安全帽位置。
本次赛题包括三类目标物体:Helmet,Person,Head,训练集4千张图片,测试集1千张图片。训练集数据集标注格式为:

评估指标
本次竞赛的评价标准采用mAP(mean Average Precision)准确率指标,最高分为1。计算方法参考代码参考:https://github.com/Cartucho/mAP
识别结果文件详细说明:
(1)标签顺序需要与测试集文本保持一致;
(2)具体格式如下:
提交对应文件名以txt结尾的文件结果文件,如hard_hat_workers4007.txt,提交文件内容的格式为:

baseline代码我是在autodl
平台上运行的,我是用PaddleDetection
框架来进行检测的,要先将数据集和PaddleDetection.zip
上传到平台
(1)首先是解压数据集和安装所需环境
(2)将标签文件由txt
格式转成xml
格式,再转为json
格式,见train1.ipynb
中的代码,主要是运行makexml函数
和PaddleDetection/tools/x2coco.py
模块
(3)修改PaddleDetection中
的'PaddleDetection/configs/ppyoloe/ppyoloe_plus_crn_x_80e_coco.yml'
文件及其相关文件'../datasets/coco_detection.yml'
, '../runtime.yml'
, './_base_/optimizer_80e.yml'
,'./_base_/ppyoloe_plus_crn.yml'
, './_base_/ppyoloe_plus_reader.yml'
等,重点是coco_detection.yml
的文件路径,ppyoloe_plus_crn_x_80e_coco.yml
里面的pretrain_weights
,是预训练模型权重这是修改后ppyoloe_plus_crn_x_80e_coco.yml
的内容。
这是修改后的coco_detection.yml的内容
修改后的runtime.yml的内容:
修改后的optimizer_80e.yml的内容:
(4)运行如下命令行代码,开始训练模型
全部数据训练和验证
是用所有训练集数据进行训练和验证,epoch是20,但是到了第10轮效果没有高效地提升,停止了训练,保存最好的模型。
(5)运行如下命令行代码,推理测试集数据
其中weights
参数是最好的训练模型的权重的绝对路径,output_dir
是结果输出绝对路径,infer_dir
是测试集图片数据的绝对路径,最终生成推理结果的图片和测试集的推理结果bbox.json
都存储在autodl-tmp/infer_output2/
路径下。
(6)对autodl-tmp/infer_output2/bbox.json
数据进行读取和处理,将每张测试集图片的结果写在同名的txt文本下,存储在/root/detection-results
目录中。
这个时候要注意生成的bbox
不知道对应的原图是哪个,所以对PaddelDetection
的代码要稍微做修改,在PaddleDetection/ppdet/engine/trainer.py
代码的第841行后加入:
(7)最后用命令行把/root/detection-results
文件夹压缩下载到本地%cd /root/!tar -cvzf detection-results.tar.gz detection-results
解压再压缩改为zip文件进行提交
比赛资源都安排在“KGMking”公众号上了!欢迎大家关注!
baseline&数据集合集都有都有