CV / PPOCR
PPOCR
Detects text polygons, rectifies each region, recognizes the text, and returns coordinates and confidence.
使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppocr:latest \
python web_service.py --platform rk3576 --model_dir /app/model --host 0.0.0.0 --port 8000REST API
REST API を使用して推論を実行します。以下のコマンドをコピーしてください。
curl http://localhost:8080/v1/chat/completions -d '{
"model": "ppocr-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "ppocr-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())モデル詳細
reComputer RK3576およびRK3588でPPOCRを実行する
このエンドツーエンドOCRサービスはreComputer-RK-CVに由来します。テキスト多角形を検出して読み順に並べ、各切り抜きを透視補正し、各テキスト行を認識します。
モデル情報
| コンポーネント | ファイル |
|---|---|
| テキスト検出器 | model/ppocr_det.rknn |
| テキスト認識器 | model/ppocr_rec.rknn |
| 文字辞書 | model/ppocr_keys_v1.txt |
| 注釈フォント | model/simfang.ttf |
| 出力 | テキスト、信頼度、四辺形座標、切り抜き、レイテンシ |
PPOCRは静止画像のみをサポートします。上流サービスには意図的にカメラ、ローカル動画、MP4解析のコントロールが含まれていません。
サービスを実行する
RK3576
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppocr:latest \
python web_service.py --platform rk3576 --model_dir /app/model \
--host 0.0.0.0 --port 8000RK3588
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-ppocr:latest \
python web_service.py --platform rk3588 --model_dir /app/model \
--host 0.0.0.0 --port 8000http://<BOARD_IP>:8000または/docsを開きます。
起動引数
| 引数 | デフォルト | 説明 |
|---|---|---|
--platform | 必須 | rk3576またはrk3588。 |
--model_dir | model | モデル、辞書、フォント、サンプル画像。 |
--image | なし | サーバー起動前に解析する静止画像。 |
--output | なし | --image用の注釈付きJPG/PNG出力パス。 |
--no_server | オフ | --image処理後に終了します。 |
--host / --port | 0.0.0.0 / 8000 | サービスアドレスとポート。 |
マウントした画像を一枚解析し、注釈を保存してJSONを表示し、終了するには:
python web_service.py --platform rk3576 --model_dir model \
--image /data/document.jpg --output /data/document_result.jpg --no_serverREST API
エンドポイント: POST /api/models/ppocr/predict
curl -X POST "http://<BOARD_IP>:8000/api/models/ppocr/predict" \
-F "file=@document.jpg" -F "drop_score=0.5" \
-F "include_crops=false"任意フィールドはdet_threshold、box_threshold、unclip_ratio、drop_score、max_results、include_cropsです。その他のエンドポイントでは、ヘルス状態、設定、最新の構造化結果、最新の注釈付きJPEG、対話型OpenAPIドキュメントを提供します。
| フィールド | デフォルト | 説明 |
|---|---|---|
det_threshold | 0.3 | 0から1までのピクセルマップ検出しきい値。 |
box_threshold | 0.6 | DBテキストボックスの最小スコア。 |
unclip_ratio | 1.5 | 0.1から5までの多角形拡張率。 |
drop_score | 0.5 | 結合テキストに含める最小認識信頼度。 |
max_results | 100 | 認識へ送る領域の最大数。 |
include_crops | false | 結果行にbase64 JPEG切り抜きを含めます。 |
重要なレスポンスフィールド:
{
"success": true,
"model": "ppocr",
"result": {
"text": "Recognized first line\nRecognized second line",
"lines": [
{
"index": 1,
"text": "Recognized first line",
"confidence": 0.9621,
"accepted": true,
"box": [[42, 31], [286, 29], [287, 72], [43, 74]]
}
],
"count": 2,
"timing_ms": {"detection": 54.2, "recognition": 71.4, "total": 129.8}
}
}検出品質は認識へ直接影響します。非常に小さい、ぼやけた、湾曲した、縦書き、低コントラスト、大きく回転したテキストは見落とされる可能性があり、単純な読み順ヒューリスティックは複雑な複数列文書に適さない場合があります。include_crops=trueはレスポンスサイズを増やし、主にWeb結果パネル向けです。検出器と認識器はパイプライン段階であり、文字辞書および透視切り抜きロジックとの互換性が必要です。
ローカルでビルドする
docker build -f docker/rk3576/ppocr.dockerfile \
-t rk3576-ppocr:local src/rk3576_ppocr
docker build -f docker/rk3588/ppocr.dockerfile \
-t rk3588-ppocr:local src/rk3588_ppocr入力と出力
Input: still image. Output: ordered text lines, confidence scores, quadrilaterals, and annotated image.