Compare commits

..

370 Commits

Author SHA1 Message Date
xiaoting a09604f897
Merge pull request #2357 from caopulan/fix_srn_post
5 years ago
caopu 39a34ac80f fix srn_postprocess
5 years ago
Double_V cfdefbe1ba
Merge pull request #2334 from tink2123/fix_doc
5 years ago
Double_V 0ee4358329
Merge branch 'release/2.0' into fix_doc
5 years ago
tink2123 5ea613dc4f use pretrained_model for eval
5 years ago
MissPenguin d3a4f78864
Merge pull request #2283 from caopulan/modify
5 years ago
zhoujun 0067516142
Merge pull request #2306 from Intsigstephon/release/2.0
5 years ago
Bin Lu b99f352df5
Update FAQ.md
5 years ago
zhoujun 4b1428d838
Merge branch 'release/2.0' into modify
5 years ago
Bin Lu b602397134
Update README_ch.md
5 years ago
Bin Lu 523c778557
Update FAQ.md
5 years ago
Bin Lu f745eef560
Update FAQ.md
5 years ago
Bin Lu c386f01254
Update FAQ.md
5 years ago
dyning 6c381485c4
Merge pull request #2264 from dyning/release/2.0
5 years ago
dyning 8608f3463c
Merge branch 'release/2.0' into release/2.0
5 years ago
Daniel Yang 8647a503b1
Merge pull request #2292 from Evezerest/release2.0
5 years ago
Evezerest d5f5a38881
Merge branch 'release/2.0' into release2.0
5 years ago
Leif 881758fab5 Update joinus.png
5 years ago
caopu f56abaff7c Update eval.py
5 years ago
dyning ece8449815 add faq 20210316
5 years ago
zhoujun a7937102db
Merge pull request #2229 from LDOUBLEV/fix_2.0
5 years ago
xiaoting 4431a09c28
Merge branch 'release/2.0' into fix_2.0
5 years ago
Double_V ef3f72f07c
Merge pull request #2250 from tink2123/rename_lang
5 years ago
tink2123 f3de116010 add multi-lang
5 years ago
Double_V 15d30741bd
Merge branch 'release/2.0' into fix_2.0
5 years ago
tink2123 28c1f2497f add multi-lang
5 years ago
tink2123 66a44f222a rename lang for doc
5 years ago
tink2123 5b0e46d341 rename multi-lang
5 years ago
tink2123 68dd6afaa4 rename language abbreviations
5 years ago
Daniel Yang c7be8856e9
Merge pull request #2245 from Evezerest/release2.0
5 years ago
Leif eb1fab55f2 Merge remote-tracking branch 'upstream/release/2.0' into release2.0
5 years ago
Leif f9b113649a Update joinus.png
5 years ago
LDOUBLEV 1cfe43c9a6 enable memory optim
5 years ago
Wei Shengyu fd5ea74b00
update FAQ (#2189)
5 years ago
zhoujun f0b1032813
Merge pull request #2200 from Intsigstephon/release/2.0
5 years ago
Bin Lu cece6d201f
Update README.md
5 years ago
Bin Lu 10b1bc78fd
Update image_list.txt
5 years ago
Daniel Yang 978807038a
Merge pull request #2181 from Evezerest/release2.0
5 years ago
Evezerest 84ef96f35d
Merge branch 'release/2.0' into release2.0
5 years ago
Leif bec2f3f490 Merge remote-tracking branch 'origin/release2.0' into release2.0
5 years ago
Leif e07e168cda Update joinus.png
5 years ago
Double_V ac31a18b61
Merge pull request #2171 from LDOUBLEV/cp20
5 years ago
LDOUBLEV 6bd6bee58f fix issue 2086
5 years ago
LDOUBLEV 45111a7b46 Merge branch 'release/2.0' of https://github.com/PaddlePaddle/PaddleOCR into cp20
5 years ago
LDOUBLEV cbd812bc99 fix issue 2086
5 years ago
xiaoting f97fc1d03f
Merge pull request #2164 from xmy0916/release/2.0
5 years ago
xmy0916 1f23c7ad2f fix type error
5 years ago
dyning 3a11283588
Merge pull request #2140 from LDOUBLEV/cp20
5 years ago
LDOUBLEV 222a821ad6 fix typo
5 years ago
LDOUBLEV 909d9c17ff fix serial number
5 years ago
LDOUBLEV 6f794f6ff9 fix serial number
5 years ago
LDOUBLEV 342c7aedb0 add faq, 2021.3.1
5 years ago
LDOUBLEV fd9d8c39d2 Merge branch 'release/2.0' of https://github.com/PaddlePaddle/PaddleOCR into cp20
5 years ago
Double_V 76752b6084
Merge pull request #2105 from LDOUBLEV/cp20
5 years ago
LDOUBLEV b0b8db0654 add faq, 2021.3.1
5 years ago
littletomatodonkey dd9b456bb6
Merge branch 'release/2.0' into cp20
5 years ago
MissPenguin 7d31b5e1c8
Merge pull request #2125 from Evezerest/release2.0
5 years ago
Leif 5ed055e7dd Merge remote-tracking branch 'upstream/release/2.0' into release2.0
5 years ago
Evezerest 0faa016137
Merge branch 'release/2.0' into release2.0
5 years ago
Leif 843053e2ec Update joinus.png
5 years ago
LDOUBLEV cf2bd52989 fix issue #2080
5 years ago
LDOUBLEV 2c7c60bec2 fix issue #2072
5 years ago
Leif 1886647f1d Change the path of joinun.png to absolute path
5 years ago
Daniel Yang fa32b9b184
Merge pull request #2076 from Evezerest/release2.0
5 years ago
Leif f1383e17a1 Update joinus.png
5 years ago
littletomatodonkey 152ab8f3da
add faq 20210222 (#2068)
5 years ago
xiaoting c3d700fa41
fix test_hubserving (#2071)
5 years ago
Double_V e083b9c228
Merge pull request #2014 from lamhoangtung/release/2.0
5 years ago
Double_V ff1b0a3621
Merge pull request #2038 from LDOUBLEV/cp_dilation
5 years ago
LDOUBLEV b61af980eb fix dilation
5 years ago
Double_V 714ca4a73e
Merge pull request #2037 from LDOUBLEV/cp_dilation
5 years ago
LDOUBLEV 21ad9026d3 fix typo
5 years ago
Double_V dcdf083203
Merge pull request #2036 from LDOUBLEV/cp_dilation
5 years ago
LDOUBLEV 611c70f68c add use_dilation params in hubserving
5 years ago
Double_V 4a7214963f
Merge pull request #2023 from LDOUBLEV/doc_cp
5 years ago
Double_V 9deee44a7a
Merge branch 'release/2.0' into doc_cp
5 years ago
Double_V 59b3921d9b
Merge pull request #2024 from LDOUBLEV/cp
5 years ago
Double_V f23aa77757 Merge pull request #1920 from LDOUBLEV/trt_cpp
5 years ago
LDOUBLEV 5e555a8047 cherry-pick fix doc and fix dilation
5 years ago
MissPenguin ecc408a6db
Update inference_en.md
5 years ago
MissPenguin 97d71f0bba
Update inference.md
5 years ago
lamhoangtung e1c44d1f2c
Fix #2013
5 years ago
Daniel Yang d91c3e7c6b
Merge pull request #2010 from Evezerest/release2.0
5 years ago
Leif 67e951d0be Update joinus.png
5 years ago
xiaoting d231cc3cd7
Merge pull request #1989 from tink2123/faq_2.0
5 years ago
xiaoting 7bffc58e89
Merge branch 'release/2.0' into faq_2.0
5 years ago
tink2123 5fc2de704b add faq for 2.8
5 years ago
tink2123 38303bfd02 add faq for 2.8
5 years ago
dyning 8045cee558
Update README_ch.md
5 years ago
Daniel Yang 8d3d0eb15e
Merge pull request #1988 from Evezerest/release2.0
5 years ago
Leif b5d56d1c83 Update joinus.png
5 years ago
MissPenguin e6a95c3a71
Update README.md
5 years ago
MissPenguin c6811aa833
Update README.md
5 years ago
zhoujun 364a777763
Merge pull request #1984 from WenmuZhou/update_reqire
5 years ago
WenmuZhou 4dfc583850 predict_rec support rare
5 years ago
WenmuZhou 9cc6363b0e fix rare export error
5 years ago
xiaoting 890546ca34
Merge pull request #1982 from tink2123/fix_srn_eval
5 years ago
tink2123 807cd824a5 fix srn for eval
5 years ago
zhoujun fe6e31705f
Merge pull request #1981 from WenmuZhou/update_reqire
5 years ago
WenmuZhou 9050c6f933 update srn dataset path
5 years ago
xiaoting 1b1f170c7a
Merge pull request #1979 from tink2123/fix_encode
5 years ago
tink2123 1599a4590f fix attn encode
5 years ago
tink2123 e7187dac83 fix encode for srn
5 years ago
xiaoting a3afc162fa
Merge pull request #1972 from tink2123/fix_eval_for_srn_2.0
5 years ago
tink2123 ad15a64569 polish code for srn eval
5 years ago
zhoujun 6b73d8ed2f
Merge pull request #1954 from WenmuZhou/update_reqire
5 years ago
WenmuZhou 647f85dfca update srn dataset path
5 years ago
WenmuZhou 76f50d89e3 update rare dataset path
5 years ago
zhoujun 4c33d20dae
Merge pull request #1953 from WenmuZhou/update_reqire
5 years ago
WenmuZhou 36b5c0dafa update readme and requirements.txt
5 years ago
zhoujun 3b9c7b82bc
Merge pull request #1949 from WenmuZhou/check_empty_data
5 years ago
WenmuZhou 8e9d851563 add dataset len check
5 years ago
zhoujun 1d41d8903a
Merge pull request #1936 from WenmuZhou/dygraph_rc
5 years ago
xiaoting 60effbd748
Merge pull request #1928 from tink2123/cherry-pick
5 years ago
tink2123 25008de315 fix typo
5 years ago
xiaoting a6146ffc43
Merge pull request #1919 from tink2123/fix_rare
5 years ago
tink2123 da344d539a fix typo for attention
5 years ago
WenmuZhou dc0a21ffc7 fix divide zero error
5 years ago
Double_V cdf732289d
Merge pull request #1906 from littletomatodonkey/2.0/fix_typo
5 years ago
littletomatodonkey 0c75cbc55b fix doc
5 years ago
MissPenguin 36dae990b8
Merge pull request #1901 from MissPenguin/release/2.0
5 years ago
root f6daae41e5 fix conflict
5 years ago
root f2bc513a68 delete slim related content
5 years ago
MissPenguin fe775780e4
Update algorithm_overview.md
5 years ago
MissPenguin 8e2dc741b3
Update algorithm_overview_en.md
5 years ago
MissPenguin d4a23337cf
Merge pull request #1900 from LDOUBLEV/rare
5 years ago
LDOUBLEV 873363589c fix link
5 years ago
MissPenguin f368a4b2f6
Merge pull request #1891 from WenmuZhou/faq
5 years ago
MissPenguin dd6f6f5cf3
Merge pull request #1869 from LDOUBLEV/rare
5 years ago
WenmuZhou 259f3bb0e0 update
5 years ago
WenmuZhou dbef4a1d34 update
5 years ago
WenmuZhou 02b0bce42d update
5 years ago
xiaoting 1043613b1c
Merge pull request #1897 from iamyoyo/dygraph
5 years ago
LDOUBLEV a094d27755 opt rec_att_head
5 years ago
Double_V 080e250164
Merge pull request #1868 from WenmuZhou/dygraph_rc
5 years ago
WenmuZhou 23df5bcf12 update dockerfile
5 years ago
iamyoyo be94977426
program.py 257行 变量名问题
5 years ago
iamyoyo a92bb6d310
Update program.py
5 years ago
LDOUBLEV 0d89f3f913 fix comment
5 years ago
WenmuZhou fae6f1eef7 update
5 years ago
LDOUBLEV 550022ea66 fix comment
5 years ago
LDOUBLEV e7d24ac8b8 fix comment
5 years ago
LDOUBLEV 0f4d92b63f fix conflict wiith SRN
5 years ago
LDOUBLEV 7a054c854b rare doc and opt post_process
5 years ago
WenmuZhou 22a9f2ad00 update faq
5 years ago
WenmuZhou b544a561d5 update faq
5 years ago
xiaoting 0c5c9f694d
Merge pull request #1890 from tink2123/srn_ch
5 years ago
tink2123 7f2304ab3f Adaptation of Chinese char
5 years ago
LDOUBLEV 56cbbdfb01 fix conflict
5 years ago
LDOUBLEV f896032255 pre-commit
5 years ago
xiaoting 2a0c3d4dac
fix eval mode without srn (#1889)
5 years ago
MissPenguin e40100c5b7
Merge pull request #1872 from Evezerest/dy1
5 years ago
xiaoting 570009c217
Merge pull request #1874 from tink2123/srn_doc
5 years ago
tink2123 b8a029686c Merge branch 'dygraph' of https://github.com/PaddlePaddle/PaddleOCR into dygraph
5 years ago
tink2123 6781d55df4 format doc
5 years ago
xiaoting 7f9b885f75
Merge pull request #1873 from tink2123/srn_doc
5 years ago
tink2123 42fe741ff1 add srn doc
5 years ago
Leif b3a451da26 Fix a spelling mistake
5 years ago
Leif f20f6d2d27 Merge remote-tracking branch 'upstream/dygraph' into dy1
5 years ago
Leif 647db30f6f Fix bugs during save recognition results
5 years ago
xiaoting acd479ea46
Merge pull request #1597 from tink2123/dygraph_for_srn
5 years ago
xiaoting 6ebbbfe46c
Merge branch 'dygraph' into dygraph_for_srn
5 years ago
LDOUBLEV f6e03a51f0 upload rare code
5 years ago
MissPenguin fad40158b0
Merge pull request #1623 from tirkarthi/fix-warnings
5 years ago
WenmuZhou 8fb01540e7 add paddle install
5 years ago
WenmuZhou ea4577adb7 update docker
5 years ago
Double_V 95a60fa49f
Merge pull request #1861 from Justus-Jonas/dygraph
5 years ago
Double_V c9f745e250
fix doc of quant demo (#1865)
5 years ago
littletomatodonkey a4fa186010
fix mv3 to adapt to paddle2.0 (#1864)
5 years ago
zhoujun b0d1dca688
fix starnet export (#1850)
5 years ago
Justus-Jonas Erker c9f24ddaa3
Merge pull request #1 from Justus-Jonas/Justus-Jonas-patch-1
5 years ago
Justus-Jonas Erker 0dcab8e67f
fixed wrong naming of German model
5 years ago
Wei Shengyu 25bf92295f
增加language选项的说明 (#1810)
5 years ago
Double_V b22ee4dd5f
Merge pull request #1844 from LDOUBLEV/trt_cpp
5 years ago
LDOUBLEV 1d11af72ac fix shuffle not work
5 years ago
Daniel Yang d5a3fb5408
Update README_ch.md
5 years ago
Daniel Yang ad074432d5
Update README_ch.md
5 years ago
Daniel Yang fb9727266f
Update README.md
5 years ago
Daniel Yang b7526cc12d
Update README.md
5 years ago
zhoujun 4b715cf200
Merge pull request #1837 from Channingss/dygraph
5 years ago
Daniel Yang 4d8f7e6ce2
Merge pull request #1825 from Evezerest/dy1
5 years ago
Channingss cacf8f8a6c export_model support dynamic input shape
5 years ago
littletomatodonkey d1e150e276
Revert "fix mv3 to adapt to paddle2.0" (#1836)
5 years ago
xiaoting 1888ca2793
Merge pull request #1826 from tink2123/multi_lan_doc
5 years ago
tink2123 06a434bcf9 fix yml
5 years ago
tink2123 edeb12b1e0 rename en_sensitive EN_symbol
5 years ago
Double_V 4dcf1b2227
Merge pull request #1821 from WenmuZhou/dygraph_rc
5 years ago
Double_V b78eeb24ea
Merge pull request #1831 from LDOUBLEV/trt_cpp
5 years ago
tink2123 d9ae86f422 update en char_type
5 years ago
tink2123 8f52a73718 polish code
5 years ago
LDOUBLEV 09fd94e781 fix typo
5 years ago
zhoujun 9982550a5e
Merge pull request #1830 from PaddlePaddle/revert-1829-revert-1827-dyg/fix_mv3
5 years ago
littletomatodonkey 38031eb427
Revert "Revert "fix mv3 to adapt to paddle2.0""
5 years ago
tink2123 5e9fb50db5 Merge branch 'dygraph' of https://github.com/PaddlePaddle/PaddleOCR into multi_languages
5 years ago
zhoujun 5a5d627deb
Merge pull request #1829 from PaddlePaddle/revert-1827-dyg/fix_mv3
5 years ago
zhoujun 493027d39e
Revert "fix mv3 to adapt to paddle2.0"
5 years ago
zhoujun 95ad4d1032
Merge pull request #1827 from littletomatodonkey/dyg/fix_mv3
5 years ago
littletomatodonkey b4b51a0510 fix mv3 to adapt to paddle2.0
5 years ago
tink2123 45117f907d update multi-lang doc
5 years ago
Leif 6b27cdc105 Update joinus.png
5 years ago
xiaoting e7decf3019
Merge pull request #1820 from xmy0916/dygraph
5 years ago
xiaoting f214437538
Merge branch 'dygraph' into dygraph_for_srn
5 years ago
WenmuZhou b9e0a99832 mv3 small support det
5 years ago
zhoujun a27a43ec0f
Merge pull request #1807 from littletomatodonkey/dyg/fix_seed
5 years ago
zhoujun ff2b1c0d50
Merge pull request #1809 from MissPenguin/dygraph
5 years ago
xmy0916 d65c6cb6f0 add multi language font
5 years ago
WenmuZhou d1aae28e23 Merge branch 'dygraph' of https://github.com/PaddlePaddle/PaddleOCR into dygraph_rc
5 years ago
Daniel Yang 9466c90b7b
Merge pull request #1816 from Evezerest/dy1
5 years ago
Leif 6fb61526df Merge remote-tracking branch 'upstream/dygraph' into dy1
5 years ago
Leif 1fd7e11890 Update joinus.png
5 years ago
MissPenguin a78afa232d
Update algorithm_overview.md
5 years ago
MissPenguin 854c5f06d8
Update algorithm_overview_en.md
5 years ago
MissPenguin 943b9390e7 update FAQ 2021.1.25
5 years ago
littletomatodonkey 9f581156d9 fix data replication for multi-cards sampling
5 years ago
fushall 8216aa9e3a
fix ocr func for Chinese path issus (#1755)
5 years ago
zhoujun 811712aebe
update dockerfile (#1801)
5 years ago
WenmuZhou 1acaf63402 change 1.1 to 2.0
5 years ago
WenmuZhou 144b3fb075 update Dockerfile
5 years ago
tink2123 ed2f0de95e mv model_average to incubate
5 years ago
Leif 94cb456854 fix image autoRotate & add limitation on image size
5 years ago
Double_V bcf29f0538
Merge pull request #1795 from WenmuZhou/dygraph_rc
5 years ago
WenmuZhou 9bbe2214d9 update model list
5 years ago
xiaoting cc30506a83
Merge pull request #1786 from xmy0916/fix_doc
5 years ago
xmy0916 67ad7ccace fix doc
5 years ago
xmy0916 b4d0ea7ee6 fix doc and mv imgs
5 years ago
xmy0916 c23d6a2df7 fix doc and mv imgs
5 years ago
Double_V ad3835e231
Merge pull request #1780 from WenmuZhou/dygraph_rc
5 years ago
Double_V 3ea09ad3a5
Merge pull request #1785 from LDOUBLEV/trt_cpp
5 years ago
LDOUBLEV 16bd2dd093 fix sast process
5 years ago
xiaoting 18669cc344
Merge pull request #1781 from xmy0916/update_doc
5 years ago
xmy0916 5c75828322 fix doc
5 years ago
xmy0916 bf6bfb91ad fix doc bug
5 years ago
xmy0916 85fa27ab07 modify doc for multi language model list
5 years ago
xiaoting 21292bb3b7
Merge pull request #1767 from xmy0916/dygraph
5 years ago
xmy0916 cafea5dcbe fix char dict
5 years ago
xmy0916 590f3251a3 fix doc
5 years ago
xmy0916 f1a623040c add copyright
5 years ago
xmy0916 73edec1620 add copyright
5 years ago
WenmuZhou 78d21ef5d5 delete coming soon
5 years ago
WenmuZhou 1bf5367cdc for preds, remove duplicate
5 years ago
WenmuZhou adafa3e67d Merge branch 'dygraph' of https://github.com/PaddlePaddle/PaddleOCR into dygraph_rc
5 years ago
WenmuZhou 8ebaf27d29 add starnet
5 years ago
WenmuZhou 5a9c8e49ac tps export down
5 years ago
WenmuZhou c1c80e34a4 add starnet
5 years ago
xmy0916 1992d965a1 add example imgs
5 years ago
xmy0916 fe694ae902 fix bugs
5 years ago
xmy0916 a301e05e1d fix bugs
5 years ago
xmy0916 f78ade18d5 fix bugs
5 years ago
xmy0916 d3c50fda3c fix bugs
5 years ago
xmy0916 46ac85ad8a fix some problems
5 years ago
littletomatodonkey 301b0d347c
fix duplicate (#1771)
5 years ago
Double_V b7e4528d3b
Merge pull request #1763 from WenmuZhou/dygraph_rc
5 years ago
WenmuZhou f17b96b96f Delete useless code
5 years ago
WenmuZhou f2ebeae59a Delete useless comments
5 years ago
WenmuZhou 3027983375 tps 前反向对齐
5 years ago
xmy0916 141d50d670 add multi language config file imgs and dict
5 years ago
Daniel Yang 0da9872408
Merge pull request #1762 from Evezerest/dy1
5 years ago
tink2123 93670ab5a2 all ready
5 years ago
Leif fd8d1b0f6b Update joinus.png
5 years ago
dyning 47eb591f9e
Update FAQ.md
5 years ago
dyning 8614dab66e
Merge pull request #1754 from dyning/dy
5 years ago
WenmuZhou c356622147 fix typo error
5 years ago
dyning 5021b5a9e4 add faq 20210117
5 years ago
Double_V 17346d854e
Merge pull request #1717 from Evezerest/dy1
5 years ago
Leif c2cf53519e Merge remote-tracking branch 'upstream/dygraph' into dy1
5 years ago
Leif 0e408d3e70 Update joinus.png
5 years ago
Zhouzd21 e97fc679da
Update README.md (#1687)
5 years ago
Evezerest e4ea2211e4
Optimize the labeling experience (#1709)
5 years ago
Leif 9c7405b6d6 Optimize the labeling experience
5 years ago
Double_V e1b932968d
Merge pull request #1707 from LDOUBLEV/trt_cpp
5 years ago
LDOUBLEV 825a28244c add use_shared_memory params for AIstudio demo
5 years ago
MissPenguin 6cc39f3238
Merge pull request #1696 from LDOUBLEV/trt
5 years ago
dyning 5010135e47
Update FAQ.md
5 years ago
dyning 17341c971a
Merge pull request #1703 from weisy11/dygraph
5 years ago
weishengyu a02d40d4ff update colon
5 years ago
weishengyu 56f31b8160 dbg
5 years ago
weishengyu ce12c66f3d add 5 FAQ
5 years ago
weishengyu 9ded14faad Merge https://github.com/PaddlePaddle/PaddleOCR into dygraph
5 years ago
Evezerest ccfc754488
Update readme (#1701)
5 years ago
Leif 0f3204af20 Update readme
5 years ago
MissPenguin 8a66fbc687
Update algorithm_overview.md
5 years ago
MissPenguin bb5b4db98d
Update algorithm_overview_en.md
5 years ago
root 24f8dfb7e1 Support fixed length TRT prediction
5 years ago
dyning 1f99a63524
Merge pull request #1692 from Evezerest/dy1
5 years ago
Leif ca3a925ae4 Temporarily delete editinlist
5 years ago
Leif 941d1501c1 Merge remote-tracking branch 'upstream/dygraph' into dy1
5 years ago
Leif 35dd089346 Update readme and delete uesless files
5 years ago
Tingquan Gao 35aac63b86
Adapt to the paddle_inference on Win32 and Linux (#1690)
5 years ago
Double_V 83d59c5d5a
Merge pull request #1685 from littletomatodonkey/dyg/fix_get_img
5 years ago
littletomatodonkey ba3e397f0a fix get image list
5 years ago
littletomatodonkey ef133b139f
fix readme (#1684)
5 years ago
littletomatodonkey 9336e34430
fix cpp infer (#1682)
5 years ago
dyning a27bd4d5d1
Merge pull request #1678 from littletomatodonkey/dyg/fix_space_eval
5 years ago
MissPenguin eb1d69a598
Update tree.md
5 years ago
littletomatodonkey f5008a0a97 fix space eval
5 years ago
zhoujun e7bf6c86cc
update angle class doc (#1635)
5 years ago
Leif 8402e8d1de Add editinlist.py
5 years ago
Double_V 541c3170f8
Merge pull request #1657 from baiyfbupt/dygraph
5 years ago
baiyfbupt 7b1c437207 add dygraph quant
5 years ago
Double_V c1e86b5657
Merge pull request #1587 from LDOUBLEV/trt_cpp
5 years ago
dyning 40e83f2275
Merge pull request #1648 from Evezerest/dy1
5 years ago
Leif ec0de454a1 Merge remote-tracking branch 'upstream/dygraph' into dy1
5 years ago
xiaoting c3e5522c38
format faq
5 years ago
xiaoting 12d8e031e9
Merge pull request #1640 from tink2123/add_faq
5 years ago
Leif a127340c1e Update joinus.png
5 years ago
tink2123 7ada917dfd add faq, 210104
5 years ago
tink2123 0ae781e19a add faq, 210104
5 years ago
tink2123 10d7ecdbff add faq, 210104
5 years ago
tink2123 c91baf7cc6 add faq, 210104
5 years ago
MissPenguin a486350b8e
Update quickstart_en.md
5 years ago
MissPenguin c207f786bb
Update quickstart.md
5 years ago
MissPenguin 554e57030b
Update quickstart.md
5 years ago
MissPenguin 5df41e83af
Merge pull request #1639 from WenmuZhou/dygraph_rc
5 years ago
WenmuZhou c465f40417 add tensorrt to hubserving
5 years ago
zhoujun 67ef25d593
Merge pull request #1631 from WenmuZhou/tree_doc
5 years ago
zhoujun 499ae66003 update utility
5 years ago
zhoujun c03b0b0604
Update utility.py
5 years ago
Karthikeyan Singaravelan 841adff934 Fix syntax warning over comparison of literals using is.
5 years ago
tink2123 297871d4be fix bugs
5 years ago
tink2123 c1fd46641e add srn for dygraph
5 years ago
littletomatodonkey de3e2e7cd3
add CyclicalCosineDecay (#1599)
5 years ago
littletomatodonkey 8985f6c207
add faq 20201218 (#1590)
5 years ago
Daniel Yang 3830a84a0c
Merge pull request #1579 from Evezerest/dy1
5 years ago
Double_V d5c45aec25
Merge pull request #1584 from WenmuZhou/dygraph_rc
5 years ago
LDOUBLEV ae80a8326a add tensorrt predict for cpp_infer demo
5 years ago
zhoujun 2a2c891d6b update ratio_list in db config
5 years ago
Double_V ed600b30d6
Merge pull request #1580 from WenmuZhou/dygraph_rc
5 years ago
WenmuZhou 31aa45fed2 add init to fc1
5 years ago
Leif 76d43ecdec Update QR code
5 years ago
zhoujun 7a94905a4f
Merge pull request #1573 from WenmuZhou/tree_doc
5 years ago
WenmuZhou ea3a1315ba Merge remote-tracking branch 'origin/tree_doc' into tree_doc
5 years ago
WenmuZhou 091574bbd1 fix bug
5 years ago
dyning 0a6e86ecd7
Merge pull request #1553 from LDOUBLEV/dyg_db
5 years ago
LDOUBLEV 2a04e1a12a add export to limit GPU-memory-usage
5 years ago
Double_V 45f647db3f
Merge pull request #1542 from LDOUBLEV/cpp_2.0
5 years ago
Double_V 39fa67a7f8
Merge pull request #1546 from LDOUBLEV/dyg_db
5 years ago
LDOUBLEV 0fbcb520b1 Merge branch 'dygraph' of https://github.com/PaddlePaddle/PaddleOCR into dyg_db
5 years ago
LDOUBLEV dbd27878cb update cpp_infer readme
5 years ago
Double_V 9df55aa509
Merge pull request #1544 from WenmuZhou/tree_doc
5 years ago
zhoujun d3bd510377
fix bugs in DetResizeForTest
5 years ago
LDOUBLEV d49aff1961 fix mkl warning
5 years ago
LDOUBLEV 885378fd33 fix config.txt
5 years ago
LDOUBLEV 315c07d560 fix conflicts
5 years ago
LDOUBLEV 551377a013 update cpp_infer to 2.0
5 years ago
zhoujun 0ec11a29c6
Merge pull request #1540 from WenmuZhou/tree_doc
5 years ago
WenmuZhou 3a0090dc00 delete fluid
5 years ago
WenmuZhou 59af7359be inference adaptation 2.0
5 years ago
Double_V 2a789770cd
Merge pull request #1538 from LDOUBLEV/dyg_db
5 years ago
LDOUBLEV c94428a880 fix conflicts
5 years ago
Double_V 8fda770272
Merge branch 'dygraph' into dyg_db
5 years ago
LDOUBLEV 390f240b82 python to python3
5 years ago
MissPenguin 7efa3975c2
Merge pull request #1532 from LDOUBLEV/dyg_db
5 years ago
LDOUBLEV e1d11ae0e3 2.3.18 to 3.1.24
5 years ago
LDOUBLEV f0b9aae353 fix comment
5 years ago
LDOUBLEV b2768e4a55 fix comments
5 years ago
LDOUBLEV 037bd74017 fix comments
5 years ago
LDOUBLEV 520670a4e4 * to x
5 years ago
LDOUBLEV a8927059c9 * to x
5 years ago
LDOUBLEV f103ed2791 add FAQ
5 years ago
MissPenguin f117f052fa
Merge pull request #1528 from lilinxiong/dygraph
5 years ago
gnoixnil'il e6315ddd76
Update det_basic_loss.py
5 years ago
weishengyu 1f9d6d7f31 disable gpu & windows
5 years ago
weishengyu cf03889b74 Merge https://github.com/PaddlePaddle/PaddleOCR into dygraph
5 years ago
weishengyu 5a5017fe9c Merge https://github.com/PaddlePaddle/PaddleOCR into dygraph
5 years ago
weishengyu 0c177c6521 Merge https://github.com/PaddlePaddle/PaddleOCR into dygraph
5 years ago
weishengyu 78d3349e1d add notice in size of style images
5 years ago
weishengyu 39f14763eb dbg typo
5 years ago
weishengyu d45596ab79 modify files
5 years ago
weishengyu 7285bba834 add files
5 years ago
weishengyu b800717724 add examples in doc
5 years ago

File diff suppressed because it is too large Load Diff

@ -2,19 +2,27 @@ English | [简体中文](README_ch.md)
# PPOCRLabel
PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models.
PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PPOCR model to automatically detect and re-recognize data. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models.
<img src="./data/gif/steps_en.gif" width="100%"/>
### Recent Update
- 2021.1.11: Optimize the labeling experience (by [edencfc](https://github.com/edencfc)),
- Users can choose whether to pop up the label input dialog after drawing the detection box in "View - Pop-up Label Input Dialog".
- The recognition result scrolls synchronously when users click related detection box.
- Click to modify the recognition result.(If you can't change the result, please switch to the system default input method, or switch back to the original input method again)
- 2020.12.18: Support re-recognition of a single label box (by [ninetailskim](https://github.com/ninetailskim) ), perfect shortcut keys.
### TODO:
- Lock box mode: For the same scene data, the size and position of the locked detection box can be transferred between different pictures.
- Experience optimization: Add undo, batch operation include move, copy, delete and so on, optimize the annotation process.
## Installation
### 1. Install PaddleOCR
Refer to [PaddleOCR installation document](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md) to prepare PaddleOCR
PaddleOCR models has been built in PPOCRLabel, please refer to [PaddleOCR installation document](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md) to prepare PaddleOCR and make sure it works.
### 2. Install PPOCRLabel
@ -41,7 +49,7 @@ python3 PPOCRLabel.py
```
pip3 install pyqt5
pip3 uninstall opencv-python # Uninstall opencv manually as it conflicts with pyqt
pip3 install opencv-contrib-python-headless # Install the headless version of opencv
pip3 install opencv-contrib-python-headless==4.2.0.32 # Install the headless version of opencv
cd ./PPOCRLabel # Change the directory to the PPOCRLabel folder
python3 PPOCRLabel.py
```
@ -60,7 +68,7 @@ python3 PPOCRLabel.py
4.1 Click 'Create RectBox' or press 'W' in English keyboard mode to draw a new rectangle detection box. Click and release left mouse to select a region to annotate the text area.
4.2 Press 'P' to enter four-point labeling mode which enables you to create any four-point shape by clicking four points with the left mouse button in succession and DOUBLE CLICK the left mouse as the signal of labeling completion.
4.2 Press 'Q' to enter four-point labeling mode which enables you to create any four-point shape by clicking four points with the left mouse button in succession and DOUBLE CLICK the left mouse as the signal of labeling completion.
5. After the marking frame is drawn, the user clicks "OK", and the detection frame will be pre-assigned a "TEMPORARY" label.
@ -72,7 +80,7 @@ python3 PPOCRLabel.py
9. Click "Delete Image" and the image will be deleted to the recycle bin.
10. Labeling result: the user can save manually through the menu "File - Save Label", while the program will also save automatically after every 10 images confirmed by the user.the manually checked label will be stored in *Label.txt* under the opened picture folder.
10. Labeling result: the user can save manually through the menu "File - Save Label", while the program will also save automatically after every 5 images confirmed by the user.the manually checked label will be stored in *Label.txt* under the opened picture folder.
Click "PaddleOCR"-"Save Recognition Results" in the menu bar, the recognition training data of such pictures will be saved in the *crop_img* folder, and the recognition label will be saved in *rec_gt.txt*<sup>[4]</sup>.
### Note
@ -88,7 +96,7 @@ Therefore, if the recognition result has been manually changed before, it may ch
| File name | Description |
| :-----------: | :----------------------------------------------------------: |
| Label.txt | The detection label file can be directly used for PPOCR detection model training. After the user saves 10 label results, the file will be automatically saved. It will also be written when the user closes the application or changes the file folder. |
| Label.txt | The detection label file can be directly used for PPOCR detection model training. After the user saves 5 label results, the file will be automatically saved. It will also be written when the user closes the application or changes the file folder. |
| fileState.txt | The picture status file save the image in the current folder that has been manually confirmed by the user. |
| Cache.cach | Cache files to save the results of model recognition. |
| rec_gt.txt | The recognition label file, which can be directly used for PPOCR identification model training, is generated after the user clicks on the menu bar "File"-"Save recognition result". |
@ -119,11 +127,20 @@ Therefore, if the recognition result has been manually changed before, it may ch
- Default model: PPOCRLabel uses the Chinese and English ultra-lightweight OCR model in PaddleOCR by default, supports Chinese, English and number recognition, and multiple language detection.
- Model language switching: Changing the built-in model language is supportable by clicking "PaddleOCR"-"Choose OCR Model" in the menu bar. Currently supported languagesinclude French, German, Korean, and Japanese.
- Model language switching: Changing the built-in model language is supportable by clicking "PaddleOCR"-"Choose OCR Model" in the menu bar. Currently supported languagesinclude French, German, Korean, and Japanese.
For specific model download links, please refer to [PaddleOCR Model List](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/models_list_en.md#multilingual-recognition-modelupdating)
- Custom model: The model trained by users can be replaced by modifying PPOCRLabel.py in [PaddleOCR class instantiation](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/PPOCRLabel.py#L110) referring [Custom Model Code](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/whl_en.md#use-custom-model)
### Save
PPOCRLabel supports three ways to save Label.txt
- Automatically save: When it detects that the user has manually checked 5 pictures, the program automatically writes the annotations into Label.txt. The user can change the value of ``self.autoSaveNum`` in ``PPOCRLabel.py`` to set the number of images to be automatically saved after confirmation.
- Manual save: Click "File-Save Marking Results" to manually save the label.
- Close application save
### Export partial recognition results
For some data that are difficult to recognize, the recognition results will not be exported by **unchecking** the corresponding tags in the recognition results checkbox.
@ -143,11 +160,11 @@ For some data that are difficult to recognize, the recognition results will not
```
pyrcc5 -o libs/resources.py resources.qrc
```
- If you get an error ``` module 'cv2' has no attribute 'INTER_NEAREST'```, you need to delete all opencv related packages first, and then reinstall the headless version of opencv
- If you get an error ``` module 'cv2' has no attribute 'INTER_NEAREST'```, you need to delete all opencv related packages first, and then reinstall the 4.2.0.32 version of headless opencv
```
pip install opencv-contrib-python-headless
pip install opencv-contrib-python-headless==4.2.0.32
```
### Related
1.[Tzutalin. LabelImg. Git code (2015)](https://github.com/tzutalin/labelImg)

@ -2,18 +2,30 @@
# PPOCRLabel
PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具使用python3和pyqt5编写支持矩形框标注和四点标注模式导出格式可直接用于PPOCR检测和识别模型的训练。
PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具内置PPOCR模型对数据自动标注和重新识别。使用python3和pyqt5编写支持矩形框标注和四点标注模式导出格式可直接用于PPOCR检测和识别模型的训练。
<img src="./data/gif/steps.gif" width="100%"/>
#### 近期更新
- 2020.12.18: 支持对单个标记框进行重新识别by [ninetailskim](https://github.com/ninetailskim) ),完善快捷键。
- 2021.1.11优化标注体验by [edencfc](https://github.com/edencfc)
- 用户可在“视图 - 弹出标记输入框”选择在画完检测框后标记输入框是否弹出。
- 识别结果与检测框同步滚动。
- 识别结果更改为单击修改。(如果无法修改,请切换为系统自带输入法,或再次切回原输入法)
- 2020.12.18 支持对单个标记框进行重新识别by [ninetailskim](https://github.com/ninetailskim)),完善快捷键。
#### 尽请期待
- 锁定框模式:针对同一场景数据,被锁定的检测框的大小与位置能在不同图片之间传递。
- 体验优化:增加撤销操作,批量移动、复制、删除等功能。优化标注流程。
如果您对以上内容感兴趣或对完善工具有不一样的想法,欢迎加入我们的队伍与我们共同开发
## 安装
### 1. 安装PaddleOCR
参考[PaddleOCR安装文档](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md)准备好PaddleOCR
PPOCRLabel内置PaddleOCR模型故请参考[PaddleOCR安装文档](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md)准备好PaddleOCR并确保PaddleOCR安装成功。
### 2. 安装PPOCRLabel
#### Windows + Anaconda
@ -37,7 +49,7 @@ python3 PPOCRLabel.py --lang ch
```
pip3 install pyqt5
pip3 uninstall opencv-python # 由于mac版本的opencv与pyqt有冲突需先手动卸载opencv
pip3 install opencv-contrib-python-headless # 安装headless版本的open-cv
pip3 install opencv-contrib-python-headless==4.2.0.32 # 安装headless版本的open-cv
cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
python3 PPOCRLabel.py --lang ch
```
@ -49,13 +61,13 @@ python3 PPOCRLabel.py --lang ch
1. 安装与运行:使用上述命令安装与运行程序。
2. 打开文件夹:在菜单栏点击 “文件” - "打开目录" 选择待标记图片的文件夹<sup>[1]</sup>.
3. 自动标注:点击 ”自动标注“使用PPOCR超轻量模型对图片文件名前图片状态<sup>[2]</sup>为 “X” 的图片进行自动标注。
4. 手动标注:点击 “矩形标注”(推荐直接在英文模式下点击键盘中的 “W”),用户可对当前图片中模型未检出的部分进行手动绘制标记框。点击键盘P,则使用四点标注模式(或点击“编辑” - “四点标注”用户依次点击4个点后双击左键表示标注完成。
4. 手动标注:点击 “矩形标注”(推荐直接在英文模式下点击键盘中的 “W”),用户可对当前图片中模型未检出的部分进行手动绘制标记框。点击键盘Q,则使用四点标注模式(或点击“编辑” - “四点标注”用户依次点击4个点后双击左键表示标注完成。
5. 标记框绘制完成后,用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。
6. 重新识别:将图片中的所有检测画绘制/调整完成后,点击 “重新识别”PPOCR模型会对当前图片中的**所有检测框**重新识别<sup>[3]</sup>
7. 内容更改:双击识别结果,对不准确的识别结果进行手动更改。
8. 确认标记:点击 “确认”,图片状态切换为 “√”,跳转至下一张(此时不会直接将结果写入文件)。
9. 删除:点击 “删除图像”,图片将会被删除至回收站。
10. 保存结果:用户可以通过菜单中“文件-保存标记结果”手动保存,同时程序也会在用户每确认10张图片后自动保存一次。手动确认过的标记将会被存放在所打开图片文件夹下的*Label.txt*中。在菜单栏点击 “文件” - "保存识别结果"后,会将此类图片的识别训练数据保存在*crop_img*文件夹下,识别标签保存在*rec_gt.txt*中<sup>[4]</sup>
10. 保存结果:用户可以通过菜单中“文件-保存标记结果”手动保存,同时程序也会在用户每确认5张图片后自动保存一次。手动确认过的标记将会被存放在所打开图片文件夹下的*Label.txt*中。在菜单栏点击 “文件” - "保存识别结果"后,会将此类图片的识别训练数据保存在*crop_img*文件夹下,识别标签保存在*rec_gt.txt*中<sup>[4]</sup>
### 注意
@ -69,7 +81,7 @@ python3 PPOCRLabel.py --lang ch
| 文件名 | 说明 |
| :-----------: | :----------------------------------------------------------: |
| Label.txt | 检测标签可直接用于PPOCR检测模型训练。用户每保存10张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。 |
| Label.txt | 检测标签可直接用于PPOCR检测模型训练。用户每保存5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。 |
| fileState.txt | 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。 |
| Cache.cach | 缓存文件,保存模型自动识别的结果。 |
| rec_gt.txt | 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "保存识别结果"后产生。 |
@ -104,6 +116,14 @@ python3 PPOCRLabel.py --lang ch
- 自定义模型:用户可根据[自定义模型代码使用](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/whl.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9E%8B)通过修改PPOCRLabel.py中针对[PaddleOCR类的实例化](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/PPOCRLabel.py#L110)替换成自己训练的模型。
### 保存方式
PPOCRLabel支持三种保存方式
- 程序自动保存当检测到用户手动确认过5张图片后程序自动将标记结果写入Label.txt中。其中用户可通过更改```PPOCRLabel.py```中的```self.autoSaveNum```的数值设置确认几张图片后进行自动保存。
- 手动保存:点击“文件 - 保存标记结果”手动保存标记。
- 关闭应用程序保存
### 导出部分识别结果
针对部分难以识别的数据,通过在识别结果的复选框中**取消勾选**相应的标记,其识别结果不会被导出。
@ -112,23 +132,24 @@ python3 PPOCRLabel.py --lang ch
### 错误提示
- 如果同时使用whl包安装了paddleocr其优先级大于通过paddleocr.py调用PaddleOCR类whl包未更新时会导致程序异常。
- PPOCRLabel**不支持对中文文件名**的图片进行自动标注。
- 针对Linux用户如果您在打开软件过程中出现**objc[XXXXX]**开头的错误证明您的opencv版本太高建议安装4.2版本:
- 针对Linux用户如果您在打开软件过程中出现**objc[XXXXX]**开头的错误证明您的opencv版本太高建议安装4.2版本:
```
pip install opencv-python==4.2.0.32
```
- 如果出现 ```Missing string id``` 开头的错误,需要重新编译资源:
```
pyrcc5 -o libs/resources.py resources.qrc
```
- 如果出现``` module 'cv2' has no attribute 'INTER_NEAREST'```错误需要首先删除所有opencv相关包然后重新安装headless版本的opencv
- 如果出现``` module 'cv2' has no attribute 'INTER_NEAREST'```错误需要首先删除所有opencv相关包然后重新安装4.2.0.32版本的headless opencv
```
pip install opencv-contrib-python-headless
pip install opencv-contrib-python-headless==4.2.0.32
```
### 参考资料
1.[Tzutalin. LabelImg. Git code (2015)](https://github.com/tzutalin/labelImg)

@ -7,6 +7,8 @@ except ImportError:
from PyQt4.QtCore import *
import json
import cv2
import numpy as np
from libs.utils import newIcon
@ -34,11 +36,16 @@ class Worker(QThread):
if self.handle == 0:
self.listValue.emit(Imgpath)
if self.model == 'paddle':
self.result_dic = self.ocr.ocr(Imgpath, cls=True, det=True)
h, w, _ = cv2.imdecode(np.fromfile(Imgpath, dtype=np.uint8), 1).shape
if h > 32 and w > 32:
self.result_dic = self.ocr.ocr(Imgpath, cls=True, det=True)
else:
print('The size of', Imgpath, 'is too small to be recognised')
self.result_dic = None
# 结果保存
if self.result_dic is None or len(self.result_dic) == 0:
print('Can not recognise file is : ', Imgpath)
print('Can not recognise file', Imgpath)
pass
else:
strs = ''

@ -0,0 +1,31 @@
import sys, time
from PyQt5 import QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class EditInList(QListWidget):
def __init__(self):
super(EditInList,self).__init__()
# click to edit
self.clicked.connect(self.item_clicked)
def item_clicked(self, modelindex: QModelIndex) -> None:
self.edited_item = self.currentItem()
self.closePersistentEditor(self.edited_item)
item = self.item(modelindex.row())
# time.sleep(0.2)
self.edited_item = item
self.openPersistentEditor(item)
# time.sleep(0.2)
self.editItem(item)
def mouseDoubleClickEvent(self, event):
# close edit
for i in range(self.count()):
self.closePersistentEditor(self.item(i))
def leaveEvent(self, event):
# close edit
for i in range(self.count()):
self.closePersistentEditor(self.item(i))

File diff suppressed because it is too large Load Diff

@ -42,7 +42,7 @@ zoomin=放大画面
info=信息
openAnnotation=开启标签
prevImgDetail=上一个图像
fitWidth=缩放到当前画面一样
fitWidth=缩放到当前画面宽
zoomout=缩小画面
changeSavedAnnotationDir=更改保存标签文件的预设目录
nextImgDetail=下一个图像
@ -95,4 +95,5 @@ autolabeling=自动标注中
hideBox=隐藏所有标注
showBox=显示所有标注
saveLabel=保存标记结果
singleRe=重识别此区块
singleRe=重识别此区块
labelDialogOption=弹出标记输入框

@ -95,4 +95,5 @@ autolabeling=Automatic Labeling
hideBox=Hide All Box
showBox=Show All Box
saveLabel=Save Label
singleRe=Re-recognition RectBox
singleRe=Re-recognition RectBox
labelDialogOption=Pop-up Label Input Dialog

@ -5,10 +5,12 @@ PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools
## Notice
PaddleOCR supports both dynamic graph and static graph programming paradigm
- Dynamic graph: dygraph branch (default), **supported by paddle 2.0rc1+ ([installation](./doc/doc_en/installation_en.md))**
- Dynamic graph: dygraph branch (default), **supported by paddle 2.0.0 ([installation](./doc/doc_en/installation_en.md))**
- Static graph: develop branch
**Recent updates**
- 2021.2.8 Release PaddleOCRv2.0(branch release/2.0) and set as default branch. Check release note here: https://github.com/PaddlePaddle/PaddleOCR/releases/tag/v2.0.0
- 2021.1.21 update more than 25+ multilingual recognition models [models list](./doc/doc_en/models_list_en.md), includingEnglish, Chinese, German, French, JapaneseSpanishPortuguese Russia Arabic and so on. Models for more languages will continue to be updated [Develop Plan](https://github.com/PaddlePaddle/PaddleOCR/issues/1048).
- 2020.12.15 update Data synthesis tool, i.e., [Style-Text](./StyleText/README.md)easy to synthesize a large number of images which are similar to the target scene image.
- 2020.11.25 Update a new data annotation tool, i.e., [PPOCRLabel](./PPOCRLabel/README.md), which is helpful to improve the labeling efficiency. Moreover, the labeling results can be used in training of the PP-OCR system directly.
- 2020.9.22 Update the PP-OCR technical article, https://arxiv.org/abs/2009.09941
@ -41,7 +43,7 @@ The above pictures are the visualizations of the general ppocr_server model. For
- Scan the QR code below with your Wechat, you can access to official technical exchange group. Look forward to your participation.
<div align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.0/doc/joinus.PNG" width = "200" height = "200" />
<img src="./doc/joinus.PNG" width = "200" height = "200" />
</div>
@ -173,7 +175,7 @@ This project is released under <a href="https://github.com/PaddlePaddle/PaddleOC
We welcome all the contributions to PaddleOCR and appreciate for your feedback very much.
- Many thanks to [Khanh Tran](https://github.com/xxxpsyduck) and [Karl Horky](https://github.com/karlhorky) for contributing and revising the English documentation.
- Many thanks to [zhangxin](https://github.com/ZhangXinNan) for contributing the new visualize function、add .gitgnore and discard set PYTHONPATH manually.
- Many thanks to [zhangxin](https://github.com/ZhangXinNan) for contributing the new visualize function、add .gitignore and discard set PYTHONPATH manually.
- Many thanks to [lyl120117](https://github.com/lyl120117) for contributing the code for printing the network structure.
- Thanks [xiangyubo](https://github.com/xiangyubo) for contributing the handwritten Chinese OCR datasets.
- Thanks [authorfu](https://github.com/authorfu) for contributing Android demo and [xiadeye](https://github.com/xiadeye) contributing iOS demo, respectively.

@ -4,12 +4,15 @@
PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库助力使用者训练出更好的模型并应用落地。
## 注意
PaddleOCR同时支持动态图与静态图两种编程范式
- 动态图版本dygraph分支默认需将paddle版本升级至2.0rc1+[快速安装](./doc/doc_ch/installation.md)
- 动态图版本dygraph分支默认需将paddle版本升级至2.0.0[快速安装](./doc/doc_ch/installation.md)
- 静态图版本develop分支
**近期更新**
- 2021.3.22 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题总数193个每周一都会更新欢迎大家持续关注。
- 2021.2.8 正式发布PaddleOCRv2.0(branch release/2.0)并设置为推荐用户使用的默认分支. 发布的详细内容,请参考: https://github.com/PaddlePaddle/PaddleOCR/releases/tag/v2.0.0
- 2021.1.26,28,29 PaddleOCR官方研发团队带来技术深入解读三日直播课1月26日、28日、29日晚上19:30[直播地址](https://live.bilibili.com/21689802)
- 2021.1.21 更新多语言识别模型目前支持语种超过27种[多语言模型下载](./doc/doc_ch/models_list.md),包括中文简体、中文繁体、英文、法文、德文、韩文、日文、意大利文、西班牙文、葡萄牙文、俄罗斯文、阿拉伯文等,后续计划可以参考[多语言研发计划](https://github.com/PaddlePaddle/PaddleOCR/issues/1048)
- 2020.12.15 更新数据合成工具[Style-Text](./StyleText/README_ch.md),可以批量合成大量与目标场景类似的图像,在多个场景验证,效果明显提升。
- 2020.12.14 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题总数127个每周一都会更新欢迎大家持续关注。
- 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README_ch.md)辅助开发者高效完成标注任务输出格式与PP-OCR训练任务完美衔接。
- 2020.9.22 更新PP-OCR技术文章https://arxiv.org/abs/2009.09941
- [More](./doc/doc_ch/update.md)
@ -44,7 +47,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式
- 微信扫描二维码加入官方交流群,获得更高效的问题答疑,与各行各业开发者充分交流,期待您的加入。
<div align="center">
<img src="https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.0/doc/joinus.PNG" width = "200" height = "200" />
<img src="./doc/joinus.PNG" width = "200" height = "200" />
</div>
## 快速体验
@ -101,8 +104,8 @@ PaddleOCR同时支持动态图与静态图两种编程范式
- [效果展示](#效果展示)
- FAQ
- [【精选】OCR精选10个问题](./doc/doc_ch/FAQ.md)
- [【理论篇】OCR通用30个问题](./doc/doc_ch/FAQ.md)
- [【实战篇】PaddleOCR实战84个问题](./doc/doc_ch/FAQ.md)
- [【理论篇】OCR通用37个问题](./doc/doc_ch/FAQ.md)
- [【实战篇】PaddleOCR实战141个问题](./doc/doc_ch/FAQ.md)
- [技术交流群](#欢迎加入PaddleOCR技术交流群)
- [参考文献](./doc/doc_ch/reference.md)
- [许可证书](#许可证书)
@ -149,7 +152,7 @@ PP-OCR是一个实用的超轻量OCR系统。主要由DB文本检测[2]、检测
- 非常感谢 [Khanh Tran](https://github.com/xxxpsyduck) 和 [Karl Horky](https://github.com/karlhorky) 贡献修改英文文档
- 非常感谢 [zhangxin](https://github.com/ZhangXinNan)([Blog](https://blog.csdn.net/sdlypyzq)) 贡献新的可视化方式、添加.gitgnore、处理手动设置PYTHONPATH环境变量的问题
- 非常感谢 [zhangxin](https://github.com/ZhangXinNan)([Blog](https://blog.csdn.net/sdlypyzq)) 贡献新的可视化方式、添加.gitignore、处理手动设置PYTHONPATH环境变量的问题
- 非常感谢 [lyl120117](https://github.com/lyl120117) 贡献打印网络结构的代码
- 非常感谢 [xiangyubo](https://github.com/xiangyubo) 贡献手写中文OCR数据集
- 非常感谢 [authorfu](https://github.com/authorfu) 贡献Android和[xiadeye](https://github.com/xiadeye) 贡献IOS的demo代码

@ -52,7 +52,7 @@ If you save the model in another location, please modify the address of the mode
```
bg_generator:
pretrain: style_text_rec/bg_generator
pretrain: style_text_models/bg_generator
...
text_generator:
pretrain: style_text_models/text_generator
@ -72,7 +72,7 @@ fusion_generator:
python3 tools/synth_image.py -c configs/config.yml --style_image examples/style_images/2.jpg --text_corpus PaddleOCR --language en
```
* Note 1: The language options is correspond to the corpus. Currently, the tool only supports English, Simplified Chinese and Korean.
* Note 1: The language options is correspond to the corpus. Currently, the tool only supports English(en), Simplified Chinese(ch) and Korean(ko).
* Note 2: Synth-Text is mainly used to generate images for OCR recognition models.
So the height of style images should be around 32 pixels. Images in other sizes may behave poorly.
* Note 3: You can modify `use_gpu` in `configs/config.yml` to determine whether to use GPU for prediction.
@ -98,7 +98,7 @@ What's more, the medium result `fake_bg.jpg` will also be saved, which is the ba
</div>
`fake_text.jpg` * `fake_text.jpg` is the generated image with the same font style as `Style Input`.
`fake_text.jpg` is the generated image with the same font style as `Style Input`.
<div align="center">
@ -120,11 +120,11 @@ In actual application scenarios, it is often necessary to synthesize pictures in
* `with_label`Whether the `label_file` is label file list.
* `CorpusGenerator`
* `method`Method of CorpusGeneratorsupports `FileCorpus` and `EnNumCorpus`. If `EnNumCorpus` is usedNo other configuration is neededotherwise you need to set `corpus_file` and `language`.
* `language`Language of the corpus.
* `language`Language of the corpus. Currently, the tool only supports English(en), Simplified Chinese(ch) and Korean(ko).
* `corpus_file`: Filepath of the corpus. Corpus file should be a text file which will be split by line-endings'\n'. Corpus generator samples one line each time.
Example of corpus file:
Example of corpus file:
```
PaddleOCR
飞桨文字识别

@ -63,10 +63,10 @@ fusion_generator:
```python
python3 tools/synth_image.py -c configs/config.yml --style_image examples/style_images/2.jpg --text_corpus PaddleOCR --language en
```
* 注1语言选项和语料相对应目前该工具只支持英文、简体中文和韩语。
* 注1语言选项和语料相对应目前支持英文(en)、简体中文(ch)和韩语(ko)
* 注2Style-Text生成的数据主要应用于OCR识别场景。基于当前PaddleOCR识别模型的设计我们主要支持高度在32左右的风格图像。
如果输入图像尺寸相差过多,效果可能不佳。
* 注3可以通过修改配置文件中的`use_gpu`(true或者false)参数来决定是否使用GPU进行预测。
* 注3可以通过修改配置文件`configs/config.yml`中的`use_gpu`(true或者false)参数来决定是否使用GPU进行预测。
例如,输入如下图片和语料"PaddleOCR":
@ -105,7 +105,7 @@ python3 tools/synth_image.py -c configs/config.yml --style_image examples/style_
* `with_label`:标志`label_file`是否为label文件。
* `CorpusGenerator`
* `method`:语料生成方法,目前有`FileCorpus`和`EnNumCorpus`可选。如果使用`EnNumCorpus`,则不需要填写其他配置,否则需要修改`corpus_file`和`language`
* `language`:语料的语种;
* `language`:语料的语种,目前支持英文(en)、简体中文(ch)和韩语(ko)
* `corpus_file`: 语料文件路径。语料文件应使用文本文件。语料生成器首先会将语料按行切分,之后每次随机选取一行。
语料文件格式示例:
@ -128,7 +128,7 @@ python3 tools/synth_image.py -c configs/config.yml --style_image examples/style_
2. 运行`tools/synth_dataset`合成数据:
``` bash
python tools/synth_dataset.py -c configs/dataset_config.yml
python3 tools/synth_dataset.py -c configs/dataset_config.yml
```
我们在examples目录下提供了样例图片和语料。
<div align="center">

@ -1,2 +1,2 @@
style_images/1.jpg NEATNESS
style_images/2.jpg 锁店君和宾馆
style_images/2.jpg 卡丹鑫宇通

@ -67,7 +67,7 @@ Train:
data_dir: ./train_data/icdar2015/text_localization/
label_file_list:
- ./train_data/icdar2015/text_localization/train_icdar2015_label.txt
ratio_list: [0.5]
ratio_list: [1.0]
transforms:
- DecodeImage: # load image
img_mode: BGR
@ -102,6 +102,7 @@ Train:
drop_last: False
batch_size_per_card: 16
num_workers: 8
use_shared_memory: False
Eval:
dataset:
@ -128,4 +129,5 @@ Eval:
shuffle: False
drop_last: False
batch_size_per_card: 1 # must be 1
num_workers: 8
num_workers: 8
use_shared_memory: False

@ -66,7 +66,7 @@ Train:
data_dir: ./train_data/icdar2015/text_localization/
label_file_list:
- ./train_data/icdar2015/text_localization/train_icdar2015_label.txt
ratio_list: [0.5]
ratio_list: [1.0]
transforms:
- DecodeImage: # load image
img_mode: BGR

@ -62,7 +62,7 @@ Train:
name: SimpleDataSet
data_dir: ./train_data/
label_file_list: [./train_data/art_latin_icdar_14pt/train_no_tt_test/train_label_json.txt, ./train_data/total_text_icdar_14pt/train_label_json.txt]
data_ratio_list: [0.5, 0.5]
ratio_list: [0.5, 0.5]
transforms:
- DecodeImage: # load image
img_mode: BGR

@ -0,0 +1,200 @@
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import yaml
from argparse import ArgumentParser, RawDescriptionHelpFormatter
import os.path
import logging
logging.basicConfig(level=logging.INFO)
support_list = {
'it': 'italian',
'es': 'spanish',
'pt': 'portuguese',
'ru': 'russian',
'ar': 'arabic',
'ta': 'tamil',
'ug': 'uyghur',
'fa': 'persian',
'ur': 'urdu',
'rs_latin': 'serbian latin',
'oc': 'occitan',
'rs_cyrillic': 'serbian cyrillic',
'bg': 'bulgarian',
'uk': 'ukranian',
'be': 'belarusian',
'te': 'telugu',
'kn': 'kannada',
'ch_tra': 'chinese tradition',
'hi': 'hindi',
'mr': 'marathi',
'ne': 'nepali',
}
assert (os.path.isfile("./rec_multi_language_lite_train.yml")
), "Loss basic configuration file rec_multi_language_lite_train.yml.\
You can download it from \
https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/configs/rec/multi_language/"
global_config = yaml.load(
open("./rec_multi_language_lite_train.yml", 'rb'), Loader=yaml.Loader)
project_path = os.path.abspath(os.path.join(os.getcwd(), "../../../"))
class ArgsParser(ArgumentParser):
def __init__(self):
super(ArgsParser, self).__init__(
formatter_class=RawDescriptionHelpFormatter)
self.add_argument(
"-o", "--opt", nargs='+', help="set configuration options")
self.add_argument(
"-l",
"--language",
nargs='+',
help="set language type, support {}".format(support_list))
self.add_argument(
"--train",
type=str,
help="you can use this command to change the train dataset default path"
)
self.add_argument(
"--val",
type=str,
help="you can use this command to change the eval dataset default path"
)
self.add_argument(
"--dict",
type=str,
help="you can use this command to change the dictionary default path"
)
self.add_argument(
"--data_dir",
type=str,
help="you can use this command to change the dataset default root path"
)
def parse_args(self, argv=None):
args = super(ArgsParser, self).parse_args(argv)
args.opt = self._parse_opt(args.opt)
args.language = self._set_language(args.language)
return args
def _parse_opt(self, opts):
config = {}
if not opts:
return config
for s in opts:
s = s.strip()
k, v = s.split('=')
config[k] = yaml.load(v, Loader=yaml.Loader)
return config
def _set_language(self, type):
assert (type), "please use -l or --language to choose language type"
assert(
type[0] in support_list.keys()
),"the sub_keys(-l or --language) can only be one of support list: \n{},\nbut get: {}, " \
"please check your running command".format(support_list, type)
global_config['Global'][
'character_dict_path'] = 'ppocr/utils/dict/{}_dict.txt'.format(type[
0])
global_config['Global'][
'save_model_dir'] = './output/rec_{}_lite'.format(type[0])
global_config['Train']['dataset'][
'label_file_list'] = ["train_data/{}_train.txt".format(type[0])]
global_config['Eval']['dataset'][
'label_file_list'] = ["train_data/{}_val.txt".format(type[0])]
global_config['Global']['character_type'] = type[0]
assert (
os.path.isfile(
os.path.join(project_path, global_config['Global'][
'character_dict_path']))
), "Loss default dictionary file {}_dict.txt.You can download it from \
https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/ppocr/utils/dict/".format(
type[0])
return type[0]
def merge_config(config):
"""
Merge config into global config.
Args:
config (dict): Config to be merged.
Returns: global config
"""
for key, value in config.items():
if "." not in key:
if isinstance(value, dict) and key in global_config:
global_config[key].update(value)
else:
global_config[key] = value
else:
sub_keys = key.split('.')
assert (
sub_keys[0] in global_config
), "the sub_keys can only be one of global_config: {}, but get: {}, please check your running command".format(
global_config.keys(), sub_keys[0])
cur = global_config[sub_keys[0]]
for idx, sub_key in enumerate(sub_keys[1:]):
if idx == len(sub_keys) - 2:
cur[sub_key] = value
else:
cur = cur[sub_key]
def loss_file(path):
assert (
os.path.exists(path)
), "There is no such file:{},Please do not forget to put in the specified file".format(
path)
if __name__ == '__main__':
FLAGS = ArgsParser().parse_args()
merge_config(FLAGS.opt)
save_file_path = 'rec_{}_lite_train.yml'.format(FLAGS.language)
if os.path.isfile(save_file_path):
os.remove(save_file_path)
if FLAGS.train:
global_config['Train']['dataset']['label_file_list'] = [FLAGS.train]
train_label_path = os.path.join(project_path, FLAGS.train)
loss_file(train_label_path)
if FLAGS.val:
global_config['Eval']['dataset']['label_file_list'] = [FLAGS.val]
eval_label_path = os.path.join(project_path, FLAGS.val)
loss_file(eval_label_path)
if FLAGS.dict:
global_config['Global']['character_dict_path'] = FLAGS.dict
dict_path = os.path.join(project_path, FLAGS.dict)
loss_file(dict_path)
if FLAGS.data_dir:
global_config['Eval']['dataset']['data_dir'] = FLAGS.data_dir
global_config['Train']['dataset']['data_dir'] = FLAGS.data_dir
data_dir = os.path.join(project_path, FLAGS.data_dir)
loss_file(data_dir)
with open(save_file_path, 'w') as f:
yaml.dump(
dict(global_config), f, default_flow_style=False, sort_keys=False)
logging.info("Project path is :{}".format(project_path))
logging.info("Train list path set to :{}".format(global_config['Train'][
'dataset']['label_file_list'][0]))
logging.info("Eval list path set to :{}".format(global_config['Eval'][
'dataset']['label_file_list'][0]))
logging.info("Dataset root path set to :{}".format(global_config['Eval'][
'dataset']['data_dir']))
logging.info("Dict path set to :{}".format(global_config['Global'][
'character_dict_path']))
logging.info("Config file set to :configs/rec/multi_language/{}".
format(save_file_path))

@ -16,7 +16,7 @@ Global:
infer_img:
# for data or label process
character_dict_path: ppocr/utils/dict/en_dict.txt
character_type: ch
character_type: EN
max_text_length: 25
infer_mode: False
use_space_char: False

@ -0,0 +1,103 @@
Global:
use_gpu: True
epoch_num: 500
log_smooth_window: 20
print_batch_step: 10
save_model_dir: ./output/rec_multi_language_lite
save_epoch_step: 3
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step: [0, 2000]
# if pretrained_model is saved in static mode, load_static_weights must set to True
cal_metric_during_train: True
pretrained_model:
checkpoints:
save_inference_dir:
use_visualdl: False
infer_img:
# for data or label process
character_dict_path:
# Set the language of training, if set, select the default dictionary file
character_type:
max_text_length: 25
infer_mode: False
use_space_char: True
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
name: Cosine
learning_rate: 0.001
regularizer:
name: 'L2'
factor: 0.00001
Architecture:
model_type: rec
algorithm: CRNN
Transform:
Backbone:
name: MobileNetV3
scale: 0.5
model_name: small
small_stride: [1, 2, 2, 2]
Neck:
name: SequenceEncoder
encoder_type: rnn
hidden_size: 48
Head:
name: CTCHead
fc_decay: 0.00001
Loss:
name: CTCLoss
PostProcess:
name: CTCLabelDecode
Metric:
name: RecMetric
main_indicator: acc
Train:
dataset:
name: SimpleDataSet
data_dir: train_data/
label_file_list: ["./train_data/train_list.txt"]
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- RecAug:
- CTCLabelEncode: # Class handling label
- RecResizeImg:
image_shape: [3, 32, 320]
- KeepKeys:
keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order
loader:
shuffle: True
batch_size_per_card: 256
drop_last: True
num_workers: 8
Eval:
dataset:
name: SimpleDataSet
data_dir: train_data/
label_file_list: ["./train_data/val_list.txt"]
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- CTCLabelEncode: # Class handling label
- RecResizeImg:
image_shape: [3, 32, 320]
- KeepKeys:
keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order
loader:
shuffle: False
drop_last: False
batch_size_per_card: 256
num_workers: 8

@ -76,6 +76,7 @@ Train:
batch_size_per_card: 256
drop_last: True
num_workers: 8
use_shared_memory: False
Eval:
dataset:
@ -96,3 +97,4 @@ Eval:
drop_last: False
batch_size_per_card: 256
num_workers: 4
use_shared_memory: False

@ -1,5 +1,5 @@
Global:
use_gpu: true
use_gpu: True
epoch_num: 72
log_smooth_window: 20
print_batch_step: 10
@ -59,7 +59,7 @@ Metric:
Train:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/training/
transforms:
- DecodeImage: # load image
@ -78,7 +78,7 @@ Train:
Eval:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/validation/
transforms:
- DecodeImage: # load image

@ -58,7 +58,7 @@ Metric:
Train:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/training/
transforms:
- DecodeImage: # load image
@ -77,7 +77,7 @@ Train:
Eval:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/validation/
transforms:
- DecodeImage: # load image

@ -0,0 +1,102 @@
Global:
use_gpu: True
epoch_num: 72
log_smooth_window: 20
print_batch_step: 10
save_model_dir: ./output/rec/rec_mv3_tps_bilstm_att/
save_epoch_step: 3
# evaluation is run every 5000 iterations after the 4000th iteration
eval_batch_step: [0, 2000]
# if pretrained_model is saved in static mode, load_static_weights must set to True
cal_metric_during_train: True
pretrained_model:
checkpoints:
save_inference_dir:
use_visualdl: False
infer_img: doc/imgs_words/ch/word_1.jpg
# for data or label process
character_dict_path:
character_type: en
max_text_length: 25
infer_mode: False
use_space_char: False
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
lr:
learning_rate: 0.0005
regularizer:
name: 'L2'
factor: 0.00001
Architecture:
model_type: rec
algorithm: RARE
Transform:
name: TPS
num_fiducial: 20
loc_lr: 0.1
model_name: small
Backbone:
name: MobileNetV3
scale: 0.5
model_name: large
Neck:
name: SequenceEncoder
encoder_type: rnn
hidden_size: 96
Head:
name: AttentionHead
hidden_size: 96
Loss:
name: AttentionLoss
PostProcess:
name: AttnLabelDecode
Metric:
name: RecMetric
main_indicator: acc
Train:
dataset:
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/training/
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- AttnLabelEncode: # Class handling label
- RecResizeImg:
image_shape: [3, 32, 100]
- KeepKeys:
keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order
loader:
shuffle: True
batch_size_per_card: 256
drop_last: True
num_workers: 8
Eval:
dataset:
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/validation/
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- AttnLabelEncode: # Class handling label
- RecResizeImg:
image_shape: [3, 32, 100]
- KeepKeys:
keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order
loader:
shuffle: False
drop_last: False
batch_size_per_card: 256
num_workers: 1

@ -1,5 +1,5 @@
Global:
use_gpu: true
use_gpu: True
epoch_num: 72
log_smooth_window: 20
print_batch_step: 10
@ -63,7 +63,7 @@ Metric:
Train:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/training/
transforms:
- DecodeImage: # load image
@ -82,7 +82,7 @@ Train:
Eval:
dataset:
name: LMDBDateSet
name: LMDBDataSet
data_dir: ./train_data/data_lmdb_release/validation/
transforms:
- DecodeImage: # load image

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save