调用百度智能云ai的植物识别,如何获取所有的返回参数(包括百科描述那些)。我按找官网的demo来跑只能获取如下的结果:{"log_id": 6254760983414220744, "result": [{"score": 0.8125735521316528, "name": "金边吊兰"}, {"score": 0.600487470626831, "name": "吊兰"}, {"score": 0.12811417877674103, "name": "金心吊兰"}]}”
2条回答 默认 最新
- 编程漫步者 2023-03-02 14:59关注
百度智能云AI植物识别接口返回的结果中,只包含了基本的植物名称和识别得分,如果需要获取植物的详细描述信息,需要使用百度百科API进行查询。具体步骤如下:
首先在百度开放平台上创建一个百度百科API的应用,并获取到 App Key 和 Secret Key。
在调用植物识别接口时,将参数 "baike_num" 设置为 1,这将返回植物识别结果中每种植物的百科词条ID。
使用获取到的百科词条ID,调用百度百科API进行查询,可以获取到包括描述、图片、标签等详细信息的JSON格式数据。
下面是一个Java代码示例,演示如何通过百度百科API获取植物识别结果的详细信息:
import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.HmacAlgorithms; import org.apache.commons.codec.digest.HmacUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class PlantRecognition { private static final String API_KEY = "Your App Key"; private static final String SECRET_KEY = "Your Secret Key"; private static final String PLANT_URL = "https://aip.baidubce.com/rest/2.0/image-classify/v1/plant"; private static final String BAIDU_BAIKE_URL = "https://baike.baidu.com/api/openapi/BaikeLemmaCardApi"; private static final String BAIDU_BAIKE_APP_ID = "Your App ID"; public static void main(String[] args) throws Exception { String imagePath = "Your Image Path"; String accessToken = getAccessToken(API_KEY, SECRET_KEY); String result = plantRecognition(imagePath, accessToken); System.out.println(result); JSONArray jsonArray = JSON.parseObject(result).getJSONArray("result"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String name = jsonObject.getString("name"); String baikeId = jsonObject.getString("baike_info"); if (baikeId != null && !baikeId.isEmpty()) { JSONObject baikeInfo = JSON.parseObject(baikeId); String lemmaId = baikeInfo.getString("lemma_id"); String baikeResult = getBaikeResult(lemmaId); System.out.println(baikeResult); } } } private static String plantRecognition(String imagePath, String accessToken) throws Exception { byte[] imgData = ImageUtil.readFileByBytes(imagePath); String imgStr = Base64.encodeBase64String(imgData); String imgParam = URLEncoder.encode(imgStr, "UTF-8"); Map<String, String> paramMap = new HashMap<>(); paramMap.put("image", imgParam); paramMap.put("baike_num", "1"); String paramStr = HttpUtil.buildParamString(paramMap, "UTF-8"); String url = PLANT_URL + "?" + paramStr; String result = HttpUtil.get(url, accessToken); return
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何解决蓝牙通话音频突发失真问题
- ¥15 安装opengauss数据库报错
- ¥15 【急】在线问答CNC雕刻机的电子电路与编程
- ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
- ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
- ¥15 Python pandas
- ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
- ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
- ¥15 云环境云开发云函数对接微信商户中的分账功能
- ¥15 空间转录组CRAD遇到问题