• 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常用命令

  • 相关阅读:
    linux---网络管理
    linux---Vim使用方法大全
    virtualenv离线创建虚拟环境
    python迭代器生成器进阶
    python函数对象
    Django等框架模板渲染中使用Vue控制数据
    django渲染模板与vue的语法冲突解决
    Linux网络抓包
    WSGI Server(uwsgi原理)
    python日志logging模块
  • 原文地址:https://www.cnblogs.com/iupoint/p/14493054.html
Copyright © 2020-2023  润新知