百度飞浆 目标检测 PaddleDection coco 数据集

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

百度飞浆 目标检测 PaddleDection coco 数据集_第1张图片

百度飞浆 目标检测 PaddleDection coco 数据集_第2张图片

百度飞浆 目标检测 PaddleDection coco 数据集_第3张图片

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

百度飞浆 目标检测 PaddleDection coco 数据集_第4张图片

在训练的过程中出现了loss=NAN 经过查询学习速率太大造成的,将0.1改成了0.001 后来训练完成。

百度飞浆 目标检测 PaddleDection coco 数据集_第5张图片

训练中如果报GPU内存溢出 改yml中的batch_size

百度飞浆 目标检测 PaddleDection coco 数据集_第6张图片

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 图片大小给删除

百度飞浆 目标检测 PaddleDection coco 数据集_第7张图片

这样改

百度飞浆 目标检测 PaddleDection coco 数据集_第8张图片

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下载的下载。版本一定要一致。

你可能感兴趣的:(深度学习)