天天看點

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

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模型 / 預訓練模型

這裡,我隻下載下傳了輕量級的模型,現在我們有這些檔案:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

解壓後(opencv.exe輕按兩下後,也是解壓)目錄如下:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

添加

opencv

環境變量:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

使用Visual Studio 2019直接編譯CMake

  1. 打開Visual Studio 2019 Community,點選

    繼續但無需代碼

    C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)
  2. 點選:

    檔案

    ->

    打開

    ->

    CMake

    C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

選擇項目代碼所在路徑,并打開

CMakeList.txt

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)
  1. 點選:

    項目

    ->

    CMake設定

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)
  1. 稍等片刻,在下方的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
           
C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

設定完成後, 點選上圖中

儲存并生成CMake緩存以加載變量

,前面都沒問題的話,應該會得到以下輸出:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

點選

生成

->

全部生成

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

不出意外,還會遇到錯誤,如下:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

輕按兩下錯誤,定位到

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

中,

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

生成的可執行檔案在

E:\OCR\PaddleOCR\deploy\cpp_infer\out\build\x64-Debug

中,在檔案管理器中打開相應的檔案夾,在位址欄輸入

cmd

,即可定位到目前檔案夾。

先輸入

CHCP 65001

回車,不然程式運作輸出會亂碼!

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)
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

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

解決辦法就是将

E:\OCR\opencv\build\x64\vc15\bin

目錄下的

opencv_world346.dll

opencv_world346d.dll

複制到

C:\Windows\System32

再運作即可!結果如下:

C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)
C++ 編譯 PaddleOCR(CPU版)C++ 編譯 PaddleOCR(CPU版)

對比可以看到,輕量級的檢測模型還是有一定的錯誤,可以下載下傳更大的模型自行測試!!完結撒花 !!!

繼續閱讀