[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-umi-ocr-docker-bushuyu-api-jiekoudiaoyongzhinan":3},{"id":4,"title":5,"slug":6,"summary":7,"content":8,"contentHtml":9,"wordCount":10,"readingTime":11,"categoryId":12,"tags":13,"coverImage":13,"thumbnail":13,"status":14,"isTop":15,"isRecommended":15,"allowComments":15,"password":13,"viewCount":16,"likeCount":15,"commentCount":15,"seoTitle":5,"seoKeywords":17,"seoDescription":18,"source":13,"sourceUrl":13,"publishTime":19},"2058861222097383425","Umi-OCR Docker 部署与 API 接口调用指南","umi-ocr-docker-bushuyu-api-jiekoudiaoyongzhinan","Umi-OCR 是一款免费、开源、可批量的离线 OCR 软件，支持截屏识别、批量导入图片、PDF 文档识别、排除水印\u002F页眉页脚、扫描\u002F生成二维码等功能。其 Docker 部署方案使得在 Linux 服务器或桌面环境下运行和集成变得非常便捷。 ### 一、Docker 部署 Umi-OCR #### 1. 部署前提 在开始部署前，请确保您的主机 CPU 支持 AVX 指令集，这是运行 Umi-OCR Linux 版本的必要条件。 ```bash lscpu | grep avx ``` 如果命令输出中包含 `avx` 和 `avx2`，则可以继续部署。 #### 2. 构建 Docker 镜像 首先，下载官方提供的 Dockerfile 并构建镜像。 ```bash # 1.","\nUmi-OCR 是一款免费、开源、可批量的离线 OCR 软件，支持截屏识别、批量导入图片、PDF 文档识别、排除水印\u002F页眉页脚、扫描\u002F生成二维码等功能。其 Docker 部署方案使得在 Linux 服务器或桌面环境下运行和集成变得非常便捷。\n\n### 一、Docker 部署 Umi-OCR\n\n#### 1. 部署前提\n在开始部署前，请确保您的主机 CPU 支持 AVX 指令集，这是运行 Umi-OCR Linux 版本的必要条件。\n```bash\nlscpu | grep avx\n```\n如果命令输出中包含 `avx` 和 `avx2`，则可以继续部署。\n\n#### 2. 构建 Docker 镜像\n首先，下载官方提供的 Dockerfile 并构建镜像。\n```bash\n# 1. 下载 Dockerfile\nwget https:\u002F\u002Fraw.githubusercontent.com\u002Fhiroi-sora\u002FUmi-OCR_runtime_linux\u002Fmain\u002FDockerfile\n\n# 2. 构建镜像\ndocker build -t umi-ocr-paddle .\n```\n如果遇到网络问题，可以在构建时设置代理：\n```bash\ndocker build -t umi-ocr-paddle . \\\n  --build-arg HTTP_PROXY=http:\u002F\u002FX.X.X.X:7897 \\\n  --build-arg HTTPS_PROXY=http:\u002F\u002FX.X.X.X:7897\n```\n\n#### 3. 运行容器\nUmi-OCR 支持两种运行模式：无头模式（Headless）和 GUI 模式。\n\n**无头模式**\n适合在没有显示器的云服务器或不支持 X 显示协议的系统上运行，主要用于提供 HTTP API 服务。\n```bash\ndocker run -d --name umi-ocr \\\n  -e HEADLESS=true \\\n  -p 1224:1224 \\\n  umi-ocr-paddle\n```\n*   `-e HEADLESS=true`：启用无头模式。\n*   `-p 1224:1224`：将容器内的 1224 端口映射到主机的 1224 端口（可根据需要修改主机端口）。\n\n**GUI 模式**\n适合在有显示器的 Xorg 桌面环境下使用，可以使用截屏、文件拖拽导入等图形界面功能。\n```bash\n# 在主机上开放 X 服务权限\nxhost +\n\n# 运行容器\ndocker run -d --name umi-ocr \\\n  -v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix \\\n  -e DISPLAY=$DISPLAY \\\n  -v \u002Fhome:\u002Fhome \\\n  -p 1224:1224 \\\n  umi-ocr-paddle\n```\n*   `-v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix` 和 `-e DISPLAY=$DISPLAY`：允许容器连接宿主机的显示服务。\n*   `-v \u002Fhome:\u002Fhome`：将主机 home 目录挂载到容器内相同路径，以便使用文件拖拽功能。\n\n### 二、HTTP API 接口调用\nUmi-OCR 在运行后会提供 HTTP 服务，默认端口为 1224。您可以通过 RESTful API 进行调用。\n\n#### 1. 图片 OCR 识别接口\n**接口地址**：`http:\u002F\u002F\u003C服务器IP>:1224\u002Fapi\u002Focr`\n\n**请求方法**：POST\n\n**请求参数（JSON格式）**：\n| 参数名 | 类型 | 是否必填 | 描述 |\n| :--- | :--- | :--- | :--- |\n| `base64` | string | 是 | 待识别图像的 Base64 编码字符串，**无需** `data:image\u002Fpng;base64,` 等前缀。 |\n| `options` | object | 否 | 配置选项字典。具体可用参数可通过查询接口获取。 |\n\n**请求示例**：\n```json\n{\n  \"base64\": \"iVBORw0KGgoAAAAN……\",\n  \"options\": {\n    \"ocr.language\": \"models\u002Fconfig_chinese.txt\",\n    \"ocr.cls\": true,\n    \"ocr.limit_side_len\": 4320,\n    \"tbpu.parser\": \"multi_none\",\n    \"data.format\": \"text\"\n  }\n}\n```\n\n**响应格式**：\n```json\n{\n  \"code\": 100,\n  \"data\": [\"识别出的文本行1\", \"识别出的文本行2\"],\n  \"time\": 0.85,\n  \"timestamp\": 1716634200.123\n}\n```\n*   `code`: 100 表示成功，101 表示图片中无文本，其他值为失败。\n*   `data`: 识别结果，格式取决于 `options` 中的 `data.format` 设置。\n*   `time`: 识别耗时（秒）。\n*   `timestamp`: 任务开始时间戳。\n\n#### 2. 参数查询接口\n在调用识别接口前，可以先查询当前可用的配置参数。\n\n**接口地址**：`http:\u002F\u002F\u003C服务器IP>:1224\u002Fapi\u002Focr\u002Fget_options`\n\n**请求方法**：GET\n\n**响应**：返回一个 JSON 对象，包含所有可配置的 `options` 参数及其可选值。\n\n#### 3. 二维码识别与生成接口\nUmi-OCR 同样支持二维码的识别与生成。\n\n**二维码识别接口**\n*   **地址**：`http:\u002F\u002F\u003C服务器IP>:1224\u002Fapi\u002Fqrcode`\n*   **方法**：POST\n*   **参数**：与图片 OCR 接口类似，需传入图片的 `base64` 字符串。\n*   **响应**：返回识别出的二维码内容。\n\n**二维码生成接口**\n*   **地址**：`http:\u002F\u002F\u003C服务器IP>:1224\u002Fapi\u002Fqrcode` (与识别相同，通过参数区分)\n*   **方法**：POST\n*   **参数**：需传入 `text`（要编码的文本）和可选的 `options`（如码类型、尺寸等）。\n*   **响应**：返回生成的二维码图片的 Base64 字符串。\n\n### 三、使用示例（Python）\n以下是一个调用图片 OCR 接口的 Python 示例：\n```python\nimport json\nimport requests\nimport base64\n\n# 1. 查询可用参数\nresponse = requests.get(\"http:\u002F\u002F127.0.0.1:1224\u002Fapi\u002Focr\u002Fget_options\")\nprint(\"可用参数：\", json.dumps(response.json(), indent=4, ensure_ascii=False))\n\n# 2. 准备图片并编码为 Base64\nwith open(\"test.png\", \"rb\") as image_file:\n    img_base64 = base64.b64encode(image_file.read()).decode('utf-8')\n\n# 3. 调用 OCR 接口\nurl = \"http:\u002F\u002F127.0.0.1:1224\u002Fapi\u002Focr\"\npayload = {\n    \"base64\": img_base64,\n    \"options\": {\n        \"data.format\": \"text\"\n    }\n}\nheaders = {'Content-Type': 'application\u002Fjson'}\nresponse = requests.post(url, data=json.dumps(payload), headers=headers)\nresult = response.json()\nprint(\"识别结果：\", result)\n```\n\n### 总结\n通过 Docker 部署 Umi-OCR，您可以快速搭建一个离线、高效的 OCR 服务。无头模式非常适合集成到自动化流程或后端服务中，而 GUI 模式则便于在桌面环境进行交互式操作。其提供的 HTTP API 接口规范且功能全面，便于开发者进行二次开发和集成。","\u003Cp data-line=\"1\">Umi-OCR 是一款免费、开源、可批量的离线 OCR 软件，支持截屏识别、批量导入图片、PDF 文档识别、排除水印\u002F页眉页脚、扫描\u002F生成二维码等功能。其 Docker 部署方案使得在 Linux 服务器或桌面环境下运行和集成变得非常便捷。\u003C\u002Fp>\n\u003Ch3 data-line=\"3\" id=\"一、Docker 部署 Umi-OCR\">一、Docker 部署 Umi-OCR\u003C\u002Fh3>\n\u003Ch4 data-line=\"5\" id=\"1. 部署前提\">1. 部署前提\u003C\u002Fh4>\n\u003Cp data-line=\"6\">在开始部署前，请确保您的主机 CPU 支持 AVX 指令集，这是运行 Umi-OCR Linux 版本的必要条件。\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"7\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">bash\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-bash\" language=bash>\u003Cspan class=\"md-editor-code-block\">lscpu | grep avx\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cp data-line=\"10\">如果命令输出中包含 \u003Ccode>avx\u003C\u002Fcode> 和 \u003Ccode>avx2\u003C\u002Fcode>，则可以继续部署。\u003C\u002Fp>\n\u003Ch4 data-line=\"12\" id=\"2. 构建 Docker 镜像\">2. 构建 Docker 镜像\u003C\u002Fh4>\n\u003Cp data-line=\"13\">首先，下载官方提供的 Dockerfile 并构建镜像。\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"14\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">bash\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-bash\" language=bash>\u003Cspan class=\"md-editor-code-block\">\u003Cspan class=\"hljs-comment\"># 1. 下载 Dockerfile\u003C\u002Fspan>\nwget https:\u002F\u002Fraw.githubusercontent.com\u002Fhiroi-sora\u002FUmi-OCR_runtime_linux\u002Fmain\u002FDockerfile\n\n\u003Cspan class=\"hljs-comment\"># 2. 构建镜像\u003C\u002Fspan>\ndocker build -t umi-ocr-paddle .\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cp data-line=\"21\">如果遇到网络问题，可以在构建时设置代理：\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"22\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">bash\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-bash\" language=bash>\u003Cspan class=\"md-editor-code-block\">docker build -t umi-ocr-paddle . \\\n  --build-arg HTTP_PROXY=http:\u002F\u002FX.X.X.X:7897 \\\n  --build-arg HTTPS_PROXY=http:\u002F\u002FX.X.X.X:7897\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Ch4 data-line=\"28\" id=\"3. 运行容器\">3. 运行容器\u003C\u002Fh4>\n\u003Cp data-line=\"29\">Umi-OCR 支持两种运行模式：无头模式（Headless）和 GUI 模式。\u003C\u002Fp>\n\u003Cp data-line=\"31\">\u003Cstrong>无头模式\u003C\u002Fstrong>\u003Cbr>\n适合在没有显示器的云服务器或不支持 X 显示协议的系统上运行，主要用于提供 HTTP API 服务。\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"33\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">bash\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-bash\" language=bash>\u003Cspan class=\"md-editor-code-block\">docker run -d --name umi-ocr \\\n  -e HEADLESS=\u003Cspan class=\"hljs-literal\">true\u003C\u002Fspan> \\\n  -p 1224:1224 \\\n  umi-ocr-paddle\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cul data-line=\"39\">\n\u003Cli data-line=\"39\">\u003Ccode>-e HEADLESS=true\u003C\u002Fcode>：启用无头模式。\u003C\u002Fli>\n\u003Cli data-line=\"40\">\u003Ccode>-p 1224:1224\u003C\u002Fcode>：将容器内的 1224 端口映射到主机的 1224 端口（可根据需要修改主机端口）。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp data-line=\"42\">\u003Cstrong>GUI 模式\u003C\u002Fstrong>\u003Cbr>\n适合在有显示器的 Xorg 桌面环境下使用，可以使用截屏、文件拖拽导入等图形界面功能。\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"44\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">bash\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-bash\" language=bash>\u003Cspan class=\"md-editor-code-block\">\u003Cspan class=\"hljs-comment\"># 在主机上开放 X 服务权限\u003C\u002Fspan>\nxhost +\n\n\u003Cspan class=\"hljs-comment\"># 运行容器\u003C\u002Fspan>\ndocker run -d --name umi-ocr \\\n  -v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix \\\n  -e DISPLAY=\u003Cspan class=\"hljs-variable\">$DISPLAY\u003C\u002Fspan> \\\n  -v \u002Fhome:\u002Fhome \\\n  -p 1224:1224 \\\n  umi-ocr-paddle\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cul data-line=\"56\">\n\u003Cli data-line=\"56\">\u003Ccode>-v \u002Ftmp\u002F.X11-unix:\u002Ftmp\u002F.X11-unix\u003C\u002Fcode> 和 \u003Ccode>-e DISPLAY=$DISPLAY\u003C\u002Fcode>：允许容器连接宿主机的显示服务。\u003C\u002Fli>\n\u003Cli data-line=\"57\">\u003Ccode>-v \u002Fhome:\u002Fhome\u003C\u002Fcode>：将主机 home 目录挂载到容器内相同路径，以便使用文件拖拽功能。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 data-line=\"59\" id=\"二、HTTP API 接口调用\">二、HTTP API 接口调用\u003C\u002Fh3>\n\u003Cp data-line=\"60\">Umi-OCR 在运行后会提供 HTTP 服务，默认端口为 1224。您可以通过 RESTful API 进行调用。\u003C\u002Fp>\n\u003Ch4 data-line=\"62\" id=\"1. 图片 OCR 识别接口\">1. 图片 OCR 识别接口\u003C\u002Fh4>\n\u003Cp data-line=\"63\">\u003Cstrong>接口地址\u003C\u002Fstrong>：\u003Ccode>http:\u002F\u002F&lt;服务器IP&gt;:1224\u002Fapi\u002Focr\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp data-line=\"65\">\u003Cstrong>请求方法\u003C\u002Fstrong>：POST\u003C\u002Fp>\n\u003Cp data-line=\"67\">\u003Cstrong>请求参数（JSON格式）\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Ctable data-line=\"68\">\n\u003Cthead data-line=\"68\">\n\u003Ctr data-line=\"68\">\n\u003Cth style=\"text-align:left\">参数名\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">类型\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">是否必填\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">描述\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody data-line=\"70\">\n\u003Ctr data-line=\"70\">\n\u003Ctd style=\"text-align:left\">\u003Ccode>base64\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">是\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">待识别图像的 Base64 编码字符串，\u003Cstrong>无需\u003C\u002Fstrong> \u003Ccode>data:image\u002Fpng;base64,\u003C\u002Fcode> 等前缀。\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr data-line=\"71\">\n\u003Ctd style=\"text-align:left\">\u003Ccode>options\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">object\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">否\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">配置选项字典。具体可用参数可通过查询接口获取。\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp data-line=\"73\">\u003Cstrong>请求示例\u003C\u002Fstrong>：\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"74\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">json\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-json\" language=json>\u003Cspan class=\"md-editor-code-block\">\u003Cspan class=\"hljs-punctuation\">{\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;base64&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;iVBORw0KGgoAAAAN……&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;options&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-punctuation\">{\u003C\u002Fspan>\n    \u003Cspan class=\"hljs-attr\">&quot;ocr.language&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;models\u002Fconfig_chinese.txt&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n    \u003Cspan class=\"hljs-attr\">&quot;ocr.cls&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-literal\">\u003Cspan class=\"hljs-keyword\">true\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n    \u003Cspan class=\"hljs-attr\">&quot;ocr.limit_side_len&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">4320\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n    \u003Cspan class=\"hljs-attr\">&quot;tbpu.parser&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;multi_none&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n    \u003Cspan class=\"hljs-attr\">&quot;data.format&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;text&quot;\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-punctuation\">}\u003C\u002Fspan>\n\u003Cspan class=\"hljs-punctuation\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cp data-line=\"87\">\u003Cstrong>响应格式\u003C\u002Fstrong>：\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"88\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">json\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-json\" language=json>\u003Cspan class=\"md-editor-code-block\">\u003Cspan class=\"hljs-punctuation\">{\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;code&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">100\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;data&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-punctuation\">[\u003C\u002Fspan>\u003Cspan class=\"hljs-string\">&quot;识别出的文本行1&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;识别出的文本行2&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">]\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;time&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">0.85\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">,\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-attr\">&quot;timestamp&quot;\u003C\u002Fspan>\u003Cspan class=\"hljs-punctuation\">:\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">1716634200.123\u003C\u002Fspan>\n\u003Cspan class=\"hljs-punctuation\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Cul data-line=\"96\">\n\u003Cli data-line=\"96\">\u003Ccode>code\u003C\u002Fcode>: 100 表示成功，101 表示图片中无文本，其他值为失败。\u003C\u002Fli>\n\u003Cli data-line=\"97\">\u003Ccode>data\u003C\u002Fcode>: 识别结果，格式取决于 \u003Ccode>options\u003C\u002Fcode> 中的 \u003Ccode>data.format\u003C\u002Fcode> 设置。\u003C\u002Fli>\n\u003Cli data-line=\"98\">\u003Ccode>time\u003C\u002Fcode>: 识别耗时（秒）。\u003C\u002Fli>\n\u003Cli data-line=\"99\">\u003Ccode>timestamp\u003C\u002Fcode>: 任务开始时间戳。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4 data-line=\"101\" id=\"2. 参数查询接口\">2. 参数查询接口\u003C\u002Fh4>\n\u003Cp data-line=\"102\">在调用识别接口前，可以先查询当前可用的配置参数。\u003C\u002Fp>\n\u003Cp data-line=\"104\">\u003Cstrong>接口地址\u003C\u002Fstrong>：\u003Ccode>http:\u002F\u002F&lt;服务器IP&gt;:1224\u002Fapi\u002Focr\u002Fget_options\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp data-line=\"106\">\u003Cstrong>请求方法\u003C\u002Fstrong>：GET\u003C\u002Fp>\n\u003Cp data-line=\"108\">\u003Cstrong>响应\u003C\u002Fstrong>：返回一个 JSON 对象，包含所有可配置的 \u003Ccode>options\u003C\u002Fcode> 参数及其可选值。\u003C\u002Fp>\n\u003Ch4 data-line=\"110\" id=\"3. 二维码识别与生成接口\">3. 二维码识别与生成接口\u003C\u002Fh4>\n\u003Cp data-line=\"111\">Umi-OCR 同样支持二维码的识别与生成。\u003C\u002Fp>\n\u003Cp data-line=\"113\">\u003Cstrong>二维码识别接口\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul data-line=\"114\">\n\u003Cli data-line=\"114\">\u003Cstrong>地址\u003C\u002Fstrong>：\u003Ccode>http:\u002F\u002F&lt;服务器IP&gt;:1224\u002Fapi\u002Fqrcode\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli data-line=\"115\">\u003Cstrong>方法\u003C\u002Fstrong>：POST\u003C\u002Fli>\n\u003Cli data-line=\"116\">\u003Cstrong>参数\u003C\u002Fstrong>：与图片 OCR 接口类似，需传入图片的 \u003Ccode>base64\u003C\u002Fcode> 字符串。\u003C\u002Fli>\n\u003Cli data-line=\"117\">\u003Cstrong>响应\u003C\u002Fstrong>：返回识别出的二维码内容。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp data-line=\"119\">\u003Cstrong>二维码生成接口\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul data-line=\"120\">\n\u003Cli data-line=\"120\">\u003Cstrong>地址\u003C\u002Fstrong>：\u003Ccode>http:\u002F\u002F&lt;服务器IP&gt;:1224\u002Fapi\u002Fqrcode\u003C\u002Fcode> (与识别相同，通过参数区分)\u003C\u002Fli>\n\u003Cli data-line=\"121\">\u003Cstrong>方法\u003C\u002Fstrong>：POST\u003C\u002Fli>\n\u003Cli data-line=\"122\">\u003Cstrong>参数\u003C\u002Fstrong>：需传入 \u003Ccode>text\u003C\u002Fcode>（要编码的文本）和可选的 \u003Ccode>options\u003C\u002Fcode>（如码类型、尺寸等）。\u003C\u002Fli>\n\u003Cli data-line=\"123\">\u003Cstrong>响应\u003C\u002Fstrong>：返回生成的二维码图片的 Base64 字符串。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 data-line=\"125\" id=\"三、使用示例（Python）\">三、使用示例（Python）\u003C\u002Fh3>\n\u003Cp data-line=\"126\">以下是一个调用图片 OCR 接口的 Python 示例：\u003C\u002Fp>\n\n        \u003Cdetails  data-line=\"127\" class=\"md-editor-code\" open=\"\">\n          \u003Csummary class=\"md-editor-code-head\">\n            \u003Cdiv class=\"md-editor-code-flag\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fdiv>\n            \u003Cdiv class=\"md-editor-code-action\">\n              \u003Cspan class=\"md-editor-code-lang\">python\u003C\u002Fspan>\n              \u003Cspan class=\"md-editor-copy-button\" data-tips=\"复制代码\">复制代码\u003C\u002Fspan>\n              \n              \u003Cspan class=\"md-editor-collapse-tips\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-chevron-left md-editor-icon\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m14 16-4-4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n            \u003C\u002Fdiv>\n          \u003C\u002Fsummary>\n          \u003Cpre>\u003Ccode class=\"language-python\" language=python>\u003Cspan class=\"md-editor-code-block\">\u003Cspan class=\"hljs-keyword\">import\u003C\u002Fspan> json\n\u003Cspan class=\"hljs-keyword\">import\u003C\u002Fspan> requests\n\u003Cspan class=\"hljs-keyword\">import\u003C\u002Fspan> base64\n\n\u003Cspan class=\"hljs-comment\"># 1. 查询可用参数\u003C\u002Fspan>\nresponse = requests.get(\u003Cspan class=\"hljs-string\">&quot;http:\u002F\u002F127.0.0.1:1224\u002Fapi\u002Focr\u002Fget_options&quot;\u003C\u002Fspan>)\n\u003Cspan class=\"hljs-built_in\">print\u003C\u002Fspan>(\u003Cspan class=\"hljs-string\">&quot;可用参数：&quot;\u003C\u002Fspan>, json.dumps(response.json(), indent=\u003Cspan class=\"hljs-number\">4\u003C\u002Fspan>, ensure_ascii=\u003Cspan class=\"hljs-literal\">False\u003C\u002Fspan>))\n\n\u003Cspan class=\"hljs-comment\"># 2. 准备图片并编码为 Base64\u003C\u002Fspan>\n\u003Cspan class=\"hljs-keyword\">with\u003C\u002Fspan> \u003Cspan class=\"hljs-built_in\">open\u003C\u002Fspan>(\u003Cspan class=\"hljs-string\">&quot;test.png&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;rb&quot;\u003C\u002Fspan>) \u003Cspan class=\"hljs-keyword\">as\u003C\u002Fspan> image_file:\n    img_base64 = base64.b64encode(image_file.read()).decode(\u003Cspan class=\"hljs-string\">&#x27;utf-8&#x27;\u003C\u002Fspan>)\n\n\u003Cspan class=\"hljs-comment\"># 3. 调用 OCR 接口\u003C\u002Fspan>\nurl = \u003Cspan class=\"hljs-string\">&quot;http:\u002F\u002F127.0.0.1:1224\u002Fapi\u002Focr&quot;\u003C\u002Fspan>\npayload = {\n    \u003Cspan class=\"hljs-string\">&quot;base64&quot;\u003C\u002Fspan>: img_base64,\n    \u003Cspan class=\"hljs-string\">&quot;options&quot;\u003C\u002Fspan>: {\n        \u003Cspan class=\"hljs-string\">&quot;data.format&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;text&quot;\u003C\u002Fspan>\n    }\n}\nheaders = {\u003Cspan class=\"hljs-string\">&#x27;Content-Type&#x27;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&#x27;application\u002Fjson&#x27;\u003C\u002Fspan>}\nresponse = requests.post(url, data=json.dumps(payload), headers=headers)\nresult = response.json()\n\u003Cspan class=\"hljs-built_in\">print\u003C\u002Fspan>(\u003Cspan class=\"hljs-string\">&quot;识别结果：&quot;\u003C\u002Fspan>, result)\u003C\u002Fspan>\u003Cspan rn-wrapper aria-hidden=\"true\">\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\n        \u003C\u002Fdetails>\n      \u003Ch3 data-line=\"154\" id=\"总结\">总结\u003C\u002Fh3>\n\u003Cp data-line=\"155\">通过 Docker 部署 Umi-OCR，您可以快速搭建一个离线、高效的 OCR 服务。无头模式非常适合集成到自动化流程或后端服务中，而 GUI 模式则便于在桌面环境进行交互式操作。其提供的 HTTP API 接口规范且功能全面，便于开发者进行二次开发和集成。\u003C\u002Fp>\n",3556,11,"0","",2,0,505,"识别,&quot,参数,接口,base","Umi-OCR 是一款免费、开源、可批量的离线 OCR 软件，支持截屏识别、批量导入图片、PDF 文档识别、排除水印\u002F页眉页脚、扫描\u002F生成二维码等功能。其 Docker 部署方案使得在 Linux 服务器或桌面环境下运行和集成变得非常便捷。\n一、Docker 部署 Umi-OCR\n1.","2026-05-25 18:42:19"]