2024-04-28

[Python] 使用 CnOcr 進行辨識時出現在 Windows/Linux 和 MacOSX 的結果不一樣的情況

最近公司的案子有要使用 OCR 辨識,然後技術方面是要用 python 去處理,公司的 RD 就利用 CnOcr 開發了一個程式…

然後最近這個案子的相關成員就跟老闆匯報進度跟問題,在會後老闆就在跟 RD 討論問題的部份,然後老闆就讓 RD 來找在下一起討論,看看我有沒有想法。

這邊遇到的問題是這樣的

因為 RD 在轉交辨識程式給案子其他的開發者時,有一位後端反應該程式運行時有狀況,無法正常辨識…先說明一下,該程式是要辨識表格中的數據,然後回傳某幾欄跟列的值,而遇到問題的後端是運行程式後,最後出現錯誤是『Indexerror: list index out of range』

我說: 這不就很明顯,就是辨識完後的結果並不存在指定的 index 位置
RD說: 是,但這不太可能,同一個程式用同一個模型去辨識同一個檔案,我在自己的環境跑是正常的
我說: 那有確定後端那邊的環境,python 安裝的套件的版本是一樣的嗎?
RD說: 是沒確認過,等等我問問
我說: 那你先把程式跟要辨識的檔案給我一份,我在我的環境用用看
....
我說: 我這邊跑是正常耶
RD說: 剛也跟後端確認過了,套件的版本是一樣的
我說: 後端那邊的系統是?
RD說: Mac電腦
我說: 呃,會是 MacOSX 有什麼特別的?比如 cpu 特別?或支援的指令集不同?
RD說: 這就不太確定了
老闆說: 公司這邊還有一台 Macbook Pro 2019 的,要不試試?
....
我說: 欸,奇了,在這台 Mac 跑也是有問題,而且問題的反饋還跟後端的不完全一樣…後端那邊反饋是應該要返回四個值,但結果是一個都沒有,可是公司這台的結果反而是有辨識到三個
....