1.安装Anaconda
我的系统事windows 安装的事cuda10.0 cudnn7.5
Anaconda下载就不说了,默认安装即可。
详见https://zhuanlan.zhihu.com/p/67830286
在anaconda中创建虚拟环境
conda create –name paddle python=3.7 同时安装了python3.7
或者
conda create –n paddle python=3.7
2.安装coco-api
可以先将cocoapi下载下来安装
在cmd窗口,cd到PythonAPI目录,执行 python setup.py install
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
# 若Cython未安装,请安装Cython
pip install Cython
# 安装至全局site-packages
make install
# 若您没有权限或更倾向不安装至全局site-packages
python setup.py install --user
或:
pip install Cython
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
3 安装c++
参考安装:https://www.cnblogs.com/yihe/p/8467984.html 需要安装vs2015 vs2017 我2个都安装了
4 安装飞浆框架
https://www.paddlepaddle.org.cn/install/quick
python -m pip install paddlepaddle-gpu==1.7.2.post107 -i https://pypi.tuna.tsinghua.edu.cn/simple
5 安装paddledetection
切换到paddledetection目录下 cd
下载PaddleDetection 0.2版的最新的。
https://github.com/PaddlePaddle/PaddleDetection
下载下来后安装 在次安装目录下安装
pip install -r requirements.txt 或用pip --default-timeout=100 install -r requirements.txt
确认测试通过:cd
set PYTHONPATH=`pwd`:$PYTHONPATH
python ppdet/modeling/tests/test_architectures.py
2.数据集整理
我一开始用的voc的例子 水果那个。后来我发现config中都是coco的数据集类型,所以我又用coco数据集,首先coco数据集需用用labelme
安装labelme
https://github.com/jiangjiajun/PaddleSolution/tree/master/Docs/2_%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/2_1_Windows(目前经过测试这个labmel转coco有问题,生成的结构有问题,这个是百度客服给我的,所以需要进行修改,慎用---这个不对生成文件,仅供参考。)
这里面是将labelme的json装成coco数据集
好用在在我的csdn中去下载。
https://download.csdn.net/download/wangyongchao880622/12366243
配置数据集config
faster_rcnn_r50_1x.yml
3.训练
set CUDA_VISIBLE_DEVICES=0 #指定gpu
set PYTHONPATH=$PYTHONPATH:.#设置路径
python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml --use_tb=True --tb_log_dir=tb_fruit_dir/scalar --eval
如果训练过程中自动下载数据集,那肯定是你的yml路径配置错了,写绝对路径。
训练过程还会出现这个问题:
TypeError: 'numpy.float64' object cannot be interpreted as an integer
这么解决:
pip uninstall numpy
pip install numpy==1.17.4
在训练的过程中出现了loss=NAN 经过查询学习速率太大造成的,将0.1改成了0.001 后来训练完成。
训练中如果报GPU内存溢出 改yml中的batch_size
4.导出模型
python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml --output_dir=./inference_model -o weights=output/faster_rcnn_r50_1x/best_model
5.预测
预测需要说明一下 2种方式预测
方法一 这种模型不需要进行导出操作了,直接用训练完的模型进行预测就可以了。
python -u tools/infer.py -c configs/faster_rcnn_r50_1x.yml -o weights=output\faster_rcnn_r50_1x\best_model --infer_img=demo/1.jpg --output_dir=infer_output
方法二 这种需要将导出的模型进行预测。
python tools/cpp_infer.py --model_path=inference_model/faster_rcnn_r50_1x/ --config_path=tools/cpp_demo.yml --infer_img=demo/1.jpg --visualize
预测问题
出现 image 图片大小设置错误需要将yml里面的test 图片大小给删除
这样改
6.部署C++部署
我使用的部署有2中
1.paddleserving 需要安装docker 我也安装成功,房价那个例子也运行成功了,但怎么部署我的目标检测模型,还没会,后来和群里飞浆客服沟通,让我自己去研究,由于能力有限,实在是头疼也没有研究出来。
https://github.com/PaddlePaddle/Serving/blob/develop/doc/RUN_IN_DOCKER.md
2.使用C++部署 足足用了3天时间才给部署上,主要是飞浆的版本问题,还有的飞浆版本直接就报错。大家一定要注意,后来在客服的帮助下找到master版本。这是和飞浆客服沟通结果。
https://github.com/PaddlePaddle/PaddleDetection/issues/569
下载c++部署 https://github.com/PaddlePaddle/PaddleDetection/tree/master/deploy/cpp
按照说明来应该没有问题。
https://github.com/PaddlePaddle/PaddleDetection/blob/master/deploy/cpp/docs/windows_vs2019_build.md
在此说明一下一定要master下载的下载。版本一定要一致。