构建智能未来:一键搭建AI文字、人脸识别平台

构建智能未来:一键搭建AI文字、人脸识别平台

AI穿梭于像素之间,捕捉到每一丝信息的痕迹,技术给生活带来便利!✨

无论你是开发者还是创作者,AI都能为你的项目提供强大的支持。这里有几个实用的应用模块,让我们一同来看看:

图像处理:从图像中提取所需数据,助你获取关键资料。🖼️

人脸识别:精准识别和验证身份,提升安全性和便捷性。📸

身份认证:有效防止身份盗用,保护个人隐私。✅

语音识别:实现人与机器的高效交流,轻松输入和控制。🤖

人体分析:深入理解人类动作和姿态,为智能健身或医疗应用提供支持。😎

本期让我们一起从图像生成文档开始,见证AI改变生活。

下期将推出人脸识别模块实际应用。

图像转文字实际效果
image-20240806193051692

项目输入:截图/拍照图片,直接前端拖拽或点击上传图片即可。

项目输入

项目输出:txt文档

项目输出

一、获取智能模块接口参数 & 使用说明

详细见后文

二、搭建项目

我这里选用Java项目;你也可以Python、C++、Go…

主要逻辑:

我这里选用Java项目;你也可以Python、C++、Go…

Springboot(jdk17)、Vue3创建前后端分离项目

主要逻辑:

  1. 上传图片,传至后端进行Base64编码。
  2. 后端通过注册所得密钥和接口,获取AccessToken。
  3. 调用智能模块处理图片。
  4. 获取结果,个性化处理数据。
  5. 自定义输出:生产TXT文件返回前端下载。

后端(部分)

  • Controller

    @RestController
    @RequestMapping("extract")
    public class ExtractController {
    
        @Value("${resultPath}")
        String resultPath;
        
        @Autowired
        ExtractServive extractServive;
    
        @PostMapping("figure_txt")
        public void figure_txt(@RequestParam("image") MultipartFile file, HttpServletResponse response)
                throws IOException, JSONException {
            System.out.println(file.getOriginalFilename() + "图片已传入!");
            
            String figure = ExtractUtil.fileContentAsBase64(file.getBytes());
            String result = extractServive.getFigureData(figure);
            ExtractUtil.outputTxt(result, file.getOriginalFilename(), response);
        }
        ......
    }
    

    Service

    @Service
    public class ExtractServive {
    
        @Value("${accessTokenUrl}")
        String accessTokenUrl;
    
        static OkHttpClient okHttpClient = new OkHttpClient().newBuilder().build();
    
        public String getFigureData(String figure) throws IOException, JSONException {
    
            MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
            String base64 = figure;
            base64 = "image=" + base64 + "&detect_direction=true&paragraph=true&probability=false";
    
            RequestBody body = RequestBody.create(mediaType, base64);
            Request request = new Request.Builder()
                    .url(accessTokenUrl + ExtractUtil.getAccessToken())
                    .method("POST", body)
                    .addHeader("Content-Type", "application/x-www-form-urlencoded")
                    .addHeader("Accept", "application/json")
                    .build();
            Response response = okHttpClient.newCall(request).execute();
            return response.body().string();
        }
    }
    

    utils

    • 获取AccessToken、返回前端txt文件、base64转码…
    public static String getAccessToken() 
        throws IOException, JSONException {
            MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
            RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + client_id + "&client_secret=" + client_secret);
            Request request = new Request.Builder()
                    .url("......")
                    .method("POST", body)
                    .addHeader("Content-Type", "application/x-www-form-urlencoded")
                    .build();
            Response response = okHttpClient.newCall(request).execute();
            return new JSONObject(response.body().string()).getString("access_token");
        }
    
    public static void outputTxt(String result, String txtName, HttpServletResponse response) 
        throws IOException {
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonNode = objectMapper.readTree(result).get("words_result");
    
            StringBuffer sb = new StringBuffer();
            for (JsonNode node : jsonNode) {......}
            String text = sb.toString();
    
            txtName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + "-" + txtName.split("\\.")[0] + ".txt";
    
            response.setCharacterEncoding(StandardCharsets.UTF_8.name()) +  response......;
            try(PrintWriter writer = response.getWriter()) {
                writer......
            }
        }
    

    propertiesdto等略。

前端(部分)

<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
  <div class="background-image">
    <el-breadcrumb :separator-icon="ArrowRight">
      <el-breadcrumb-item :to="{ path: '/' }">pageA</el-breadcrumb-item>
      <el-breadcrumb-item>figureTotxt</el-breadcrumb-item>
    </el-breadcrumb>
    <hr>
    <div class="upload">
      <el-upload
          ref="upload"
                 ......
          :http-request="uploadImage"
          multiple
          list-type="picture">
        <el-icon :size="100">
          <UploadFilled/>
        </el-icon>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <template v-slot:tip>
          <div class="el-upload__tip">请上传 jpg / png 文件</div>
        </template>
      </el-upload>
    </div>
  </div>
</template>

第一部分详见:登录/注册智能云 https://cloud.baidu.com免费获取接口参数

  • 进入控制台–> 免费领取资源供测试–>勾选自己项目想要的资源接口

image

  • 点击免费调用–>前往公有云服务–> 应用列表–>点击创建新应用
    • 输入应用名称
    • 勾选需调用的模块接口
    • 包含文字识别、语音技术、人脸识别、自然语言处理人体分析、图像处理等诸多小模块。
      可谓应有尽有。

image

  • 设置应用归属 --> 简单编辑描述 --> 一键创建你的应用。
  • 可通过实例中心代码进行在线调试,也可直接在你的项目中间进行调用干活。

需完整工程请关注:有点建树

下期人脸识别见。

漫漫征途,唯有奋斗;愿以萤火微光,汇凌云之芒。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值