|
Download model/README_refinement.md from stumpferWinkel/grasp: direct link, hf CLI and curl.
- Browser
- Download file 4.09 kB
-
https://huggingface.co/stumpferWinkel/grasp/resolve/main/model/README_refinement.md
- Command line
-
hf download hf://stumpferWinkel/grasp/model/README_refinement.md
-
curl -L -o README_refinement.md https://huggingface.co/stumpferWinkel/grasp/resolve/main/model/README_refinement.md
4.09 kB
LeGR-Conv FiLM2 with BASNet Refinement Module
Overview
The legrconv4x_film2_refine.py model extends the FiLM2 architecture by integrating the refinement module (RefUnet) from BASNet (Boundary-Aware Salient Object Detection). This enhancement improves boundary accuracy for both segmentation masks and grasp predictions using an efficient two-module approach.
Key Components
1. RefUnet (from BASNet)
The refinement module directly adapted from BASNet:
- Takes coarse predictions as input (1 or 4 channels)
- Processes through encoder-decoder structure with skip connections
- Learns residual corrections
- Returns refined prediction by adding residual to input:
output = input + residual
2. Multi-Task Adaptation
Our model uses an efficient two-module refinement approach:
refine_mask: RefUnet for instance segmentation mask refinement (1-channel input/output)refine_grasp: RefUnet for joint grasp prediction refinement- Takes concatenated 4-channel input: [quality, sin, cos, width]
- Learns correlations between grasp components
- Outputs refined 4-channel predictions that are split back
- Reduces model parameters from 5 to 2 RefUnet modules
3. Training Strategy
Following BASNet's multi-output supervision approach:
- Refined predictions: Primary loss with full weight (1.0)
- Coarse predictions: Auxiliary loss with weight 0.5
- This helps the network learn better representations at both stages
Architecture Details
RefUnet Structure (from BASNet)
Input (Coarse Prediction) [B, C, H, W] # C=1 for mask, C=4 for grasp
β
Conv0 β Conv1 β Pool1
β β(skip)
Conv2 β Pool2
β β(skip)
Conv3 β Pool3
β β(skip)
Conv4 β Pool4
β β(skip)
Conv5
β
Upsample β Concat with Conv4 skip β Conv_d4
β
Upsample β Concat with Conv3 skip β Conv_d3
β
Upsample β Concat with Conv2 skip β Conv_d2
β
Upsample β Concat with Conv1 skip β Conv_d1
β
Conv_d0 (Residual) [B, C, H, W]
β
Output = Input + Residual
Integration with FiLM2
- Coarse Predictions: Generated through the standard FiLM2 pipeline
- Refinement:
- Mask refined independently through
refine_mask - Grasp predictions concatenated and jointly refined through
refine_grasp
- Mask refined independently through
- Loss Computation: Both coarse and refined predictions are supervised
Usage
Training
python train_network_refactored.py \
--config config/OCID-VLG/legrconv_film2_refine.yaml
Configuration
Key parameters in the config:
TRAIN:
network_name: legrconv4x_film2_refine
use_refinement: True # Enable/disable refinement modules
Disabling Refinement (for ablation)
TRAIN:
use_refinement: False # Will use coarse predictions only
Implementation Highlights
Key Differences from Original BASNet
- Two RefUnets: One for mask, one for joint grasp refinement (reduced from 5 modules)
- Input Channels:
- Mask RefUnet: 1-channel input/output
- Grasp RefUnet: 4-channel input/output (concatenated predictions)
- Auxiliary Loss Weight: 0.5 for coarse predictions (adjustable)
Loss Computation
# Refined prediction losses (primary)
loss_refined = compute_loss(refined_pred, target)
# Coarse prediction losses (auxiliary)
loss_coarse = 0.5 * compute_loss(coarse_pred, target)
# Total loss
total_loss = loss_refined + loss_coarse
Expected Improvements
Based on BASNet's performance:
- Better boundary accuracy: RefUnet focuses on boundary refinement
- Smoother predictions: Residual learning helps preserve details
- More stable training: Multi-level supervision improves convergence
- Efficient refinement: Joint grasp refinement leverages correlations between components
- Reduced parameters: Only 2 RefUnet modules instead of 5, making training more efficient
References
- BASNet: Qin et al., "BASNet: Boundary-Aware Salient Object Detection", CVPR 2019
- Original implementation: https://github.com/xuebinqin/BASNet