阿里视觉AI训练营-day04-作业日-车辆保险应用

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 车辆保险应用

阿里AI训练营【车辆保险应用】

@TOC


前言

转载于:【阿里云高校计划】车辆保险应用 day4 【拨云见日】


实施前准备工作

一、本地图片上传为OSS

1.开通oss

在这里插入图片描述

2.创建Bucket

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

二、开通目标检测服务

阿里云视觉智能开放平台--目标检测

在这里插入图片描述在这里插入图片描述

三、查看所需API

这里我们用到阿里云视觉智能开放平台提供的三个功能:

  • 车辆部件识别
  • 车辆损伤识别
  • 车险图片分类

在这里插入图片描述

1.车辆部件识别

检测图片中车辆部件的位置以及名称。

2.车辆损伤识别

针对常见小汽车车型,识别车辆外观受损部件及损伤类型,可识别数十种车辆部件、五大类外观损伤。(刮擦、凹陷、开裂、褶皱、穿孔)

3.车险图片分类

对输入的车险图片进行分类。

具体实施

一、本地图片上传至OSS的uploadPic类

车辆部件识别

1.在maven中导入所需依赖
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.8.0</version>
</dependency>
2.编写UploadPic类
package com.example.demo;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import java.io.File;
import java.net.URL;
import java.security.SecureRandom;
import java.util.Date;
import java.lang.*;
import java.util.Scanner;

public class UploadPic {
    public static String UploadPic(){
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = "oss-cn-shanghai.aliyuncs.com";
        // 阿里云主账号AccessKey。
        String accessKeyId = "*************";
        String accessKeySecret = "*************";
        //本地文件名
        System.out.println("请输入本地图片path:");
        Scanner scanner = new Scanner(System.in);
        String fileName = scanner.nextLine();
        String bucketName = "auto-insurance-pic";
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));

        // 生成上传文件名
        String objectName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName;


        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);


        // 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
        // ObjectMetadata metadata = new ObjectMetadata();
        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
        // metadata.setObjectAcl(CannedAccessControlList.Private);
        // putObjectRequest.setMetadata(metadata);

        // 上传文件。
        ossClient.putObject(bucketName, objectName, new File(fileName));
        // 设置URL过期时间为1小时。
        Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
        // 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。
        URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);

        // 关闭OSSClient。
        ossClient.shutdown();

        return url.toString();
    }
}
3.运行结果

在这里插入图片描述在这里插入图片描述

二、车辆部件识别RecognizeVehicleParts类

1.在maven中导入所需依赖

阿里maven私有仓库服务

在这里插入图片描述

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.4.8</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.52</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-objectdet</artifactId>
    <version>1.0.7</version>
</dependency>

2.编写RecognizeVehicleParts类

package com.example.demo;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.example.demo.UploadPic;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.objectdet.model.v20191230.*;

public class RecognizeVehicleParts {

    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "accessKeyId", "accessKeySecret");
        IAcsClient client = new DefaultAcsClient(profile);

        RecognizeVehiclePartsRequest request = new RecognizeVehiclePartsRequest();
        request.setRegionId("cn-shanghai");
        request.setImageURL(UploadPic.UploadPic());

        try {
            RecognizeVehiclePartsResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}

3.运行结果

在这里插入图片描述返回值为:

{"requestId":"BBFB102D-5EAC-483F-9A94-9DA79A06E1F6","data":{"elements":[{"score":0.98788995,"type":"left_tail_light","boxes":[132,274,862,607]},{"score":0.952229,"type":"left_rear_wing","boxes":[4,162,365,750]},{"score":0.74785864,"type":"rear_bumper","boxes":[60,456,987,760]}],"originShapes":[768,1024]}}

三.车辆损伤识别

1.在maven中导入所需依赖

见本文二-1

2.编写RecognizeVehicleDamage类

package com.example.demo;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.objectdet.model.v20191230.*;

public class RecognizeVehicleDamage {

    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "accessKeyId", "accessKeySecret");
        IAcsClient client = new DefaultAcsClient(profile);

        RecognizeVehicleDamageRequest request = new RecognizeVehicleDamageRequest();
        request.setRegionId("cn-shanghai");
        request.setImageURL(UploadPic.UploadPic());

        try {
            RecognizeVehicleDamageResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}

3.识别结果

返回值为:

{"requestId":"7FFBD390-7019-4B85-9FFA-779C912A9CEB","data":{"elements":[{"score":0.414995,"type":"1","scores":[0.414995,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[343,390,473,542]},{"score":0.408405,"type":"1","scores":[0.408405,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[541,442,659,545]},{"score":0.348472,"type":"1","scores":[0.348472,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[273,293,423,400]},{"score":0.378637,"type":"2","scores":[0.0,0.378637,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[261,26,496,142]},{"score":0.873101,"type":"5","scores":[0.0,0.0,0.0,0.0,0.873101,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[91,4,555,267]},{"score":0.815785,"type":"6","scores":[0.0,0.0,0.0,0.0,0.0,0.815785,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[564,270,869,441]},{"score":0.845525,"type":"8","scores":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.845525,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"boxes":[230,234,529,313]},{"score":0.411336,"type":"11","scores":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.411336,0.0,0.0,0.0,0.0],"boxes":[632,425,922,563]},{"score":0.334054,"type":"11","scores":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.334054,0.0,0.0,0.0,0.0],"boxes":[538,91,733,194]},{"score":0.333818,"type":"11","scores":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.333818,0.0,0.0,0.0,0.0],"boxes":[694,157,899,286]},{"score":0.32519,"type":"11","scores":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.32519,0.0,0.0,0.0,0.0],"boxes":[523,87,902,278]}]}}

四.车险图片分类

1.在maven中导入所需依赖

见本文二-1

2.编写ClassifyVehicleInsurance类

package com.example.demo;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.*;
import com.aliyuncs.objectdet.model.v20191230.*;

public class ClassifyVehicleInsurance {

    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "accessKeyId", "accessKeySecret");
        IAcsClient client = new DefaultAcsClient(profile);

        ClassifyVehicleInsuranceRequest request = new ClassifyVehicleInsuranceRequest();
        request.setRegionId("cn-shanghai");
        request.setImageURL(UploadPic.UploadPic());

        try {
            ClassifyVehicleInsuranceResponse response = client.getAcsResponse(request);
            System.out.println(new Gson().toJson(response));
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
        }
    }
}

3.识别结果

在这里插入图片描述返回值为:

{"requestId":"87BEADED-F581-4C38-9F5F-E6F8DF0A1BA5","data":{"threshold":0.0,"labels":[{"score":0.0046,"name":"others"},{"score":0.0164,"name":"detail"},{"score":0.1934,"name":"component"},{"score":0.0,"name":"vin"},{"score":8.0E-4,"name":"people"},{"score":2.0E-4,"name":"motor"},{"score":0.1439,"name":"semi-car"},{"score":0.0027,"name":"panoramic"},{"score":3.0E-4,"name":"license"},{"score":0.0169,"name":"CT-scan"},{"score":5.0E-4,"name":"truck"},{"score":0.0144,"name":"disassembly"},{"score":0.6059,"name":"scene"}]}}

在这里插入图片描述

总结

转载于:【阿里云高校计划】车辆保险应用 day4 【拨云见日】

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
10天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
259 0
|
5天前
|
机器学习/深度学习 人工智能 算法
AI战略丨AI原生时代,应用创新蓄势待发
通过热点AI应用创新项目的观察,我们可以看到新技术的突破方向,也能发现基于生成式AI迸发出的全新商业前景落地的可能性。
AI战略丨AI原生时代,应用创新蓄势待发
|
6天前
|
机器学习/深度学习 数据采集 人工智能
|
9天前
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗领域的革命性应用
医疗行业一直是人类关注的重点领域之一,而随着人工智能技术的快速发展,AI在医疗领域的应用正带来革命性的变革。本文将探讨AI在医疗中的重要作用,以及其对诊断、治疗和医疗管理的影响。
24 0
|
9天前
|
人工智能 NoSQL atlas
如何用MongoDB Atlas和大语言模型,高效构建企业级AI应用?
利用生成式 AI 强化应用程序为客户打造令人叹服、真正差异化的体验意味着将人工智能建立在事实的基础之上
1570 0
|
机器学习/深度学习 人工智能 自然语言处理
搜狗翻宝Pro机再次开挂,智能翻译硬件成中国人工智能的新风口
第五届世界互联网大会正在如火如荼的举行。
搜狗翻宝Pro机再次开挂,智能翻译硬件成中国人工智能的新风口
|
机器学习/深度学习 人工智能 自然语言处理
与世界同行 2017中国人工智能大会有感
与世界同行 2017中国人工智能大会有感
1539 0
与世界同行 2017中国人工智能大会有感
|
人工智能 自动驾驶
2019年上半年收集到的中国人工智能发展详情文章
2019年上半年收集到的中国人工智能发展详情文章
|
人工智能 芯片
中国人工智能计划,我来说几句
中国人工智能计划,我来说几句
|
机器学习/深度学习 人工智能 自然语言处理
2022 年中国人工智能行业发展现状与市场规模分析 市场规模超 3000 亿元
人工智能产业是智能产业发展的核心,是其他智能科技产品发展的基础,近年来,中国人工智能产业在政策与技术双重驱动下呈现高速增长态势。
1564 0
2022 年中国人工智能行业发展现状与市场规模分析 市场规模超 3000 亿元