提交修改
This commit is contained in:
parent
f6f601e691
commit
b4bcf4e506
@ -0,0 +1,78 @@
|
||||
package com.heyu.api.controller.imagerecog;
|
||||
|
||||
|
||||
import com.aliyun.imagerecog20190930.models.RecognizeFoodResponse;
|
||||
import com.aliyun.imagerecog20190930.models.RecognizeFoodResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imagerecog.ARecognizeFoodHandle;
|
||||
import com.heyu.api.alibaba.request.imagerecog.ARecognizeFoodRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.request.imagerecog.EvaluateCertificateQualityReq;
|
||||
import com.heyu.api.resp.imagerecog.RecognizeFoodResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/imagerecog/2019-09-30/RecognizeFood?RegionId=cn-shanghai
|
||||
*菜品识别
|
||||
*
|
||||
* RecognizeFood
|
||||
*
|
||||
* 功能描述
|
||||
* 菜品识别能力可以识别出图片中的菜品类别名称和热量。
|
||||
*
|
||||
*应用场景
|
||||
* 减肥 App:拍摄每天的饮食,计算菜品的热量,可协助您控制好热量摄入。
|
||||
* 运动管理 App:通过识别菜品类别,计算累计摄入热量,给出每天的运动计划量。
|
||||
* 餐饮、菜场等自动收银结算:通过识别餐饮的类别,可提供自动结算服务。
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/food")
|
||||
@NotIntercept
|
||||
public class RecognizeFoodController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ARecognizeFoodHandle arRecognizeFoodHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
@CacheResult
|
||||
public R recognize(EvaluateCertificateQualityReq req) {
|
||||
|
||||
List<RecognizeFoodResp> respList = new ArrayList<>();
|
||||
|
||||
ARecognizeFoodRequest arRecognizeFoodRequest = new ARecognizeFoodRequest();
|
||||
arRecognizeFoodRequest.setImageBase64(req.getImageBase64());
|
||||
arRecognizeFoodRequest.setImageUrl(req.getImageUrl());
|
||||
|
||||
|
||||
ApiR<RecognizeFoodResponse> aR = arRecognizeFoodHandle.handle(arRecognizeFoodRequest);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
RecognizeFoodResponseBody.RecognizeFoodResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
if (CollectionUtils.isNotEmpty(responseBodyData.getTopFives())) {
|
||||
for (RecognizeFoodResponseBody.RecognizeFoodResponseBodyDataTopFives topFive : responseBodyData.getTopFives()) {
|
||||
RecognizeFoodResp resp = new RecognizeFoodResp();
|
||||
resp.setScore(topFive.getScore());
|
||||
resp.setCategory(topFive.getCategory());
|
||||
resp.setCalorie(topFive.getCalorie());
|
||||
respList.add(resp);
|
||||
}
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package com.heyu.api.request.imagerecog;
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RecognizeFoodReq extends CommonReq {
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.heyu.api.resp.imagerecog;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RecognizeFoodResp extends BaseResp {
|
||||
|
||||
|
||||
/**
|
||||
* 每百克卡路里数值。例如被识别为三菌汤的数值为 208,则表示每 100 克三菌汤卡路里为 208 大卡。
|
||||
*
|
||||
* 说明 由于有些菜品很少见,没有比较统一的卡路里数值,故标注UNKNOWN,表示未知。
|
||||
* 示例值:
|
||||
* 208
|
||||
*/
|
||||
public String calorie;
|
||||
|
||||
/***
|
||||
* 类别。
|
||||
*
|
||||
* 示例值:
|
||||
* 清蒸鲈鱼
|
||||
*/
|
||||
public String category;
|
||||
|
||||
/***
|
||||
* 识别菜品类别的置信度,取值范围为 0~1。
|
||||
*
|
||||
* 示例值:
|
||||
* 0.2083740234375
|
||||
*/
|
||||
public Float score;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user