前言
这是我参加的百度Aistudio的第三次直播和实践结合的课程,相对于第一次python入门爬虫和强化学习来说,第一次是基本python语法的演练以及包括爬虫以及工具进行数据预处理介绍,第二次是百度PARL和gym系列函数式编写调参使用,而此次使用的主要是命令行和配置文件的调参使用,第二次适合细节定制化,第三次适合集成化。
摘要
PaddleDetection IoU mAP
资源
PaddleDetection的github :https://github.com/PaddlePaddle/PaddleDetection
aistudio实验环境平台:https://aistudio.baidu.com/aistudio/index
PaddleDetection使用手册:https://paddledetection.readthedocs.io/
课程所得
本次课程一共有三位讲师,青青、冠冠、鹏鹏。
预习课程的实践作业是本地化部署PaddlePaddle和PaddleDetection。我是后期在群文件里面把一些群友提供的文件下载安装完成的,可以查看版本,但是具体数据集本地化运行还没有试验。
- 鉴于上次想本地化,已经把win7 32bit 2G
通过增加内存条并在微软官网用U盘重装系统升级为win10 64bit 6G
符合安装需求
window安装python
要求您的 Python 2 版本是 2.7.15+、Python 3 版本是 3.5.1+/3.6/3.7, pip/pip3 版本是 9.0.1+,Python 和 pip 均是 64 位版本,操作系统是 64 位操作系统。
官网安装python3.7
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
- visualcppbuildtools_full
- PaddleDetection-release-0.4
- cudann-10.0-windows10-x64-v7.5.6.32
- cocoapi-master
设置了cuda路径
PS D:\AistudioBD> python -m pip show PaddlePaddle
Name: paddlepaddle
Version: 1.8.4
Summary: Parallel Distributed Deep Learning
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: e:\users\xujiayu\appdata\local\programs\python\python37\lib\site-packages
Requires: protobuf, matplotlib, requests, graphviz, six, pyyaml, funcsigs, opencv-python, prettytable, numpy, rarfile, nltk, decorator, gast, scipy, objgraph, Pillow, astor, pathlib
Required-by:
#使用 python 进入python解释器,验证
$ python
>import paddle.fluid
>paddle.fluid.install_check.run_check()
#测试验证
$ python ppdet/modeling/tests/test_architectures.py
青青讲师由基本数据集开始介绍,首先是coco和voc,即数据的整合形式。用其他开发角度来看,就是存储了图片的位置信息,大小等的配置文件。而针对本门课程,就作为数据集形式之一。作业一,在aistudio上,先执行命令进行基础环境配置运行,再根据提示后期执行运用到的对对应训练样式的xx.yml配置文件的进行路径校对,再一次运行训练、评估、验证三个阶段,最终可视化展示。
- 训练
! python -u tools/train.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml \
-o use_gpu=true \
--use_vdl=true \
--vdl_log_dir=vdl_dir/scalar \
--eval
- 评估
! python -u tools/eval.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml -o weights=./output/yolov3_mobilenet_v1_roadsign_voc_template/best_model.pdparams
- 验证
! python tools/infer.py -c configs/hw_configs/yolov3_mobilenet_v1_roadsign_voc_template.yml --infer_img=/home/aistudio/work/PaddleDetection/dataset/roadsign_voc/images/road554.png
%matplotlib inline
import matplotlib.pyplot as plt
import cv2
infer_img = cv2.imread("output/road554.png")
plt.figure(figsize=(15,10))
plt.imshow(cv2.cvtColor(infer_img, cv2.COLOR_BGR2RGB))
plt.show()
冠冠讲师,详细介绍了采用单点多比例9个锚框anchor,并举例了广角之类的摄像手法。介绍了Faster R-CNN,YOLO,PPYOLO。
等(PS这个等合在一起有十几个,第一次接触就只能记住几个样名称,更多的看资源的手册)。简单介绍了IoU利用真实框和预测框的计算某种算法调整。卷积
鹏鹏讲师,介绍了相关的比赛经验,以及给出一些两个框框的,比如勾肩搭背的人,多人场景的识人包含被遮挡的人。
总结
本次课程由于PaddleDetection集成化较高,因此基本命令行和配置文件修改即可。难点在于,我对这些模型适用场景没有概念,听各路大神说这个适合小物品检测,哪个适合是什么场景检测。(一脸懵.jpg) ,我还是根据上次参与的经验对那个xx.yml配置文件进行学习率和max_iter之类的调整。