江景林 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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探