怎么用Unity代码实现菜品识别
本篇内容介绍了“怎么用Unity代码实现菜品识别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
接口介绍:
识别超过9千种菜品,支持客户创建属于自己的菜品图库,可准确识别图片中的菜品名称、位置、卡路里信息,并获取百科信息,适用于多种客户识别菜品的业务场景中。
创建应用:
在产品服务中搜索图像识别,创建应用,获取AppID、APIKey、SecretKey信息:
查阅官方文档,以下是菜品识别接口返回数据参数详情:
定义数据结构:
usingSystem;///<summary>///菜品识别///</summary>[Serializable]publicclassDishRecognition{///<summary>///唯一的logid,用于问题定位///</summary>publicfloatlog_id;///<summary>///返回结果数目,及result数组中的元素个数///</summary>publicintresult_num;///<summary>///菜品识别结果数组///</summary>publicDishRecognitionResult[]result;}///<summary>///菜品识别结果///</summary>[Serializable]publicclassDishRecognitionResult{///<summary>///菜名///</summary>publicstringname;///<summary>///卡路里,每100g的卡路里含量///</summary>publicfloatcalorie;///<summary>///识别结果中每一行的置信度值,0-1///</summary>publicfloatprobability;///<summary>///百科词条///</summary>publicBaikeInfobaike_info;}[Serializable]publicclassBaikeInfo{///<summary>///对应识别结果百度百科页面链接///</summary>publicstringbaike_url;///<summary>///对应识别结果百科图片链接///</summary>publicstringimage_url;///<summary>///对应识别结果百科内容描述///</summary>publicstringdescription;}
下载C# SDK:
下载完成后将AipSdk.dll动态库导入到Unity中:
以下是调用接口时传入的参数详情:
封装调用函数:
usingSystem;usingSystem.Collections.Generic;usingUnityEngine;///<summary>///图像识别///</summary>publicclassImageRecognition{//以下信息于百度开发者中心控制台创建应用获取privateconststringappID="";privateconststringapiKey="";privateconststringsecretKey="";///<summary>///菜品识别///</summary>///<paramname="bytes">图片字节数据</param>///<paramname="topNum">返回预测得分top结果数,默认为5</param>///<paramname="filterThreshold">默认0.95,可以通过该参数调节识别效果,降低非菜识别率.</param>///<paramname="baikeNum">返回百科信息的结果数,默认不返回</param>///<returns></returns>publicstaticDishRecognitionDish(byte[]bytes,inttopNum=5,floatfilterThreshold=0.95f,intbaikeNum=0){varclient=newBaidu.Aip.ImageClassify.ImageClassify(apiKey,secretKey);try{varoptions=newDictionary<string,object>{{"top_num",topNum},{"filter_threshold",Mathf.Clamp01(filterThreshold)},{"baike_num",baikeNum}};varresponse=client.DishDetect(bytes,options);DishRecognitiondishRecognition=JsonConvert.DeserializeObject<DishRecognition>(response.ToString());returndishRecognition;}catch(Exceptionerror){Debug.LogError(error);}returnnull;}}
测试图片:
usingSystem.IO;usingUnityEngine;publicclassExample:MonoBehaviour{privatevoidStart(){ImageRecognition.Dish(File.ReadAllBytes(Application.dataPath+"/Picture.jpg"));}}
“怎么用Unity代码实现菜品识别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。