未验证 提交 85ba4e7f 编写于 作者: K Kaipeng Deng 提交者: GitHub

Polish PointNet++ model (#4009)

* fix python3 compatable.

* update weight download link
上级 c08c5c5d
......@@ -117,7 +117,7 @@ sh download.sh
**Indoor3DSemSeg 数据集:**
PointNet++ 分模型在 [Indoor3DSemSeg 数据集](https://shapenet.cs.stanford.edu/media/indoor3d_sem_seg_hdf5_data.zip)上进行训练,我们提供了数据集下载脚本:
PointNet++ 分模型在 [Indoor3DSemSeg 数据集](https://shapenet.cs.stanford.edu/media/indoor3d_sem_seg_hdf5_data.zip)上进行训练,我们提供了数据集下载脚本:
```
cd dataset/Indoor3DSemSeg
......@@ -212,8 +212,8 @@ sh scripts/eval_cls.sh
| model | Top-1 | download |
| :----- | :---: | :---: |
| SSG(Single-Scale Group) | 87.4 | [model]() |
| MSG(Multi-Scale Group) | 89.2 | [model]() |
| SSG(Single-Scale Group) | 87.4 | [model](https://paddlemodels.bj.bcebos.com/Paddle3D/pointnet2_ssg_cls.tar) |
| MSG(Multi-Scale Group) | 89.1 | [model](https://paddlemodels.bj.bcebos.com/Paddle3D/pointnet2_msg_cls.tar) |
**语义分割模型:**
......@@ -234,8 +234,8 @@ sh scripts/eval_seg.sh
| model | Top-1 | download |
| :----- | :---: | :---: |
| SSG(Single-Scale Group) | 86.1 | [model]() |
| MSG(Multi-Scale Group) | 86.8 | [model]() |
| SSG(Single-Scale Group) | 86.1 | [model](https://paddlemodels.bj.bcebos.com/Paddle3D/pointnet2_ssg_seg.tar) |
| MSG(Multi-Scale Group) | 86.6 | [model](https://paddlemodels.bj.bcebos.com/Paddle3D/pointnet2_msg_seg.tar) |
## 参考文献
......
......@@ -14,8 +14,8 @@
from . import indoor3d_reader
from . import modelnet40_reader
from indoor3d_reader import *
from modelnet40_reader import *
from .indoor3d_reader import *
from .modelnet40_reader import *
__all__ = indoor3d_reader.__all__
__all__ += modelnet40_reader.__all__
......@@ -32,6 +32,8 @@ FORMAT = '%(asctime)s-%(levelname)s: %(message)s'
logging.basicConfig(level=logging.INFO, format=FORMAT, stream=sys.stdout)
logger = logging.getLogger(__name__)
np.random.seed(1024)
def parse_args():
parser = argparse.ArgumentParser("PointNet++ semantic segmentation train script")
......
......@@ -31,6 +31,8 @@ FORMAT = '%(asctime)s-%(levelname)s: %(message)s'
logging.basicConfig(level=logging.INFO, format=FORMAT, stream=sys.stdout)
logger = logging.getLogger(__name__)
np.random.seed(1024)
def parse_args():
parser = argparse.ArgumentParser("PointNet++ semantic segmentation train script")
......
......@@ -13,6 +13,6 @@
#limitations under the License.
from . import pointnet_lib
from pointnet_lib import *
from .pointnet_lib import *
__all__ = pointnet_lib.__all__
......@@ -197,14 +197,14 @@ def pointnet_fp_module(unknown, known, unknown_feats, known_feats, mlp, bn=True,
raise NotImplementedError("Not implement known as None currently.")
else:
dist, idx = three_nn(unknown, known, eps=0)
dist.stop_gradient = True
idx.stop_gradient = True
dist.stop_gradient = True
idx.stop_gradient = True
dist = fluid.layers.sqrt(dist)
ones = fluid.layers.fill_constant_batch_size_like(dist, dist.shape, dist.dtype, 1)
dist_recip = ones / (dist + 1e-8); # 1.0 / dist
norm = fluid.layers.reduce_sum(dist_recip, dim=-1, keep_dim=True)
weight = dist_recip / norm
weight.stop_gradient = True
weight.stop_gradient = True
interp_feats = three_interp(known_feats, weight, idx)
new_features = interp_feats if unknown_feats is None else \
......
......@@ -98,7 +98,7 @@ class PointNet2SemSeg(object):
self.acc1 = fluid.layers.accuracy(pred, label, k=1)
def get_feeds(self):
return self.feed_vars
return self.feed_vars
def get_outputs(self):
return {"loss": self.loss, "accuracy": self.acc1}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册