图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

Posted 码上有猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能相关的知识,希望对你有一定的参考价值。


码神联盟
工作10多年的架构师和你一起聊技术
图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’的朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖的‘大脑’- 水哥,(PS:内幕不知),那么今天,我们来看下关于图像识别,是如何做到的,Java又是如何识别图像的?


图像识别技术是人工智能的一个重要领域。为了编制模拟人类图像识别活动的计算机程序,人们提出了不同的图像识别模型。例如模板匹配模型。这种模型认为,识别某个图像,必须在过去的经验中有这个图像的记忆模式,又叫模板。当前的刺激如果能与大脑中的模板相匹配,这个图像也就被识别了。


图像识别场景


    1:人脸识别

    2:车牌识别


图像识别原理


原理:

    人脸识别系统主要包括四个组成部分,分别为:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取以及匹配与识别。


车牌识别过程:

    车牌预处理---字符分割--归一化处理--细化处理--字符特征提取--神经网络训练。

基本过程:

    图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


JAVA图像识别示例


Java图像识别示例:


需求:java实现图像识别--车牌识别


技术:Java、jdk1.8、maven、tess4j、IDEA2018


1:新建maven project工程,如图


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


2:导入tess4j包,代码如下:


<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>3.4.8</version>
</dependency>


3:下载tess4j-3.4.8-sources源码,并将其中的tessdata文件夹,复制到工程中,和src目录保持同一级


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


4:如果是识别中文图片,则需要自行下载中文检测包chi_sim.traineddata,并将chi_sim.traineddata文件放到tessdata文件夹下


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能



5:添加java图像识别类,调用tess4j框架,如下:


package com.ms.ocr;

import java.io.File;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

/**
 * java图像识别
 * likang 
 * 2018-7-13
 */

public class OCRDemo {

    public static void main(String[] args) throws TesseractException {

        ITesseract instance = new Tesseract();
        //如果未将tessdata放在根目录下需要指定绝对路径
        //设置训练库的位置
        //instance.setDatapath("the absolute path of tessdata");

        //如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
        // chi_sim :简体中文, eng    根据需求选择语言库
        instance.setLanguage("chi_sim");

        // 指定识别图片
        File imgDir = new File("D:\38_tess4j\images\4.png");
        long startTime = System.currentTimeMillis();
        String ocrResult = instance.doOCR(imgDir);

        // 输出识别结果
        System.out.println("识别结果:  " + ocrResult + "  耗时:" + (System.currentTimeMillis() - startTime) + "ms");
    }

}


图片内容:

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


识别结果:


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


接下来,我们将图片换成车牌,如下:


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


识别结果:


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

直播预告

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

时间:7月14号晚8点、7月21号晚8点

主题:【数据库进阶公开课】

参加:扫下方二维码申请,并加我微信入技术群,即可学习

目录:多表连接、索引、锁、引擎、触发器、视图、存储过程

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


技术群介绍

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能


可获取技术资料仓库

可下载技术资料

企业问题优先回答

可随时观看技术直播

大牛云集

点击【阅读全文】获取课程大纲

............


以上是关于图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能的主要内容,如果未能解决你的问题,请参考以下文章

使用 TensorFlow 和 Express.js 实现AI图像识别

各类场景应用中涉及的AI算法汇总

如何快速成为图像识别大神?英伟达专家带你低门槛高效实现AI模型训练与部署 | 英伟达CV公开课

AI说|人工智能应用-图像识别

ai技术包括哪些技术

Java AI 实现人工智能- 我在Github上发现的-基于Java的计算机视觉 Java实现人脸识别(开源代码-(人脸识别-自动驾驶-汽车追踪-手写数字识别器))带你导入代码并测试使用