tesseract4.1遇到奇怪的0xc000001d应用程序无法运行

tesseract4.1奇怪的配置问题


1、项目原来一直使用tesseract4.0,近期更新到lstm方式训练后,迭代到了tesseract4.1版本,而线上项目32位与64位必须都兼容。
在win10环境本地编译的tesseract4.1 64位dll,在测试机上调用没问题。
换到32位时,所有tesseract编译的.exe文件均产生 崩溃应用程序无法运行0xc000001d的错误。
2、因为当时在本地win10和win7系统都测试过,没出现问题。但线上测试机出现了问题。首先考虑测试机依赖缺失问题。
用dependence一一查过依赖,没有问题。

3、耗费很多时间后,最终,在tesseract 问题中得到了解答:
https://github.com/tesseract-ocr/tesseract/issues/2674
在这里插入图片描述
原因是tesseract在编译时,用到了自动优化加速选项,采用cpu的AVX2指令集加速,我们现在的cpu一般均支持AVX2,AVX指令集,但一些机器人等终端上不会用很好的cpu,缺少AVX2指令集,造成程序崩溃。
解决方法:
在tesseract源码中找到CMakeLists.txt,将以下自动优化代码注释,就不会采用AVX2指令集。这样编译的dll不会出问题。但是调用速度会慢很多。如果识别任务量不是很大,应该不影响速度。
在这里插入图片描述

把这个回答留下,能帮助到你最好啦!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值