This repo is the official implementation of our paper Hydro3DNet: Spatial-Attention Transformers for Hydrology-Aware Point Clouds. Hydro3DNet is an end-to-end multimodal 3D object detection framework specifically designed for fixed waterway environments.
Highlights: -[25-09-06] Code of TROUT is released (SOTA).
[2025-09-06] Hydro3DNet v0.1.0 is released.
[2025-12-30] Added support for the FSHNet baseline (configs and training scripts included).
[2026-03-25] Added support for the MAFF-Net baseline (configs and training scripts included).
[2026-03-29] Added support for the CAGroup3D baseline (configs and training scripts included).
Hydro3DNet integrates hydrological information with LiDAR point clouds through an attention-based Transformer mechanism to enhance feature representation and improve detection performance.: 1)The proposed framework introduces a Hydro Augmented Voxel Feature Encoding (VFE) module, which embeds dynamic hydrological perception and boundary point augmentation strategies to enrich the spatial geometry features of waterway targets. 2)A Hydro Former Head module utilizes spatial attention and a Transformer point cloud encoder to integrate Bird's-Eye-View (BEV) features with region-of-interest (RoI) point clouds, enabling high-precision object detection in complex water scenes. 3)Extensive experiments on the publicly available TROUT dataset demonstrate that Hydro3DNet achieves state-of-the-art performance. On the NVIDIA RTX 4080 GPU, the Ship detection accuracy Ship|mAP3D of Hydro3DNet reaches 91.7%, and the inference speed is 37.9 Hz.
- Renderings of Different Models
Test set
| Present at | Stages | Speed(HZ) | Training time | Ship mAP_3D (test) | Infra mAP_3D (test) | download | |
|---|---|---|---|---|---|---|---|
| SECOND | Sensors’18 | one | 73.9 | 2.2 | 51.6 | 98.6 | second_trout_64M |
| PointPillar | CVPR’19 | one | 40.5 | 12.1 | 61.6 | 99.4 | pointpillar_trout_59M |
| PointRCNN | CVPR’19 | one | 8.8 | 15.2 | 11.9 | 98.1 | pointrcnn_trout_48M |
| Part-A2 | TPAMI’20 | one | 42.9 | 8.2 | 87.6 | 99.9 | PartA2_trout_766M |
| PV-RCNN | CVPR’20 | two | 9.1 | 25.1 | 88.1 | 99.8 | pv_rcnn_trout_158M |
| CenterPoint | CVPR’21 | one | 57.9 | 0.9 | 84.5 | 99.9 | centerpoint_trout_94M |
| Voxel-RCNN | AAAI’21 | two | 48.3 | 8.3 | 85.9 | 99.8 | voxel_rcnn_trout_89M |
| ST3D-SecondIOU | CVPR’21 | two | 66.0 | 6.1 | 69.9 | 99.7 | second_iou_trout_144M |
| PV-RCNN++ | IJCV’22 | two | 12.4 | 44.9 | 88.5 | 99.9 | pv_rcnn_plusplus_trout_169M |
| PillarNet | ECCV’22 | one | 73.9 | 10.5 | 88.1 | 99.8 | pillarnet_trout_169M |
| VoxelNext | CVPR’23 | one | 87.2 | 3.9 | 85.7 | 99.9 | voxelnext_trout_89M |
| DSVT-Voxel | CVPR’23 | one | 6.8 | 62.4 | 54.7 | 95.5 | dsvt_voxel_trout_99M |
| Lion-RWKV | NeurIPS’24 | one | 7.6 | 86.9 | 5.5 | 94.7 | second_with_lion_rwkv_64dim_trout_104M |
| Voxel-Mamba | NeurIPS’24 | one | 13.6 | 22.9 | 57.8 | 96.2 | voxel_mamba_trout_252M |
| ScatterFormer | ECCV’24 | one | 12.4 | 12.7 | 7.4 | 95.4 | scatterformer_trout_147M |
| FSHNet | CVPR’25 | one | 16.6 | 16.5 | 29.2 | 25.7 | fshnet_trout_132M |
| MAFF-Net | RL’25 | two | 20.9 | 45.7 | 27.9 | 71.3 | MAFF-Net_trout_132M |
| CAGroup3D | CVPR’25 | two | 13.3 | 53.4 | 48.7 | 25.6 | CAGroup3D_trout_954M |
| Hydro3DNet(our) | - | two | 37.9 | 12.5 | 91.7 | 99.9 | hydro3Dnet_trout_197M |
Hydro3DNet achieves state-of-the-art performance. On the NVIDIA RTX 4080 GPU, the Ship detection accuracy Ship|mAP3D of Hydro3DNet reaches 91.7%, and the inference speed is 37.9 Hz. We hope that our Hydro3DNet can provide a potential group-free solution for efficiently handling sparse point clouds for 3D tasks.
Please refer to INSTALL.md for installation.
Please follow the instructions from GETTING_STARTED.md. We adopt the same data generation process.
cd data
mkdir hilbert
python ./tools/hilbert_curves/create_hilbert_curve_template.py
You can also download Hilbert Template files from Google Drive or BaiduYun(code: kubf).
In addition to Hydro3DNet, we are also integrating other models that emerged in the effect comparison of the papers (for example, DSVT, LION, Voxel-Mama...).
cd tool/
python train.py ${CONFIG_FILE}
Give an example.
#
cd tools
python train.py --cfg_file ./cfgs/trout_models/hydro3Dnet.yaml
# multi-gpu training
cd tools
bash scripts/dist_train.sh 8 --cfg_file ./cfgs/trout_models/hydro3Dnet.yaml
/home/luxiaodong/Hydro3DNet-github/tools/cfgs/trout_models/hydro3Dnet.yaml
# one-gpu testing
cd tools
python test.py --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --ckpt ${CKPT}
Give an example.
python test.py --cfg_file ./cfgs/trout_models/hydro3Dnet.yaml --batch_size 1 --ckpt ../output//cfgs/trout_models/hydro3Dnet/default/ckpt/latest_model.pth # multi-gpu testing
cd tools
bash scripts/dist_test.sh 8 --cfg_file <CONFIG_FILE> --ckpt <CHECKPOINT_FILE>
Please consider citing our work as follows if it is helpful.
@misc{trout2025,
title={Hydro3DNet: Spatial-Attention Transformers for Hydrology-Aware Point Clouds},
author={Xiaodong Lu, Sudong Xu},
howpublished = {\url{https://github.com/serendipitylxd/Hydro3DNet}},
year={2025}
}
Hydro3DNet is based on OpenPCDet.
We also thank the CenterPoint, TransFusion, OctFormer, Mamba, and … authors for their efforts.

