全球人工智能技术创新大赛【热身赛一】布匹疵点智能识别 小白入门记录
首先,这次的笔记是我参加全球人工智能技术创新大赛【热身赛一】布匹疵点智能识别的犯的错误以及遇到的问题的记录,之前没怎么使用过docker,费了九牛二虎终于把结果提交上去了。docker的使用、提交方法和dockerfile的配置请参考:
https://tianchi.aliyun.com/competition/entrance/231759/tab/174?spm=5176.12586973.0.0.6f7a5bc8TLRPZn
以及
https://github.com/datawhalechina/team-learning-cv/blob/master/DefectDetection/docker%E6%8F%90%E4%BA%A4%E6%95%99%E7%A8%8B.pdf
,刚开始手有点不知所措,多参考多练习就好。
下面请看我第一次提交的结果(用的yolov5l,bs=2, img=1024, 结果着实有点惨):
遇到的问题
关于图片、标注的格式转换问题请参考大佬写的文章,里面很详细:
https://blog.csdn.net/qq_26751117/article/details/113853150
我和他不同之处,他改的是datawhale给出的baseline,我对照baseline改的yolov5。(主要是我刚开始没有看到,哭唧唧)
1、Baseline
最开始我也使用的是:
https://github.com/datawhalechina/team-learning-cv/tree/master/DefectDetection
这里给出的baseline,但是跑的时候遇到一个问题了,提示缺少best.pt,想到这个baseline是yolov5改来的,我就去yolov5官网下载了yolov5l的权重文件,下好后又遇到一个问题,提示说:
看了一下,脑壳发痛,又想了一下,懒癌却发作了,最后干脆那官方最新的yolov5版本跑,对照之前的DefectDetection,随便改了一下(主要是ctrl+c,ctrl+v),把data/coco128.yaml,convertTrainLabel.py,
process_data_yolo.py粘贴到yolov5里面,对比train.py改了一下。之后就开始缓慢训练啦,1070(穷逼)跑了一晚上多一点,在60e左右不变化。
2、detect
生成好权重文件,检测的时候又遇到问题,因为这里测试的文件结构是这样的:
|--tcdata
|-- guangdong1_round2_testB_20191024.zip
|-- guangdong1_round2_testB_20191024
|--201908262_de5bf60c1d3b79ad0201908262154188OK
|--201908262_de5bf60c1d3b79ad0201908262154188OK.jpg
|--template_201908262.jpg
yolov5进不去,懒癌发作,ctrl+c,ctrl+v,把DefectDetection里的detect.py复制过来,pycharm提示报错,根据错误提示,把utils/utils.py复制到对应文件夹里,这时候还发现还是缺少LoadImagesTest这个类,对照一下,把DefectDetection里的utils/datasets.py里LoadImagesTest类复制到yolov5里面去。
3、docker
具体也没什么,就是一个熟练过程,下面是一些常用命令总结。
1)构建镜像
docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .
2)进入容器配置环境
1、查看镜像ID
docker images
2、进入容器
docker run -it 600b(image id 自己替换) /bin/bash
3、配置环境,和正常ubuntu里配置环境一样,注意的是:这次比赛给的是CUDA10.1,所以安装pytorch的时候记得选择10.1的版本,例如我这里是pytorch=1.7.1:
pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
3)保存容器为镜像
1 退出但不关闭容器:ctrl + P + Q
2 保存容器为镜像
使用 docker ps 查看容器的 id
docker commit ffab(容器 id 自己替换) registry.cn..........(自己的仓库地址)..........:1.0
4)拷贝本地文件到容器
docker cp 你的文件路径 容器长ID:docker容器路径
例如:
docker cp tcdata 8d70c4f51727:/tcdata
5)测试镜像
1 先用 docker images 查看镜像的ID
2 docker run your_image(自己替换) sh run.sh 查看是否允许正常
或者进入容器里,进行测试,当运行正常后,使用利用3)保存镜像
6)推送镜像
(1)查看镜像 id
docker images
(2)推送镜像
docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0(自己替换仓
库地址以及指定版本号)
4、提交
在左侧【提交结果】中填写推送的镜像路径、用户名和密码,即可提交。根据【我的成绩】中的分数和日志可以查看运行情况。
参考
[1]:https://github.com/ultralytics/yolov5 [2]:
https://github.com/datawhalechina/team-learning-cv/tree/master/DefectDetection
[3]:https://blog.csdn.net/qq_26751117/article/details/113853150