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 桌面开发 工作负载。

部署流程:

  1. 项目建立

    :

    • 在 Visual Studio 中创建一个新的 C# WinForms 项目(.NET 8 或更高版本)。
    • 将我们提供的 Form1.cs, Form1.Designer.cs, ShiTuCApi.cs 等源文件添加到项目中。
    • 通过 NuGet 包管理器搜索并安装 YamlDotNet
  2. 核心文件部署 (关键步骤)

    : 将以下文件和文件夹复制到您 C# 项目的最终输出目录(例如

    [项目]/bin/x64/Release/net8.0-windows/

    ):

    • shitu_c_api.dll (核心动态库)
    • models (模型文件夹)
    • config.yaml (配置文件)
    • msyh.ttf (中文字体文件, 可选)
  3. 编译与运行

    :

    • 在 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开发效率!

下载链接


如有需要,请联系:cfliyi@outlook.com