diff --git a/python/examples/faster_rcnn_model/000000570688_bbox.jpg b/python/examples/faster_rcnn_model/000000570688_bbox.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61bc11c02c92b92cffac91a6c3533a90a45c4e14 Binary files /dev/null and b/python/examples/faster_rcnn_model/000000570688_bbox.jpg differ diff --git a/python/examples/faster_rcnn_model/README.md b/python/examples/faster_rcnn_model/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d8c41521ab68a6325bf30e1405b812f392f85698 --- /dev/null +++ b/python/examples/faster_rcnn_model/README.md @@ -0,0 +1,73 @@ +# Faster RCNN model on Paddle Serving + +([简体中文](./README_CN.md)|English) + +This article requires [Paddle Detection](https://github.com/PaddlePaddle/PaddleDetection) trained models and configuration files. If users want to quickly deploy on Paddle Serving, please read the Chapter 2 directly. + +## 1. Train an object detection model + +Users can read [Paddle Detection Getting Started](https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.2/docs/tutorials/GETTING_STARTED_cn.md) to understand the background of Paddle Detection. The purpose of PaddleDetection is to provide a rich and easy-to-use object detection model for industry and academia. Not only is it superior in performance and easy to deploy, but it can also flexibly meet the needs of algorithm research. + +### Environmental requirements + +CPU version: No special requirements + +GPU version: CUDA 9.0 and above + +``` +git clone https://github.com/PaddlePaddle/PaddleDetection +cd PaddleDetection +``` +Next, you can train the faster rcnn model +``` +python tools/train.py -c configs/faster_rcnn_r50_1x.yml +``` +The time for training the model depends on the situation and is related to the computing power of the training equipment and the number of iterations. +In the training process, `faster_rcnn_r50_1x.yml` defines the snapshot of the saved model. After the final training, the model with the best effect will be saved as `best_model.pdmodel`, which is a compressed PaddleDetection Exclusive model files. + +**If we want the model to be used by Paddle Serving, we must do export_model.** + +Output model +``` +python export_model.py +``` +## 2. Start the model and predict +If users do not use the Paddle Detection project to train models, we are here to provide you with sample model downloads. If you trained the model with Paddle Detection, you can skip the ** Download Model ** section. + +### Download model +``` +wget https://paddle-serving.bj.bcebos.com/pddet_demo/faster_rcnn_model.tar.gz +wget https://paddle-serving.bj.bcebos.com/pddet_demo/paddle_serving_app-0.0.1-py2-none-any.whl +wget https://paddle-serving.bj.bcebos.com/pddet_demo/infer_cfg.yml +tar xf faster_rcnn_model.tar.gz +mv faster_rcnn_model/pddet *. +``` + +### Start the service +``` +GLOG_v = 2 python -m paddle_serving_server_gpu.serve --model pddet_serving_model --port 9494 --gpu_id 0 +``` + +### Perform prediction +``` +python test_client.py --config_path = infer_cfg.yml --infer_img = 000000570688.jpg --dump_result --visualize +``` + +## 3. Result analysis +

+    
+ +    
+

+This is the input picture +   +

+    
+ +    
+

+ +This is the picture after adding bbox. You can see that the client has done post-processing for the picture. In addition, the output/bbox.json also has the number and coordinate information of each box. + + + diff --git a/python/examples/faster_rcnn_model/README_CN.md b/python/examples/faster_rcnn_model/README_CN.md index 23fb4506cfd0dcceae6e668402d26bd5f0281448..78c5cb3f09a25dea37f2a67451e4d8305ec729c6 100644 --- a/python/examples/faster_rcnn_model/README_CN.md +++ b/python/examples/faster_rcnn_model/README_CN.md @@ -1,5 +1,7 @@ # Faster RCNN模型 +(简体中文|[English](./README.md)) + 本文需要[Paddle Detection](https://github.com/PaddlePaddle/PaddleDetection)训练的模型和配置文件。如果用户想要快速部署在Paddle Serving上,请直接阅读第二章节。 ## 1. 训练物体检测模型 @@ -9,6 +11,7 @@ ### 环境要求 CPU版: 没有特别要求 + GPU版: CUDA 9.0及以上 ``` @@ -28,3 +31,41 @@ python tools/train.py -c configs/faster_rcnn_r50_1x.yml ``` python export_model.py ``` + +## 2. 启动模型并预测 +如果用户没有用Paddle Detection项目训练模型,我们也在此为您提供示例模型下载。如果您用Paddle Detection训练了模型,可以跳过 **下载模型** 部分。 + +### 下载模型 +``` +wget https://paddle-serving.bj.bcebos.com/pddet_demo/faster_rcnn_model.tar.gz +wget https://paddle-serving.bj.bcebos.com/pddet_demo/paddle_serving_app-0.0.1-py2-none-any.whl +wget https://paddle-serving.bj.bcebos.com/pddet_demo/infer_cfg.yml +tar xf faster_rcnn_model.tar.gz +mv faster_rcnn_model/pddet* . +``` + +### 启动服务 +``` +GLOG_v=2 python -m paddle_serving_server_gpu.serve --model pddet_serving_model --port 9494 --gpu_id 0 +``` + +### 执行预测 +``` +python test_client.py --config_path=infer_cfg.yml --infer_img=000000570688.jpg --dump_result --visualize +``` + +## 3. 结果分析 +

+
+ +
+

+这是输入图片 + +

+
+ +
+

+这是实现添加了bbox之后的图片,可以看到客户端已经为图片做好了后处理,此外在output/bbox.json也有各个框的编号和坐标信息。 +