ShiTuApi: 轻松集成尖端AI视觉能力,赋能您的AI视觉工程应用程序

部署运行你感兴趣的模型镜像

       您是否正在寻找一种快速、高效且功能强大的方式,将世界级的图像识别能力集成到您的软件项目中?您是否希望利用深度学习的力量,但又被模型部署、性能优化和复杂的编程接口所困扰?现在,我们荣幸地推出 ShiTuApi——一个专为开发者设计的、基于百度飞桨(PaddlePaddle)视觉套件的强大C API库。

1. ShiTuApi 是什么?—— 连接AI与现实的桥梁

ShiTuApi 是一个基于百度飞桨 PaddleClas 视觉基础模型库进行的深度重构与二次开发的C API动态链接库(DLL)。我们保留了其世界一流的图像识别(特征提取)和目标检测核心算法,同时对其进行了全面的工程化封装,旨在解决AI模型在实际项目中“落地难”的问题。

我们的目标非常明确:让每一位开发者,无论其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. 应用场景——您的想象力是唯一的边界

凭借其强大的“万物识别”能力,ShiTuApi可以广泛应用于各行各业:

  • 智慧零售与商超: 商品自动识别、货架盘点、自助结算、竞品分析。

  • 工业制造与质检: 产线零件识别、缺陷检测、物料追踪。

  • 仓储与物流: 包裹/货箱识别、快速分拣、出入库管理。

  • 移动应用与小程序: 拍照识物、卡证识别、logo识别、地标识别。

  • 安防与监控: 特定目标(如特定车辆、着装)的查找与追踪。

4. 关键技术亮点

  • Pimpl模式: 彻底隐藏C++实现细节,保证了API的二进制接口稳定性(ABI-safe),您的代码无需因为我们的内部升级而重新编译。

  • 配置驱动: 通过一个简单易读的 config.yaml 文件,即可灵活配置模型、硬件、预处理和后处理等所有参数。

  • 高性能向量检索: 集成Facebook AI的FAISS库,即使在百万级索引库中也能实现毫秒级的相似性搜索。

  • 内置NMS算法: 智能合并重叠的识别结果,输出干净、准确的目标列表。

  • 线程安全设计: 采用句柄(Handle)隔离实例,并对每个实例的所有操作进行加锁,确保了在高并发环境下的稳定运行。

5. 快速上手——只需五步

使用ShiTuApi就像调用一个工具函数一样简单:

  1. 创建句柄: ShiTuApi_Create(out handle)

  2. 初始化API: ShiTuApi_InitializeWithLicense(handle, "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 指南:您的私人AI视觉实验室

ShiTuApiTestApp操作演示

欢迎使用 ShiTuApiTestApp!它不仅仅是一个简单的Demo,更是一个功能强大的、所见即所得的开发与调试工具。遵循本指南,您将能轻松驾驭ShiTuApi,开启您的AI视觉项目。

ShiTuApiTestApp源代码请参阅我们GitHub项目主页

6.1 第一步:环境搭建与项目运行 (“让它跑起来”)

在编写任何代码之前,我们需要先让测试程序成功运行。

前提条件:

  • 一台64位的Windows操作系统。

  • 已安装Visual Studio 2022(推荐),并包含.NET桌面开发工作负载。

部署流程:

  1. 项目建立:

    • 在Visual Studio中创建一个新的C# WinForms项目(基于.NET 8或更高版本)。

    • 将我们提供的Form1.cs, Form1.Designer.cs, ShiTuCApi.cs等源代码文件添加到您的项目中。

    • 通过NuGet包管理器搜索并安装 YamlDotNet,这是解析配置文件所必需的。

  2. 核心文件部署 (关键步骤):

    • shitu_c_api.dll: 这是API的核心动态链接库。请确保您使用的是 Release 模式下编译生成的版本。将它复制到您C#项目的最终输出目录中,通常是 [项目文件夹]/bin/x64/Release/net8.0-windows/

    • 模型文件夹: 您可以直接使用我们提供的模型,或者访问百度飞桨PaddleClas的官网下载更多的推理/训练模型,甚至是您自己训练的模型。将模型文件夹(如models)也复制到上述输出目录中。

    • 配置文件: 将 config.yaml 文件同样放置在该目录。

    • 字体文件 (可选但推荐): 如果您需要识别和显示包含中文等非英文字符的标签,请将一个中文字体文件(如msyh.ttf - 微软雅黑)也放入该目录,并在config.yaml中正确配置其路径。

  3. 编译与运行:

    • 在Visual Studio顶部,将解决方案平台设置为 x64 (因为DLL是64位的)。

    • 将解决方案配置设置为 Release

    • 点击菜单栏“生成” -> “重新生成解决方案”。这一步会确保所有代码都被重新编译。

    • 点击绿色的“启动”按钮。如果一切顺利,ShiTuApiTestApp 的主界面将展现在您的面前!

6.2 第二步:理解 config.yaml - API的“遥控器”

config.yaml 是您与ShiTuApi交互的“遥控器”。您对这个文本文件所做的任何修改,都会在下次初始化API时直接改变其内部行为。

更多详细参数和高级用法,请参阅我们GitHub项目主页上的完整文档。


Global 区块: 全局设定

这是API的基础环境和核心模型参数。

  • enable_mkldnn: true

    • 含义: 是否在CPU模式下启用Intel的MKL-DNN加速库。

    • 用法: 如果您使用的是Intel的CPU,强烈建议保持 true,它能显著提升CPU的推理速度。

  • det_inference_model_dir & rec_inference_model_dir:

    • 含义: 目标检测模型识别模型的路径。识别模型是必需的,检测模型是可选的。

    • 模型来源: 您可以从百度飞桨PaddleClas的GitHub仓库或官网下载最新的推理模型,或者使用您自己基于PaddleClas训练的模型,ShiTuApi均可兼容。

  • feature_dim: 512

    • 含义: 特征向量的维度。极其重要,必须与您使用的识别模型所输出的维度完全一致。参数预设为512维。

  • threshold: 0.6

    • 含义: 检测置信度阈值。这是物体被“看见”的第一道门槛。

    • 调试技巧: 如果漏检,可降低此值(如0.5);如果误检太多,可提高此值(如0.7)。

关于GPU参数: 您可能会在 config.yaml 中看到 use_gpu, gpu_id 等参数。在当前发布的CPU版本中,这些参数是预留项,修改它们不会产生效果。如需GPU版本,请联系我们进行商业定制。


IndexProcess 区块: 索引库与识别行为

这里控制着您的“图像大脑”是如何构建和工作的。

  • index_dir: "./product_index/all_products": 索引库路径。程序会在这里生成 .index.label 文件。

  • metric_type: "IP": 相似度计算方式IP (内积) 适用于归一化特征。L2 (欧氏距离) 是另一种选择。

  • threshold: 0.6: 识别得分阈值。这是识别结果的“录取分数线”,是保证识别准确率的关键参数。

    • 调试技巧: 如果错识别太多,提高此值(如0.75);如果想召回更多可能的结果,降低此值(如0.55)。

  • use_detBuild: false: 建库模式false整图建库(适用于图标、Logo);true检测后建库(适用于背景复杂的商品),需要根据项目检测精度要求自行训练模型。


可视化配置 (在Global下): 调试的“眼睛”

  • visualize_search_results: true / visualize_detection_results: true: 控制结果图的显示逻辑search_results控制是否显示绿色的识别成功框,detection_results控制是否显示黄色的纯检测框。

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

示例程序、模型及动态库文件链接: 

1、百度网盘 请输入提取码 提取码: 5574

2、Internxt Drive – Private & Secure Cloud Storage

3、示例程序、模型及动态库文件DLL.zip - pCloud

4、https://www.dropbox.com/scl/fi/os3e7da5g5iog66300pyf/DLL.zip?rlkey=60uyyyvicww3cfa3mzz79de0n&st=m3g4p5dv&dl=0

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

您可能感兴趣的与本文相关的镜像

PaddlePaddle-v3.3

PaddlePaddle-v3.3

PaddlePaddle

PaddlePaddle是由百度自主研发的深度学习平台,自 2016 年开源以来已广泛应用于工业界。作为一个全面的深度学习生态系统,它提供了核心框架、模型库、开发工具包等完整解决方案。目前已服务超过 2185 万开发者,67 万企业,产生了 110 万个模型

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值