基于zed的tesseract移植过程记录_第1页
基于zed的tesseract移植过程记录_第2页
基于zed的tesseract移植过程记录_第3页
基于zed的tesseract移植过程记录_第4页
基于zed的tesseract移植过程记录_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于zed的tesseract移植过程记录搞了很多天的tesseract了,其实感觉收获不是很大,本想看看源代码的,想弄清楚,方便日后自己修改源码的,可是。。可是。。可是。。于是今天就打算把这个软件移植到Zynq上,在PC上之前就已经成功安装了tesseract了,并且利用自带的测试图片试了下,没问题。挺容易的。但是移植到ZYnq上面,我就有点心虚了,心虚肯定是有原因的,自己知识准备得不够,对linux了解的也不多,对交叉编译的理解等等,库,头文件,configure,make,makeinstall等等都是需要好好了解的,而且还需要对configure的参数设置得有点知识吧。好了,废话就不说了,我先记录下自己的移植过程吧。用tesseract的知道,这个软件是需要leptonica的支持,这个东西其实也就是另外的一个软件一样,它实现了很多图像处理方面的功能,类似于OPENCV吧。这个在PC上的安装很简单,.confiugre.make,makeinstall就搞定了,默认的安装应该是在.usr/local/下面的吧。当然我需要的交叉编译,产生能够在Zynq上面能够使用的库啊,头文件什么的。自然要用到交叉编译工具,叫什么arm-xilinx-linux-gunbeabi-gcc之类的称呼,好长。。。不过意思确实很明显的,说明这个编译工具编译出来的执行环境是xilinx公司的arm相关的产品,对我来说,手里就只有一块赠送的ZED板子了,不过感觉这块板子还是不错的。哈哈。好多废话。。说说怎么编译leptonica吧。。再来点废话,交叉编译的理解多掌握一些的好,不然跟着做也没啥意思,理解了才是万能的哇。。我这种新手,对linux不懂得人当然首先学习一些知识赛。。/7082590,这个博客讲的还是可以的,给我提供了参考和一些知识,在此感谢,不然我真不知道怎么下手啊,有没人指导,自己瞎弄不知道什么时候啊,幸好有这些网友的无私奉献。。第一步:设置相关环境变量:exportPATH=$PATH:(就是那个arm-xilinx-linux-gnueabi-gcc这个工具的目录/bin)//指定交叉编译器的路径,这个步骤其实早就做过了,开发板到手这个多天了,算得上学习的第一个实验就是交叉环境的搭建,还记得吧。。exportCC=arm-xilinx-linux-gnueabi-gcc//指定C文件的编译工具exportCXX=arm-xilinx-linux-gnueabi-g++//指定c++文件的编译工具关于这部分我想说的是我是参考那个博客的,其实这些东西应该是研究configure-help这个东东,看这个配置的参数,我看了下,除了上面提到的两个以为,还设计到其他的包括一些库路径,源文件路径啊,什么的,其实重要的也就是那几个吧。然户就执行./configure--build=i686-pc-linux-gnu--host=arm-xilinx-linux-gnueabi--target=arm-xilinx-linux-gnueabiCFLAGS=-I/home/gzw/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/LDFLAGS=-L/home/gzw/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib--prefix=/home/gzw/install/leptonica-1.69这个后面一堆其实都是写configure的参数,功能嘛,看看help就知道啦。然后就是make,makeinstall,由于在执行configure的时候我们指定了安装路径为/home/gzw/install/leptonica-1.69的,所以安装的东西就在这个下面了。到此为止leptonica就安装好了。下面接着讲tesseract的安装,跟上面类似了,所以上面的成功了,下面如鱼得水啊。。。。。前面说过tesseract需要用到leoptonica的东东,所以我就把安装好的/include和/lib拷贝到交叉工具所在路径里面去了,然后再configure的时候指定下需要的头文件,库路径啊之类的就可以了。如下:./autogen.sh这部分是不可少的哦,因为configure的时候需要那个makefile.in文件,其实文件看看在linux自动生产的能够makefile的原理就大概知道这些文件时干什么用的了。./configure--build=i686-pc-linux-gnu--host=arm-xilinx-linux-gnueabi--target=arm-xilinx-linux-gnueabiCFLAGS=-I/home/gzw/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/LDFLAGS=-L/home/gzw/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib--prefix=/home/gzw/install/tesseract-3.01之后就make,makemakeinstall安装成功了,路径在在指定的/home/gzw/install/tesseract-3.01下面了在,这个东东应该都是在Zynq需要的东东,才能用的东东。好了先这样吧。继续实验实验。。2013.4.2今天本来想把相关库文件bin文件等拷贝到zynq上面去运行的,不过拷贝的时候说空间不够,我也不知道什么原因,在挂载目录下面也不能执行tesseract命令,以为找不到库文件,即使我指定了LD_LIBRARY宏还是不得行,于是又尝试了下把相关的lib和bin弄到根文件系统里面去,然后做成镜像文件,替换那个ramdisk8M,可是根本执行不了。。这咋办捏。。记录之。。/usr/local/share#cp/mnt/tesseract-3.01/bin/*/usr/local/bin/

/usr/local/share#cp/mnt/tesseract-3.01/lib/*/usr/local/lib/

cp:writeerror:Nospaceleftondevice

cp:writeerror:Nospaceleftondevice

/usr/local/share#----------------------------------分割线---------------------------------------我记录自己所做的东西,已经到了交叉编译好了leptonica和tesseract了,就等着在板子上运行一下,看对不对了。结果发现把相关的文件弄到板子上的时候就提示说空间不够,要说我是个新手呢,说到底还是理解的不够啊,不过还好小组里面其他人理解了,说是因为根文件系统制作的时候只有8M的空间,那些库文件可不小哦,所以放不下赛,于是小组的阳平同学又做了个1G镜像文件,启动还是从ramdisk8M这个根文件系统开始,前面都差不多,在读取了设备数,正确引导内核执行rcS文件里面的东西的时候,添加了代码,意思是把挂载那个1G的文件系统,然后切换根目录,就相当于现在整个运行空间是1G的空间,不在是那个8M的空间了。但说为什么不直接一开始就不要那个ramdisk8M,直接只用这个1G的呢,因为我们不知道怎么产生正确U-boot啊!引导的工作都是交给u-boot的,至于那个boot.bin只不过还包含了PS,PL的配置而已。像书附件光盘的第二个实验就只提供了boot.bin,这个没有多大的参考,因为大家的PS,PL需要不同的配置。以上这些都是阳平做的工作,哈哈现在空间够了,首先把SD卡挂载到虚拟机的/mnt/sdcard/下面:mount-tvboxsfSDCARD/mnt/sdcard然后把sd卡中的1G的镜像挂载:mount/mnt/sdcard/disk1G.img/mnt/disk1g然后把在虚拟上用交叉工具编译好的,安装好的相关文件拷贝,其实就是拷贝bin和lib文件就可以执行了。当然还需要包括leptonica·的库文件,才能正确调用相关的图像处理库函数。cp/home/gzw/install/tesseract-3.01/lib/*/mnt/disk1g/usr/local/lib/cp/home/gzw/install/tesseract-3.01/bin/*/mnt/disk1g/usr/local/bin/还需要拷贝eng.traineddata到/mnt/disk1g/usr//local/share/tessdata/别以为拷贝完这些就够了,还不够,在执行的出现错误提示说没找到libstdc++.so库什么的,我找了一下这个文件的位置,发现在我们的交叉编译工具里面arm-xilin-linux-gnueabi/libc/usr/lib下面,这个文件夹下面的东西在制作根文件系统的时候没有可拷贝的,所以这里也需要拷贝才行。在所以得都拷贝完成之后,将SD卡插入到ZED上面,然后启动成功之后,切换到执行目录下面/usr/local/bin,然后exportLD_LIBRARAY_PATH=/usr/local/bin指定库文件,exportTESSDATA_PREFIX=/usr/local/share/指定数据库文件,其实就是字库,我实验用的英文的字库,需要识别的图片也是一副全是英文的图片。然后执行./tesseractphototest.bmpphototest.txt-leng,没有提示错误表示成功输出了,并且在当前目录下面产生txt文件,就是识别的结果,利用cat可以将文件内容显示出来,如下:Thisisalotof12pointtexttotestthe

ocrcodeandseeifitworksonalltypes

offileformat.

Thequickbrowndogjumpedoverthe

lazyfox.Thequickbrowndogjumped

overthelazyfox.Thequickbrowndog

jumpedoverthelazyfox.Thequick

browndogjumpedoverthelazyfox.原图片就是上面这些英文的图片。说明:在执行程序的时候很多时候提示我找不到相关的图像处理的函数,这些函数应该需要一些图像处理的库,我只拷贝了leptonica库和tesseract的库,以及tesseract的bin,最后发现只能识别处理bmp图像。需要处理其他图像只需要把那些图像处理库拷贝应该就可以了,虽然说leptonica应该就包含了很多的图像处理,应该是够用的,结果发现不够。呵呵呵额呵呵。一下就只执行的输出的,mark一下。。。。[0.800000]xusbps-ehcixusbps-ehci.0:irq53,iomem0x00000000

[0.830000]xusbps-ehcixusbps-ehci.0:USB2.0started,EHCI1.00

[0.830000]hub1-0:1.0:USBhubfound

[0.830000]hub1-0:1.0:1portdetected

[0.840000]InitializingUSBMassStoragedriver...

[0.840000]usbcore:registerednewinterfacedriverusb-storage

[0.850000]USBMassStoragesupportregistered.

[0.850000]XilinxPSUSBDeviceControllerdriver(Apr01,2011)

[0.860000]mousedev:PS/2mousedevicecommonforallmice

[0.860000]Linuxvideocaptureinterface:v2.00

[0.870000]gspca_main:v2.14.0registered

[0.870000]usbcore:registerednewinterfacedriveruvcvideo

[0.870000]USBVideoClassdriver(1.1.1)

[0.880000]WDTOFprobe

[0.880000]xwdtpsf8005000.swdt:XilinxWatchdogTimerat0xe081c000withti

meout10seconds

[0.890000]sdhci:SecureDigitalHostControllerInterfacedriver

[0.890000]sdhci:Copyright(c)PierreOssman

[0.900000]sdhci-pltfm:SDHCIplatformandOFdriverhelper

[0.900000]mmc0:Invalidmaximumblocksize,assuming512bytes

[0.910000]mmc0:SDHCIcontrollerone0100000.sdhci[e0100000.sdhci]usingA

DMA

[0.910000]usbcore:registerednewinterfacedriverusbhid

[0.920000]usbhid:USBHIDcoredriver

[0.920000]Noconnectorsreportedconnectedwithmodes

[0.930000]adv75110-0039:FailedtoaddrouteDAIIN->TMDS

[0.940000][drm]Cannotfindanycrtcorsizes-going1024x768

[0.940000]drivers/gpu/drm/analog/analog_drm_fbdev.c:analog_drm_fbdev_probe[

241]

[0.960000]asoc:adv7511<->75c00000.axi-spdif-txmappingok

[0.970000]axi-spdif75c00000.axi-spdif-tx:FailedtosetDAIformat:-22

[0.970000]Console:switchingtocolourframebufferdevice128x48

[0.980000]ALSAdevicelist:

[0.980000]#0:HDMImonitor

[0.980000]TCPcubicregistered

[0.980000]NET:Registeredprotocolfamily17

[0.980000]VFPsupportv0.3:implementor41architecture3part30variant9

rev4

[0.980000]RegisteringSWP/SWPBemulationhandler

[0.980000]registeredtaskstatsversion1

[0.980000]drivers/rtc/hctosys.c:unabletoopenrtcdevice(rtc0)

[1.000000]mmc0:newhighspeedSDHCcardataddressb368

[1.000000]mmcblk0:mmc0:b368F0F0F3.71GiB

[1.030000]mmcblk0:p1

[1.030000]fb0:framebufferdevice

[1.030000]drm:registeredpanicnotifier

[1.030000][drm]Initializedanalog_drm1.0.020110530onminor0

[1.050000]RAMDISK:gzipimagefoundatblock0

[1.480000]EXT4-fs(ram0):warning:mountinguncheckedfs,runninge2fsckis

recommended

[1.490000]EXT4-fs(ram0):mountedfilesystemwithoutjournal.Opts:(null)

[1.500000]VFS:Mountedroot(ext4filesystem)ondevice1:0.

[1.500000]Freeinginitmemory:152K

StartingrcS...

++Mountingfilesystem(0)

++Settingupmdev(0)

++Changingrootfilesystem

[1.830000]EXT4-fs(loop0):mountingext2filesystemusingtheext4subsyst

em

[1.850000]EXT4-fs(loop0):warning:mountinguncheckedfs,runninge2fscki

srecommended

[1.850000]EXT4-fs(loop0):mountedfilesystemwithoutjournal.Opts:(null)

++Mountingfilesystem(1)

++Settingupmdev(1)

++Startingtelnetdaemon

++Startinghttpdaemon

++Startingftpdaemon

++Startingdropbear(ssh)daemon

/bin/sh:can'taccesstty;jobcontrolturnedoff

/#exportLD_LIBRARY_PATH=/usr/local/lib

/#exportTESSDATA_PREFIX=/usr/local/share/

/#cd/usr/local/bin

/usr/local/bin#ls

1.out.txtphototest.GIFt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论