PaddleOCRv5_ncnn
PaddleOCRv5 在Visual Studio中進行圖片OCR檢測(ncnn框架+open-mobile實現),嘗試對nihui的ncnn-android-ppocrv5檢測算法的剝離與移植。
本項目Github鏈接如下:PaddleOCRv5_ncnn
寫在前面
本倉庫代碼是基于nihui的ncnn-android-ppocrv5項目代碼而修改的,原倉庫代碼是部署在Android端的,對于想在其他環境部署來說,需要進行代碼剝離和移植。本倉庫的代碼即是執行該次嘗試,嘗試在Windows短的Visual Studio中部署該算法。
環境配置
本倉庫代碼的運行環境如下:
-
Visual Studio 2019
-
ncnn-20250503-windows-vs2019
-
opencv-mobile-3.4.20-windows-vs2019
注:并不需要和本倉庫代碼的配置環境保持一致,可以根據Visual Studio的版本,下載對應的ncnn和opencv-mobile的版本即可。
推理設置
(1)先在Visual Studio新建一個空白工程,將本倉庫代碼放到該工程中。
(2)在工程中載入推理需要依賴的庫。
需要添加的依賴項如下:
ncnn.lib
GenericCodeGen.lib
glslang.lib
glslang-default-resource-limits.lib
MachineIndependent.lib
OSDependent.lib
SPIRV.lib
opencv_core3420.lib
opencv_features2d3420.lib
opencv_highgui3420.lib
opencv_imgproc3420.lib
opencv_photo3420.lib
opencv_video3420.lib
(3)選擇開始執行,應該在工程的Release的目錄下可以成功地生成.exe
文件。將weights
文件夾和測試圖像復制到Release下的路徑。
(4)執行推理。
推理圖片的指令如下:
PaddleOCRv5.exe single japan.png // 推理圖像
PaddleOCRv5.exe folder images // 推理文件夾(多張圖像)
輸出結果會保存在output
文件夾下。
推理結果
推理結果如下:
寫在后面
- 由于原本的opencv不支持中文和其他語言顯示,因此使用的是nihui發布的open-mobile,該庫可以支持簡單的opencv操作,同時支持中文日文等的顯示。但是不知道為什么,我無法在windows端成功地調用電腦的攝像頭,也就沒有辦法進行實時推理的測試。
- 有嘗試在ubuntu平臺移植算法,由于opencv-mobile庫的原因,無法成功編譯庫,因此也沒有辦法完整正常推理。
- 本倉庫代碼對nihui原始的倉庫做了部分修改,選擇通過讀取
.txt
字符文件的方式讀取字符,而源代碼中是將字符一整個寫在.h
文件中,我覺得會增加編譯負擔,就進行了修改。
創作不易,如果覺得這個倉庫還可以的話,麻煩給一個star,這就是對我最大的鼓勵。
Reference
- ncnn-android-ppocrv5
- QT-YOLO-OCR-CPP