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
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 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
参考链接: