From db713042e2105334fe5f1d8bb78e5d02082581f4 Mon Sep 17 00:00:00 2001 From: Kaipeng Deng Date: Tue, 24 Dec 2019 16:47:10 +0800 Subject: [PATCH] update README and fix random nan in rcnn startup (#4118) --- PaddleCV/Paddle3D/PointRCNN/README.md | 18 +++++++++--------- .../PointRCNN/models/pointnet2_modules.py | 10 ++++++++-- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/PaddleCV/Paddle3D/PointRCNN/README.md b/PaddleCV/Paddle3D/PointRCNN/README.md index 842cb86d..5b2d8292 100644 --- a/PaddleCV/Paddle3D/PointRCNN/README.md +++ b/PaddleCV/Paddle3D/PointRCNN/README.md @@ -51,14 +51,7 @@ cd PaddleCV/Paddle3D/PointRCNN git clone https://github.com/pybind/pybind11 ``` -3. 编译安装`pts_utils`, `kitti_utils`, `roipool3d_utils`, `iou_utils` 等模块 - -使用如下命令编译安装`pts_utils`, `kitti_utils`, `roipool3d_utils`, `iou_utils` 等模块: -``` -sh build_and_install.sh -``` - -4. 安装python依赖库 +3. 安装python依赖库 使用如下命令安装python依赖库: @@ -69,6 +62,13 @@ pip install -r requirement.txt **注意:** KITTI mAP评估工具只能在python 3.6及以上版本中使用,且python3环境中需要安装`scikit-image`,`Numba`,`fire`等子库。 `requirement.txt`中的`scikit-image`,`Numba`,`fire`即为KITTI mAP评估工具所需依赖库。 +4. 编译安装`pts_utils`, `kitti_utils`, `roipool3d_utils`, `iou_utils` 等模块 + +使用如下命令编译安装`pts_utils`, `kitti_utils`, `roipool3d_utils`, `iou_utils` 等模块: +``` +sh build_and_install.sh +``` + ### 编译自定义OP 请确认Paddle版本为PaddelPaddle Fluid develop每日版本或基于Paddle develop分支源码编译安装,**推荐使用源码编译安装的方式**。 @@ -314,7 +314,7 @@ result_dir 由于KITTI mAP仅支持python 3.6及以上版本,须使用对应python版本通过如下命令进行评估: ``` -python3 kitti_map.py +python3 tools/kitti_eval.py ``` 使用训练最终权重[RPN模型](https://paddlemodels.bj.bcebos.com/Paddle3D/pointrcnn_rpn.tar)和[RCNN模型](https://paddlemodels.bj.bcebos.com/Paddle3D/pointrcnn_rcnn_offline.tar)评估结果如下所示: diff --git a/PaddleCV/Paddle3D/PointRCNN/models/pointnet2_modules.py b/PaddleCV/Paddle3D/PointRCNN/models/pointnet2_modules.py index 43942fcf..6f92bb5f 100644 --- a/PaddleCV/Paddle3D/PointRCNN/models/pointnet2_modules.py +++ b/PaddleCV/Paddle3D/PointRCNN/models/pointnet2_modules.py @@ -23,7 +23,7 @@ import numpy as np import paddle.fluid as fluid from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Constant +from paddle.fluid.initializer import Constant, Normal from ext_op import * __all__ = ["conv_bn", "pointnet_sa_module", "pointnet_fp_module", "MLP"] @@ -76,7 +76,13 @@ def group_all(xyz, features=None, use_xyz=True): def conv_bn(input, out_channels, bn=True, bn_momentum=0.95, act='relu', name=None): - param_attr = ParamAttr(name='{}_conv_weight'.format(name),) + def _get_kaiming_init(): + fan_in = input.shape[1] + std = (1.0 / fan_in / 3.0) ** 0.5 + return Normal(0., std, 0.) + + param_attr = ParamAttr(name='{}_conv_weight'.format(name), + initializer=_get_kaiming_init()) bias_attr = ParamAttr(name='{}_conv_bias'.format(name)) \ if not bn else False out = fluid.layers.conv2d(input, -- GitLab