ShiTuApi: 轻松集成尖端 AI 视觉能力
专为 AI 视觉工程化设计的、基于百度飞桨(PaddlePaddle)的高性能 C API 库
您是否正在寻找一种快速、高效且功能强大的方式,将世界级的图像识别能力集成到您的软件项目中?您是否希望利用深度学习的力量,但又被模型部署、性能优化和复杂的编程接口所困扰?
我们荣幸地推出 ShiTuApi——一个为解决 AI 模型在实际项目中“落地难”而生的终极解决方案。
1. ShiTuApi 是什么?—— 连接 AI 与现实的桥梁
ShiTuApi 是一个基于百度飞桨 PaddleClas 视觉基础模型库进行深度重构与二次开发的 C API 动态链接库(DLL)。我们保留了其世界一流的图像识别(特征提取)和目标检测核心算法,并对其进行了全面的工程化封装。
我们的目标非常明确:让每一位开发者,无论其 AI 背景深浅,都能像调用一个普通函数一样,轻松地将顶级的 AI 视觉能力集成到自己的应用程序中。
核心技术栈
- AI 核心: 百度飞桨
PaddleClas识别套件 - 推理引擎:
Paddle Inference(v3.0.0-beta1) - 核心语言: 高性能的现代 C++ (17/20)
- 接口语言: 标准的、跨平台、跨语言的 C API
- 核心依赖:
paddle_inference推理库、OpenCV (图像处理)、yaml-cpp(配置解析)、FAISS (向量检索)
重要提示
当前公开发布的 ShiTuApi 版本专注于在 CPU 环境下的极致优化与稳定运行。如您有在 NVIDIA GPU、国产 NPU 或其他 AI 芯片上运行的需求,我们提供专业的商业定制服务。
2. 我们解决了哪些痛点?—— 超越精度,聚焦工程化
传统的 AI 项目开发往往过度追求模型精度,却忽略了模型在真实世界应用中的工程化挑战。ShiTuApi 正是为解决这些痛点而生。
| 痛点问题 | 传统开发方式 | ShiTuApi 解决方案 |
|---|---|---|
| 部署复杂,环境依赖繁重 | 手动配置 Python/Conda 环境,安装大量依赖库(PyTorch/TensorFlow, OpenCV等)。 | 零依赖绿色部署。只需几个 DLL 和模型文件夹,即可在任何支持 C 接口的语言(C#, C++, Java, Python等)中直接调用,无需配置繁琐的 AI 环境。 |
| 海量小目标/SKU识别难题 | 为成千上万种商品训练一个庞大的分类模型,成本高昂,且新增品类就需要重新训练。 | 以图搜图(向量检索)。您只需为每个商品提供一张图片建立索引库,即可实现精准识别。新增品类只需添加新图片,无需重新训练模型。 |
| 性能优化门槛高 | 需要深入了解 CUDA 编程、TensorRT 优化、MKL-DNN 指令集才能榨干硬件性能。 | 开箱即用的高性能。ShiTuApi 内部已集成对 CPU 环境的深度优化。只需在 config.yaml 中启用 enable_mkldnn: true,即可享受极致的推理速度。 |
| API 接口不友好 | 直接使用推理框架的 API,需要编写大量 C++/Python 代码处理图像预处理、后处理和线程管理。 | 极简的函数式调用。ShiTuApi_SearchByPath() 一个函数即可完成从图片加载到返回识别结果的全过程。所有复杂性都被隐藏在 API 内部。 |
| 多线程与高并发支持差 | 开发者自己处理线程锁、模型实例的线程安全问题,极易出错。 | 内置线程安全机制。API 的每个实例(Handle)都由内部的互斥锁(Mutex)保护,您可以放心地在多个线程中安全调用,轻松构建高并发服务。 |
核心优势: 传统的“端到端”分类模型在面对品类不断增多的场景时,开发和维护成本会呈指数级增长。而 ShiTuApi 采用的 “检测(可选)+识别+检索” 范式,则表现出卓越的可扩展性和低成本维护优势。
3. 应用场景 —— 您的想象力是唯一的边界
- 智慧零售与商超: 商品自动识别、货架盘点、自助结算、竞品分析。
- 工业制造与质检: 产线零件识别、缺陷检测、物料追踪。
- 仓储与物流: 包裹/货箱识别、快速分拣、出入库管理。
- 移动应用与小程序: 拍照识物、卡证识别、Logo 识别、地标识别。
- 安防与监控: 特定目标(如特定车辆、着装)的查找与追踪。
4. 关键技术亮点
- Pimpl 模式: 彻底隐藏 C++ 实现细节,保证了 API 的二进制接口稳定性(ABI-safe),您的代码无需因为我们的内部升级而重新编译。
- 配置驱动: 通过一个简单易读的
config.yaml文件,即可灵活配置模型、硬件、预处理和后处理等所有参数。 - 高性能向量检索: 集成 Facebook AI 的
FAISS库,即使在百万级索引库中也能实现毫秒级的相似性搜索。 - 内置 NMS 算法: 智能合并重叠的识别结果,输出干净、准确的目标列表。
- 线程安全设计: 采用句柄(Handle)隔离实例,并对每个实例的所有操作进行加锁,确保了在高并发环境下的稳定运行。
5. 快速上手 —— 只需五步
C#
// 1. 创建句柄
ShiTuApi_Create(out handle);
// 2. 初始化 API (请传入您的许可证密钥)
ShiTuApi_InitializeWithLicense(handle, "YOUR_LICENSE_KEY", "config.yaml");
// 3. 构建索引库 (从一个图像列表文件)
ShiTuApi_BuildIndexFromFile(handle, "image_list.txt", ...);
// 4. 执行搜索
ShiTuApi_SearchByPath(handle, "query.jpg", ..., out results, out num);
// 5. 销毁句柄
ShiTuApi_Destroy(ref handle);6. 示例程序 ShiTuApiTestApp 指南
ShiTuApiTestApp 不仅仅是一个 Demo,更是一个功能强大的、所见即所得的开发与调试工具。
源代码请参阅我们的 GitHub 项目主页。
第一步:环境搭建与项目运行
前提条件:
- 一台 64 位 Windows 操作系统。
- Visual Studio 2022 (推荐),并包含 .NET 桌面开发 工作负载。
部署流程:
项目建立
:
- 在 Visual Studio 中创建一个新的 C# WinForms 项目(.NET 8 或更高版本)。
- 将我们提供的
Form1.cs,Form1.Designer.cs,ShiTuCApi.cs等源文件添加到项目中。 - 通过 NuGet 包管理器搜索并安装
YamlDotNet。
核心文件部署 (关键步骤)
: 将以下文件和文件夹复制到您 C# 项目的最终输出目录(例如
[项目]/bin/x64/Release/net8.0-windows/):
shitu_c_api.dll(核心动态库)models(模型文件夹)config.yaml(配置文件)msyh.ttf(中文字体文件, 可选)
编译与运行
:
- 在 Visual Studio 中,将解决方案平台设置为 x64。
- 将解决方案配置设置为 Release。
- 点击菜单栏“生成” -> “重新生成解决方案”。
- 点击“启动”按钮,
ShiTuApiTestApp主界面将会展现。
第二步:理解 config.yaml - API 的核心配置
config.yaml 是您与 ShiTuApi 交互的核心。任何修改都会在下次初始化 API 时生效。
Global: 全局设定
YAML
Global:
# 在 Intel CPU 上强烈建议开启,能显著提升推理速度
enable_mkldnn: true
# 目标检测模型与识别模型的路径 (检测可选,识别必需)
det_inference_model_dir: "./models/ch_PP-OCRv4_det_infer"
rec_inference_model_dir: "./models/GeneralRecognition_PPLCNet_x2_5_infer"
# 特征向量维度,必须与识别模型输出完全一致
feature_dim: 512
# 检测置信度阈值,过滤掉低可信度的检测框
threshold: 0.6关于 GPU 参数:use_gpu,gpu_id等参数为 GPU 版本预留,在当前 CPU 版本中修改无效。
IndexProcess: 索引与识别行为
YAML
IndexProcess:
# 索引库生成路径
index_dir: "./product_index/all_products"
# 相似度计算方式: IP (内积) 或 L2 (欧氏距离)
metric_type: "IP"
# 识别得分阈值,保证识别准确率的关键参数
threshold: 0.6
# 建库模式: false为整图建库, true为检测后建库
use_detBuild: false调试技巧:
- 漏识别: 适当降低
IndexProcess下的threshold(例如 0.55)。- 错识别: 适当提高
IndexProcess下的threshold(例如 0.75)。
可视化配置 (在 Global 下)
YAML
# 可视化结果图的输出目录
visualization_output_dir: "./output_vis"
# 为了正确显示中文标签,必须提供有效的中文字体文件路径
freetype_font_path: "./msyh.ttf"7. 商业使用与法规
- 许可证: ShiTuApi 采用商业许可证授权。首次运行会自动进入功能齐全的试用模式。您可以通过测试程序界面获取您唯一的“机器码”并发送给我们,以换取正式许可证密钥并完成激活。
- 数据隐私: ShiTuApi 是一个 纯本地 API 库。所有图像处理和识别都在您自己的设备上完成,不会将您的任何图像数据上传到云端或任何第三方服务器,完全保障您的数据主权、安全与隐私。
- 法律责任: 用户在使用本 API 时,必须遵守其所在国家和地区的所有相关法律法规,不得用于侵犯他人隐私、知识产权或任何非法用途。
8. 结语
ShiTuApi 不仅仅是一个代码库,它是一套完整的、经过实战检验的 AI 视觉工程化解决方案。我们为您处理了所有棘手的底层问题——从模型部署、硬件加速到线程安全——让您可以专注于业务逻辑和产品创新。
立即访问我们的GitHub项目主页:https://github.com/cfliyi/SHITU_C_API,下载最新的Release版本,体验前所未有的AI开发效率!
下载链接
- 百度网盘: https://pan.baidu.com/s/1JAtsiL5Zh6RSxRrxcp9qAw (提取码:
5574) - Internxt: https://secure.ue.internxt.com/...
- pCloud: https://u.pcloud.link/publink/show?code=XZH9Mu5ZwUlEasu9TcpaaAD3cp0CwmObVjoX
- Dropbox: https://www.dropbox.com/scl/fi/...
如有需要,请联系:cfliyi@outlook.com