Datawhale | CV-异常检测1-阿里天池比赛流程体验

全球人工智能技术创新大赛【热身赛一】记录

比赛简介

比赛为CV目标检测方向的任务,赛题为对提供的布匹图像进行缺陷检测。评估指标为0.2ACC+0.8mAP。
相关链接

比赛网址:https://tianchi.aliyun.com/competition/entrance/531864/information
Datawhale baseline:https://github.com/datawhalechina/team-learning-cv/tree/master/DefectDetection
yolov5开源工程:https://github.com/ultralytics/yolov5
dalao笔记:https://blog.csdn.net/qq_26751117/article/details/113853150?spm=5176.12282029.0.0.3adf553etpqjoE

数据预处理

参考Datawhale baseline提供的代码,其中convertTrainLable.py和process_data_yolo.py涉及到数据的预处理。
赛题给出的图片为jpg格式,标注则全部存储在两个json文件中。为了使数据和yolov5的输入格式要求一致,用convertTrainLable.py进行预处理。本赛题数据分为train(又分为part1、2、3三个压缩文件)和train2两部分,用convertTrainLable.py处理两次即可(修改路径)。process_data_yolo.py则是进行图像裁剪,裁剪后尺寸为1024*1024,需要调用两次,分别处理train和val(修改路径)。

模型训练

使用yolov5的开源工程进行训练,设置参考github网站教程。其中与训练权重yolov5x6.pt需要自己下载。我的训练设置如下,用了4张1080Ti同时进行训练。

python train.py --weights weights/yolov5x6.pt --cfg models/yolov5x.yaml --data data/clothDefect.yaml --img 1024 --batch-size 16

由于时间限制,暂时训练50个epoch左右,三个指标变化如下。
在这里插入图片描述
最后注意大佬笔记中提到的torch版本问题,稍微处理一下模型文件:

ckpt = torch.load('best.pt', map_location=device)    # 读取best.pt权重
torch.save(ckpt, 'new.pt', _use_new_zipfile_serialization=False)    # 使用旧的方式保存

docker封装与提交

docker的使用参见教程:https://tianchi.aliyun.com/competition/entrance/231759/tab/226

1.安装docker和nvidia-docker

最好的方法是参照官方教程:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
我使用的是centos7系统,基本顺利,小bug自行搜索很容易解决。

2.配置Dockerfile

Dockerfile参考大佬设置如下:

# Dockerfile
# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.4-cuda10.1-py3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /
## 指定默认工作目录为根目录(需要把 run.sh 和生成的结果文件都放在该文件夹下,提交后才能运行)

WORKDIR /
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install opencv-python
RUN pip install matplotlib
RUN pip install scipy
RUN pip install tensorboard
RUN apt update && apt install -y libgl1-mesa-glx && apt-get install -y libglib2.0-0
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

Datawhale中的run.sh要修改为:

python detect.py --source ./tcdata/guangdong1_round2_testB_20191024

3.Build,tag and push

构建镜像使用命令。

docker build -t registry.cn-hangzhou.aliyuncs.com/xxx/xxx_yy:1.0 .

其中xxx和xxx_yy是可在自己的阿里云仓库获得。查看image是否已经有tag,如果没有tag为registry.cn-hangzhou.aliyuncs.com/xxx/xxx_yy:1.0。
用docker login登录自己的阿里云账号,然后用docker pull上传到自己的阿里云仓库。
最后比赛提交界面输入registry.cn-hangzhou.aliyuncs.com/xxx/xxx_yy:1.0作为提交地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值