vietocr


Namevietocr JSON
Version 0.3.13 PyPI version JSON
download
home_pagehttps://github.com/pbcquoc/vietocr
SummaryTransformer base text detection
upload_time2024-03-29 08:07:33
maintainerNone
docs_urlNone
authorpbcquoc
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # VietOCR
**Các bạn vui lòng cập nhật lên version mới nhất để không xảy ra lỗi.**
<p align="center">
<img src="https://github.com/pbcquoc/vietocr/raw/master/image/sample.png" width="1000" height="300">
</p>

Trong project này, mình cài đặt mô hình Transformer OCR nhận dạng chữ viết tay, chữ đánh máy cho Tiếng Việt. Kiến trúc mô hình là sự kết hợp tuyệt vời giữ mô hình CNN và Transformer (là mô hình nền tảng của BERT khá nổi tiếng). Mô hình TransformerOCR có rất nhiều ưu điểm so với kiến trúc của mô hình CRNN đã được mình cài đặt. Các bạn có thể đọc [tại](https://pbcquoc.github.io/vietocr) đây về kiến trúc và cách huấn luyện mô hình với các tập dữ liệu khác nhau. 

Mô hình VietOCR có tính tổng quát cực tốt, thậm chí có độ chính xác khá cao trên một bộ dataset mới mặc dù mô hình chưa được huấn luyện bao giờ. 

<p align="center">
<img src="https://raw.githubusercontent.com/pbcquoc/vietocr/master/image/vietocr.jpg" width="512" height="614">
</p>

# Cài Đặt
Để cài đặt các bạn gõ lệnh sau
```
pip install vietocr
```
# Quick Start
Các bạn tham khảo notebook [này](https://github.com/pbcquoc/vietocr/blob/master/vietocr_gettingstart.ipynb) để biết cách sử dụng nhé. 
# Cách tạo file train/test
File train/test có 2 cột, cột đầu tiên là tên file, cột thứ 2 là nhãn(không chứa kí tự \t), 2 cột này cách nhau bằng \t
```
20160518_0151_25432_1_tg_3_5.png để nghe phổ biến chủ trương của UBND tỉnh Phú Yên
20160421_0102_25464_2_tg_0_4.png môi trường lại đều đồng thanh
```
Tham khảo file mẫu tại [đây](https://vocr.vn/data/vietocr/data_line.zip)

# Model Zoo 
Thư viện này cài đặt cả 2 kiểu seq model đó là attention seq2seq và transfomer. Seq2seq có tốc độ dự đoán rất nhanh và được dùng trong industry khá nhiều, tuy nhiên transformer lại chính xác hơn nhưng lúc dự đoán lại khá chậm. Do đó mình cung cấp cả 2 loại cho các bạn lựa chọn. 

Mô hình này được huấn luyện trên tập dữ liệu gồm 10m ảnh, bao gồm nhiều loại ảnh khác nhau như ảnh tự phát sinh, chữ viết tay, các văn bản scan thực tế. 
Pretrain model được cung cấp sẵn.

# Kết quả thử nghiệm trên tập 10m
| Backbone         | Config           | Precision full sequence | time |
| ------------- |:-------------:| ---:|---:|
| VGG19-bn - Transformer | vgg_transformer | 0.8800 | 86ms @ 1080ti  |
| VGG19-bn - Seq2Seq     | vgg_seq2seq     | 0.8701 | 12ms @ 1080ti |

Thời gian dự đoán của mô hình vgg-transformer quá lâu so với mô hình seq2seq, trong khi đó không có sự khác biệt rõ ràng giữ độ chính xác của 2 loại kiến trúc này.

# Dataset 
Mình chỉ cung cấp tập dữ liệu mẫu khoảng 1m ảnh tự phát sinh. Các bạn có thể tải về tại [đây](https://drive.google.com/file/d/1T0cmkhTgu3ahyMIwGZeby612RpVdDxOR/view).
# License
Mình phát hành thư viện này dưới các điều khoản của [Apache 2.0 license]().

# Liên hệ
Nếu bạn có bất kì vấn đề gì, vui lòng tạo issue hoặc liên hệ mình tại pbcquoc@gmail.com 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pbcquoc/vietocr",
    "name": "vietocr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "pbcquoc",
    "author_email": "pbcquoc@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ba/0b/9bc9ac71738696be86457a73f4a6a373b2919ee2543aa2c7d3cc666bc5b3/vietocr-0.3.13.tar.gz",
    "platform": null,
    "description": "# VietOCR\n**C\u00e1c b\u1ea1n vui l\u00f2ng c\u1eadp nh\u1eadt l\u00ean version m\u1edbi nh\u1ea5t \u0111\u1ec3 kh\u00f4ng x\u1ea3y ra l\u1ed7i.**\n<p align=\"center\">\n<img src=\"https://github.com/pbcquoc/vietocr/raw/master/image/sample.png\" width=\"1000\" height=\"300\">\n</p>\n\nTrong project n\u00e0y, m\u00ecnh c\u00e0i \u0111\u1eb7t m\u00f4 h\u00ecnh Transformer OCR nh\u1eadn d\u1ea1ng ch\u1eef vi\u1ebft tay, ch\u1eef \u0111\u00e1nh m\u00e1y cho Ti\u1ebfng Vi\u1ec7t. Ki\u1ebfn tr\u00fac m\u00f4 h\u00ecnh l\u00e0 s\u1ef1 k\u1ebft h\u1ee3p tuy\u1ec7t v\u1eddi gi\u1eef m\u00f4 h\u00ecnh CNN v\u00e0 Transformer (l\u00e0 m\u00f4 h\u00ecnh n\u1ec1n t\u1ea3ng c\u1ee7a BERT kh\u00e1 n\u1ed5i ti\u1ebfng). M\u00f4 h\u00ecnh TransformerOCR c\u00f3 r\u1ea5t nhi\u1ec1u \u01b0u \u0111i\u1ec3m so v\u1edbi ki\u1ebfn tr\u00fac c\u1ee7a m\u00f4 h\u00ecnh CRNN \u0111\u00e3 \u0111\u01b0\u1ee3c m\u00ecnh c\u00e0i \u0111\u1eb7t. C\u00e1c b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ecdc [t\u1ea1i](https://pbcquoc.github.io/vietocr) \u0111\u00e2y v\u1ec1 ki\u1ebfn tr\u00fac v\u00e0 c\u00e1ch hu\u1ea5n luy\u1ec7n m\u00f4 h\u00ecnh v\u1edbi c\u00e1c t\u1eadp d\u1eef li\u1ec7u kh\u00e1c nhau. \n\nM\u00f4 h\u00ecnh VietOCR c\u00f3 t\u00ednh t\u1ed5ng qu\u00e1t c\u1ef1c t\u1ed1t, th\u1eadm ch\u00ed c\u00f3 \u0111\u1ed9 ch\u00ednh x\u00e1c kh\u00e1 cao tr\u00ean m\u1ed9t b\u1ed9 dataset m\u1edbi m\u1eb7c d\u00f9 m\u00f4 h\u00ecnh ch\u01b0a \u0111\u01b0\u1ee3c hu\u1ea5n luy\u1ec7n bao gi\u1edd. \n\n<p align=\"center\">\n<img src=\"https://raw.githubusercontent.com/pbcquoc/vietocr/master/image/vietocr.jpg\" width=\"512\" height=\"614\">\n</p>\n\n# C\u00e0i \u0110\u1eb7t\n\u0110\u1ec3 c\u00e0i \u0111\u1eb7t c\u00e1c b\u1ea1n g\u00f5 l\u1ec7nh sau\n```\npip install vietocr\n```\n# Quick Start\nC\u00e1c b\u1ea1n tham kh\u1ea3o notebook [n\u00e0y](https://github.com/pbcquoc/vietocr/blob/master/vietocr_gettingstart.ipynb) \u0111\u1ec3 bi\u1ebft c\u00e1ch s\u1eed d\u1ee5ng nh\u00e9. \n# C\u00e1ch t\u1ea1o file train/test\nFile train/test c\u00f3 2 c\u1ed9t, c\u1ed9t \u0111\u1ea7u ti\u00ean l\u00e0 t\u00ean file, c\u1ed9t th\u1ee9 2 l\u00e0 nh\u00e3n(kh\u00f4ng ch\u1ee9a k\u00ed t\u1ef1 \\t), 2 c\u1ed9t n\u00e0y c\u00e1ch nhau b\u1eb1ng \\t\n```\n20160518_0151_25432_1_tg_3_5.png \u0111\u1ec3 nghe ph\u1ed5 bi\u1ebfn ch\u1ee7 tr\u01b0\u01a1ng c\u1ee7a UBND t\u1ec9nh Ph\u00fa Y\u00ean\n20160421_0102_25464_2_tg_0_4.png m\u00f4i tr\u01b0\u1eddng l\u1ea1i \u0111\u1ec1u \u0111\u1ed3ng thanh\n```\nTham kh\u1ea3o file m\u1eabu t\u1ea1i [\u0111\u00e2y](https://vocr.vn/data/vietocr/data_line.zip)\n\n# Model Zoo \nTh\u01b0 vi\u1ec7n n\u00e0y c\u00e0i \u0111\u1eb7t c\u1ea3 2 ki\u1ec3u seq model \u0111\u00f3 l\u00e0 attention seq2seq v\u00e0 transfomer. Seq2seq c\u00f3 t\u1ed1c \u0111\u1ed9 d\u1ef1 \u0111o\u00e1n r\u1ea5t nhanh v\u00e0 \u0111\u01b0\u1ee3c d\u00f9ng trong industry kh\u00e1 nhi\u1ec1u, tuy nhi\u00ean transformer l\u1ea1i ch\u00ednh x\u00e1c h\u01a1n nh\u01b0ng l\u00fac d\u1ef1 \u0111o\u00e1n l\u1ea1i kh\u00e1 ch\u1eadm. Do \u0111\u00f3 m\u00ecnh cung c\u1ea5p c\u1ea3 2 lo\u1ea1i cho c\u00e1c b\u1ea1n l\u1ef1a ch\u1ecdn. \n\nM\u00f4 h\u00ecnh n\u00e0y \u0111\u01b0\u1ee3c hu\u1ea5n luy\u1ec7n tr\u00ean t\u1eadp d\u1eef li\u1ec7u g\u1ed3m 10m \u1ea3nh, bao g\u1ed3m nhi\u1ec1u lo\u1ea1i \u1ea3nh kh\u00e1c nhau nh\u01b0 \u1ea3nh t\u1ef1 ph\u00e1t sinh, ch\u1eef vi\u1ebft tay, c\u00e1c v\u0103n b\u1ea3n scan th\u1ef1c t\u1ebf. \nPretrain model \u0111\u01b0\u1ee3c cung c\u1ea5p s\u1eb5n.\n\n# K\u1ebft qu\u1ea3 th\u1eed nghi\u1ec7m tr\u00ean t\u1eadp 10m\n| Backbone         | Config           | Precision full sequence | time |\n| ------------- |:-------------:| ---:|---:|\n| VGG19-bn - Transformer | vgg_transformer | 0.8800 | 86ms @ 1080ti  |\n| VGG19-bn - Seq2Seq     | vgg_seq2seq     | 0.8701 | 12ms @ 1080ti |\n\nTh\u1eddi gian d\u1ef1 \u0111o\u00e1n c\u1ee7a m\u00f4 h\u00ecnh vgg-transformer qu\u00e1 l\u00e2u so v\u1edbi m\u00f4 h\u00ecnh seq2seq, trong khi \u0111\u00f3 kh\u00f4ng c\u00f3 s\u1ef1 kh\u00e1c bi\u1ec7t r\u00f5 r\u00e0ng gi\u1eef \u0111\u1ed9 ch\u00ednh x\u00e1c c\u1ee7a 2 lo\u1ea1i ki\u1ebfn tr\u00fac n\u00e0y.\n\n# Dataset \nM\u00ecnh ch\u1ec9 cung c\u1ea5p t\u1eadp d\u1eef li\u1ec7u m\u1eabu kho\u1ea3ng 1m \u1ea3nh t\u1ef1 ph\u00e1t sinh. C\u00e1c b\u1ea1n c\u00f3 th\u1ec3 t\u1ea3i v\u1ec1 t\u1ea1i [\u0111\u00e2y](https://drive.google.com/file/d/1T0cmkhTgu3ahyMIwGZeby612RpVdDxOR/view).\n# License\nM\u00ecnh ph\u00e1t h\u00e0nh th\u01b0 vi\u1ec7n n\u00e0y d\u01b0\u1edbi c\u00e1c \u0111i\u1ec1u kho\u1ea3n c\u1ee7a [Apache 2.0 license]().\n\n# Li\u00ean h\u1ec7\nN\u1ebfu b\u1ea1n c\u00f3 b\u1ea5t k\u00ec v\u1ea5n \u0111\u1ec1 g\u00ec, vui l\u00f2ng t\u1ea1o issue ho\u1eb7c li\u00ean h\u1ec7 m\u00ecnh t\u1ea1i pbcquoc@gmail.com \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Transformer base text detection",
    "version": "0.3.13",
    "project_urls": {
        "Homepage": "https://github.com/pbcquoc/vietocr"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "838a84762197abf9b4c0a8ca0ebceda2c79adb5773a64578fd6d0776f93142ab",
                "md5": "1f90c094b2aed03361fa8e67caac4801",
                "sha256": "07b3777e5176b0d733cb056b68bd817371605f4b3514795fbf91ad4e181b8ccf"
            },
            "downloads": -1,
            "filename": "vietocr-0.3.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1f90c094b2aed03361fa8e67caac4801",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 34641,
            "upload_time": "2024-03-29T08:07:31",
            "upload_time_iso_8601": "2024-03-29T08:07:31.271134Z",
            "url": "https://files.pythonhosted.org/packages/83/8a/84762197abf9b4c0a8ca0ebceda2c79adb5773a64578fd6d0776f93142ab/vietocr-0.3.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba0b9bc9ac71738696be86457a73f4a6a373b2919ee2543aa2c7d3cc666bc5b3",
                "md5": "b5a7ab8bbab805d1d3b90b52d161d434",
                "sha256": "8f4e326297a63aa9f209b478aa858084882996a2d9ab88af6d1158471b59736c"
            },
            "downloads": -1,
            "filename": "vietocr-0.3.13.tar.gz",
            "has_sig": false,
            "md5_digest": "b5a7ab8bbab805d1d3b90b52d161d434",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 29571,
            "upload_time": "2024-03-29T08:07:33",
            "upload_time_iso_8601": "2024-03-29T08:07:33.213490Z",
            "url": "https://files.pythonhosted.org/packages/ba/0b/9bc9ac71738696be86457a73f4a6a373b2919ee2543aa2c7d3cc666bc5b3/vietocr-0.3.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-29 08:07:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pbcquoc",
    "github_project": "vietocr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "vietocr"
}
        
Elapsed time: 0.54477s