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

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

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

图像识别场景

1:人脸识别

2:车牌识别

图像识别原理

原理:

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

车牌识别过程:

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

基本过程:

JAVA图像识别示例

Java图像识别示例:

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

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

1:新建maven project工程,如图

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目录保持同一级

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

下载地址:https://raw.githubusercontent.com/tesseract-ocr/tessdata/master/chi_sim.traineddata

其它检测包下载地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master

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("识别结果: \n" + ocrResult + "\n 耗时:" + (System.currentTimeMillis() - startTime) + "ms");
    }

}

图片内容:

识别结果:

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

识别结果:

原文发布于微信公众号 - 码神联盟(lkchatspace)

原文发表时间:2018-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

NVIDIA发布了TensorRT 4,极大加速神经机器翻译

NVIDIA发布了TensorRT 4,其新功能可加速GPU上神经机器翻译(NMT)应用的推断。

15940
来自专栏AI科技大本营的专栏

干货 | 谷歌BERT模型fine-tune终极实践教程

从11月初开始,Google Research就陆续开源了BERT的各个版本。Google此次开源的BERT是通过TensorFlow高级API—— tf.es...

49610
来自专栏机器之心

资源 | DeepPavlov:一个训练对话系统和聊天机器人的开源库

选自GitHub 机器之心编译 参与:思源、刘晓坤 本文介绍了一个构建端到端对话系统和训练聊天机器人的开源项目 DeepPavlov,该开源库的构建基于 Ten...

42140
来自专栏人工智能头条

如何用OpenCV、Python和深度学习实现面部识别?

这篇文章首先将简单介绍下基于深度学习的面部识别的工作原理,以及“深度度量学习”(deep metric learning)的概念。接下来我会帮你安装好面部识别需...

33780
来自专栏企鹅号快讯

外国网友如何使用机器学习将邮件分类?其实很简单

AiTechYun 编辑:Yining 背景:一名叫做Anthony Dm.的外国网友试图利用机器学习将一堆未标记的电子邮件进行分类,以下是他对这次操作发表的文...

23180
来自专栏华章科技

教你用300万共享单车出行数据,预测骑行目的地 !(附源码)

标注数据中包含300万条出行记录数据,覆盖超过30万用户和40万摩拜单车。数据包括骑行起始时间和地点、车辆ID、车辆类型和用户ID等信息。参赛选手需要预测骑行目...

15720
来自专栏大数据文摘

R的基本绘图功能

18550
来自专栏玉树芝兰

如何用 Python 和 gensim 调用中文词嵌入预训练模型?

利用 Python 和 Spacy 尝试过英文的词嵌入模型后,你是不是很想了解如何对中文词语做向量表达,让机器建模时捕捉更多语义信息呢?这份视频教程,会手把手教...

18410
来自专栏数据派THU

一招检验10大深度学习框架哪家强!

来源:机器之心 本文长度为2698字,建议阅读4分钟 本文通过构建同一个神经网络,对比当前最流行的 10 种深度学习框架。 [ 导读 ]近日,Ilia Karm...

18770
来自专栏PPV课数据科学社区

从Caffe2到TensorFlow,十种框架构建相同神经网络效率对比

近日,Ilia Karmanov 在 Medium 发表了一篇题为《Neural Net in 10 Frameworks (Lessons Learned)》...

38980

扫码关注云+社区

领取腾讯云代金券