当前位置:   article > 正文

Unity 接入百度AI - Logo商标识别_百度logo 高优商标

百度logo 高优商标

接口介绍:

该请求用于检测和识别图片中的品牌LOGO信息。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中LOGO的名称、位置和置信度。当效果欠佳时,可以建立子库(在百度开发者中心控制台创建应用并申请建库)并通过调用logo入口接口完成自定义logo入库,提高识别效果。

创建应用:     

在产品服务中搜索图像识别,创建应用,获取AppID、APIKey、SecretKey信息:

查阅官方文档,以下是Logo商标识别接口返回数据参数详情:

定义数据结构:

  1. using System;
  2. /// <summary>
  3. /// Logo识别响应数据结构
  4. /// </summary>
  5. [Serializable]
  6. public class LogoRecognition
  7. {
  8. /// <summary>
  9. /// 请求标识码,随机数,唯一
  10. /// </summary>
  11. public float log_id;
  12. /// <summary>
  13. /// 返回结果数目,即:result数组中元素个数
  14. /// </summary>
  15. public int result_num;
  16. /// <summary>
  17. /// 返回结果数组,每一项为一个识别出的logo
  18. /// </summary>
  19. public LogoRecognitionResult[] result;
  20. }
  21. [Serializable]
  22. public class LogoRecognitionResult
  23. {
  24. /// <summary>
  25. /// 位置信息
  26. /// </summary>
  27. public LogoRecognitionResultLocation location;
  28. /// <summary>
  29. /// 识别的品牌名称
  30. /// </summary>
  31. public string name;
  32. /// <summary>
  33. /// 分类结果置信度(0--1.0)
  34. /// </summary>
  35. public float probability;
  36. /// <summary>
  37. /// type=0为1千种高优商标识别结果;type=1为2万类logo库的结果;其它type为自定义logo库结果
  38. /// </summary>
  39. public int type;
  40. }
  41. /// <summary>
  42. /// 位置信息
  43. /// </summary>
  44. [Serializable]
  45. public class LogoRecognitionResultLocation
  46. {
  47. /// <summary>
  48. /// 左起像素位置
  49. /// </summary>
  50. public float left;
  51. /// <summary>
  52. /// 上起像素位置
  53. /// </summary>
  54. public float top;
  55. /// <summary>
  56. /// 像素宽
  57. /// </summary>
  58. public float width;
  59. /// <summary>
  60. /// 像素高
  61. /// </summary>
  62. public float height;
  63. }

下载C# SDK:

下载完成后将AipSdk.dll动态库导入到Unity中:

以下是调用接口时传入的参数详情:

封装调用函数: 

  1. using System;
  2. using UnityEngine;
  3. using Newtonsoft.Json;
  4. using System.Collections.Generic;
  5. /// <summary>
  6. /// 图像识别
  7. /// </summary>
  8. public class ImageRecognition
  9. {
  10. //以下信息于百度开发者中心控制台创建应用获取
  11. private const string appID = "";
  12. private const string apiKey = "";
  13. private const string secretKey = "";
  14. /// <summary>
  15. /// Logo商标识别
  16. /// </summary>
  17. /// <param name="bytes">Logo图片字节数据</param>
  18. /// <param name="customLib">是否只使用自定义logo库的结果,默认false:返回自定义库+默认库的识别结果</param>
  19. /// <returns></returns>
  20. public static LogoRecognition Logo(byte[] bytes, bool customLib = false)
  21. {
  22. var client = new Baidu.Aip.ImageClassify.ImageClassify(apiKey, secretKey);
  23. try
  24. {
  25. var options = new Dictionary<string, object>
  26. {
  27. { "custom_lib", customLib}
  28. };
  29. var response = client.LogoSearch(bytes, options);
  30. LogoRecognition logoRecognition = JsonConvert.DeserializeObject<LogoRecognition>(response.ToString());
  31. return logoRecognition;
  32. }
  33. catch (Exception error)
  34. {
  35. Debug.LogError(error);
  36. }
  37. return null;
  38. }
  39. }

测试图片:

  1. using System.IO;
  2. using UnityEngine;
  3. public class Example : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. ImageRecognition.Logo(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));
  8. }
  9. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/123575
推荐阅读
相关标签
  

闽ICP备14008679号