推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

一小时徒手从0到1搭建一套图片文字识别的OCR平台

   2024-07-04 转载网络2460
核心提示:(2)面向程序;在编码的过程中,需要实现自动识别图片中的文字功能,常见有供应商有阿里的OCR文字识别、百度的OCR文字识别等等,当然也可以自己使用Tesseract搭建一套图片文字识别的服务。下面我们将使用Tesseract搭建一套自己的图

在我们日常的工作学习中,图片中的文件识别功能是非常常用的(如用户上传的图片做风控)。我们根据面向的对象不同,一般可以分成两类:

(1)面向普通用户;现有的图片文件识别工具有很多,常见有的微信截图工具中的自带的文字识别功能、专业OCR文字识别软件(如AI识别王、迅捷OCR识别软件);

(2)面向程序;在编码的过程中,需要实现自动识别图片中的文字功能,常见有供应商有阿里的OCR文字识别、百度的OCR文字识别等等,当然也可以自己使用搭建一套图片文字识别的服务。

下面我们将使用搭建一套自己的图片文字识别的服务平台。本平台中使用的技术有: + + + + 。

是一个开源的光学字符识别(OCR)引擎,是一个基于 OCR引擎的Java接口。

1、-OCR环境搭建

(1)基础依赖安装

放在上搭建的,以下是搭建的如下:

#1、基础依赖yum -y install gcc-c++ makeyum install -y autoconf automake libtool libjpeg libpng libtiff zlib libjpeg-devel libpng-devel libtiff-devel zlib-devel
#2、下载pkg-configwget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.tar.gz#解压tar -zxvf pkg-config-0.29.tar.gz#编译cd pkg-config-0.29/ ./configure --with-internal-glibmakemake checkmake install

完成基础依赖安装后可以看到

文件下载网站搭建_搭建一个下载网站_搭建下载网站的软件

(2)上传的压缩包和相关的文件

搭建下载网站的软件_搭建一个下载网站_文件下载网站搭建

依赖可以到官方网站下载(我这里下载好,直接可以使用,需要的软件的可以私信我)

上传文件到上

(3)安装

#1、解压文件tar -zxvf leptonica-1.79.0.tar.gz#2、编译./autogen.sh./configure --prefix=/usr/local/makemake install

编译完成之后的效果:

搭建下载网站的软件_搭建一个下载网站_文件下载网站搭建

配置:

vi /etc/profile-----------------添加配置------------------------export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/libexport LIBLEPT_HEADERSDIR=/usr/local/includeexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
#刷新生效source /etc/profile

(4)安装

#1、解压文件tar -zxvf tesseract-1.1.tar.gz#2、编译./autogen.sh./configure --with-extra-includes=/usr/local/include --with-extra-libraries=/usr/local/includemakemake install

编译之后的效果:

文件下载网站搭建_搭建下载网站的软件_搭建一个下载网站

(5)测试安装是否成功

tesseract --version

安装成功的效果:

搭建一个下载网站_搭建下载网站的软件_文件下载网站搭建

(6)语言库放到-OCR指定的目录中

搭建下载网站的软件_搭建一个下载网站_文件下载网站搭建

将这两个文件放在/usr///文件夹下

以上就完成了-OCR基础环境的搭建。在这个过程中可能出现如下的问题:

configure: error: Leptonica 1.74 or higher is required. Try to install libleptonica-dev package.

问题的原因是没有安装pkg-。

2、搭建-OCR平台服务

(1)搭建基础的工程(不详细介绍)

(2)添加依赖

<dependency>    <groupId>net.sourceforge.tess4jgroupId>    <artifactId>tess4jartifactId>    <version>4.5.4version>dependency>

(3)配置yml文件

server:  port: 8081
#指定识别语言库的位置tess4j: datapath: /usr/local/share/tessdata

(4)配置

@Configurationpublic class TesseractOcrConfig {    @Value("${tess4j.datapath}")    private String dataPath;
@Bean public Tesseract tesseract() {
Tesseract tesseract = new Tesseract(); //设置数据文件夹路径 tesseract.setDatapath(dataPath); //设置为中文简体 tesseract.setLanguage("chi_sim"); return tesseract; }
}

(5)编写识别的图片的服务

@Service@Slf4jpublic class OcrService {
@Resource private Tesseract tesseract;
public String recognizeText(MultipartFile imageFile) throws IOException, TesseractException { // 转换 InputStream sbs = new ByteArrayInputStream(imageFile.getBytes()); BufferedImage bufferedImage = ImageIO.read(sbs);
// 对图片进行文字识别 return tesseract.doOCR(bufferedImage); }}

(6)编写识别的图片的服务

@RestController@RequestMapping("/api")@Slf4j@Api(description = "OCR服务")public class OcrController {
@Resource private OcrService ocrService;
@PostMapping(value = "/recognize") public String recognizeImage(@RequestParam("file") MultipartFile file) throws TesseractException, IOException { // 调用OcrService中的方法进行文字识别 String result = ocrService.recognizeText(file); log.info("识别图片的结果:{}", result);
return result; }}

(7)本平台就不写页面了,直接使用展示效果,配置

#1、添加依赖        io.springfox      springfox-swagger2      2.7.0             io.springfox       springfox-swagger-ui       2.7.0      #2、配置swagger@Configuration@EnableSwagger2public class SwaggerConfig {
@Bean public Docket webApiConfig(){ System.out.println("启动swagger"); return new Docket(documentationType.SWAGGER_2) .groupName("webApi") .apiInfo(webApiInfo()) .select() //接口中由/admin /error就不显示 .paths(Predicates.not(PathSelectors.regex("/admin/.*"))) .paths(Predicates.not(PathSelectors.regex("/error.*"))) //扫描指定的包                .apis(RequestHandlerSelectors.basePackage("com")) .build(); }
private ApiInfo webApiInfo(){ return new ApiInfoBuilder() .title("OCR-API文档") //swagger页面上大标题 .description("OCR微服务接口定义") //描述 .version("1.0") .contact(new Contact("java", "http://baidu.com", "1733150517@qq.com")) .build(); }}

搭建完成之后的整体项目架构:

搭建下载网站的软件_文件下载网站搭建_搭建一个下载网站

3、测试搭建的 OCR平台

(1)上传服务的jar包到了上

(2)启动项目(需要预先安装jdk和)

java -jar ocr-test-1.0-SNAPSHOT.jar

启动成功的效果:

搭建下载网站的软件_文件下载网站搭建_搭建一个下载网站

(3)启动(:port/-ui.html)

搭建一个下载网站_搭建下载网站的软件_文件下载网站搭建

至此整个平台就搭建完成。

下面进行图片测试:

文件下载网站搭建_搭建下载网站的软件_搭建一个下载网站

后端打印的日志:

搭建一个下载网站_搭建下载网站的软件_文件下载网站搭建

我们的图片文字识别的平台就搭建好了。

 
标签: b 标签 a 标签 9 标签 d 标签
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8