江景林 2023-03-01 00:36 采纳率: 50%
浏览 27
已结题

调用百度ai接口如何获取所有返回参数

调用百度智能云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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月13日
  • 已采纳回答 3月5日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)