开发ocr推理程序,使用python 做的程序,转c++时间来不及,故采用python直接和主程序通讯模式:
1,python 负责推理程序。
2,python中增加通讯接口,可为socket 或者IPC方式,因为便于查看方便,我使用信号流是通讯方式,数据流是本地方式。
3,推理程序开socket通讯,做服务器。
4,主程序shellexcute执行ocr推理程序,我利用的bat指令。
5,推理程序服务器开启。
6,主程序链接服务器。
7,主程序将检测图放入本地目录,发送指令给服务器可以检测图像了,到固定路径下方寻找图像,处理完成放入完成的dest目录下方。
8,推理程序发送处理完成结果信号给主程序,主程序去拿结果,完成一个cycle。
9,推理程序开始的时候利用pyinstaller打包,发现打包太大,800M+,然后还经常解压到临时路径,然后有时候异常退出这个打包的文件夹的临时文件还不删除,导致c盘涨涨涨。
10,并且每次打包exe太慢了,浪费太多时间,每次改动还得打包,于是改为pyd方式,简单方便,不用加密。
11,注意pyd需要引导启动,我用了mainocr程序启动。
12,mainocr改为pyc方式,未加密。
整个过程总结如下:
下载和安装
参考:https://www.jianshu.com/p/a2dbb346164a 和https://zhuanlan.zhihu.com/p/38659588
1,安装pyinstaller ,也可以pip install pyinstaller也可以自己手动下载,2,安装pywin32-227.win-amd64-py3.6.exe。
测试
在命令行中直接输入下面的指令即可
pyinstaller [opts] yourprogram.py
我用了
cd
到当前按照目录,然后
python pyinstaller.py --console --onefile test/xxxx.py
参数含义
-F 指定打包后只生成一个exe格式的文件(建议写上这个参数)
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)</