PaddleOCRFastAPI
PaddleOCRFastAPI copied to clipboard
A simple way to deploy PaddleOCR based on FastAPI. (PaddleOCR 的 FastAPI 快速部署方案)
PaddleOCRFastAPI
A simple way to deploy PaddleOCR based on FastAPI.
Support Version
| PaddleOCR | Branch |
|---|---|
| v2.5 | paddleocr-v2.5 |
| v2.7 | paddleocr-v2.7 |
Features
- [x] Local path image recognition
- [x] Base64 data recognition
- [x] Upload file recognition
Deployment Methods
Deploy Directly
-
Copy the project to the deployment path
git clone https://github.com/cgcel/PaddleOCRFastAPI.gitThe master branch is the most recent version of PaddleOCR supported by the project. To install a specific version, clone the branch with the corresponding version number.
-
(Optional) Create new virtual environment to avoid dependency conflicts
-
Install required dependencies
pip3 install -r requirements.txt -
Run FastAPI
uvicorn main:app --host 0.0.0.0
Docker Deployment
Test completed in Centos 7, Ubuntu 20.04, Ubuntu 22.04, Windows 10, Windows 11, requires Docker to be installed.
-
Copy the project to the deployment path
git clone https://github.com/cgcel/PaddleOCRFastAPI.gitThe master branch is the most recent version of PaddleOCR supported by the project. To install a specific version, clone the branch with the corresponding version number.
-
Building a Docker Image
docker build -t paddleocrfastapi:<your_tag> . -
Edit
docker-compose.ymlversion: "3" services: paddleocrfastapi: container_name: paddleocrfastapi # Custom Container Name image: paddleocrfastapi:<your_tag> # Customized Image Name & Label in Step 2 environment: - TZ=Asia/Hong_Kong - OCR_LANGUAGE=ch # support 80 languages. refer to https://github.com/Mushroomcat9998/PaddleOCR/blob/main/doc/doc_en/multi_languages_en.md#language_abbreviations ports: - 8000:8000 # Customize the service exposure port, 8000 is the default FastAPI port, do not modify restart: unless-stopped -
Create the Docker container and run
docker compose up -d -
Swagger Page at
localhost:<port>/docs
Change language
-
Clone this repo to localhost.
-
Edit
routers/ocr.py, modify the parameter "lang":ocr = PaddleOCR(use_angle_cls=True, lang="ch")Before modify, read the supported language list.
-
Rebuild the docker image, or run the
main.pydirectly.
Screenshots

Todo
- [x] support ppocr v4
- [ ] GPU mode
- [x] Image url recognition
License
PaddleOCRFastAPI is licensed under the MIT license. Refer to LICENSE for more information.