调用百度大脑AI开放平台接口实现java+web的图像识别技术
调用百度大脑AI开放平台接口实现java+web的图像识别技术
- 一、后台实现图像识别接口
- 二、前端页面实现和后台接口调用
一、后台实现图像识别接口
可参考百度大脑AI开放平台SDK文档\JavaSDK文档\快速入门
下为官方文档的使用例子
public class Sample {//设置APPID/AK/SK(我们在使用百度接口的时候要经过授权(登录),获得App ID、Api Key及Secret Key)public static final String APP_ID = "你的 App ID";public static final String API_KEY = "你的 Api Key";public static final String SECRET_KEY = "你的 Secret Key";public static void main(String[] args) {// 初始化一个AipImageClassifyAipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY);// 可选:设置网络连接参数client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);// 可选:设置代理服务器地址, http和socket二选一,或者均不设置client.setHttpProxy("proxy_host", proxy_port); // 设置http代理client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理// 调用接口(传入的参数path为图片地址)String path = "test.jpg";JSONObject res = client.objectDetect(path, new HashMap<String, String>());System.out.println(res.toString(2));}
}
1、在pom.xml导入依赖
<!-- baidu sdk --><dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.15.1</version></dependency>
2、在项目下创建一个包api,存放AipImageClient.java
AipImageClient为一个通用接口,用以获取到AipImageClassify的实例
package com.briup.recognition.api;import com.baidu.aip.imageclassify.AipImageClassify;public class AipImageClient {//设置APPID/AK/SKpublic static final String APP_ID = "22788572";public static final String API_KEY = "gDjq3kdOXQXiA1XMM5qoKMNc";public static final String SECRET_KEY = "bOCcLzPRcGXe6guqi4yON19ho1qj67B0";// 2.本类内部创建对象实例private static AipImageClassify instance = null;/*** 1.构造方法私有化,外部不能new*/private AipImageClient() {}// 3.提供一个公有的静态方法getInstance,通过AipImageClient调用getInstance就可以获取到AipImageClassify的实例,通过这个实例就可以调用所有的接口public static AipImageClassify getInstance() {if (instance == null) {instance = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY);}return instance;}
3、通过AipImageClient类调用接口
package com.briup.recognition.web.controller;import java.util.HashMap;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.json.JSONObject;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import com.baidu.aip.imageclassify.AipImageClassify;
import com.briup.recognition.api.AipImageClient;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;//车辆识别接口
@Api(description = "车辆识别接口")
@Validated
@RestController
@RequestMapping("/recognition")
public class CarsRecognitionController {@ApiOperation(value = "车辆识别")@PostMapping("cars")public void plant( @RequestParam("file") MultipartFile file, HttpServletRequest req, HttpServletResponse resp) throws Exception {// 获取图像识别客户端AipImageClassify client = AipImageClient.getInstance();
// JSONObject res = client.plantDetect(file.getBytes(), new HashMap<>());
// JSONObject res = client.advancedGeneral(file.getBytes(), new HashMap<>());// 参数为二进制数组JSONObject res = client.carDetect(file.getBytes(),new HashMap<>());// 手动返回jsonresp.setHeader("Content-Type", "application/json;charset=UTF-8");resp.getWriter().write(res.toString());}
}
参考百度大脑AI开放平台SDK文档\JavaSDK文档\接口说明,我们可以自行选择所需要的图像识别接口
二、前端页面实现和后台接口调用
1、新建用于存放图像识别页面的文件夹,并新建一个vue文件
2、构建页面基本框架
<!-- vue的三个模块 -->
<!-- 模板 html -->
<template><!-- 这里有且只能有一个根标签 --><div>example</div>
</template>
<!-- 脚本 js -->
<script>
export default {// 定义变量data(){ return {}},// 定义事件处理函数methods:{},// 生命周期钩子函数created(){}
}
</script>
<!-- 样式 css -->
<style lang="sass" scoped></style>
2、配置路由
{path: 'cars_recoginition',name: 'carsRecoginition',//当前路由名称component: () => import('@/views/CarsRecoginition/Index'),//页面文件路径meta: { title: '车辆识别'}}
3、添加elementui图片上传组件
<template><div><!-- action:处理图像的后台接口地址; --><!-- :on-preview="handlePictureCardPreview":处理图片的预览 --><!-- :on-remove="handleRemove":处理图片的移除 --><!-- :on-success="successHandler":处理图像成功的响应 --><div style="text-alicenter"><el-uploadaction="http://localhost:8888/recognition/cars"list-type="picture-card":on-success="successHandler"><i class="el-icon-plus"></i></el-upload></div></div>
</template>
定义successHandler方法
data(){return {resp :{}}},methods:{successHandler(resp){// 将后台返回的响应结果赋值给当前实例当中的respthis.resp = resp;}},
4、添加用于接收成功数据的表单
<div><h3>识别结果:</h3><el-table :data="resp.result"><el-table-column label="精确度" align="center" prop="score"></el-table-column><el-table-column label="生产年份" align="center" prop="year"></el-table-column><el-table-column label="车辆型号" align="center" prop="name"></el-table-column></el-table></div>
调用百度大脑AI开放平台接口实现java+web的图像识别技术相关推荐
- python调用百度网盘开放平台接口上传本地文件
本文章是为如何在没有GUI的环境下,使用指令行上传文件到百度网盘提供一个思路,其他操作请自行查询官方文档拓展. 前期工作 申请成为开发者 创建应用 记录AppKey和SecreKey,后续开发需要使用 ...
- 调用百度网盘开放平台接口,操作百度网盘中的文件,上传、下载等
1.文件管理 post 文件操作:copy, mover, rename, delete https://pan.baidu.com/rest/2.0/xpan/file? method=filema ...
- python3调用腾讯AI开放平台
CSDN上偶遇一文说明如何调用腾讯AI开放平台API,因为喜欢python3,所以用python3实现了下. 用qq登录获取自己的id和key. 参考点击打开链接. 首先获取请求参数.新建了个文件md ...
- 百度云和ai开放平台关系_集成平台即服务,云和……独角兽
百度云和ai开放平台关系 啊,是的,这个虚幻的乌托邦"云"中,独角兽嬉戏,蝴蝶纷飞,魔术精灵为我拿来了四分之三的啤酒. 我爱那个地方. 我刚刚在羊皮服装公司的一家开源狼网站上看到了 ...
- java实现自动识别验证码并自动填写提交(调用百度通用文字识别OCR接口+大图找小图之图像识别算法+模拟鼠标键盘动作)
一.使用的技术: 1.调用百度AI通用文字识别OCR接口 2.图像识别算法 二.实现方案与步骤: 1.得到验证码的图片的坐标:先将验证码截图,然后再对整个电脑屏幕截图,通过大图找小图的方法,计算出小图 ...
- 百度网盘开放平台接口,上传、下载等功能PHP详细操作
目录 1.获取code 2.获取access_token 3.获取网盘容量 4.获取文件列表 5.预上传 6.分片上传 7.创建文件 1.获取code public function getCode( ...
- 基于百度AI开放平台的人脸识别及语音合成
基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...
- 人人都可做 AI 开发者,云知声 AI 开放平台重磅上线
为抢占新一轮全球科技竞争高地,推动人工智能场景落地,近些年 Amazon.Google.微软等科技巨头纷纷开放自己的 AI 平台,围绕平台向业界输出多元 AI 技术.与此同时,国内 BAT.华为等大厂 ...
- 2018虹软视觉AI开放平台开发者大赛,助力开发者梦想起航
过去,人们因为出门忘带钥匙而烦恼,因为排队检票人山人海而焦灼-- 自从有了人脸识别算法赋能,出门不用再带钥匙,排队实时人证核验检票--刷脸轻松畅行. 对于人脸识别黑科技感兴趣的你是不是也跃跃欲试呢? ...
- 百度AI开放平台在线体验及API接口调用(python)
写在前面 百度AI开放平台将目前已有的深度学习和人工智能的项目成果做了一个集成,并供用户体验和开发者调用. 在线体验 图像技术 色情识别 人像分割 图像无损放大 图像风格转换 文字识别 车牌识别 文字 ...
最新文章
- java中overload与override的区别
- 参观 Google 总部是一种什么体验?
- python中的open函数
- 【MONGODB】验证MONGODB 主从复制
- SparkStreaming Exception in thread main java.lang.IllegalArgumentException xxx is not a valid
- zephir mysql_用Zephir编写php扩展库以及生成文档、IDE提示
- PyFlink 开发环境利器:Zeppelin Notebook
- Golang——Println与键盘录入
- macos 全局代理 app_「主观向」macOS 好软推荐(使用体验)
- emacs mysql代码阅读_Emacs + etags + cscope 阅读代码
- 如何限制用户在某一时间段多次访问接口
- windows和linux环境下java调用C++代码-JNI技术
- 常用手机屏幕尺寸大小
- 研究了1天的ckfinder记录
- 腾达路由器登录远端服务器无响应,腾达路由器 192.168.0.1(tendawifi.com)打不开,怎么办?...
- 「技巧」如何快速安装 Sketch 插件
- 2021届Java开发求职-------面试实战之Vivo提前批
- Gitlab+Docker构建流水线部署
- IntelliJ IDEA 15 Released 破解 注册码
- python编写代码求圆的面积_【Python】求圆的面积,书上的代码可执行却是0,不知道为什么...