软件构造实验作业
实验名称:基于百度图像识别SDK开发植物识别系统
一、实验任务
任务一:配置百度图像识别Java SDK(占10%)
任务二:了解百度图像识别相关功能并进行总结(占20%)
任务三:基于Java Swing+AWT完成动物识别应用界面,自行拍摄动物图片进行上传并查看结果(占30%)
任务四:基于Java Swing+AWT完成植物识别应用界面,自行拍摄植物图片进行上传并查看结果(占30%)
实验总结:(占10%)
任务一:
首先在idea中创建一个maven项目,设置好目录等如下图
由于创建的是web项目,需要补齐并设置文件目录结果如下:
添加依赖并刷新:(版本号可在Maven Central Repository Search查看)
此时我们所需要的jar包已经通过maven导入项目中了,如下:
此时百度图像识别Java SDK已配置完成。
任务二:
在官网中我们可以看到百度AI平台为我们提供了许多功能,并对其进行了简单阐述。本次实验我们用到了其提供的动物识别接口和植物识别接口,通过下图可以得知该两种接口都属于细粒度图像识别(补充:简单来说细粒度图像识别就是比普通的图像识别(分类)再精细化一些。细化到某个动植物的种类、属性等。具体阐述可参考(10条消息) 细粒度图像识别_haima1998的博客-CSDN博客_细粒度图像识别这篇博客)我们可以看出这两种接口的图片编码后大小限额均为:base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,长宽比3:1以内)
任务三:
在官网的快速入门实例中,我们发现想要使用API的话,需要申请自己的App ID、Api Key、Secrect Key。进入控制台并登录然后在菜单栏点击图像识别找到应用列表,如图:
点击创建应用,完善相关信息,创建完成后可看到相关信息,如下图:
创建类Plant然后根据给出的样例编写自己的代码(记得把APP_ID、API_KEY、SECRET_KEY都换成自己的,将创建应用后生成的东西按名称填入对应位置)
修改完的代码如下图:
package cn.com.yjw; import com.baidu.aip.imageclassify.AipImageClassify; import org.json.JSONObject; import java.util.HashMap; public class Anmail { public static final String APP_ID = "28069757"; public static final String API_KEY = "3Aet6h547i72ML1KreOxov0y"; public static final String SECRET_KEY = "LwMB9K7lvL9f06WcqPWU4YugkFalXnoC"; public static void main(String[] args) { // 初始化一个AipImageClassify AipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); // 调用接口 Anmail.anmail(client); }; public static void anmail(AipImageClassify client) { // 传入可选参数调用接口 HashMap<String, String> options = new HashMap<String, String>(); options.put("top_num", "3"); options.put("baike_num", "5"); // 参数为本地路径 String image = "img/panada.jpg"; JSONObject res = client.animalDetect(image, options); System.out.println(res.toString(2)); } } |
至此功能已实现,只需要再做个界面即可:
任务四:
与任务三类似,只需要调用plant接口即可
package cn.com.yjw;
import com.baidu.aip.imageclassify.AipImageClassify; import org.json.JSONObject; import java.util.HashMap; public class Plant {//设置APPID/AK/SK public static final String APP_ID = "28069757"; public static final String API_KEY = "3Aet6h547i72ML1KreOxov0y"; public static final String SECRET_KEY = "LwMB9K7lvL9f06WcqPWU4YugkFalXnoC"; public static void main(String[] args) { // 初始化一个AipImageClassify AipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); // 调用接口 Plant.plant(client); }; public static void plant(AipImageClassify client) { // 传入可选参数调用接口 HashMap<String, String> options = new HashMap<String, String>(); options.put("baike_num", "5"); // 参数为本地路径 String image = "img/duorou.jpg"; JSONObject res = client.plantDetect(image, options); System.out.println(res.toString(2)); } }
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报