1. Vorbereitung
1.1 Betriebsumgebung
Das empfohlene Betriebssystem ist Linux. Ich verwende Ubuntu 16.04.6 und der Prozessor ist eine 4-Kern-Intel® Core™ i5-7500-CPU mit 3,40 GHz.
1.2 Kompilieren Sie abhängige Bibliotheken
Diese Demo verwendet hauptsächlich die Bibliotheken OpenCV und Paddle Prediction von Drittanbietern.
1.2.1 Opencv kompilieren
Es wird empfohlen, opencv 3.0 oder höher zu verwenden (nehmen Sie opencv3.4.7 als Beispiel).
1) Herunterladen und dekomprimieren
wget https://github.com/opencv/opencv/archive/3.4.7.tar.gz
tar xvf 3.4.7.tar.gz
2) Kompilieren
cd opencv-3.4.7
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX= {设定的opencv要install的目录} \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_IPP=OFF \
-DBUILD_IPP_IW=OFF \
-DWITH_LAPACK=OFF \
-DWITH_EIGEN=OFF \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DWITH_ZLIB=ON \
-DBUILD_ZLIB=ON \
-DWITH_JPEG=ON \
-DBUILD_JPEG=ON \
-DWITH_PNG=ON \
-DBUILD_PNG=ON \
-DWITH_TIFF=ON \
-DBUILD_TIFF=ON
make -j4
make install
Nach Abschluss der Make-Installation werden OpenCV-Headerdateien und Bibliotheksdateien im Verzeichnis der OpenCV-Installation für die anschließende OCR-Codekompilierung generiert. Die endgültige Dateistruktur im Installationspfad lautet wie folgt:
opencv3/
|-- bin
|-- include
|-- lib
|-- lib64
|-- share
1.2.2 Kompilieren Sie die Paddle-Vorhersagebibliothek
1) Laden Sie den Code herunter
git clone https://github.com/PaddlePaddle/Paddle.git
2) Kompilieren
mkdir build
cd build
cmake .. \
-DWITH_CONTRIB=OFF \
-DWITH_MKL=OFF \
-DWITH_MKLDNN=OFF \
-DWITH_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INFERENCE_API_TEST=OFF \
-DON_INFER=ON \
-DWITH_PYTHON=ON
make -j4
make inference_lib_dist
Nachdem die Kompilierung abgeschlossen ist, können Sie sehen, dass die folgenden Dateien und Ordner unter der Datei build/paddle_inference_install_dir/ generiert wurden.
build/paddle_inference_install_dir/
|-- CMakeCache.txt
|-- paddle
|-- third_party
|-- version.txt
- Hinweis: Wenn während der Kompilierung Fehler beim Öffnen zu vieler Dateien gemeldet werden, legen Sie ulimit -n 63356 fest
Weitere Kompilierungsparameteroptionen finden Sie auf der offiziellen Website der Paddle C++-Vorhersagebibliothek:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi
2. laufen
2.1 Exportieren Sie das Modell als Inferenzmodell
Informationen zum Exportieren des Inferenzmodells für die Modellvorhersage finden Sie im Kapitel zur Modellvorhersage ( https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/inference.md ). Nachdem das Modell exportiert wurde, sieht die Verzeichnisstruktur wie folgt aus, vorausgesetzt, es wird im Inferenzverzeichnis abgelegt.
inference/
|-- det_db
| |--inference.pdparams
| |--inference.pdimodel
|-- rec_rcnn
| |--inference.pdparams
| |--inference.pdparams
2.2 Kompilieren Sie die PaddleOCR C++-Vorhersagedemo
2.2.1 PaddleOCR herunterladen
git clone https://github.com/PaddlePaddle/PaddleOCR.git
cd PaddleOCR/deploy/cpp_infer
vi tools/build.sh
Setzen Sie OPENCV_DIR in build.sh auf den Installationspfad (1.2.1), der zum Kompilieren von opencv selbst verwendet wird, und setzen Sie LIB_DIR auf den Pfad, der zum Kompilieren der Paddle-Vorhersagebibliothek verwendet wird. Siehe die folgende Abbildung:
sh tools/build.sh
Nach Abschluss der Kompilierung wird im Build-Ordner eine ausführbare Datei mit dem Namen ocr_system generiert.
Führen Sie das Programm aus:
sh tools/run.sh
Der laufende Effekt des Programms ist wie folgt:
Das Ergebnisbild von ocr_vis.png wird im aktuellen Verzeichnis generiert. Der Effekt ist wie folgt: