Unity實(shí)現(xiàn)菜品識別的示例代碼
接口介紹:
識別超過9千種菜品,支持客戶創(chuàng)建屬于自己的菜品圖庫,可準(zhǔn)確識別圖片中的菜品名稱、位置、卡路里信息,并獲取百科信息,適用于多種客戶識別菜品的業(yè)務(wù)場景中。
創(chuàng)建應(yīng)用:
在產(chǎn)品服務(wù)中搜索圖像識別,創(chuàng)建應(yīng)用,獲取AppID、APIKey、SecretKey信息:


查閱官方文檔,以下是菜品識別接口返回數(shù)據(jù)參數(shù)詳情:

定義數(shù)據(jù)結(jié)構(gòu):
using System;
/// <summary>
/// 菜品識別
/// </summary>
[Serializable]
public class DishRecognition
{
/// <summary>
/// 唯一的log id,用于問題定位
/// </summary>
public float log_id;
/// <summary>
/// 返回結(jié)果數(shù)目,及result數(shù)組中的元素個數(shù)
/// </summary>
public int result_num;
/// <summary>
/// 菜品識別結(jié)果數(shù)組
/// </summary>
public DishRecognitionResult[] result;
}
/// <summary>
/// 菜品識別結(jié)果
/// </summary>
[Serializable]
public class DishRecognitionResult
{
/// <summary>
/// 菜名
/// </summary>
public string name;
/// <summary>
/// 卡路里,每100g的卡路里含量
/// </summary>
public float calorie;
/// <summary>
/// 識別結(jié)果中每一行的置信度值,0-1
/// </summary>
public float probability;
/// <summary>
/// 百科詞條
/// </summary>
public BaikeInfo baike_info;
}
[Serializable]
public class BaikeInfo
{
/// <summary>
/// 對應(yīng)識別結(jié)果百度百科頁面鏈接
/// </summary>
public string baike_url;
/// <summary>
/// 對應(yīng)識別結(jié)果百科圖片鏈接
/// </summary>
public string image_url;
/// <summary>
/// 對應(yīng)識別結(jié)果百科內(nèi)容描述
/// </summary>
public string description;
}
下載C# SDK:

下載完成后將AipSdk.dll動態(tài)庫導(dǎo)入到Unity中:

以下是調(diào)用接口時傳入的參數(shù)詳情:

封裝調(diào)用函數(shù):
using System;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 圖像識別
/// </summary>
public class ImageRecognition
{
//以下信息于百度開發(fā)者中心控制臺創(chuàng)建應(yīng)用獲取
private const string appID = "";
private const string apiKey = "";
private const string secretKey = "";
/// <summary>
/// 菜品識別
/// </summary>
/// <param name="bytes">圖片字節(jié)數(shù)據(jù)</param>
/// <param name="topNum">返回預(yù)測得分top結(jié)果數(shù),默認(rèn)為5</param>
/// <param name="filterThreshold">默認(rèn)0.95,可以通過該參數(shù)調(diào)節(jié)識別效果,降低非菜識別率.</param>
/// <param name="baikeNum"> 返回百科信息的結(jié)果數(shù),默認(rèn)不返回</param>
/// <returns></returns>
public static DishRecognition Dish(byte[] bytes, int topNum = 5, float filterThreshold = 0.95f, int baikeNum = 0)
{
var client = new Baidu.Aip.ImageClassify.ImageClassify(apiKey, secretKey);
try
{
var options = new Dictionary<string, object>
{
{ "top_num", topNum },
{ "filter_threshold", Mathf.Clamp01(filterThreshold)},
{ "baike_num", baikeNum}
};
var response = client.DishDetect(bytes, options);
DishRecognition dishRecognition = JsonConvert.DeserializeObject<DishRecognition>(response.ToString());
return dishRecognition;
}
catch (Exception error)
{
Debug.LogError(error);
}
return null;
}
}
測試圖片:

using System.IO;
using UnityEngine;
public class Example : MonoBehaviour
{
private void Start()
{
ImageRecognition.Dish(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));
}
}
到此這篇關(guān)于Unity實(shí)現(xiàn)菜品識別的示例代碼的文章就介紹到這了,更多相關(guān)Unity菜品識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入C# winform清除由GDI繪制出來的所有線條或圖形的解決方法
本篇文章是對在C#中使用winform清除由GDI繪制出來的所有線條或圖形的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
MVC設(shè)定默認(rèn)路由為指定的Area下的某個action
今天小編就為大家分享一篇關(guān)于MVC設(shè)定默認(rèn)路由為指定的Area下的某個action,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
C#基于百度AI實(shí)現(xiàn)機(jī)器翻譯功能
眾所周知,基于百度ai開發(fā)平臺我們可以實(shí)現(xiàn)了人臉識別、文字識別 、語音識別等功能。本文將介紹它的另一個功能,即實(shí)現(xiàn)機(jī)器翻譯,感興趣的可以了解一下2022-01-01

