Skip to content

SeoBuAs/R3-PCQA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

R3-PCQA: Ray-Reprojection-Reinforcement for No-Reference 3D Point Cloud Quality Assessment

Conference License: MIT

📄 Official PyTorch implementation of our CVPR 2026 (Poster) paper.


Junhyuk Seo*  ·  Sanghyuk Seo*  ·  Dawoon Kim  ·  Heeseok Oh

Hansung University

*Equal contribution  ·  Corresponding author

{withop9974, aissh, 2071290, ohhs}@hansung.ac.kr


📢 News / Updates

  • [2026-02] 🎉 R3-PCQA has been accepted to CVPR 2026 as a Poster!
  • [2026-05] Initial code released.

📝 Abstract

Prevailing no-reference 3D point cloud quality assessment methods predominantly treat 2D projections and 3D point clouds as independent modalities and rely on simplistic feature fusion, thereby neglecting fundamental mechanisms underlying human 3D perception. To address this limitation, we introduce R3-PCQA (Ray-Reprojection-Reinforcement 3D Point Cloud Quality Assessor), a novel and principled framework that explicitly encodes perceptual priors into the assessment pipeline: A geometric-aware ray-based reprojection pipeline simulates viewpoint-dependent observation of 3D structure. A reinforcement-learning-based quality-salient subcloud selector adaptively attends to perceptually informative regions. The global view attention module aggregates local quality responses across viewpoints, forming a unified representation that facilitates reliable cross-view inference. Extensive experiments demonstrate that R3-PCQA achieves state-of-the-art performance on SJTU-PCQA, WPC, and WPC2.0.

🔧 Method Overview

R3-PCQA architecture overview

R3-PCQA emulates three HVS priors — viewpoint-dependent processing, selective attention, and multiview integration — via four lightweight components:

  1. Geometric-aware Reprojection — Casts rays from 20 icosahedral viewpoints and uses K-means + KNN to build precise pixel-to-subcloud correspondences, bridging 2D projections and 3D geometry.
  2. Local View Encoder — Per-view fusion of fine texture features (2D) and coarse geometric features (3D) into a coupled local view token.
  3. Quality-Salient Subcloud Selector (QSS) — A REINFORCE-trained contextual-bandit policy that selects the perceptually most informative subcloud per view — the first RL module for PCQA.
  4. Global View Attention — Multi-head attention over all view tokens for local-to-global aggregation, yielding the final quality score.

Project Structure

R3-PCQA/
├── train.py
├── inference.py
├── src/
│   ├── model.py
│   ├── data_loader.py
│   ├── pixel_coordinate_utils.py
│   ├── trainer_utils.py
│   └── preprocessing/
│       ├── projection.py
│       └── reprojection.py
├── data_csv/
│   ├── SJTU_MOS.csv
│   ├── WPC_MOS.csv
│   └── WPC2.0_MOS.csv
├── assets/
│   └── pipeline.png
├── LICENSE
└── README.md

Data Preprocessing

1. Projection

cd src/preprocessing
python projection.py \
    --input /path/to/ply/files \
    --output /path/to/projections \
    --width 1080 \
    --height 1080 \
    --depth_scale 30

2. Reprojection

python reprojection.py \
    --projection_dir /path/to/projections \
    --ply_dir /path/to/ply/files \
    --coord_output /path/to/pixel_coordinates \
    --patch_output /path/to/3d_patches

Training

python train.py \
    --data_path /workspace/dataset/WPC_MOS_no_100.csv \
    --kmeans_patches_dir /path/to/3d_patches \
    --pixel_coords_dir /path/to/pixel_coordinates \
    --projection_dir /path/to/projections \
    --num_epochs 40 \
    --warmup_epochs 20 \
    --batch_size 4 \
    --learning_rate 1e-4 \
    --lambda_view 1.0 \
    --lambda_policy 1.0 \
    --cuda_device 0

Inference

python inference.py \
    --model_path ./endtoend_results/experiment_xxx/fold_1/fold_1_best_plcc_model.pth \
    --data_path /workspace/dataset/WPC_MOS_no_100.csv \
    --kmeans_patches_dir /path/to/3d_patches \
    --pixel_coords_dir /path/to/pixel_coordinates \
    --projection_dir /path/to/projections \
    --batch_size 4 \
    --cuda_device 0

Requirements

  • PyTorch
  • NumPy
  • Pandas
  • scikit-learn
  • scipy
  • tqdm
  • wandb (optional)
  • torchvision
  • PIL
  • open3d (== 0.19.0)
  • opencv-python

About

Official PyTorch implementation of "R3-PCQA: Ray-Reprojection-Reinforcement for No-Reference 3D Point Cloud Quality Assessment" (CVPR 2026).

Topics

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages