介绍 lite.ai.toolkit 项目
项目概述
lite.ai.toolkit 是一个轻量化的 C++ 工具包,专注于人工智能模型的使用。这个工具包包含了一系列功能强大的 AI 模型,例如目标检测、面部检测、面部识别、图像分割和图像抠图等。开发者可以在 Model Zoo 中找到更多的模型,并且支持 ONNX、MNN、TNN 和 NCNN 四种推理引擎。
项目特点
- 简单易用:lite.ai.toolkit 提供了简单而一致的语法,开发者只需使用如
lite::cv::Type::Class
这样的语法结构即可使用模型。 - 最低依赖:工具包默认仅需依赖 OpenCV 和 ONNXRuntime,降低了构建和使用的复杂度。
- 支持丰富的模型:目前支持超过 300 个 C++ 实现的模型和 500 多个权重,涵盖多个 AI 应用场景。
支持的平台与引擎
- 设备支持:工具包支持通过 GPU 和 CPU 进行推理,适用于 Linux 系统。
- 兼容性:支持 ONNXRuntime、MNN、TNN 和 NCNN 引擎,并与 NVIDIA 的 TensorRT 兼容,用于 GPU 加速推理。
快速开始
用户可以从最新版的 tag/v0.2.0
下载预构建的 lite.ai.toolkit 库,或者从源码构建。下面是一个使用 YOLOv5 模型进行目标检测的简单示例代码:
#include "lite/lite.h"
int main(int argc, char *argv[]) {
std::string onnx_path = "yolov5s.onnx";
std::string test_img_path = "test_yolov5.jpg";
std::string save_img_path = "test_results.jpg";
auto *yolov5 = new lite::cv::detection::YoloV5(onnx_path);
std::vector<lite::types::Boxf> detected_boxes;
cv::Mat img_bgr = cv::imread(test_img_path);
yolov5->detect(img_bgr, detected_boxes);
lite::utils::draw_boxes_inplace(img_bgr, detected_boxes);
cv::imwrite(save_img_path, img_bgr);
delete yolov5;
return 0;
}
构建与设置
用户可以参考以下 CMakeLists.txt
文件快速设置项目:
set(lite.ai.toolkit_DIR YOUR-PATH-TO-LITE-INSTALL)
find_package(lite.ai.toolkit REQUIRED PATHS ${lite.ai.toolkit_DIR})
add_executable(lite_yolov5 test_lite_yolov5.cpp)
target_link_libraries(lite_yolov5 ${lite.ai.toolkit_LIBS})
支持的模型矩阵
lite.ai.toolkit 支持多种常用的深度学习模型,包括但不限于 YOLOv5、YOLOv3、YOLOX、NanoDet、UltraFace、RetinaFace 等,应用涵盖目标检测、面部识别、图像抠图等领域。
结语
lite.ai.toolkit 作为一个开放源代码的 AI 模型工具包,为开发者提供了一个简单、灵活且高效的解决方案,适用于众多计算机视觉任务。结合其轻量级的特性和对多种引擎的支持,使其成为 AI 应用开发中的一大助力。