C++ 編譯 PaddleOCR(CPU版)
PaddleOCR項目位址
下載下傳檔案
- PaddleOCR 項目檔案 需要登入!
- paddle推理預測庫 選擇 cpu_avx_mkl 版
- opencv 3.4.5 開始下載下傳後,複制下載下傳連結用迅雷下載下傳,會快很多!
- 模型檔案:一般自己不再訓練模型的話,就選擇
模型。 連結見下方inference
模型名稱 | 模型簡介 | 檢測模型位址 | 識别模型位址 | 支援空格的識别模型位址 |
---|---|---|---|---|
chinese_db_crnn_mobile | 超輕量級中文OCR模型 | inference模型 / 預訓練模型 | inference模型 / 預訓練模型 | inference模型 / 預訓練模型 |
chinese_db_crnn_server | 通用中文OCR模型 | inference模型 / 預訓練模型 | inference模型 / 預訓練模型 | inference模型 / 預訓練模型 |
這裡,我隻下載下傳了輕量級的模型,現在我們有這些檔案:
解壓後(opencv.exe輕按兩下後,也是解壓)目錄如下:
添加
opencv
環境變量:
使用Visual Studio 2019直接編譯CMake
- 打開Visual Studio 2019 Community,點選
繼續但無需代碼
- 點選:
->檔案
->打開
CMake
選擇項目代碼所在路徑,并打開
CMakeList.txt
:
- 點選:
->項目
CMake設定
- 稍等片刻,在下方的CMake變量和緩存中指定
、OpenCV_DIR
的路徑PADDLE_LIB
OPENCV_DIR: E:/OCR/opencv/build/x64/vc15/lib
OpenCV_DIR: E:/OCR/opencv/build/x64/vc15/lib
PADDLE_LIB: E:/OCR/fluid_inference_cpu_avx_mkl
設定完成後, 點選上圖中
儲存并生成CMake緩存以加載變量
,前面都沒問題的話,應該會得到以下輸出:
點選
生成
->
全部生成
不出意外,還會遇到錯誤,如下:
輕按兩下錯誤,定位到
main.cpp
檔案中,這個錯誤産生的原因是
cout
輸出了中文,是以,我們可以用英文來替換這幾個漢字!
還有一種奇怪的解決辦事,就是要在中文字元串的最後邊加上一個空格即可 😃
std::cout << "花費了 "
<< double(duration.count()) *
std::chrono::microseconds::period::num /
std::chrono::microseconds::period::den
<< "秒 " << std::endl;
重新生成,就沒問題了!!!
在運作程式之前,還要先修改一下配置檔案,在
E:\OCR\PaddleOCR\deploy\cpp_infer\tools
中,
生成的可執行檔案在
E:\OCR\PaddleOCR\deploy\cpp_infer\out\build\x64-Debug
中,在檔案管理器中打開相應的檔案夾,在位址欄輸入
cmd
,即可定位到目前檔案夾。
先輸入
CHCP 65001
回車,不然程式運作輸出會亂碼!
E:\OCR\PaddleOCR\deploy\cpp_infer\out\build\x64-Debug>ocr_system.exe E:\OCR\PaddleOCR\deploy\cpp_infer\tools\config.txt E:\OCR\PaddleOCR\doc\imgs\10.jpg
第一個參數是 配置檔案的路徑,第二個參數是檢測的圖檔路徑
運作還會遇到一個錯誤 T_T
解決辦法就是将
E:\OCR\opencv\build\x64\vc15\bin
目錄下的
opencv_world346.dll
、
opencv_world346d.dll
複制到
C:\Windows\System32
中
再運作即可!結果如下:
對比可以看到,輕量級的檢測模型還是有一定的錯誤,可以下載下傳更大的模型自行測試!!完結撒花 !!!