要使用Ubuntu上的PaddleOCR API接口,您需要首先安裝PaddleOCR庫并正確配置環境
在終端中運行以下命令以安裝PaddleOCR:
pip install paddlepaddle paddlepaddleocr
為了訓練OCR模型,您需要一個帶標簽的數據集。數據集應包含圖像和相應的文本文件。例如,對于英語數據集,您可以使用EMNIST數據集。將數據集放在PaddleOCR/data
文件夾中。
在終端中運行以下命令以訓練OCR模型:
python PaddleOCR/train.py \
-c PaddleOCR/configs/rec/ch_ppocr_server_v2.0_rec_infer.yml \
--train_dataset=PaddleOCR/data/ch_simfang \
--val_dataset=PaddleOCR/data/ch_simfang \
--train_batch_size=8 \
--rec_learning_rate=0.001 \
--save_dir=PaddleOCR/output
訓練完成后,您可以導出訓練好的模型。運行以下命令以導出模型:
python PaddleOCR/export.py \
-c PaddleOCR/configs/rec/ch_ppocr_server_v2.0_rec_infer.yml \
--model_dir=PaddleOCR/output/rec \
--save_dir=PaddleOCR/output/export
現在,您可以使用導出的模型通過REST API識別圖像中的文本。首先,安裝Flask庫:
pip install flask
接下來,創建一個名為app.py
的文件,并添加以下內容:
from flask import Flask, request, jsonify
import paddlepaddle
import paddlepaddleocr
app = Flask(__name__)
def ocr_client(image_path):
config = paddlepaddleocr.deploy.Config(det_model_dir="PaddleOCR/output/export", rec_model_dir="PaddleOCR/output/export")
det_loader = paddlepaddleocr.deploy.load_inference_model(config, det_model_type="CRNN")
rec_loader = paddlepaddleocr.deploy.load_inference_model(config, rec_model_type="CRNN")
img = paddlepaddle.io.read_image(image_path)
result = det_loader(img)
text = "".join([item["text"] for item in result])
return text
@app.route("/api/recognize", methods=["POST"])
def recognize():
image_file = request.files["image"]
image_path = "/tmp/" + image_file.filename
image_file.save(image_path)
text = ocr_client(image_path)
os.remove(image_path)
return jsonify({"text": text})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
現在,運行app.py
文件以啟動OCR API服務器:
python app.py
要使用API接口,您可以使用curl命令或Postman等工具向http://0.0.0.0:8080/api/recognize
發送POST請求,其中包含圖像文件的base64編碼。例如,使用curl命令:
curl -X POST -H "Content-Type: application/json" -d '{"image": "data:image/jpeg;base64,..."}' http://0.0.0.0:8080/api/recognize
這將返回圖像中的文本。