基于zed的tesseract移植过程记录.doc
《基于zed的tesseract移植过程记录.doc》由会员分享,可在线阅读,更多相关《基于zed的tesseract移植过程记录.doc(6页珍藏版)》请在三一文库上搜索。
1、基于zed的tesseract移植过程记录搞了很多天的tesseract了,其实感觉收获不是很大,本想看看源代码的,想弄清楚,方便日后自己修改源码的,可是。可是。可是。于是今天就打算把这个软件移植到Zynq上,在PC上之前就已经成功安装了tesseract了,并且利用自带的测试图片试了下,没问题。挺容易的。但是移植到ZYnq上面,我就有点心虚了,心虚肯定是有原因的,自己知识准备得不够,对linux了解的也不多,对交叉编译的理解等等,库,头文 件,configure,make,make install等等都是需要好好了解的,而且还需要对configure的参数设置得有点知识吧。好了,废话就不说了
2、,我先记录下自己的移植过程吧。用tesseract的知道,这个软件是需要leptonica的支持,这个东西其实也就是另外的一个软件一样,它实现了很多图像处理方面的功能,类似于 OPENCV吧。这个在PC上的安装很简单,.confiugre.make ,make install就搞定了,默认的安装应该是在.usr/local/下面的吧。当然我需要的交叉编译,产生能够在Zynq上面能够使用的库啊,头文件什么 的。自然要用到交叉编译工具,叫什么arm-xilinx-linux-gunbeabi-gcc之类的称呼,好长。不过意思确实很明显的,说明这个 编译工具编译出来的执行环境是xilinx公司的ar
3、m相关的产品,对我来说,手里就只有一块赠送的ZED板子了,不过感觉这块板子还是不错的。哈哈。好 多废话。说说怎么编译leptonica吧。再来点废话,交叉编译的理解多掌握一些的好,不然跟着做也没啥意思,理解了才是万能的哇。我这种新手, 对linux不懂得人当然首先学习一些知识赛。 /7082590,这个博客讲的还是可以的,给我提供了参考和一些知识,在此感谢,不然我真不知道怎么下手啊,有没人指导,自己瞎弄不知道什么时候啊,幸 好有这些网友的无私奉献。第一步:设置相关环境变量:export PATH=$PATH:(就是那个 arm-xilinx-linux-gnueabi-gcc这个工具的目录/b
4、in) /指定交叉编译器的路径,这个步骤其实早就做过了,开发板到手这个多天了,算得上学习的第一个实验就是交叉环境的搭建,还记得吧。export CC= arm-xilinx-linux-gnueabi-gcc /指定C文件的编译工具export CXX=arm-xilinx-linux-gnueabi-g+ /指定c+文件的编译工具关于这部分我想说的是我是参考那个博客的,其实这些东西应该是研究configure -help这个东东,看这个配置的参数,我看了下,除了上面提到的两个以为,还设计到其他的包括一些库路径,源文件路径啊,什么的,其实重要的也就是那几个吧。然户就执行./configure
5、-build=i686-pc-linux-gnu -host=arm-xilinx-linux-gnueabi -target=arm-xilinx-linux-gnueabi CFLAGS=-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这个后面一堆其实都是写
6、configure的参数,功能嘛,看看help就知道啦。然后就是make,make install,由于在执行configure的时候我们指定了安装路径为/home/gzw/install/leptonica-1.69的,所以安装的东西就在这个下面了。到此为止leptonica就安装好了。下面接着讲tesseract的安装,跟上面类似了,所以上面的成功了,下面如鱼得水啊。前面说过tesseract需要用到leoptonica的东东,所以我就把安装好的/include 和/lib拷贝到交叉工具所在路径里面去了,然后再configure的时候指定下需要的头文件,库路径啊之类的就可以了。如下:./a
7、utogen.sh这部分是不可少的哦,因为configure的时候需要那个makefile.in文件,其实文件看看在linux自动生产的能够makefile的原理就大概知道这些文件时干什么用的了。./configure -build=i686-pc-linux-gnu -host=arm-xilinx-linux-gnueabi -target=arm-xilinx-linux-gnueabi CFLAGS=-I/home/gzw/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/ LDFLAGS=-L/home/gzw/Cod
8、eSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib -prefix=/home/gzw/install/tesseract-3.01之后就make ,make make install 安装成功了,路径在在指定的 /home/gzw/install/tesseract-3.01下面了在,这个东东应该都是在Zynq需要的东东,才能用的东东。好了先这样吧。继续实验实验。2013.4.2今天本来想把相关库文件bin文件等拷贝到zynq上面去运行的,不过拷贝的时候说空间不够,我也不知道什么原 因,在挂载目录下面也不能执行tesserac
9、t命令,以为找不到库文件,即使我指定了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: write error: No space left on devicecp: write error: No space l
10、eft on device/usr/local/share #-分割线-我记录自己所做的东西,已经到了交叉编译好了leptonica和tesseract了,就等着在板子上运行一下,看对不对了。结果发现把相关的文 件弄到板子上的时候就提示说空间不够,要说我是个新手呢,说到底还是理解的不够啊,不过还好小组里面其他人理解了,说是因为根文件系统制作的时候只有8M 的空间,那些库文件可不小哦,所以放不下赛,于是小组的阳平同学又做了个1G镜像文件,启动还是从ramdisk8M这个根文件系统开始,前面都差不多, 在读取了设备数,正确引导内核执行rcS文件里面的东西的时候,添加了代码,意思是把挂载那个1G的文
11、件系统,然后切换根目录,就相当于现在整个运行空间 是1G的空间,不在是那个8M 的空间了。但说为什么不直接一开始就不要那个ramdisk8M,直接只用这个1G的呢,因为我们不知道怎么产生正确U-boot啊!引导的工作都是交给 u-boot的,至于那个boot.bin只不过还包含了,的配置而已。像书附件光盘的第二个实验就只提供了 boot.bin,这个没有多大的参考,因为大家的PS,PL需要不同的配置。以上这些都是阳平做的工作,哈哈现在空间够了,首先把SD卡挂载到虚拟机的 /mnt/sdcard/下面:mount -t vboxsf SDCARD /mnt/sdcard然后把sd卡中的1G的镜像
12、挂载: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/disk
13、1g/usr/local/share/tessdata/别以为拷贝完这些就够了,还不够,在执行的出现错误提示说没找到 libstdc+.so库什么的,我找了一下这个文件的位置,发现在我们的交叉编译工具里面arm-xilin-linux-gnueabi/libc /usr/lib 下面,这个文件夹下面的东西在制作根文件系统的时候没有可拷贝的,所以这里也需要拷贝才行。在所以得都拷贝完成之后,将SD卡插入到ZED上面,然后启动成功之后,切换到执行目录下面/usr/local/bin,然后export LD_LIBRARAY_PATH=/usr/local/bin指定库文件,export TESSDA
14、TA_PREFIX=/usr/local/share/ 指定数据库文件,其实就是字库,我实验用的英文的字库,需要识别的图片也是一副全是英文的图片。然后执行./tesseract phototest.bmp phototest.txt -l eng,没有提示错误表示成功输出了,并且在当前目录下面产生txt文件,就是识别的结果,利用cat可以将文件内容显示出来,如下:This is a lot of 12 point text to test theocr code and see if it works on all typesof file format.The quick brown dog
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 zed tesseract 移植 过程 记录
链接地址:https://www.31doc.com/p-3416683.html