forked from graspnet/graspness_unofficial
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5be3624
commit 196fb5f
Showing
19 changed files
with
143 additions
and
712 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# GraspNet graspness | ||
My implementation of paper "Graspness Discovery in Clutters for Fast and Accurate Grasp Detection" (ICCV 2021). | ||
|
||
[[paper](https://openaccess.thecvf.com/content/ICCV2021/papers/Wang_Graspness_Discovery_in_Clutters_for_Fast_and_Accurate_Grasp_Detection_ICCV_2021_paper.pdf)] | ||
[[dataset](https://graspnet.net/)] | ||
[[API](https://github.com/graspnet/graspnetAPI)] | ||
|
||
|
||
## Requirements | ||
- Python 3 | ||
- PyTorch 1.6 | ||
- Open3d 0.8 | ||
- TensorBoard 2.3 | ||
- NumPy | ||
- SciPy | ||
- Pillow | ||
- tqdm | ||
- MinkowskiEngine | ||
|
||
## Installation | ||
Get the code. | ||
```bash | ||
git clone https://github.com/rhett-chen/graspness_implementation.git | ||
cd graspnet-graspness | ||
``` | ||
Install packages via Pip. | ||
```bash | ||
pip install -r requirements.txt | ||
``` | ||
Compile and install pointnet2 operators (code adapted from [votenet](https://github.com/facebookresearch/votenet)). | ||
```bash | ||
cd pointnet2 | ||
python setup.py install | ||
``` | ||
Compile and install knn operator (code adapted from [pytorch_knn_cuda](https://github.com/chrischoy/pytorch_knn_cuda)). | ||
```bash | ||
cd knn | ||
python setup.py install | ||
``` | ||
Install graspnetAPI for evaluation. | ||
```bash | ||
git clone https://github.com/graspnet/graspnetAPI.git | ||
cd graspnetAPI | ||
pip install . | ||
``` | ||
|
||
## Point level Graspness Generation | ||
Point level graspness label are not included in the original dataset, and need additional generation. Make sure you have downloaded the orginal dataset from [GraspNet](https://graspnet.net/). The generation code is in [dataset/generate_graspness.py](dataset/generate_graspness.py). | ||
```bash | ||
cd dataset | ||
python generate_graspness.py --dataset_root /data3/graspnet --camera_type kinect | ||
``` | ||
|
||
## Simplify dataset | ||
original dataset grasp_label files have redundant data, We can significantly save the memory cost. The code is in [dataset/simplify_dataset.py](dataset/simplify_dataset.py) | ||
```bash | ||
cd dataset | ||
python simplify_dataset.py --dataset_root /data3/graspnet | ||
``` | ||
|
||
## Training and Testing | ||
Training examples are shown in [command_train.sh](command_train.sh). `--dataset_root`, `--camera` and `--log_dir` should be specified according to your settings. You can use TensorBoard to visualize training process. | ||
|
||
Testing examples are shown in [command_test.sh](command_test.sh), which contains inference and result evaluation. `--dataset_root`, `--camera`, `--checkpoint_path` and `--dump_dir` should be specified according to your settings. Set `--collision_thresh` to -1 for fast inference. | ||
|
||
If you need the trained weights, you can contact me directly. | ||
|
||
## Results | ||
Results "In repo" report the model performance of my results without collision detection. | ||
|
||
Evaluation results on Kinect camera: | ||
| | | Seen | | | Similar | | | Novel | | | ||
|:--------:|:------:|:----------------:|:----------------:|:------:|:----------------:|:----------------:|:------:|:----------------:|:----------------:| | ||
| | __AP__ | AP<sub>0.8</sub> | AP<sub>0.4</sub> | __AP__ | AP<sub>0.8</sub> | AP<sub>0.4</sub> | __AP__ | AP<sub>0.8</sub> | AP<sub>0.4</sub> | | ||
| In paper | 61.19 | 71.46 | 56.04 | 47.39 | 56.78 | 40.43 | 19.01 | 23.73 | 10.60 | | ||
| In repo | 61.83 | 73.28 | 54.14 | 51.13 | 62.53 | 41.57 | 19.94 | 24.90 | 11.02 | | ||
|
||
## Troubleshooting | ||
If you meet the torch.floor error in MinkowskiEngine, you can simplify solve it by change the source code of MinkowskiEngine: | ||
MinkowskiEngine/utils/quantization.py 262,from discrete_coordinates =_auto_floor(coordinates) to discrete_coordinates = coordinates | ||
## Acknowledgement | ||
My code is mainly based on Graspnet-baseline https://github.com/graspnet/graspnet-baseline. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
CUDA_VISIBLE_DEVICES=4 python test.py --camera kinect --dump_dir logs/log_kn/dump_epoch03 --checkpoint_path logs/log_kn/epoch03.tar --batch_size 1 --dataset_root /data3/graspnet --infer --eval |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
CUDA_VISIBLE_DEVICES=4 python train.py --log_dir logs/log_kn_v9 --batch_size 4 --learning_rate 0.001 --model_name np15000_graspness1e-1_bs4_lr1e-3_viewres_dataaug_fps_14C --dataset_root /data3/graspnet | ||
CUDA_VISIBLE_DEVICES=4 python train.py --camera kinect --log_dir logs/log_kn --batch_size 4 --learning_rate 0.001 --model_name minkuresnet --dataset_root /data3/graspnet |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.