[ 简体中文 / English]
一个简单的ONNX Runtime Light Glue示例。
测试环境:
- Ubuntu 20.04
- ONNX Runtime onnxruntime-linux-x64-gpu-1.16.3
- ONNX Runtime onnxruntime-linux-x64-1.16.3
- CUDA 11.7
- SPDLOG 1.13.0
- OpenCV 4.9.0
- 需要修改
CMakeLists.txt
文件,指定ONNX Runtime的路径。可以在这里下载,选择1.16.3版本。 - 下载后解压缩,将文件夹的路径修改为
ONNXRUNTIME_ROOTDIR
变量的值。
set(ONNXRUNTIME_ROOTDIR /home/lin/Projects/onnxruntime-linux-x64-gpu-1.16.3)
git clone https://github.com/Nothand0212/LightGlue-OnnxRunner-cpp.git
cd LightGlue-OnnxRunner-cpp
mkdir build && cd build
cmake.. && make -j
- 修改
config/param.json
里的路径为自己的路径,包括 -
- matcher_path
-
- extractor_path
-
- combiner_path
-
- image_src_path
-
- image_dst_path
-
- 其他
- 2024-03-07
-
- 修改
Extractor
的提取特征点的处理逻辑,提取后先不恢复到原图的坐标,否则会导致匹配结果不准确。
- 修改
-
- 修改运行逻辑,运行时需要指定配置文件路径,例如:
./matcher_test /home/lin/Projects/LightGlue-OnnxRunner-cpp/config/param.json
- 修改运行逻辑,运行时需要指定配置文件路径,例如:
-
- 将spdlog改为纯头文件版本,解决编译问题
-
- 2024-02-02
-
- 增加了单独的
Matcher
类
- 增加了单独的
-
- 2024-01-28
-
- 增加单独的
Extractor
类
- 增加单独的
-
- 2024-01-24
-
- 增加非端到端模型的支持(只支持super point 和 light glue)
-
- 2024-01-20
-
- 目前只支持super point 和 light glue 的端到端模型
-
## 遗留问题
- 2024-01-28
~~ - 1. 2024-01-24的遗留的bug,应该是模型的问题。在decoupled_onnx_test
中,如果用模型superpoint_lightglue_fused_fp16.onnx
则不会出现相同的问题。~~
- 2024-01-24
~~ - 1. 在GPU环境下运行时,某些图片(如项目里data/left/21.png)会报错Non-zero status code returned while running MultiHeadAttention node. Name:'MultiHeadAttention_1' Status Message: packed QKV format is not implemented for current GPU. Please disable it in fusion options.
。但是在CPU环境下运行时,不会报错。~~