pdocr-rpc


Namepdocr-rpc JSON
Version 1.0.1 PyPI version JSON
download
home_page
SummaryPaddleOCR-RPC
upload_time2023-05-26 10:33:01
maintainer
docs_urlNone
author
requires_python>=3.7
license
keywords
VCS
bugtrack_url
requirements paddlepaddle paddleocr
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RPC-PaddleOCR

基于 PaddleOCR 部署的 RPC 服务。

提供了一个简单易用的函数 `ocr`,通过不同的参数控制返回不同的值。

## 安装

```shell
pip install pdocr-rpc
```

另外还需要手动安装以下依赖:

### 客户端依赖

客户端仅需要安装**截图工具**;

- `Windows` 上使用:

```shell
pip3 install pillow
```

- `Linux` 上使用:

[PIL](https://en.wikipedia.org/wiki/Python_Imaging_Library) 的 `ImageGrab` 模块在部分的 `Linux` 上可能存在问题,报错:`ImportError: ImageGrab is macOS and Windows only` ;

`Linux` 上推荐安装 `pyscreenshot`;

```shell
pip3 install pyscreenshot
```

### 服务端依赖

安装 PaddleOCR` 环境

```
pip3 install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip3 install "paddleocr>=2.0.1" -i https://mirror.baidu.com/pypi/simple
```



## 1、使用方法

### 1.1、导入

```python
from pdocr_rpc import ocr
```

### 1.2、使用场景

#### 1.1.1、识别当前屏幕的所有文字内容

```python
ocr()
```

自动识别当前整个屏幕的所有内容。

#### 1.1.2、指定某张图片识别的所有文字内容

```python
ocr(picture_abspath="~/Desktop/test.png")
```

返回识别图片 `test.png` 的内容。 

#### 1.1.3、在全屏指定查找某个字符串的坐标

```python
ocr("天天向上")
```

返回当前屏幕中,“天天向上”的坐标,如果存在多个,则返回一个字典。

#### 1.1.4、指定某张图片查找某个字符串的坐标

```python
ocr("天天向上",picture_abspath="~/Desktop/test.png")
```

### 1.3、其他参数

```shell
similarity: 匹配度。
return_default: 返回识别的原生数据。
return_first: 只返回第一个,默认为 False,返回识别到的所有数据。
lang: `ch`, `en`, `fr`, `german`, `korean`, `japan`
```

### 2.1、启动服务

将 `ocr_server.py` 文件拷贝到 `ocr_env` 目录,后台执行它就好了:

```
cd ocr_env
nohup pipenv run python ocr_server.py &
```

### 2.2、配置开机自启

你肯定不想每次机器重启之后都需要手动启动服务,因此我们需要配置开机自启。

写开机自启服务文件:

```
sudo vim /lib/systemd/system/ocr.service
```

`autoocr` 名称你可以自定义,写入以下内容:

```
[Unit]
Description=OCR Service
After=multi-user.target

[Service]
User=uos
Group=uos
Type=idle
WorkingDirectory=/home/uos/ocr_env
ExecStart=pipenv run python ocr_server.py

[Install]
WantedBy=multi-user.target
```

> 注意替换你的${USER}

修改配置文件的权限:

```
sudo chmod 644 /lib/systemd/system/ocr.service
```

自启服务生效:

```
sudo systemctl daemon-reload
sudo systemctl enable ocr.service
```

查看服务状态:

```
sudo systemctl status ocr.service
```

你可以再重启下电脑,看看服务是不是正常启动了,没报错就 OK 了。

### 2.3、缓存

在 `ocr_env/pic` 目录下保存了识别的一些缓存图片文件,您可能需要定期进行删除;

当然,你可以使用定时任务对缓存文件进行清理,例如 `crontab`、`Jenkins` 任务等。

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pdocr-rpc",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "mikigo <1964191531@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/83/68/59183724b772698087ac1f1232e9554b67e86c4968fcef42ab3e06e9bb0e/pdocr-rpc-1.0.1.tar.gz",
    "platform": null,
    "description": "# RPC-PaddleOCR\n\n\u57fa\u4e8e PaddleOCR \u90e8\u7f72\u7684 RPC \u670d\u52a1\u3002\n\n\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u6613\u7528\u7684\u51fd\u6570 `ocr`\uff0c\u901a\u8fc7\u4e0d\u540c\u7684\u53c2\u6570\u63a7\u5236\u8fd4\u56de\u4e0d\u540c\u7684\u503c\u3002\n\n## \u5b89\u88c5\n\n```shell\npip install pdocr-rpc\n```\n\n\u53e6\u5916\u8fd8\u9700\u8981\u624b\u52a8\u5b89\u88c5\u4ee5\u4e0b\u4f9d\u8d56\uff1a\n\n### \u5ba2\u6237\u7aef\u4f9d\u8d56\n\n\u5ba2\u6237\u7aef\u4ec5\u9700\u8981\u5b89\u88c5**\u622a\u56fe\u5de5\u5177**\uff1b\n\n- `Windows` \u4e0a\u4f7f\u7528\uff1a\n\n```shell\npip3 install pillow\n```\n\n- `Linux` \u4e0a\u4f7f\u7528\uff1a\n\n[PIL](https://en.wikipedia.org/wiki/Python_Imaging_Library) \u7684 `ImageGrab` \u6a21\u5757\u5728\u90e8\u5206\u7684 `Linux` \u4e0a\u53ef\u80fd\u5b58\u5728\u95ee\u9898\uff0c\u62a5\u9519\uff1a`ImportError: ImageGrab is macOS and Windows only` \uff1b\n\n`Linux` \u4e0a\u63a8\u8350\u5b89\u88c5 `pyscreenshot`\uff1b\n\n```shell\npip3 install pyscreenshot\n```\n\n### \u670d\u52a1\u7aef\u4f9d\u8d56\n\n\u5b89\u88c5 PaddleOCR` \u73af\u5883\n\n```\npip3 install paddlepaddle -i https://mirror.baidu.com/pypi/simple\npip3 install \"paddleocr>=2.0.1\" -i https://mirror.baidu.com/pypi/simple\n```\n\n\n\n## 1\u3001\u4f7f\u7528\u65b9\u6cd5\n\n### 1.1\u3001\u5bfc\u5165\n\n```python\nfrom pdocr_rpc import ocr\n```\n\n### 1.2\u3001\u4f7f\u7528\u573a\u666f\n\n#### 1.1.1\u3001\u8bc6\u522b\u5f53\u524d\u5c4f\u5e55\u7684\u6240\u6709\u6587\u5b57\u5185\u5bb9\n\n```python\nocr()\n```\n\n\u81ea\u52a8\u8bc6\u522b\u5f53\u524d\u6574\u4e2a\u5c4f\u5e55\u7684\u6240\u6709\u5185\u5bb9\u3002\n\n#### 1.1.2\u3001\u6307\u5b9a\u67d0\u5f20\u56fe\u7247\u8bc6\u522b\u7684\u6240\u6709\u6587\u5b57\u5185\u5bb9\n\n```python\nocr(picture_abspath=\"~/Desktop/test.png\")\n```\n\n\u8fd4\u56de\u8bc6\u522b\u56fe\u7247 `test.png` \u7684\u5185\u5bb9\u3002 \n\n#### 1.1.3\u3001\u5728\u5168\u5c4f\u6307\u5b9a\u67e5\u627e\u67d0\u4e2a\u5b57\u7b26\u4e32\u7684\u5750\u6807\n\n```python\nocr(\"\u5929\u5929\u5411\u4e0a\")\n```\n\n\u8fd4\u56de\u5f53\u524d\u5c4f\u5e55\u4e2d\uff0c\u201c\u5929\u5929\u5411\u4e0a\u201d\u7684\u5750\u6807\uff0c\u5982\u679c\u5b58\u5728\u591a\u4e2a\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u5b57\u5178\u3002\n\n#### 1.1.4\u3001\u6307\u5b9a\u67d0\u5f20\u56fe\u7247\u67e5\u627e\u67d0\u4e2a\u5b57\u7b26\u4e32\u7684\u5750\u6807\n\n```python\nocr(\"\u5929\u5929\u5411\u4e0a\"\uff0cpicture_abspath=\"~/Desktop/test.png\")\n```\n\n### 1.3\u3001\u5176\u4ed6\u53c2\u6570\n\n```shell\nsimilarity: \u5339\u914d\u5ea6\u3002\nreturn_default: \u8fd4\u56de\u8bc6\u522b\u7684\u539f\u751f\u6570\u636e\u3002\nreturn_first: \u53ea\u8fd4\u56de\u7b2c\u4e00\u4e2a,\u9ed8\u8ba4\u4e3a False,\u8fd4\u56de\u8bc6\u522b\u5230\u7684\u6240\u6709\u6570\u636e\u3002\nlang: `ch`, `en`, `fr`, `german`, `korean`, `japan`\n```\n\n### 2.1\u3001\u542f\u52a8\u670d\u52a1\n\n\u5c06 `ocr_server.py` \u6587\u4ef6\u62f7\u8d1d\u5230 `ocr_env` \u76ee\u5f55\uff0c\u540e\u53f0\u6267\u884c\u5b83\u5c31\u597d\u4e86\uff1a\n\n```\ncd ocr_env\nnohup pipenv run python ocr_server.py &\n```\n\n### 2.2\u3001\u914d\u7f6e\u5f00\u673a\u81ea\u542f\n\n\u4f60\u80af\u5b9a\u4e0d\u60f3\u6bcf\u6b21\u673a\u5668\u91cd\u542f\u4e4b\u540e\u90fd\u9700\u8981\u624b\u52a8\u542f\u52a8\u670d\u52a1\uff0c\u56e0\u6b64\u6211\u4eec\u9700\u8981\u914d\u7f6e\u5f00\u673a\u81ea\u542f\u3002\n\n\u5199\u5f00\u673a\u81ea\u542f\u670d\u52a1\u6587\u4ef6\uff1a\n\n```\nsudo vim /lib/systemd/system/ocr.service\n```\n\n`autoocr` \u540d\u79f0\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a\n\n```\n[Unit]\nDescription=OCR Service\nAfter=multi-user.target\n\n[Service]\nUser=uos\nGroup=uos\nType=idle\nWorkingDirectory=/home/uos/ocr_env\nExecStart=pipenv run python ocr_server.py\n\n[Install]\nWantedBy=multi-user.target\n```\n\n> \u6ce8\u610f\u66ff\u6362\u4f60\u7684${USER}\n\n\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u7684\u6743\u9650\uff1a\n\n```\nsudo chmod 644 /lib/systemd/system/ocr.service\n```\n\n\u81ea\u542f\u670d\u52a1\u751f\u6548\uff1a\n\n```\nsudo systemctl daemon-reload\nsudo systemctl enable ocr.service\n```\n\n\u67e5\u770b\u670d\u52a1\u72b6\u6001\uff1a\n\n```\nsudo systemctl status ocr.service\n```\n\n\u4f60\u53ef\u4ee5\u518d\u91cd\u542f\u4e0b\u7535\u8111\uff0c\u770b\u770b\u670d\u52a1\u662f\u4e0d\u662f\u6b63\u5e38\u542f\u52a8\u4e86\uff0c\u6ca1\u62a5\u9519\u5c31 OK \u4e86\u3002\n\n### 2.3\u3001\u7f13\u5b58\n\n\u5728 `ocr_env/pic` \u76ee\u5f55\u4e0b\u4fdd\u5b58\u4e86\u8bc6\u522b\u7684\u4e00\u4e9b\u7f13\u5b58\u56fe\u7247\u6587\u4ef6\uff0c\u60a8\u53ef\u80fd\u9700\u8981\u5b9a\u671f\u8fdb\u884c\u5220\u9664\uff1b\n\n\u5f53\u7136\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u5b9a\u65f6\u4efb\u52a1\u5bf9\u7f13\u5b58\u6587\u4ef6\u8fdb\u884c\u6e05\u7406\uff0c\u4f8b\u5982 `crontab`\u3001`Jenkins` \u4efb\u52a1\u7b49\u3002\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "PaddleOCR-RPC",
    "version": "1.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/funny-test/pdocr-rpc/issues",
        "Homepage": "https://github.com/funny-test/pdocr-rpc"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "485c98dc041b8654a90d64be9ca8445a0032d59cf2c60243c046d6453c838b70",
                "md5": "18be58845fd678739a5981fba903c3a9",
                "sha256": "deea162441b5ce371b53f970907d01ab7fdfa987f0940fd62f5e4e8f2f6022ba"
            },
            "downloads": -1,
            "filename": "pdocr_rpc-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "18be58845fd678739a5981fba903c3a9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 10562,
            "upload_time": "2023-05-26T10:32:59",
            "upload_time_iso_8601": "2023-05-26T10:32:59.202934Z",
            "url": "https://files.pythonhosted.org/packages/48/5c/98dc041b8654a90d64be9ca8445a0032d59cf2c60243c046d6453c838b70/pdocr_rpc-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "836859183724b772698087ac1f1232e9554b67e86c4968fcef42ab3e06e9bb0e",
                "md5": "06d42a6fd857f68a349e7180299faa09",
                "sha256": "2fd6ab37788c5a11269033e6c7add9f0dbd03f0a0fb026ee1a4bdf8484e5027a"
            },
            "downloads": -1,
            "filename": "pdocr-rpc-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "06d42a6fd857f68a349e7180299faa09",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9207,
            "upload_time": "2023-05-26T10:33:01",
            "upload_time_iso_8601": "2023-05-26T10:33:01.475463Z",
            "url": "https://files.pythonhosted.org/packages/83/68/59183724b772698087ac1f1232e9554b67e86c4968fcef42ab3e06e9bb0e/pdocr-rpc-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-26 10:33:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "funny-test",
    "github_project": "pdocr-rpc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "paddlepaddle",
            "specs": []
        },
        {
            "name": "paddleocr",
            "specs": [
                [
                    ">=",
                    "2.0.1"
                ]
            ]
        }
    ],
    "lcname": "pdocr-rpc"
}
        
Elapsed time: 0.11545s