【阿里云高校计划】学习分享:AI相册的搭建与实现

主题

今天的主题是制作AI识别相册.

实例截图

主要是实现对图片内容的解析识别,然后提取标签做一个双向分类.

主要依赖项

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.67</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.14</version>
        </dependency>
       <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.4.9</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.aliyun/facebody -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>facebody</artifactId>
            <version>0.0.7</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.aliyun/imagerecog -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imagerecog</artifactId>
            <version>0.0.5</version>
        </dependency>

前端是由简单的Vue来实现的.

这里没有用SSR这些后端渲染的方法来实现,而是使用AXIOS来实现数据请求

主要逻辑

在web端上传图片,通过upload组件将图片传到后端,后端将图片通过阿里云SDK传到对应的处理服务,然后获取识别结果,存入到本地,再做对前台的响应.

当前端点击网页上的标签时就会发起请求,后端服务从存在本地的JSON文件读取出数据,再进行响应.

主要业务代码分析

public List<String> recognizeScene(InputStream inputStream) throws Exception {
        // 实例化图像识别请求
        RecognizeSceneAdvanceRequest request = new RecognizeSceneAdvanceRequest();
        // 将图像流挂载到请求上
        request.imageURLObject = inputStream;
        // 实例化一个标签缓冲区
        List<String> labels = new ArrayList<>();
        try {
            // 实例化图像识别请求client
            com.aliyun.imagerecog.Client client = getImageRecogClient(imageRecogEndpoint);
            // 获取识别结果
            RecognizeSceneResponse resp = client.recognizeSceneAdvance(request, new RuntimeObject());
            for (RecognizeSceneResponse.RecognizeSceneResponseDataTags tag: resp.data.tags) {
                // 将识别结果加入到缓冲区中
                labels.add(tag.value);
            }
        } catch (ClientException e) {
            // 错误处理
            log.error("ErrCode:{}, ErrMsg:{}, RequestId:{}", e.getErrCode(), e.getErrMsg(), e.getRequestId());
        }
        return labels;
    } labels;
 }

上面的代码实现了标签提取,并加入了链表.

其他部分的业务代码大多类似雷同,不再赘述


项目源代码
欢迎加入阿里云AI训练营
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值