JAVA调用百度AI实现上传图片识别物体

最近给客户做了一个中医文化平台,其中有一个药材识别模块,要求上传一张图然后识别并显示结果。于是就参考了百度的人工智AI

服务与支持-自助服务-自助工具

文档内容比较全面也比较详细,里面有很多的调用接口以及各种语言调用的示例。

在调用之前先要注册一个账号百度智能云-登录

在调用的时候需要API KeySecret Key

我要要中药识别,所以要调用植物识别的接口,文档中也提供了代码只需稍加修改即可

以下是我系统的部份代码

@RestController
@RequestMapping("/ai")
public class RecognitionController {
	
	@Autowired
	public Config orc;
	

	/**
	 * 文件上传解析
	 *
	 * @param
	 * @return
	 * @methodsDescription:
	 * @methodName: rec
	 * @author: singleton-zw
	 * @return: R
	 */
	@PostMapping("/recognLocal")
	public AjaxResult rec(@RequestParam("url") String url){
		if (url.isEmpty()) {
			return AjaxResult.error("404","文件不能为空");
		}
		String path =url;
		String relst = "";
		try {
            byte[] imgData = FileUtil.readFileByBytes(orc.getUpladfile()+path.replaceFirst("/profile/",""));
            String imgStr = Base64Util.encode(imgData);
            relst = URLEncoder.encode("image", "UTF-8") + "="    + URLEncoder.encode(imgStr, "UTF-8");
            
          /**
          * 线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
          */
         String accessToken = getAuth(orc.getClassifyClientId(),orc.getClassifyClientSecret());
         String result = HttpUtil.post(ConfigURL.plantUrl, accessToken, relst);
         Result fromJson = GsonUtils.fromJson(result, Result.class);
         return AjaxResult.success(fromJson);
        } catch (Exception e) {
            e.printStackTrace();
        }
		return AjaxResult.error();
	}

前端用的是VUE

上传图片然后识别,结果如下

再试一下上传一张水果的

传一张非植物的

准确率很高,如果要识别其他种类,直接调用就可以了。

这果说明一下,系统返回的是json字符串,页面的结果可以自己再加工。

{"result":[{"score":0.7190837,"name":"草莓"},{"score":0.41170713,"name":"草莓花"},{"score":0.003689737,"name":"东方草莓"}],"log_id":1780416402093194534}

有兴趣的朋友可以加好友一起讨论一下V:p_k1816

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值