Deep Hough Transform for Semantic Line Detection
High speed performance Jittor implementation Code accompanying the paper "Deep Hough Transform for Semantic Line Detection" (ECCV 2020, PAMI 2021).
[arXiv2003.04676](https://arxiv.org/abs/2003.04676) | [Online Demo](http://mc.nankai.edu.cn/dht) | [Project page](http://mmcheng.net/dhtline) | [New dataset](http://kaizhao.net/nkl) | [Line Annotator](https://github.com/Hanqer/lines-manual-labeling)
* Jittor inference code is open available now.
* Training code will come soon.
### High speed of Jittor framework
Network inference FPS and speedup ratio (without post processing):
|
TITAN XP |
Tesla P100 |
RTX 2080Ti |
bs=1 |
bs=4 |
bs=8 |
bs=1 |
bs=4 |
bs=8 |
bs=1 |
bs=4 |
bs=8 |
Jittor |
44 |
54 |
56 |
42 |
49 |
52 |
82 |
98 |
100 |
Pytorch |
39 |
48 |
49 |
35 |
44 |
44 |
64 |
71 |
71 |
Speedup |
1.13 |
1.13 |
1.14 |
1.20 |
1.11 |
1.18 |
1.28 |
1.38 |
1.41 |
|
Tesla V100 (16G PCI-E) |
Tesla V100 |
RTX TITAN |
bs=1 |
bs=4 |
bs=8 |
bs=1 |
bs=4 |
bs=8 |
bs=1 |
bs=4 |
bs=8 |
Jittor |
89 |
115 |
120 |
88 |
108 |
113 |
27 |
74 |
106 |
Pytorch |
38 |
75 |
82 |
10 |
34 |
53 |
9 |
15 |
34 |
Speedup |
2.34 |
1.53 |
1.46 |
8.80 |
3.18 |
2.13 |
3.00 |
4.93 |
3.12 |
### Requirements
```
jittor
numpy
scipy
opencv-python
scikit-image
pytorch 1.0<=1.3
tqdm
yml
```
Pretrain model (based on ResNet50-FPN): (SEL dataset) and
(NKL dataset / used in online demo)
### Prepare training data
Download original SEL dataset from [here](https://mcl.korea.ac.kr/research/Submitted/jtlee_slnet/ICCV2017_JTLEE_dataset.7z) and extract to `data/` directory. After that, the directory structure should be like:
```
data
├── ICCV2017_JTLEE_gtlines_all
├── ICCV2017_JTLEE_gt_pri_lines_for_test
├── ICCV2017_JTLEE_images
├── prepare_data_JTLEE.py
├── Readme.txt
├── test_idx_1716.txt
└── train_idx_1716.txt
```
Then run python script to generate parametric space label.
```sh
cd deep-hough-transfrom
python data/prepare_data_JTLEE.py --root './data/ICCV2017_JTLEE_images/' --label './data/ICCV2017_JTLEE_gtlines_all' --save-dir './data/training/JTLEE_resize_100_100/' --list './data/training/JTLEE.lst' --prefix 'JTLEE_resize_100_100' --fixsize 400 --numangle 100 --numrho 100
```
For NKL dataset, you can download the dataset and put it to data dir. Then run python script to generate parametric space label.
```sh
cd deep-hough-transform
python data/prepare_data_NKL.py --root './data/NKL' --label './data/NKL' --save-dir './data/training/NKL_resize_100_100' --fixsize 400
```
### Forward
Generate visualization results and save coordinates to _.npy file.
```sh
CUDA_VISIBLE_DEVICES=0 python forward.py --model (your_best_model.pth) --tmp (your_result_save_dir)
```
### Citation
If our method/dataset are useful to your research, please consider to cite us:
```
@article{hu2020jittor,
title={Jittor: a novel deep learning framework with meta-operators and unified graph execution},
author={Hu, Shi-Min and Liang, Dun and Yang, Guo-Ye and Yang, Guo-Wei and Zhou, Wen-Yang},
journal={Information Sciences},
volume={63},
number={222103},
pages={1--21},
year={2020}
}
```
```
@article{zhao2021deep,
author = {Kai Zhao and Qi Han and Chang-bin Zhang and Jun Xu and Ming-ming Cheng},
title = {Deep Hough Transform for Semantic Line Detection},
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)},
year = {2021},
doi = {10.1109/TPAMI.2021.3077129}
}
```
```
@inproceedings{eccv2020line,
title={Deep Hough Transform for Semantic Line Detection},
author={Qi Han and Kai Zhao and Jun Xu and Ming-Ming Cheng},
booktitle={ECCV},
pages={750--766},
year={2020}
}
```
### License
This project is licensed under the [Creative Commons NonCommercial (CC BY-NC 3.0)](https://creativecommons.org/licenses/by-nc/3.0/) license where only
non-commercial usage is allowed. For commercial usage, please contact us.