Cpp implementation of "LiKL: A Lightweight Approach for Joint Detection and Description of Keypoint and Line". Which is capable of simultaneously extracting keypoint and line features in an image and inferring feature descriptors in a single process.
The pytorch implementation in LiKL
- Add TensorRT support. (Only support static input shapes now.)
- Eigen3
sudo apt install libeigen3-dev
- google-glog
sudo apt install libgoogle-glog-dev
- OpenCV4
- libtorch
wget -O libtorch.zip https://download.pytorch.org/libtorch/cu113/libtorch-cxx11-abi-shared-with-deps-1.11.0%2Bcu113.zip
unzip libtorch
- torchvision
wget https://github.com/pytorch/vision/archive/refs/tags/v0.12.0.zip
unzip vision-0.12.0.zip
## Build torchvision
cd vision
mkdir build && cd build
cmake .. -DWITH_CUDA=on -DUSE_PYTHON=on -DCMAKE_PREFIX_PATH=/path/to/libtorch
make
make install
- TensorRT (Optional) Tested in 8.6.1.6
mkdir build && cd build
# Add -DWITH_TENSORRT=on support for the TensorRT if needed
cmake .. -DCMAKE_PREFIX_PATH=/path/to/libtorch
make
You can download from Baidu (y3yu) or Onedrive.
You can also convert pytorch model to torchcript. Please refer to LiKL.
You can convert pytorch model to onnx. Please refer to LiKL.
Set the torchscript path in configs/likl.yaml
./build/test_likl ./asset/terrace0.JPG ./asset/terrace1.JPG
Thanks to SuperPoint-SuperGlue-TensorRT)