# FS_Net
**Repository Path**: ningdro/FS_Net
## Basic Information
- **Project Name**: FS_Net
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-08
- **Last Updated**: 2023-11-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Category-Level 6D Pose Estimation
This code is for our CVPR2021 oral paper: FS-Net: Fast Shape-based Network for Category-Level 6D Object Pose Estimation with Decoupled Rotation Mechanism. If you have any questions, please leave your comments or email me.
## Experiment setup
OS: Ubuntu 16.04
GPU: 1080 Ti
Programme language: Python 3.6, Pytorch.
If you find our paper [link1(arXiv)](http://arxiv.org/abs/2103.07054) [link2(CVF)](https://openaccess.thecvf.com/content/CVPR2021/papers/Chen_FS-Net_Fast_Shape-Based_Network_for_Category-Level_6D_Object_Pose_Estimation_CVPR_2021_paper.pdf) or code is useful, please cite our paper:
@InProceedings{Chen_2021_CVPR,
author = {Chen, Wei and Jia, Xi and Chang, Hyung Jin and Duan, Jinming and Linlin, Shen and Leonardis, Ales},
title = {FS-Net: Fast Shape-based Network for Category-Level 6D Object Pose Estimation with Decoupled Rotation Mechanism},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021},
pages = {1581-1590}
}
## Contributions
Our framework is built on our previous work [G2L-Net](https://github.com/DC1991/G2L_Net), with the following Contributions:
1. New latent feature learning
>>> [3D graph convolution](https://github.com/j1a0m0e4sNTU/3dgcn/issues) based observed points reconstruction(orientation preserved; green are reconstructed, yellow are observed)
2. New rotation representation
>>> Decomposable vector-based rotation representation
3. New 3D data augmentation
>>> Box-cage based, online 3D data augmentation
## Pre requirements
You can find the main requirements in 'requirement.txt'.
### Trained model and sample data
>>Please download the data.zip [here](https://drive.google.com/file/d/15efs1IIjbRnWIlh-9sXMfbqyL4S08bEG/view?usp=sharing
>), and the unzip the 'trained_model.zip' under 'yolov3_fsnet/' folder and
'test_scene_1
.zip' under 'yolov3_fsnet/data/' folder.
>>The trained model for YOLOv3 will be downloaded automatically. We use the 'yolov5l.pt' provided by this [git](https://github.com/ultralytics/yolov3). According to our test, this trained model works well for category 'laptop', you
> may need to re-train the 2D detect model for other categories.
## Demo
python yolov3_fsnet/detect_fsnet.py
please note: The code is created and debugged in Pycharm, therefore you may need to change the import head in other
python IDE.
## Training
Please note, some details are changed from the original paper for more efficient training.
### Data Preparation
To generate your own dataset, first use the data preprocess code provided in this [git](https://github.com/mentian/object-deformnet/blob/master/preprocess/pose_data.py), and then use the code
provided in 'gen_pts.py'. The render function is borrowed from [BOP](https://github.com/thodan/bop_toolkit), please
refer to that git if you have problems with rendering.
### Training FS_Net
#### YOLOv3 Training
For 2D detection training part, please refer to this [git](https://github.com/ultralytics/yolov3)
#### FS_Net Training
After the data preparation, run the Train.py to train your own model.
## Acknowledgment
We borrow some off-the-shelf codes from [3dgcn](https://github.com/j1a0m0e4sNTU/3dgcn), [YOLOv3](https://github.com/ultralytics/yolov3), and [BOP](https://github.com/thodan/bop_toolkit). Thanks for the authors' work.