来自 github 上作者 walktree 的高质量实现:libtorch-yolov3
使用 git 下载到本地
git clone git@github.com:walktree/libtorch-yolov3.git
不同版本 libtorch 的 API 有略微差异,因此需要做出相应的修改。根据运行结果,libtorch 版本越高,速度越快。当前 libtorch 的最新版本为 1.7.1。
libtorch >= 1.5.0
需要使用 C++14 标准编译,把 libtorch-yolov3/CMakeLists.txt 最后一行 CXX_STANDARD 11
修改为 CXX_STANDARD 14
set_property(TARGET yolo-app PROPERTY CXX_STANDARD 14)
libtorch == 1.4.0
无需修改
libtorch == 1.3.0
需要版本回退
cd libtorch-yolov3
git reset --hard a32644ee3a13de607a5cb89e0e812850834399fd
然后把 libtorch-yolov3/main.cpp 第 54 行中 cv::COLOR_RGB2BGR
修改为 cv::COLOR_BGR2RGB
,因为 OpenCV 存储图片的格式为 BGR,而 YOLOv3 算法的输入要求 RGB。原作者在该版本之后修改了这点。
cv::cvtColor(origin_image, resized_image, cv::COLOR_BGR2RGB);
libtorch == 1.0.0
需要版本回退
cd libtorch-yolov3
git reset --hard d967991cf4b4344f0c3b533acaf9c16accb473c9
然后把 libtorch-yolov3/main.cpp 中第 54 行中 cv::COLOR_RGB2BGR
修改为 cv::COLOR_BGR2RGB
,因为 OpenCV 存储图片的格式为 BGR。
cv::cvtColor(origin_image, resized_image, cv::COLOR_BGR2RGB);