当前位置: 首页 > news >正文

百度 AI API 调用速查表

本速查表基于项目中使用的 5 个核心识别功能(植物、动物、车辆、车牌、菜品)整理,涵盖 API 调用的核心要素(客户端、方法名、参数、结果字段等),方便开发时快速查阅,减少重复查文档的成本。

识别类型核心客户端API 方法名必传参数常用可选参数结果存储节点关键结果字段(示例)
植物识别ImageClassifyPlantDetectimage(byte[])无(默认返回所有结果)"result"- name:植物名称(如 “玫瑰”)- score:相似度(0-1,如 0.92)
动物识别ImageClassifyAnimalDetectimage(byte[])无(默认返回所有结果)"result"- name:动物名称(如 “金毛寻回犬”)- score:相似度(0-1,如 0.89)
车辆识别ImageClassifyCarDetectimage(byte[])top_num(返回结果数)"result"- name:车辆型号(如 “宝马 3 系 2020 款”)- score:相似度(0-1,如 0.95)
车牌识别OcrLicensePlateimage(byte[])multi_detect(多车牌)"words_result"- color:车牌颜色(如 “blue”)- number:车牌号码(如 “京 A12345”)
菜品识别ImageClassifyDishDetectimage(byte[])top_num(返回结果数)"result"- name:菜品名称(如 “宫保鸡丁”)- calorie:卡路里(每 100g,如 “150kcal”)- probability:相似度(0-1,如 0.91)

一、通用调用步骤(所有功能通用)

  1. 初始化客户端

    :传入百度 AI 的API_KEY和SECRET_KEY

    创建对应客户端(ImageClassify或Ocr)。

    // 图像分类客户端(植物/动物/车辆/菜品) ImageClassify classifyClient = new ImageClassify(API_KEY, SECRET_KEY); // OCR客户端(车牌识别) Ocr ocrClient = new Ocr(API_KEY, SECRET_KEY);
  2. 设置超时时间

    (可选,默认可能较短,建议设置为 60 秒):

    classifyClient.Timeout = 60000; // 单位:毫秒 ocrClient.Timeout = 60000;
  3. 读取图片为字节数组

    (API 要求的统一输入格式):

    // 方式1:直接读取(可能锁定文件,适合简单场景) byte[] imageBytes = File.ReadAllBytes("图片路径.jpg"); // 方式2:流读取(避免文件锁定,推荐生产环境) using (var stream = new FileStream("图片路径.jpg", FileMode.Open, FileAccess.Read)) { byte[] imageBytes = new byte[stream.Length]; stream.Read(imageBytes, 0, imageBytes.Length); }
  4. 调用 API 并解析结果:根据识别类型调用对应方法,从返回的JObject中提取结果(需引用Newtonsoft.Json.Linq)。

二、各功能调用示例(含参数配置)

1. 植物识别(无可选参数)

// 1. 调用API var result = classifyClient.PlantDetect(imageBytes); // 2. 解析结果 if (result.ContainsKey("result") && result["result"] is JArray plantList) { foreach (JObject plant in plantList) { string name = plant["name"]?.ToString() ?? "未知植物"; double score = plant["score"]?.ToObject<double>() ?? 0; Console.WriteLine($"植物:{name},相似度:{score:F2}"); } }

2. 车辆识别(带 top_num 参数)

// 1. 配置可选参数(只返回前3个相似度最高的结果) var carOptions = new Dictionary<string, object> { {"top_num", 3} }; // 2. 调用API var result = classifyClient.CarDetect(imageBytes, carOptions); // 3. 解析结果 if (result.ContainsKey("result") && result["result"] is JArray carList) { foreach (JObject car in carList) { string name = car["name"]?.ToString() ?? "未知车辆"; double score = car["score"]?.ToObject<double>() ?? 0; Console.WriteLine($"车辆:{name},相似度:{score:F2}"); } }

3. 车牌识别(带 multi_detect 参数)

// 1. 配置可选参数(允许识别图片中的多个车牌) var plateOptions = new Dictionary<string, object> { {"multi_detect", "true"} }; // 2. 调用API(注意使用Ocr客户端) var result = ocrClient.LicensePlate(imageBytes, plateOptions); // 3. 解析结果(结果存在于"words_result"节点) if (result.ContainsKey("words_result") && result["words_result"] is JArray plateList) { foreach (JObject plate in plateList) { string colorCode = plate["color"]?.ToString() ?? "unknown"; string color = colorCode == "blue" ? "蓝色" : colorCode == "yellow" ? "黄色" : "未知"; string number = plate["number"]?.ToString() ?? "未知号码"; Console.WriteLine($"车牌:{color}({number})"); } }

4. 菜品识别(带 top_num 参数,结果含卡路里)

// 1. 配置可选参数(只返回前4个菜品结果) var dishOptions = new Dictionary<string, object> { {"top_num", 4} }; // 2. 调用API var result = classifyClient.DishDetect(imageBytes, dishOptions); // 3. 解析结果(相似度字段为probability,非score) if (result.ContainsKey("result") && result["result"] is JArray dishList) { foreach (JObject dish in dishList) { string name = dish["name"]?.ToString() ?? "未知菜品"; string calorie = dish["calorie"]?.ToString() ?? "未知"; double probability = dish["probability"]?.ToObject<double>() ?? 0; Console.WriteLine($"菜品:{name},卡路里:{calorie}/100g,相似度:{probability:F2}"); } }

三、关键注意事项

  1. 客户端与功能对应:

    • 植物、动物、车辆、菜品识别必须使用ImageClassify客户端。

    • 车牌识别必须使用Ocr客户端,混用会导致 API 调用失败。

  2. 结果字段差异:

    • 植物、动物、车辆的相似度字段为"score"

    • 菜品的相似度字段为"probability"(百度 API 设计差异,需特别注意)。

    • 车牌识别的结果节点为"words_result",其他功能为"result"

  3. 参数值类型:

    • 可选参数的值需为object类型,如top_num3(int),multi_detect"true"(string),需严格按照百度 API 文档要求传值。

  4. 异常处理:

    • 调用 API 前需确保图片文件存在且可读,避免IOException

    • 网络异常(如无网络、超时)或 API 错误(如密钥无效、图片过大)会抛出Exception,需通过try-catch捕获并提示用户。

http://www.cnnetsun.cn/news/47633.html

相关文章:

  • LinuxServer.io LibreOffice 容器化部署指南
  • 阿里Wan2.2开源指南:如何用140亿参数模型创作电影级AI视频
  • Spring AI对话记忆并发管理:5大核心挑战与优化实战
  • Deep Image Prior中的感知损失:从像素匹配到特征对齐的技术演进
  • 2025年最值得尝试的5个网盘直链解析技巧:让下载速度翻倍的秘密武器
  • HoRNDIS终极指南:5分钟搞定Mac与Android的USB网络共享
  • Rust 高性能同步原语:parking_lot 使用指南
  • QUIC协议重塑P2P传输:从WebRTC瓶颈到高性能通信新纪元
  • CZDet:级联放大检测器用于高分辨率航拍图像
  • Cookie Monster:Cookie Clicker游戏终极增强指南
  • TrollInstallerX实用指南:iOS设备越狱新体验
  • LazyVim懒人配置:5分钟让Neovim变身专业代码编辑器
  • 2、开放数据:经济、政治与技术现象解析
  • Qwen3-VL-235B-A22B-Instruct:5大核心技术突破重塑多模态AI应用边界
  • 揭秘Mission Planner:无人机飞控高手必学的5大核心技能
  • FastExcel终极指南:高效读写Excel文件的.NET解决方案
  • 11.6GB显存实现专业级语音合成:VibeVoice-Large-Q8的显存优化革命
  • AI视觉叙事革命:如何让AI像电影导演一样思考?
  • SciencePlots终极指南:如何快速制作专业级科研图表
  • 告别付费订阅:3款2024年必备免费开发者工具全解析
  • Tiled地图渲染性能优化:从卡顿到丝滑的游戏体验提升指南
  • 5分钟掌握SciencePlots:Python科研图表的终极色彩解决方案
  • Android截屏自由终极指南:彻底打破应用限制的完整教程
  • SeaORM数据迁移完整教程:从零开始掌握大批量数据处理
  • 超越 `assert`:深入 Pytest 的高级测试哲学与实践
  • 微服务发布翻车现场:我用pig框架实现零风险灰度发布的实战心得
  • 微信自动答题小工具:如何在PC端轻松实现智能答题
  • iOS架构模式终极指南:从MVC到VIPER的完整解析
  • BetterNCM插件管理器实战教程:10分钟玩转网易云音乐插件生态
  • Claude Code Router多提供商集成:OpenRouter深度配置实战