百度官方对接文档如下:
https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Xk3bcxe21
我引入的java版本如下:
<dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</artifactId> <version>4.8.0</version> </dependency>
按照百度的官方java调用方式如下:
public static String advancedGeneral() { // 请求url String url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"; try { // 本地文件路径 String filePath = "[本地文件路径]"; byte[] imgData = FileUtil.readFileByBytes(filePath); String imgStr = Base64Util.encode(imgData); String imgParam = URLEncoder.encode(imgStr, "UTF-8"); String param = "image=" + imgParam; // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 String accessToken = "[调用鉴权接口获取的token]"; String result = HttpUtil.post(url, accessToken, param); System.out.println(result); return result; } catch (Exception e) { e.printStackTrace(); } return null; }
真实使用才发现各种包找不到,最新代码如下:
AipImageClassify imgclient = new AipImageClassify("***","****", "****"); JSONObject jsonObject = imgclient.advancedGeneral( FileUtil.readFileByBytes(filePath), null);
果然符合开箱即用的原则。导入jar包,简单必要参数参入,剩下的api里面都帮你做了。
我们需要的场景是,用户巡检,把巡检地点拍照备份。
后续用户巡检到当前地点拍照,对比识别,防止用户胡乱拍照上传。
咨询百度没有背景识别相关功能,需要提工单具体描述。
想着用这个图像识别曲线救国。
将第一次拍照数据图像识别,记录元素。
后续用户拍照和第一次录入的识别数据对比。
真实使用过程中,发现这个也许不是特别适用,比如室内场景,办公室场景等等,都会识别出大概场景,没法区分两个办公室的不同。
百度图像识别,指定好一个物品拍摄识别率还是很高的。当作备用知识储备mark一下。后续能适用场景使用吧!