欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity接入百度AI实现果蔬识别

程序员文章站 2022-03-02 12:29:18
接口介绍:识别近千种水果和蔬菜的名称,适用于识别只含有一种果蔬的图片,可自定义返回识别结果数,适用于果蔬介绍相关的美食类app中。创建应用: 在产品服务中搜索图像识别,创建应用,获取appid、ap...

接口介绍:

识别近千种水果和蔬菜的名称,适用于识别只含有一种果蔬的图片,可自定义返回识别结果数,适用于果蔬介绍相关的美食类app中。

创建应用:     

在产品服务中搜索图像识别,创建应用,获取appid、apikey、secretkey信息:

Unity接入百度AI实现果蔬识别

Unity接入百度AI实现果蔬识别

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

Unity接入百度AI实现果蔬识别

定义数据结构:

using system;
 
/// <summary>
/// 果蔬识别
/// </summary>
[serializable]
public class ingredientrecognition
{
    /// <summary>
    /// 唯一的log id,用于问题定位
    /// </summary>
    public float log_id;
    /// <summary>
    /// 返回结果数目,及result数组中的元素个数
    /// </summary>
    public int result_num;
    /// <summary>
    /// 识别结果数组
    /// </summary>
    public ingredientrecognitionresult[] result;
}
 
/// <summary>
/// 果蔬识别结果
/// </summary>
[serializable]
public class ingredientrecognitionresult
{
    /// <summary>
    /// 食材名称
    /// </summary>
    public string name;
    /// <summary>
    /// 置信度
    /// </summary>
    public float score;
}

下载c# sdk:

Unity接入百度AI实现果蔬识别

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

Unity接入百度AI实现果蔬识别

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

Unity接入百度AI实现果蔬识别

在下载的sdk中并未发现通过url调用的重载函数,大概是官方文档未更新:

Unity接入百度AI实现果蔬识别

封装调用函数: 

using system;
using system.collections.generic;
using unityengine;
 
/// <summary>
/// 图像识别
/// </summary>
public class imagerecognition 
{
    //以下信息于百度开发者中心控制台创建应用获取
    private const string appid = "";
    private const string apikey = "";
    private const string secretkey = "";
 
    /// <summary>
    /// 果蔬识别
    /// </summary>
    /// <param name="bytes">图片字节数据</param>
    /// <param name="topnum">返回预测得分top结果数,如果为空或小于等于0默认为5;如果大于20默认20</param>
    /// <returns></returns>
    public static ingredientrecognition ingredient(byte[] bytes, int topnum = 5)
    {
        var client = new baidu.aip.imageclassify.imageclassify(apikey, secretkey);
        try
        {
            var options = new dictionary<string, object>
            {
                { "top_num", topnum },
            };
            var response = client.ingredient(bytes, options);
            ingredientrecognition ingredientrecognition = jsonconvert.deserializeobject<ingredientrecognition>(response.tostring());
            return ingredientrecognition;
        }
        catch (exception error)
        {
            debug.logerror(error);
        }
        return null;
    }
}

测试图片:

Unity接入百度AI实现果蔬识别

using system.io;
using unityengine;
 
public class example : monobehaviour
{
    private void start()
    {
        imagerecognition.ingredient(file.readallbytes(application.datapath + "/picture.jpg"));
    }
}

Unity接入百度AI实现果蔬识别

以上就是unity接入百度ai实现果蔬识别的详细内容,更多关于unity果蔬识别的资料请关注其它相关文章!