tesseract安装

linux系统安装tesseract笔记

lsb_release -a

手动配置yum源
http://mirrors.163.com/.help/centos.html
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cp CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo


yum install yum-utils -y   --安装yum的扩展包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/


yum install redhat-lsb*
yum -y install libXss*
yum install libappindicator*
yum install gcc gcc-c++ make
yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel

wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.1.tar.gz
tar -zxvf pkg-config-0.29.1.tar.gz
cd 
./configure --with-internal-glib
make && make install


https://www.openssl.org/source/
wget https://www.openssl.org/source/openssl-1.1.1j.tar.gz
--prefix=/usr/local/openssl  
tar -zxvf openssl-1.1.1j.tar.gz
cd openssl-1.1.1j
# 如果此步骤报错,需要安装perl以及gcc包
./config
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# 设置生效
ldconfig -v     


/root/anaconda3
export PATH=$PATH:/root/anaconda3/bin


yum -y install vulkan-1.1.97.0-1.el7.x86_64 
yum install liberation-fonts

yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm
yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/vulkan-1.1.97.0-1.el7.x86_64.rpm
yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/liberation-fonts-1.07.2-16.el7.noarch.rpm

wget http://www.google.cn/chrome/browser/desktop/index.html/google-chrome-stable_current_x86_64.rpm
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install https://extras.getpagespeed.com/release-latest.rpm  --release-el7-latest.rpm
yum install google-chrome-stable
google-chrome --version

chromedriver解压后放在/usr/bin目录下
http://npm.taobao.org/mirrors/chromedriver/
http://chromedriver.storage.googleapis.com/index.html
wget http://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod +x /usr/bin/chromedriver


https://www.qedev.com/linux/269338.html
https://blog.csdn.net/xjmxym/article/details/79040514
https://github.com/DanBloomberg/leptonica/releases
--profix=/usr/local/leptonica
tar -xzvf leptonica-1.74.4.tar.gz
cd leptonica-1.74.4/
./configure 
make
sudo make install


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/leptonica/lib
export LIBLEPT_HEADERSDIR=/usr/local/leptonica/include/leptonica
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/leptonica/lib/pkgconfig
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/leptonica/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

清理。。。make maintainer-clean
https://digi.bib.uni-mannheim.de/tesseract/
wget https://codeload.github.com/tesseract-ocr/tesseract/tar.gz/4.1.0
--profix=/usr/local/tesseract
tar -xvf 4.1.0
cd tesseract-4.1.0/
./autogen.sh
./configure --with-extra-includes=/usr/local/include --with-extra-libraries=/usr/local/include
autoreconf --force --install
make
sudo make install
sudo ldconfig
chmod +x /usr/local/bin/tesseract

export PATH=$PATH:/usr/local/tesseract/bin
source /etc/profile

安装成功后,确保 /usr/local/lib/pkgconfig/ 文件夹下有 lept.pc 以及 tesseract.pc 文件。若没有,请重新编译安装。


安装语言包
eng.traineddata.gz (如果需要验证中文,就下载中文的语言包)
tar -zxvf eng.traineddata.gz
将 eng.traineddata文件拷贝到 /usr/local/share/tessdata下
如果没有tessdata文件夹,就去tesseract的安装文件位置将目录下的tessdata拷贝到 /usr/local/share/

cp /root/tesseract-4.1.0/tessdata/eng.user-patterns /usr/local/share/tessdata/eng.user-patterns
cp /root/tesseract-4.1.0/tessdata/eng.user-words /usr/local/share/tessdata/eng.user-words
cp /root/tesseract-4.1.0/tessdata/Makefile /usr/local/share/tessdata/Makefile
cp /root/tesseract-4.1.0/tessdata/Makefile.am /usr/local/share/tessdata/Makefile.am
cp /root/tesseract-4.1.0/tessdata/Makefile.in /usr/local/share/tessdata/Makefile.in

tesseract -v
tesseract 图片名  输出文本名 -l eng
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]
sudo tesseract 444.jpg 444 -l chi_sim+eng --psm 7
imagename为目标图片文件名,需加格式后缀;outputbase是转换结果文件名;lang是语言名称(在Tesseract-OCR中tessdata文件夹可看到以eng开头的语言文件eng.traineddata),如不标-l eng则默认为eng。

https://www.qedev.com/linux/269338.html

mysql -h10.88.20.38 -ujczc -pEpsoft@2020

crontab  -e
tail -f /var/log/cron   #查看任务执行日志
5 * * * * /root/anaconda3/bin/python3.8 /root/tesseract-4.1.0/model/tesseract.py
5 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6     command     (取值范围,0表示周日一般一行对应一个任务)

记住几个特殊符号的含义:
 “*”代表取值范围内的数字,
 “/”代表”每”,
 “-”代表从某个数字到某个数字,
 “,”分开几个离散的数字

find / -name ______.xlsx
find / -name '*.xlsx'

python /root/tesseract-4.1.0/model/tesseract.py

  tesseract字库训练    参考

jTessBoxEditor下载 :jTessBoxEditor-2.3.1.zip 中文字库训练选 jTessBoxEditorFX-2.3.1.zip

tesseract下载   tessdata下载   Leptonica下载

1.生成tif文件

  jTessBoxEditor > Tools > Merge TIFF > CTRL + A > capt.font.exp0.tif   (注:font需与font_properties文件中命名一致)

2.生成box文件,并矫正其中错误数据

  cd到tif目录,生成.box文件 - 并使用jTessBoxEditor矫正.box文件的错误
  tesseract capt.font.exp0.tif capt.font.exp0 -l captcha --psm 7 batch.nochop makebox

注意:

  删除tif指定图片:tif文件可通过自带图片浏览器打开

  box数据重排:box文件可以通过excel打开,box文件数据最后一列代表图片的序号,可通过以下步骤处理。
  -- 1. 打开box文件,对数据按空格进行分列;
  -- 2. 序号列每四行一个自然增长,可通过公式 =INT((ROW()-1)/4) 实现;
  -- 3. 合并分列,公式 =A1&" "&B1&" "&C1&" "&D1&" "&E1&" "&F1 
3. 把excel中生成的新的box文件内容复制粘贴到box文件中,替换之前的内容。

3.生成 font_properties 文件

font 0 0 0 0 0  

【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur>  

fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。

4. go.bat训练字库

rem 执行改批处理前先要目录下创建font_properties文件 

echo Run Tesseract for Training.. 
echo 生成.tr训练文件
tesseract.exe capt.font.exp0.tif capt.font.exp0 nobatch box.train 
 
echo Compute the Character Set.. 
echo 生成字符集文件 - unicharset
unicharset_extractor.exe capt.font.exp0.box

echo 生成shape文件 - shapetable + capt.unicharset
shapeclustering.exe -F font_properties -U unicharset -O capt.unicharset capt.font.exp0.tr

echo 生成聚集字符特征文件 - pffmtable + inttemp + unicharset
mftraining.exe -F font_properties -U unicharset -O capt.unicharset capt.font.exp0.tr

echo Clustering.. 
echo 生成字符正常化特征文件 - normproto
cntraining.exe -F capt.font.exp0.tr

echo Rename Files.. 
rename normproto captcha.normproto
rename inttemp captcha.inttemp
rename pffmtable captcha.pffmtable
rename shapetable captcha.shapetable
rename unicharset captcha.unicharset

echo Create Tessdata.. 
echo 合并训练文件
combine_tessdata.exe captcha.
echo. & pause

  linux定时任务配置

今天遇见一个问题,crontab的定时任务不能自动执行,但是手动执行脚本一直能成功。查到最后,发现是脚本里用了系统的环境变量。下面开始解释:

1.crontab与环境变量
不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点:
1)脚本中涉及文件路径时写全局路径;
2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
cat start_cbp.sh
#!/bin/sh
source /etc/profile
export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
3)当手动执行脚本OK,但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。如:
0 * * * * source /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

2.其他应该注意的问题
1)新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。
2)每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。
3)当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
4)千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。
5)在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`。

3.crontab中的输出配置
crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。
shell命令的结果可以通过‘> ’的形式来定义输出
/dev/null 代表空设备文件  
> 代表重定向到哪里,例如:echo "123" > /home/123.txt 
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
  & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 

那么重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

  参考链接:

linux包下载

yum-config-manager以及yum常用命令

原文地址:https://www.cnblogs.com/iupoint/p/14493054.html