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不會出問題。但是調用速度會慢很多。如果識別任務量不是很大,應該不影響速度。
在這裏插入圖片描述

把這個回答留下,能幫助到你最好啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章