├── LICENSE ├── README.md ├── common.onnx ├── conf.py ├── ocr_server.py ├── requirements.txt └── test_api.py /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # captcha_server 2 | 一个免费开源一键搭建的通用验证码识别平台,大部分常见的中英数验证码识别都没啥问题。 3 | 4 | ## 使用方法 5 | 6 | # 为了方便大家使用,已将项目打包成pypi包 7 | 8 | ``` 9 | 可以通过以下命令安装 10 | pip install ddddocr==1.0.4 11 | 12 | 豆瓣源同步需要一些时间,目前建议通过官方源安装(命令后添加 -i https://pypi.org/simple) 13 | 14 | 使用方式为 15 | 16 | import ddddocr 17 | 18 | ocr = ddddocr.DdddOcr() 19 | 20 | with open('test.png', 'rb') as f: 21 | img_bytes = f.read() 22 | 23 | res = ocr.classification(img_bytes) 24 | print(res) 25 | ``` 26 | 27 | -------- 28 | 29 | python >= 3.8 以上环境 30 | 31 | `pip install -r requirements.txt -i https://pypi.douban.com/simple` 32 | 33 | ### Linux系统下可以直接用以下代码部署 34 | 35 | `gunicorn -c conf.py ocr_server:app` 36 | 37 | ### Windows下就老老实实的 38 | 39 | `python ocr_server.py` 40 | 41 | 知识星球搜索ID: 4198635 42 | 43 | 赶快来加入我们吧 -------------------------------------------------------------------------------- /common.onnx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sml2h3/captcha_server/4d49a191650a3dfc1da4fbc096b40007b19d5f06/common.onnx -------------------------------------------------------------------------------- /conf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding:utf-8 -*- 3 | 4 | import multiprocessing 5 | 6 | bind = '0.0.0.0:9898' 7 | workers = 20 8 | backlog = 2048 9 | worker_class = "gevent" 10 | debug = False 11 | daemon = True 12 | proc_name = 'gunicorn1.pid' 13 | pidfile = 'log.log' 14 | errorlog = 'error2.log' 15 | accesslog = 'aa.log' 16 | loglevel = 'error' 17 | timeout = 30 18 | -------------------------------------------------------------------------------- /ocr_server.py: -------------------------------------------------------------------------------- 1 | import io 2 | import torchvision 3 | import onnxruntime 4 | from PIL import Image 5 | import numpy as np 6 | from flask import Flask, render_template, request 7 | 8 | app = Flask(__name__) 9 | 10 | 11 | class Server(object): 12 | def __init__(self): 13 | self.graph_path = 'common.onnx' 14 | self.ort_session = onnxruntime.InferenceSession(self.graph_path) 15 | self.charset = ["", "宗", "认", "岚", "笋", "默", "儡", "廷", "宛", "钗", "左", "㧎", "珐", "撬", 16 | "绅", "驷", "固", "椭", "验", "掰", "凹", "驭", "酔", "瓴", "笕", "慒", "媳", "诘", "芍", "旒", 17 | "蚂", "斡", "峣", "框", "龄", "珠", "郁", "茆", "投", "极", "今", "蘊", "贻", "旧", "螃", "鎌", 18 | "偻", "饫", "俸", "滦", "搎", "诅", "绢", "痘", "枯", "穹", "鲵", "紫", "悚", "琶", "梓", "箐", 19 | "土", "赅", "劝", "喝", "摈", "盼", "钞", "莳", "蛹", "锨", "民", "磷", "瓤", "趟", "洼", "赚", 20 | "粹", "铡", "孽", "漉", "犯", "限", "钩", "诉", "雏", "汉", "尾", "酶", "谨", "巅", "数", "鹪", 21 | "摆", "捧", "欣", "雅", "们", "抢", "喟", "谆", "史", "静", "刖", "匝", "扭", "抖", "戚", "瓣", 22 | "臀", "奔", "泺", "瞌", "胱", "山", "瑞", "疏", "栲", "掷", "荸", "饮", "溷", "摇", "啡", "偃", 23 | "枇", "县", "触", "阂", "鞋", "叔", "粕", "丸", "午", "蹋", "監", "泅", "寿", "禁", "遑", "颗", 24 | "最", "问", "该", "输", "崔", "榮", "磨", "栖", "罗", "卦", "捒", "塔", "拽", "争", "佪", "谛", 25 | "浼", "6", "劳", "呀", "麇", "据", "端", "丁", "贫", "庛", "朓", "咒", "蹿", "矶", "缁", "弋", 26 | "落", "碴", "琢", "敬", "予", "晩", "胼", "专", "伴", "衣", "莨", "廉", "颦", "句", "坉", "旬", 27 | "摛", "榟", "捏", "塌", "岽", "镒", "暗", "眆", "破", "匙", "荧", "個", "椿", "苦", "界", "窕", 28 | "痼", "船", "殒", "偏", "莓", "朵", "a", "率", "脉", "犁", "師", "齑", "液", "鸯", "妳", "介", 29 | "李", "猛", "枕", "奎", "撇", "撒", "后", "办", "妄", "样", "郊", "珀", "啉", "韬", "蕲", "浓", 30 | "郞", "纭", "搪", "涓", "倌", "误", "贿", "洪", "纱", "扞", "舔", "微", "槐", "滥", "瑟", "揖", 31 | "绞", "峰", "瘗", "屉", "柜", "双", "泓", "罢", "茸", "吹", "诫", "狮", "仍", "未", "沛", "睡", 32 | "漕", "及", "冀", "吴", "伎", "痊", "瑶", "邢", "瑯", "丑", "铺", "巿", "抑", "喧", "咤", "站", 33 | "骥", "隳", "蛾", "捞", "拊", "褥", "坟", "翰", "肱", "信", "藜", "瘢", "引", "诛", "跤", "趄", 34 | "仂", "靶", "韩", "利", "嘎", "粢", "叵", "暴", "施", "摩", "梵", "榷", "琎", "诼", "涌", "計", 35 | "逡", "蕤", "剽", "肈", "纽", "雳", "混", "磅", "浑", "嫠", "啥", "迩", "乜", "灵", "给", "峦", 36 | "蔬", "谢", "瞧", "红", "勾", "畅", "鹃", "迂", "谬", "陟", "梯", "榚", "麋", "踏", "画", "貌", 37 | "厘", "婴", "切", "速", "赶", "沓", "巳", "㾄", "断", "三", "计", "垫", "獐", "刷", "舷", "醤", 38 | "掩", "琊", "陆", "斩", "亲", "扎", "灭", "虞", "耪", "僭", "犹", "乡", "了", "衾", "炎", "酌", 39 | "垄", "辞", "搏", "哎", "畲", "甘", "蕙", "优", "搜", "央", "跖", "做", "幕", "歙", "肺", "催", 40 | "芜", "棚", "撼", "谍", "拙", "昊", "暖", "妖", "蟑", "卲", "稍", "伪", "挎", "昃", "嘴", "淘", 41 | "郄", "驾", "酸", "锌", "蝗", "七", "叁", "叨", "精", "毋", "渠", "凤", "杲", "圈", "踢", "l", 42 | "虢", "秽", "鹜", "篱", "丰", "舉", "稁", "欢", "查", "骐", "糌", "血", "捶", "慌", "汪", "疾", 43 | "肢", "躺", "巍", "缎", "佼", "仗", "胞", "亟", "归", "庇", "玖", "考", "几", "娟", "杻", "霸", 44 | "董", "荻", "心", "呃", "筲", "匡", "埏", "臭", "攀", "羸", "瀑", "钓", "铗", "刚", "讳", "罕", 45 | "赈", "虹", "褂", "含", "雍", "蓍", "聒", "陈", "烷", "里", "呢", "娇", "俟", "洲", "普", "磐", 46 | "徊", "盎", "地", "溶", "绠", "陌", "忱", "璱", "猊", "枓", "婊", "走", "清", "刁", "蒲", "兹", 47 | "鳅", "赡", "筹", "竺", "拧", "夷", "响", "京", "轻", "焦", "帔", "毫", "惦", "颍", "砻", "沟", 48 | "弭", "兵", "释", "俦", "柏", "筱", "讵", "贯", "宣", "撅", "系", "阒", "臺", "徼", "蛛", "伫", 49 | "虬", "晁", "熵", "耨", "鳇", "赛", "戳", "罘", "应", "宽", "阜", "讲", "嶂", "挤", "渴", "篁", 50 | "娆", "镝", "文", "崩", "苘", "歃", "栽", "坏", "筌", "膑", "携", "伽", "椒", "交", "荔", "座", 51 | "堕", "老", "蘸", "签", "棹", "蠲", "曙", "畔", "您", "紊", "怡", "哨", "斌", "蝇", "廋", "偿", 52 | "厮", "宙", "遂", "瘫", "耘", "均", "墙", "芪", "悭", "偈", "乙", "y", "抵", "益", "岔", "淌", 53 | "阙", "鲥", "迟", "噱", "嗟", "椱", "喱", "號", "稽", "忡", "皇", "战", "围", "哇", "蚍", "懿", 54 | "任", "岁", "帜", "藓", "敢", "申", "蒙", "袄", "琵", "兄", "邪", "顿", "佞", "艮", "牧", "旇", 55 | "秒", "瞑", "材", "卓", "蚕", "泥", "纳", "寤", "燫", "视", "玫", "硗", "酣", "酯", "巩", "惨", 56 | "溋", "岑", "唅", "灾", "馍", "帏", "恃", "芹", "新", "?", "睹", "凌", "倏", "潢", "读", "百", 57 | "侔", "便", "懈", "圳", "祈", "钟", "剞", "補", "肓", "駡", "佑", "脱", "涡", "馘", "挖", "烜", 58 | "撑", "璃", "悌", "離", "嵬", "谥", "蠊", "郢", "腧", "鼎", "衫", "見", "巾", "晦", "礼", "继", 59 | "椰", "尬", "翠", "踟", "在", "悔", "箩", "娈", "君", "淇", "镜", "俭", "掠", "鸾", "倥", "潸", 60 | "遯", "懲", "对", "蝙", "越", "惮", "坤", "谝", "碉", "镊", "灼", "拎", "铎", "恺", "吗", "艘", 61 | "碳", "千", "诋", "斗", "篙", "糜", "确", "鞅", "玉", "鹌", "飞", "歁", "火", "堂", "照", "闯", 62 | "槎", "虎", "啐", "次", "衿", "布", "笑", "熠", "牡", "役", "才", "副", "酪", "嘏", "瘠", "换", 63 | "夭", "衙", "斐", "哺", "绣", "伶", "戌", "垣", "财", "嘘", "燮", "剔", "载", "丈", "退", "铴", 64 | "侮", "瘤", "杳", "吝", "拈", "溜", "禽", "澄", "鏠", "嬉", "蒸", "建", "甫", "佥", "倜", "腄", 65 | "烁", "韪", "佧", "廖", "䘵", "唑", "怨", "谗", "长", "犒", "羝", "砷", "濛", "戕", "饩", "踞", 66 | "鹘", "球", "圜", "二", "靳", "柔", "粑", "突", "陛", "暇", "哈", "庄", "稠", "勺", "婆", "茎", 67 | "妙", "螽", "躯", "廠", "振", "宫", "森", "妊", "醅", "爹", "连", "钴", "鑫", "溧", "葛", "延", 68 | "孰", "撙", "啱", "峪", "骧", "湾", "旗", "沣", "碎", "堅", "攘", "殂", "寐", "孪", "蔚", "形", 69 | "揆", "扃", "呸", "與", "奕", "智", "缆", "遗", "瑚", "粥", "涰", "顾", "螺", "燔", "阶", "链", 70 | "枥", "括", "斧", "挞", "尚", "锹", "产", "蝎", "樇", "盖", "隽", "艰", "荀", "希", "涣", "套", 71 | "埴", "鳕", "羞", "忐", "旨", "度", "挝", "共", "韫", "慰", "嚎", "萄", "腐", "匠", "蹭", "饽", 72 | "蔺", "橱", "乱", "蚜", "徂", "柱", "事", "0", "磺", "劭", "洗", "痈", "诠", "牢", "缷", "阳", 73 | "坢", "窿", "婥", "奚", "鵰", "语", "胰", "瀣", "恢", "坛", "贤", "炽", "尺", "屠", "寄", "辖", 74 | "鹞", "块", "寂", "獻", "味", "愆", "桅", "邂", "肚", "杼", "怎", "刹", "绒", "郫", "言", "揪", 75 | "遭", "嫉", "湘", "丹", "趾", "弗", "杮", "艴", "蓖", "眩", "将", "鼹", "闸", "饭", "姗", "难", 76 | "鉰", "冤", "享", "䧳", "擘", "忍", "移", "圆", "虔", "上", "识", "狍", "坐", "扩", "偕", "圧", 77 | "怒", "胝", "挫", "霍", "捕", "逛", "萼", "吏", "肉", "醒", "偎", "厂", "像", "例", "寰", "吩", 78 | "没", "追", "糅", "葺", "猕", "音", "截", "肩", "鲆", "租", "锯", "稷", "梆", "韶", "锭", "鼓", 79 | "备", "般", "裤", "蛎", "鹿", "蹑", "旷", "酞", "凉", "职", "丛", "操", "奧", "诮", "颓", "裸", 80 | "溪", "坞", "硝", "搐", "猎", "孵", "痰", "期", "聩", "沅", "绶", "权", "壳", "怆", "肠", "湧", 81 | "畀", "器", "曰", "倚", "梗", "浙", "焖", "体", "篇", "悍", "褐", "伥", "阖", "圭", "嶙", "戊", 82 | "旄", "情", "驻", "入", "蘭", "葵", "暑", "逅", "溘", "养", "鄣", "峯", "躇", "话", "伺", "胃", 83 | "屹", "窂", "剌", "准", "淬", "刻", "缪", "莴", "绘", "机", "绕", "鹅", "疟", "郐", "靥", "孙", 84 | "烂", "聊", "夼", "荼", "窍", "凄", "箕", "闷", "叹", "踌", "坦", "乳", "恬", "绳", "湮", "敛", 85 | "纸", "缸", "此", "咕", "何", "白", "幼", "澳", "拭", "芎", "结", "咋", "忾", "瓅", "掐", "腓", 86 | "悸", "娲", "暧", "蕨", "茼", "濠", "栏", "旱", "竽", "觞", "崇", "趴", "盡", "幻", "麻", "诵", 87 | "鹄", "浅", "瘦", "厩", "抨", "吮", "橛", "耗", "悴", "酚", "晷", "锺", "炉", "栋", "抛", "磁", 88 | "壕", "旖", "锑", "菠", "颼", "铂", "秋", "佛", "帙", "憨", "呋", "暄", "挨", "莽", "熄", "价", 89 | "蓟", "铭", "鳝", "骸", "陂", "虿", "可", "商", "哦", "阪", "蛟", "谴", "遨", "箫", "诤", "涅", 90 | "超", "奋", "木", "判", "炕", "兜", "吧", "惠", "耿", "回", "琦", "么", "纨", "逧", "哑", "婷", 91 | "坯", "觑", "姆", "鞥", "拦", "g", "贡", "袱", "霜", "5", "颜", "爻", "沁", "绛", "䄂", "奶", 92 | "槭", "笛", "函", "孱", "勋", "毖", "睚", "裴", "鲍", "祢", "绪", "矩", "碗", "或", "构", "栅", 93 | "谦", "遍", "担", "桴", "环", "铑", "扯", "髦", "丢", "泄", "啖", "箴", "挻", "矮", "扰", "罩", 94 | "沏", "鸫", "颇", "稼", "悯", "鬓", "璀", "泪", "汎", "芦", "雙", "铸", "锃", "刀", "矣", "西", 95 | "帼", "餮", "蘑", "埋", "瞬", "眄", "氖", "摒", "濞", "酃", "蜀", "涝", "枷", "缺", "盏", "庖", 96 | "橙", "相", "拇", "逸", "飙", "蚩", "麒", "愿", "碟", "畴", "爆", "炙", "窦", "拯", "骨", "襄", 97 | "符", "汕", "佗", "净", "镶", "皓", "恿", "抗", "曜", "轱", "葹", "曝", "媚", "获", "时", "纠", 98 | "洱", "疑", "荚", "拱", "蜗", "营", "聚", "浸", "翼", "哲", "辄", "金", "狎", "罿", "筋", "家", 99 | "棕", "昕", "奖", "驶", "梦", "留", "墩", "沤", "扔", "魅", "托", "湖", "韭", "酬", "空", "吻", 100 | "员", "仿", "爼", "寇", "缠", "承", "屦", "悼", "趣", "逋", "划", "牝", "黾", "古", "酗", "涮", 101 | "崞", "鸭", "罴", "滋", "背", "踊", "揠", "奇", "捻", "剖", "雇", "鹺", "凸", "兰", "汰", "浜", 102 | "镰", "酮", "窬", "惶", "苹", "橦", "澈", "仝", "庡", "胳", "彘", "澹", "鲋", "喇", "骰", "鹉", 103 | "樣", "彝", "颅", "氯", "嵇", "乖", "淤", "洇", "曈", "漏", "编", "劫", "豪", "禄", "孝", "绮", 104 | "媸", "舞", "牍", "班", "誓", "誊", "粜", "源", "槍", "螫", "療", "熰", "裳", "咀", "贰", "帐", 105 | "溉", "暝", "涧", "疥", "恻", "起", "齌", "哼", "乾", "动", "洒", "剥", "钙", "凖", "甄", "恶", 106 | "垂", "幅", "龇", "绵", "色", "盗", "檐", "檀", "蝴", "俗", "颡", "糙", "宪", "脖", "蜃", "捷", 107 | "丽", "余", "闺", "诰", "沭", "龉", "点", "松", "程", "饥", "饺", "紧", "裕", "遮", "宸", "豇", 108 | "霏", "贬", "迥", "帽", "霞", "楹", "淡", "鋼", "憔", "虏", "铁", "禀", "冶", "蜒", "渡", "甲", 109 | "據", "蛇", "拓", "互", "楂", "措", "踅", "亮", "琳", "呐", "嘉", "穂", "旅", "竞", "讨", "半", 110 | "硫", "捭", "肘", "舵", "匆", "抿", "冒", "釜", "盅", "朴", "诃", "庚", "沮", "盤", "眶", "鲩", 111 | "泌", "示", "倔", "莲", "麿", "i", "俪", "肿", "揩", "涂", "嗔", "九", "翻", "薨", "谷", "趑", 112 | "痢", "贩", "银", "姑", "口", "斑", "鹭", "桌", "芙", "浃", "溅", "痭", "阮", "脏", "稂", "拒", 113 | "骗", "阀", "筷", "杞", "芸", "杰", "珍", "瘸", "靠", "沔", "帷", "与", "举", "楸", "狼", "啊", 114 | "警", "徵", "猥", "擂", "吕", "淖", "恙", "缛", "汤", "栳", "捋", "嵕", "眦", "弃", "牛", "付", 115 | "毕", "鳞", "娉", "她", "缘", "锂", "=", "美", "另", "封", "早", "兔", "弛", "织", "屎", "焰", 116 | "鸣", "脍", "蛋", "窟", "從", "传", "薷", "要", "瞅", "邺", "逾", "诞", "蒂", "咎", "尸", "倘", 117 | "汔", "毒", "勢", "驳", "桓", "蓄", "疵", "崧", "敵", "氧", "腋", "妍", "狞", "缇", "缤", "犬", 118 | "戎", "沌", "膨", "蚤", "菜", "禹", "孥", "鲶", "徭", "嘅", "弊", "狷", "恋", "薏", "敞", "陕", 119 | "榭", "綉", "柁", "水", "剜", "崭", "澌", "挂", "式", "歇", "透", "竿", "钦", "须", "酾", "氦", 120 | "是", "安", "茬", "耆", "锲", "憋", "腻", "杆", "澧", "毡", "莒", "羌", "华", "雌", "省", "译", 121 | "檄", "戒", "逃", "瞎", "槃", "嘻", "陬", "择", "坑", "衬", "荦", "嵘", "乃", "挽", "丝", "龙", 122 | "镫", "坊", "合", "掖", "馅", "苒", "怛", "潍", "栓", "m", "卡", "茇", "选", "鄂", "社", "煞", 123 | "s", "棣", "亭", "腩", "峙", "厥", "掀", "爵", "馆", "膝", "随", "镨", "潼", "奢", "揾", "枚", 124 | "瑰", "屐", "尻", "只", "潦", "脂", "脯", "嵩", "卉", "壬", "钿", "唁", "祘", "哥", "旌", "契", 125 | "婉", "鯭", "喙", "谚", "渔", "测", "亡", "茹", "庆", "薄", "氮", "痪", "抉", "炫", "兽", "厢", 126 | "袜", "淆", "蝟", "悺", "帧", "葬", "栉", "版", "不", "每", "搔", "冬", "厚", "媲", "膘", "衅", 127 | "瑾", "芫", "適", "简", "渺", "挛", "蔼", "苕", "唏", "值", "把", "跺", "嫌", "槟", "讹", "指", 128 | "啦", "辙", "郑", "醋", "聿", "饿", "昭", "儋", "牌", "n", "盹", "赫", "狒", "淀", "邻", "址", 129 | "距", "蓅", "遥", "尼", "幌", "罱", "睬", "菇", "全", "冠", "揍", "慕", "悬", "疹", "禇", "耒", 130 | "笆", "跪", "篮", "槽", "寒", "佴", "疮", "父", "剃", "焕", "漩", "姬", "掇", "东", "夫", "柝", 131 | "受", "装", "江", "漾", "犾", "侥", "拘", "院", "还", "臧", "漓", "粗", "包", "车", "氰", "孑", 132 | "渝", "迁", "段", "炔", "態", "熣", "蚁", "忠", "爬", "迭", "逝", "橘", "崴", "铿", "痋", "池", 133 | "祝", "大", "域", "鲷", "影", "龚", "录", "缉", "糖", "歼", "堞", "孟", "壹", "虫", "槿", "汀", 134 | "蹇", "羔", "某", "糗", "毛", "谒", "潘", "腰", "拍", "擐", "倕", "魁", "常", "蟹", "业", "溥", 135 | "章", "失", "滤", "冲", "荫", "掌", "抄", "访", "困", "耍", "很", "房", "妻", "槁", "乐", "饼", 136 | "檬", "脑", "绍", "掘", "洵", "稇", "维", "锈", "復", "欲", "曼", "堤", "叼", "冈", "衔", "彀", 137 | "从", "鐵", "夙", "城", "门", "稔", "笠", "愧", "捎", "遽", "磔", "勿", "则", "降", "伊", "啧", 138 | "蕉", "公", "子", "钨", "岸", "放", "鐀", "惜", "胯", "隘", "诣", "黎", "霉", "哒", "耻", "溃", 139 | "存", "丫", "肐", "慧", "墓", "街", "瑕", "债", "念", "旚", "闫", "赁", "蚊", "冗", "醊", "彬", 140 | "胚", "悟", "亳", "仄", "舱", "莉", "络", "魑", "給", "僵", "庞", "蠡", "梁", "遐", "经", "咏", 141 | "缔", "犊", "聢", "對", "彷", "渤", "辩", "弥", "瞻", "詹", "纹", "膀", "酱", "熳", "阡", "缮", 142 | "朗", "喆", "足", "撷", "菲", "沽", "瓜", "牟", "沾", "厅", "蛀", "掳", "飨", "愠", "祗", "豸", 143 | "赞", "诎", "自", "朱", "等", "颐", "纫", "圏", "荡", "畜", "烘", "輸", "鉵", "蛮", "分", "袭", 144 | "前", "蛊", "揣", "忻", "券", "泛", "诲", "跣", "夹", "渌", "抚", "苄", "傫", "迈", "占", "比", 145 | "兀", "款", "审", "多", "壮", "桡", "羮", "小", "苯", "腿", "瓷", "贝", "妈", "甚", "陑", "嘲", 146 | "呕", "学", "螓", "右", "樊", "佻", "轾", "屋", "漳", "剩", "鲺", "扼", "销", "瘟", "拨", "舄", 147 | "僜", "染", "骊", "義", "费", "号", "鸡", "滑", "徘", "牴", "涯", "垮", "坳", "吟", "咯", "痹", 148 | "粽", "涟", "聘", "癍", "猝", "厄", "际", "琐", "雀", "劈", "誜", "迷", "萤", "威", "怵", "颠", 149 | "彥", "箸", "韦", "辉", "笃", "收", "患", "至", "撴", "闱", "跋", "涛", "祸", "脊", "循", "阚", 150 | "凫", "豌", "伟", "殖", "驮", "鞯", "葫", "癣", "砖", "坍", "康", "怂", "箭", "孛", "总", "4", 151 | "倾", "喀", "陪", "轰", "兆", "鹤", "榔", "薰", "裨", "魔", "愈", "祛", "刑", "星", "晏", "擤", 152 | "单", "押", "阋", "椅", "硈", "坠", "胄", "厍", "唆", "登", "熘", "板", "涩", "匕", "蓉", "屁", 153 | "葩", "烽", "湎", "偌", "谏", "项", "得", "鞍", "层", "卤", "筑", "3", "闹", "殷", "激", "呤", 154 | "腺", "蹊", "辔", "焜", "履", "羟", "吇", "醜", "茡", "貂", "砥", "途", "件", "淩", "珧", "崖", 155 | "哗", "怼", "筛", "晴", "秸", "支", "砭", "碍", "翕", "找", "橇", "粝", "寥", "惗", "柴", "藕", 156 | "摘", "狡", "蜕", "逮", "巧", "祖", "杶", "涉", "j", "伦", "洯", "赉", "技", "团", "钝", "怿", 157 | "鱼", "敦", "燥", "监", "碱", "刃", "会", "妇", "义", "愤", "压", "豆", "捩", "法", "诊", "招", 158 | "睐", "矸", "榕", "逍", "浪", "锥", "堑", "蟠", "悛", "寅", "检", "徨", "啬", "扳", "跫", "嘿", 159 | "稣", "繇", "菽", "日", "霁", "刎", "疫", "麦", "闌", "摉", "怀", "兑", "榫", "果", "桺", "烀", 160 | "升", "芒", "旁", "甑", "网", "眯", "辊", "1", "憬", "柠", "劬", "惭", "栗", "卒", "吉", "持", 161 | "饧", "佳", "僚", "笫", "聋", "冯", "滨", "彪", "棓", "剪", "樵", "郭", "殃", "神", "绁", "胶", 162 | "阅", "购", "聲", "杵", "棍", "壑", "稳", "猖", "踪", "竹", "拴", "瘩", "波", "氨", "铤", "置", 163 | "掮", "靓", "娜", "蠢", "孔", "咨", "植", "姥", "锄", "差", "儆", "斟", "鼑", "峨", "蚶", "惋", 164 | "囫", "雎", "趋", "瓠", "具", "撮", "男", "昵", "糊", "跻", "廛", "穿", "晤", "顽", "旋", "稿", 165 | "岱", "樨", "爷", "增", "淮", "闰", "硼", "励", "臾", "族", "沿", "邑", "嗽", "叭", "努", "驽", 166 | "昱", "藤", "莼", "隶", "峡", "灶", "严", "妁", "硷", "帆", "曚", "衹", "蔷", "坷", "钊", "靡", 167 | "阗", "譬", "出", "眷", "赋", "密", "概", "宦", "朕", "援", "濋", "架", "垒", "纂", "感", "设", 168 | "字", "第", "殁", "傥", "拣", "慈", "克", "谇", "旭", "巡", "藉", "邃", "簇", "辕", "烯", "蚌", 169 | "拐", "淞", "耋", "靴", "繁", "氏", "翅", "刍", "矾", "吸", "溝", "嘃", "革", "解", "坂", "线", 170 | "皲", "用", "鸢", "缄", "犀", "猜", "骼", "吠", "糍", "少", "馈", "胸", "拥", "凭", "奸", "鉴", 171 | "魍", "埠", "酉", "蔑", "灌", "晥", "诈", "扥", "噩", "铒", "喑", "拢", "柆", "缕", "耶", "锱", 172 | "堪", "黻", "翥", "餪", "诹", "恨", "腮", "琅", "镍", "芤", "堆", "轼", "望", "由", "区", "呆", 173 | "遆", "邒", "秦", "嗤", "横", "篪", "咽", "卫", "俄", "非", "主", "穰", "茯", "焚", "焙", "映", 174 | "致", "脆", "妾", "黍", "荏", "浩", "夺", "奠", "授", "书", "苟", "歪", "蹰", "积", "馨", "屑", 175 | "咻", "朔", "领", "牞", "抒", "需", "×", "掬", "咂", "飘", "碓", "萎", "母", "滩", "蠹", "睃", 176 | "摞", "递", "搴", "迄", "忲", "胡", "吨", "皿", "馀", "匐", "漆", "喘", "踽", "璋", "蝼", "栀", 177 | "狩", "黧", "榜", "媒", "批", "慷", "刽", "殊", "陋", "饲", "镐", "蹙", "璟", "鳘", "列", "帛", 178 | "茂", "帝", "圮", "戍", "鲳", "鸠", "膻", "翦", "粘", "桂", "素", "略", "工", "傻", "泯", "嗜", 179 | "亘", "证", "尝", "翁", "糠", "四", "友", "避", "蒿", "砗", "串", "烛", "赦", "篡", "道", "锋", 180 | "绿", "锻", "圠", "馐", "和", "怄", "胫", "掊", "墉", "它", "v", "谣", "埃", "曳", "劢", "痴", 181 | "服", "渗", "萁", "凛", "飓", "毅", "廐", "沫", "玻", "声", "癸", "缰", "孳", "擞", "惟", "侗", 182 | "擦", "炊", "柰", "宋", "戴", "牦", "户", "儿", "辂", "馒", "死", "耳", "衢", "灿", "岿", "芏", 183 | "h", "虮", "卵", "忘", "嫣", "梅", "敕", "浇", "汗", "佩", "揎", "绝", "僳", "窘", "牀", "癫", 184 | "洁", "颂", "墟", "蜊", "菱", "佃", "赵", "羯", "娱", "私", "蟞", "谑", "淋", "医", "虽", "莘", 185 | "芯", "瞓", "蟾", "榛", "久", "乕", "川", "橐", "女", "挺", "份", "琥", "筝", "否", "弹", "恤", 186 | "狄", "肴", "帖", "逆", "籍", "浦", "薮", "涤", "额", "礁", "石", "凶", "诱", "晃", "鲸", "匏", 187 | "喷", "推", "锤", "釆", "楚", "过", "郝", "茅", "挢", "慎", "昧", "唬", "昆", "篷", "撤", "泵", 188 | "娶", "弍", "仇", "窈", "筒", "晾", "豕", "敲", "壶", "峋", "膈", "勘", "罔", "卣", "唳", "澎", 189 | "铃", "删", "盆", "杨", "盈", "疡", "睦", "糁", "料", "啼", "厦", "屡", "辇", "插", "沪", "酥", 190 | "敷", "腌", "忌", "督", "悱", "剧", "螟", "鞘", "苞", "良", "险", "惕", "帚", "饶", "枳", "缩", 191 | "赠", "庐", "莜", "疙", "矗", "休", "鲢", "嗒", "碣", "縻", "根", "躬", "钜", "噬", "负", "氐", 192 | "内", "堡", "汇", "裂", "姚", "煌", "躁", "瀦", "穷", "肥", "苓", "潭", "棉", "绰", "辰", "汹", 193 | "捆", "镣", "迹", "俱", "赓", "刊", "蜘", "钎", "斛", "粱", "曺", "吐", "眈", "辏", "贳", "瞽", 194 | "髙", "诌", "务", "糕", "攫", "澡", "豺", "理", "毙", "茭", "蛣", "尔", "矛", "螳", "泸", "迫", 195 | "椹", "睁", "綮", "淫", "伷", "隐", "蔯", "懦", "荷", "舌", "坼", "化", "楞", "柿", "凳", "辱", 196 | "砰", "锚", "啄", "叛", "槌", "龋", "摊", "馼", "筫", "卧", "肝", "轸", "垩", "揉", "诽", "砂", 197 | "羲", "叟", "憯", "8", "若", "雁", "煊", "涪", "骛", "愎", "猫", "俏", "诶", "郧", "殆", "够", 198 | "乍", "谄", "酊", "嫰", "册", "复", "慵", "南", "傍", "蒹", "挪", "丙", "掂", "况", "骚", "孢", 199 | "饯", "猪", "腾", "轿", "绊", "穴", "疖", "头", "臂", "永", "枫", "枝", "搭", "絮", "哀", "孫", 200 | "嗈", "企", "诏", "胆", "舊", "曾", "溯", "宏", "征", "莹", "谳", "饨", "关", "镌", "哮", "六", 201 | "c", "鳃", "到", "青", "察", "鲞", "饱", "屈", "晕", "预", "倍", "淑", "骑", "咡", "鹎", "肛", 202 | "附", "愁", "粉", "促", "伸", "烧", "桃", "誉", "碾", "仲", "峻", "势", "镇", "栟", "宾", "臬", 203 | "梱", "鳜", "斤", "瓦", "馕", "祀", "笥", "酋", "草", "嚏", "其", "排", "恒", "榱", "剑", "拆", 204 | "塑", "雩", "荒", "赣", "政", "雄", "糸", "态", "吓", "补", "睾", "令", "疯", "棵", "槛", "況", 205 | "蟆", "耙", "尤", "婪", "亊", "仆", "邓", "即", "下", "胁", "英", "痞", "缟", "厉", "喂", "炮", 206 | "臣", "苩", "壁", "僧", "症", "膊", "呼", "苛", "图", "孩", "潮", "雪", "廿", "髭", "亓", "戛", 207 | "教", "面", "顼", "萏", "创", "炸", "戮", "訓", "福", "拔", "蝶", "萱", "汁", "颔", "渎", "寺", 208 | "群", "镀", "蹲", "b", "赏", "柚", "塞", "缣", "拟", "荛", "蛤", "蕾", "煨", "世", "袒", "窑", 209 | "彻", "踣", "茶", "褪", "髯", "绑", "丐", "能", "選", "幄", "狸", "侍", "冁", "湍", "吼", "鸩", 210 | "见", "戢", "鹦", "菊", "湔", "账", "鏾", "诿", "抟", "熙", "码", "9", "陇", "评", "薯", "稻", 211 | "展", "栈", "庵", "闪", "糨", "猩", "虾", "呛", "晒", "殄", "叠", "当", "五", "周", "隙", "韧", 212 | "袂", "殚", "赘", "钣", "皱", "矫", "临", "隔", "蜉", "官", "餍", "仔", "意", "低", "惰", "瞈", 213 | "阐", "荜", "谩", "储", "贵", "睫", "鼗", "陵", "乔", "故", "屣", "打", "洽", "芽", "厨", "羁", 214 | "d", "兠", "萧", "挑", "惯", "砚", "善", "洋", "旮", "俚", "吾", "妆", "拼", "宁", "侩", "葑", 215 | "谅", "渭", "伯", "怜", "趼", "跨", "鼾", "墨", "昌", "葚", "独", "芬", "弱", "索", "蔁", "砣", 216 | "士", "览", "哆", "扇", "歘", "豹", "弟", "锦", "瑜", "资", "陡", "徹", "挠", "缭", "呵", "搂", 217 | "叉", "侵", "發", "徇", "运", "焼", "铵", "慨", "笺", "娠", "伉", "甜", "怯", "阱", "醇", "花", 218 | "俇", "脐", "岐", "幢", "犴", "既", "觅", "保", "去", "募", "纷", "懂", "弘", "赔", "辍", "雉", 219 | "毓", "锁", "匿", "肄", "疗", "离", "羰", "方", "湊", "园", "钫", "朰", "来", "肫", "厕", "蠕", 220 | "再", "雾", "姻", "烩", "物", "敖", "蝠", "簿", "湃", "那", "吁", "泐", "终", "琪", "尴", "斫", 221 | "玄", "滂", "楱", "肆", "菁", "7", "垢", "黼", "鲁", "绩", "宴", "惬", "芝", "却", "贱", "肾", 222 | "啟", "劣", "燎", "咫", "毗", "洛", "醉", "抹", "囊", "葙", "柙", "笸", "盘", "q", "旆", "播", 223 | "乌", "林", "赢", "浏", "供", "柑", "羼", "卷", "衍", "铀", "齐", "宠", "甩", "硒", "轨", "翱", 224 | "朐", "篝", "杖", "埂", "累", "妨", "萌", "聃", "漫", "晚", "间", "黏", "髀", "接", "編", "苏", 225 | "侏", "骁", "佚", "捍", "喳", "枭", "溢", "鬼", "诀", "詈", "甥", "耽", "凰", "谎", "胭", "菤", 226 | "驿", "两", "蓬", "泞", "猷", "披", "璎", "为", "狴", "讼", "舰", "药", "谘", "农", "肇", "侣", 227 | "鲐", "气", "佣", "怕", "蛸", "协", "堙", "裰", "枣", "恸", "竦", "矅", "梳", "嫁", "狗", "侨", 228 | "徉", "残", "蚬", "科", "骋", "饰", "婚", "成", "宵", "悖", "枉", "莫", "锡", "辆", "羿", "侓", 229 | "裔", "帮", "逵", "佯", "忽", "居", "咬", "柳", "铝", "兴", "觌", "矿", "吊", "诩", "羽", "冷", 230 | "狙", "馗", "辢", "颁", "岵", "溺", "噻", "庸", "虍", "藏", "嬗", "瘁", "万", "党", "飱", "噶", 231 | "漂", "扛", "恼", "琰", "贼", "始", "旰", "墒", "茕", "玩", "沲", "惧", "冕", "榄", "杜", "棘", 232 | "茄", "璨", "蛏", "泉", "啸", "肮", "论", "穆", "闵", "糟", "莺", "允", "俨", "露", "f", "舀", 233 | "r", "粟", "呜", "眺", "节", "麾", "蜜", "碘", "佬", "镢", "遇", "杭", "酵", "鄙", "夜", "骷", 234 | "镑", "泼", "彤", "捡", "秤", "都", "沼", "猾", "匹", "届", "洃", "联", "铪", "咖", "涔", "舶", 235 | "窃", "榴", "柄", "嵌", "秉", "鱿", "苑", "沱", "膜", "醮", "劓", "辅", "棋", "品", "坚", "绦", 236 | "滇", "脓", "搠", "谭", "鲜", "珥", "腕", "蛙", "显", "枞", "咙", "腼", "惇", "遵", "脾", "粮", 237 | "想", "缨", "惫", "辗", "醺", "钾", "灯", "麓", "斯", "隅", "尽", "誤", "鲮", "先", "试", "鹨", 238 | "卯", "烦", "瞒", "魂", "祭", "高", "遊", "併", "椽", "郸", "珅", "虚", "奄", "沉", "如", "岳", 239 | "刘", "济", "散", "瞳", "斋", "樯", "鹑", "廓", "张", "夏", "帘", "晡", "澜", "噎", "遏", "骖", 240 | "尊", "汞", "撕", "伏", "锸", "踱", "匪", "z", "摹", "惩", "州", "讓", "雲", "焊", "甭", "渚", 241 | "咐", "兼", "潜", "汳", "镪", "忆", "树", "攻", "弄", "龈", "亏", "陔", "祼", "北", "鎚", "碑", 242 | "濆", "p", "耐", "鲰", "货", "蕃", "觚", "艳", "驱", "呷", "岗", "葭", "丟", "贲", "侯", "饴", 243 | "赊", "因", "窒", "骜", "奂", "幺", "腴", "汲", "浚", "沐", "巴", "圾", "昂", "求", "侉", "摄", 244 | "祁", "贪", "肖", "税", "钱", "榈", "簸", "狂", "扉", "蘖", "茗", "宅", "垛", "加", "岭", "太", 245 | "愕", "汶", "馋", "历", "助", "磋", "圣", "胧", "瓶", "讷", "藐", "题", "滚", "咱", "荆", "浠", 246 | "酒", "氓", "勃", "拄", "芟", "涎", "伞", "腢", "佤", "樟", "纵", "蜚", "樘", "的", "蛔", "搬", 247 | "潇", "富", "怫", "岛", "者", "市", "栂", "剂", "陨", "俯", "序", "恩", "氛", "雨", "热", "殪", 248 | "窜", "拗", "苔", "废", "箪", "朽", "筏", "喉", "俾", "剁", "角", "拖", "褿", "抻", "赀", "诗", 249 | "泡", "罄", "迪", "啃", "聪", "鄒", "鼠", "壤", "攰", "杯", "挈", "朊", "峥", "仅", "钹", "配", 250 | "快", "杠", "袋", "底", "彩", "绷", "囱", "艾", "顶", "簪", "斥", "德", "坝", "奏", "雷", "忸", 251 | "熔", "黔", "这", "捐", "尿", "迦", "俘", "蒋", "减", "眸", "棠", "鸱", "铠", "鳗", "俊", "诳", 252 | "充", "讪", "窖", "炭", "钀", "钧", "讦", "艺", "献", "螂", "纣", "饔", "驯", "炼", "菖", "體", 253 | "蚝", "稗", "褫", "罚", "x", "寞", "撖", "碰", "嗓", "旦", "薜", "初", "袍", "朋", "纡", "搽", 254 | "辣", "铆", "描", "亢", "蹦", "捅", "鞫", "珊", "挟", "杀", "外", "腈", "隧", "應", "琨", "瓯", 255 | "橉", "景", "燃", "轮", "治", "驸", "豫", "但", "谜", "楫", "阍", "秃", "疆", "蹄", "潞", "電", 256 | "本", "眼", "嘭", "秣", "喔", "臻", "阆", "恰", "反", "局", "荞", "蜓", "膄", "髓", "刈", "沧", 257 | "炬", "仕", "妪", "逑", "砌", "易", "焅", "统", "召", "狈", "侃", "慢", "亰", "兢", "擅", "沖", 258 | "惆", "刨", "妥", "昙", "讶", "萦", "裎", "逼", "晋", "砧", "孤", "骓", "鸈", "埒", "桐", "广", 259 | "獭", "鸥", "滴", "忑", "懒", "苌", "崛", "樽", "翟", "拌", "虐", "末", "绨", "凑", "颈", "脚", 260 | "控", "蘼", "葜", "贾", "烤", "喻", "孚", "鲻", "泻", "眠", "一", "欠", "舍", "皮", "莠", "怠", 261 | "卑", "丘", "熟", "骂", "币", "扁", "麝", "你", "浴", "柬", "甸", "茫", "姊", "薪", "憾", "赌", 262 | "熬", "牒", "俑", "恅", "厌", "练", "彰", "绯", "跌", "闭", "阿", "纪", "歧", "修", "荪", "蹬", 263 | "殇", "诸", "培", "缈", "呯", "似", "腑", "棺", "曹", "算", "榨", "耸", "樂", "骄", "湛", "衡", 264 | "寡", "菘", "馄", "嗅", "俩", "续", "亻", "近", "十", "葱", "鸷", "礴", "骀", "怪", "逖", "彼", 265 | "帅", "坪", "爨", "嫡", "捱", "扣", "嗑", "踩", "熊", "葳", "店", "键", "僮", "舳", "孕", "轶", 266 | "吵", "顺", "仪", "玑", "同", "跃", "崤", "割", "倡", "乓", "肯", "寨", "砸", "濯", "楮", "蕊", 267 | "郦", "买", "籁", "帕", "术", "策", "性", "蛆", "腆", "拳", "瞪", "匣", "改", "敏", "涸", "爸", 268 | "夕", "袁", "枧", "藩", "诬", "職", "干", "o", ",", "鼻", "谪", "畦", "进", "祟", "邀", "蜞", 269 | "烆", "缅", "啻", "吱", "韵", "绎", "泠", "楔", "爰", "忙", "锟", "瞿", "柢", "谀", "铅", "跳", 270 | "元", "鋫", "襙", "爡", "祺", "醛", "篦", "竴", "羚", "籽", "覆", "楠", "钵", "痕", "靖", "赖", 271 | "骡", "顇", "噜", "浊", "窄", "蜷", "村", "知", "炖", "变", "钽", "炳", "辫", "恕", "奥", "爱", 272 | "瘪", "唾", "萝", "轧", "筣", "锗", "风", "2", "谔", "敓", "铄", "钒", "莛", "撂", "姐", "峭", 273 | "穈", "裾", "鹬", "桶", "遄", "育", "當", "马", "斜", "更", "愦", "辐", "稲", "膏", "弓", "偆", 274 | "w", "苶", "恐", "送", "淄", "裱", "凍", "铢", "苋", "嘱", "萨", "轹", "佐", "黄", "谋", "迅", 275 | "撞", "牖", "博", "魏", "尧", "派", "涑", "镏", "条", "餐", "击", "剐", "踯", "喜", "麸", "诨", 276 | "侄", "釘", "蜇", "采", "他", "谟", "蔓", "昼", "仃", "䨱", "纬", "井", "攒", "炅", "舖", "明", 277 | "病", "港", "婢", "逐", "瀛", "牗", "按", "砘", "瑙", "嫦", "覃", "咦", "挹", "谲", "侈", "跎", 278 | "辟", "釉", "唉", "位", "叮", "馥", "撺", "鳄", "陶", "纲", "杏", "骈", "驰", "笙", "原", "氩", 279 | "癖", "错", "唢", "骏", "著", "邹", "状", "皂", "呈", "取", "深", "泔", "雕", "嚣", "茴", "己", 280 | "范", "挚", "夤", "又", "鲎", "桑", "飧", "睢", "驼", "巷", "力", "岂", "镁", "奉", "黥", "雠", 281 | "沙", "箱", "宕", "润", "秕", "春", "队", "容", "咆", "瞥", "铲", "王", "野", "汆", "侞", "武", 282 | "夸", "护", "铰", "畸", "胺", "尕", "缀", "记", "唱", "锰", "笤", "绚", "啮", "遁", "聆", "扈", 283 | "然", "痔", "秷", "挡", "枋", "殴", "海", "矜", "荤", "醍", "翡", "筵", "枢", "皖", "嫫", "处", 284 | "陀", "竖", "稀", "霹", "摸", "侬", "零", "傲", "谖", "挣", "癌", "幡", "粲", "趁", "歹", "伙", 285 | "摔", "涵", "笞", "舻", "蓼", "琉", "谓", "呻", "桥", "汽", "渑", "烔", "郰", "锣", "婶", "璇", 286 | "田", "苡", "诜", "渣", "偬", "袖", "勤", "弩", "踔", "捉", "桧", "许", "腔", "尉", "赃", "嚒", 287 | "妃", "跟", "婿", "盔", "阔", "害", "宿", "诒", "盛", "宰", "㺃", "整", "绌", "铬", "蛳", "悲", 288 | "异", "秀", "锷", "菰", "束", "锉", "贞", "钡", "谕", "嗦", "旎", "娃", "鱾", "腹", "葡", "疚", 289 | "麈", "笼", "看", "姹", "恭", "颤", "觥", "季", "仁", "驹", "乇", "实", "童", "仑", "煽", "榆", 290 | "蟒", "盐", "妹", "噙", "亚", "路", "幂", "赧", "贴", "冻", "救", "槊", "蒡", "屿", "迳", "桹", 291 | "幽", "综", "莆", "境", "髂", "彗", "怔", "豚", "炝", "啪", "刿", "孺", "榇", "绸", "倦", "酰", 292 | "姓", "菏", "淳", "晓", "唝", "鞭", "搁", "枸", "窨", "组", "衉", "敌", "乞", "湿", "掸", "郎", 293 | "罐", "叱", "府", "妓", "璧", "暂", "勉", "盾", "骣", "铱", "娄", "竣", "议", "禅", "亿", "菩", 294 | "缧", "志", "魉", "侧", "询", "邵", "健", "忪", "婄", "阵", "娴", "茠", "錎", "嘶", "搀", "萃", 295 | "约", "郴", "狐", "蒌", "参", "惚", "命", "折", "嫂", "鬃", "朝", "k", "坨", "懊", "袷", "糺", 296 | "爪", "喃", "話", "咳", "豁", "亩", "寝", "削", "报", "狭", "谮", "候", "啤", "垦", "讴", "唯", 297 | "巫", "亁", "向", "沥", "频", "楡", "谐", "沆", "阎", "恫", "徽", "腥", "陷", "棒", "垃", "抠", 298 | "吭", "妮", "各", "飒", "鲨", "洞", "瀚", "目", "米", "幸", "聂", "平", "酿", "绥", "墅", "u", 299 | "规", "龟", "桩", "彭", "犿", "滞", "揽", "營", "拿", "翩", "掺", "喊", "莞", "芭", "油", "榻", 300 | "呑", "提", "瓮", "糯", "鸟", "秆", "舟", "碧", "氢", "象", "钏", "贺", "闲", "疽", "光", "狯", 301 | "鸽", "无", "缚", "薇", "讣", "惺", "務", "筚", "捣", "舫", "绽", "栎", "逻", "矢", "嚓", "徐", 302 | "茉", "霄", "核", "琴", "尘", "株", "烬", "嗡", "搓", "攸", "颊", "馓", "赂", "唤", "牺", "堵", 303 | "倭", "功", "娘", "渲", "客", "裁", "谙", "说", "尹", "杂", "贸", "基", "転", "虼", "个", "鲤", 304 | "匀", "辈", "砺", "齿", "醚", "怩", "闻", "盲", "塘", "赜", "扮", "售", "笏", "褒", "羹", "署", 305 | "月", "醯", "芋", "械", "之", "现", "印", "疲", "儒", "谡", "膳", "叙", "蹴", "食", "擢", "使", 306 | "悉", "鸦", "笔", "暮", "箔", "瞩", "寮", "杷", "立", "淸", "箧", "惹", "嗣", "什", "猿", "萍", 307 | "鈉", "鹏", "殿", "傣", "羊", "秧", "仟", "射", "鳌", "称", "钺", "融", "汾", "匮", "沸", "舜", 308 | "熏", "婀", "哟", "躞", "司", "答", "亥", "猬", "也", "启", "赐", "被", "急", "囵", "枘", "陒", 309 | "肤", "弯", "航", "脸", "徒", "烫", "渊", "庒", "挥", "国", "责", "雯", "枪", "悦", "戈", "徝", 310 | "达", "貊", "票", "嚷", "衽", "頭", "阁", "蠖", "佰", "荽", "堰", "爽", "短", "氽", "调", "础", 311 | "股", "於", "麟", "芊", "鲈", "宝", "满", "铛", "焉", "页", "梭", "估", "扪", "烹", "贮", "宇", 312 | "开", "竭", "悠", "變", "蹈", "柯", "嚼", "竟", "骤", "镳", "荐", "场", "拜", "虻", "蚀", "讯", 313 | "皋", "淅", "觉", "鹰", "禧", "滓", "厝", "制", "请", "抡", "恣", "笱", "忧", "耕", "伍", "番", 314 | "所", "钻", "䀲", "倪", "嶓", "臆", "鸳", "栩", "埗", "畏", "郂", "哫", "鲇", "防", "毳", "揭", 315 | "迸", "糧", "掎", "俞", "眉", "棱", "筇", "河", "蜡", "媄", "闳", "谊", "蔫", "筐", "搅", "橡", 316 | "翌", "肌", "郡", "犄", "喹", "炒", "鳎", "狰", "逢", "侦", "弈", "身", "饕", "鏂", "滁", "眨", 317 | "撵", "泽", "哭", "骆", "卸", "霖", "衷", "跷", "茁", "醐", "磬", "胬", "岩", "狠", "扑", "危", 318 | "喋", "逊", "偷", "禺", "隋", "茨", "袪", "辛", "鸵", "橄", "霓", "檗", "鲫", "冢", "糥", "捺", 319 | "锵", "玲", "條", "瘴", "详", "褛", "恳", "靛", "谤", "睿", "臼", "蔡", "杉", "烊", "刮", "媪", 320 | "唇", "娩", "勇", "有", "呲", "瀹", "损", "蹉", "歆", "呗", "作", "决", "痛", "研", "香", "坡", 321 | "槑", "扒", "铣", "晶", "而", "傀", "菀", "践", "完", "霆", "带", "肪", "纤", "磊", "谱", "冉", 322 | "肼", "告", "囚", "燕", "败", "住", "谰", "牲", "砾", "焯", "祠", "煸", "捌", "返", "菌", "苫", 323 | "蒜", "剿", "软", "鳊", "乒", "亨", "椠", "踵", "盟", "丧", "免", "拂", "沈", "悄", "牙", "戾", 324 | "隗", "钢", "灸", "氟", "祜", "徙", "馁", "叫", "梻", "抓", "婺", "襟", "渐", "铩", "抺", "昨", 325 | "轫", "禾", "褴", "冼", "卞", "曦", "稚", "流", "轴", "桷", "污", "矽", "晨", "年", "讥", "巢", 326 | "苇", "瞰", "谠", "睛", "裹", "皑", "慑", "暽", "潤", "缓", "黛", "囤", "抬", "瞠", "冥", "毯", 327 | "除", "阴", "消", "芷", "傅", "肋", "属", "戏", "瞄", "勻", "往", "硐", "握", "姝", "直", "阻", 328 | "台", "梨", "蓝", "摧", "填", "析", "哩", "边", "扬", "馬", "牵", "恪", "篓", "抱", "吃", "蕴", 329 | "猴", "秘", "假", "游", "灰", "梧", "慗", "脽", "天", "凿", "艇", "奈", "怖", "蝉", "涴", "跑", 330 | "屯", "嘛", "蔽", "哉", "榦", "馏", "曆", "宜", "镞", "胀", "荙", "忿", "泍", "嫩", "莎", "量", 331 | "汝", "扫", "乎", "表", "鬟", "吞", "纶", "刺", "渍", "鲠", "柒", "俐", "滌", "圪", "尖", "尓", 332 | "蝢", "邮", "捂", "于", "罪", "荣", "遣", "擗", "伛", "烙", "碌", "哄", "类", "毂", "蹯", "偶", 333 | "舐", "旺", "砑", "骇", "写", "守", "憎", "别", "碲", "跬", "鼷", "卿", "僻", "醪", "愚", "搞", 334 | "雜", "仙", "凝", "赴", "蛰", "膂", "窝", "室", "庋", "导", "迢", "蜂", "伐", "谧", "藻", "巨", 335 | "汛", "缴", "豢", "萘", "茧", "亞", "桔", "部", "蔻", "歉", "效", "抍", "片", "转", "停", "苍", 336 | "淹", "温", "胖", "阑", "衰", "拉", "烃", "锅", "粳", "掣", "極", "重", "匍", "憩", "侠", "胜", 337 | "苗", "馔", "聱", "渫", "罡", "肊", "辑", "t", "黑", "愛", "姣", "荠", "辨", "舛", "玟", "顷", 338 | "噪", "祥", "茌", "些", "痳", "军", "璞", "胥", "噤", "质", "赍", "溴", "枵", "正", "讽", "胤", 339 | "庙", "律", "熨", "魄", "祷", "芳", "妒", "锐", "代", "罅", "雹", "炯", "諾", "寓", "娥", "殉", 340 | "艿", "唐", "膺", "粒", "箍", "泳", "邈", "仞", "汐", "莱", "柫", "词", "弧", "玷", "昔", "缝", 341 | "咸", "㭗", "怦", "演", "姨", "寳", "圃", "奍", "绫", "添", "庭", "逹", "生", "埔", "细", "听", 342 | "席", "疤", "玛", "御", "让", "哪", "弼", "纩", "鹗", "泊", "浒", "滔", "衲", "黜", "纯", "凯", 343 | "甍", "涨", "珑", "擒", "瞟", "穗", "+", "疼", "轩", "八", "我", "沦", "咄", "東", "膲", "鼐", 344 | "惝", "伤", "课", "注", "逗", "砒", "钥", "醴", "窠", "电", "管", "邱", "涕", "彦", "痒", "崎", 345 | "沃", "扦", "硕", "咪", "昏", "匈", "俅", "狱", "俺", "邦", "吒", "笨", "啜", "好", "行", "庥", 346 | "钮", "溲", "述", "梢", "裼", "搦", "撩", "柞", "凡", "髻", "驴", "名", "档", "针", "轲", "俎", 347 | "點", "钉", "障", "酝", "泮", "盯", "鸿", "饵", "掉", "探", "撰", "穝", "步", "粤", "浆", "就", 348 | "惘", "闽", "型", "舒", "捃", "恍", "袅", "津", "叩", "远", "煲", "圻", "穑", "习", "涠", "晖", 349 | "扶", "悃", "赎", "谁", "抽", "泰", "特", "椟", "煮", "濒", "菑", "窗", "寻", "翘", "浮", "歌", 350 | "迎", "适", "阉", "裘", "殻", "倨", "铜", "欺", "亦", "莸", "婤", "晌", "中", "拷", "説", "诚", 351 | "窥", "定", "烟", "颖", "叶", "人", "酷", "借", "嗄", "疣", "倩", "讫", "众", "怙", "稱", "皎", 352 | "训", "徜", "裙", "痉", "违", "奴", "孜", "砍", "歩", "执", "并", "貉", "秩", "粪", "蚓", "簧", 353 | "姿", "證", "冰", "泣", "硬", "硅", "必", "艄", "校", "仓", "辽", "傈", "愉", "集", "通", "臃", 354 | "寸", "戟", "椎", "躲", "倆", "煦", "震", "诺", "待", "庶", "屏", "肃", "藿", "腊", "究", "颧", 355 | "替", "e", "标", "息", "惑", "埙", "以", "盂", "强", "闾", "虑", "钠", "镂", "豉", "邯", "妩", 356 | "级", "鄉", "汜", "乘", "已", "薛", "芮", "皆", "种", "瓢", "孃", "格", "勒", "黩", "模", "诔", 357 | "禢", "逞", "卢", "霭", "煤", "魃", "止", "鉫", "楼", "羡", "惊", "蹀", "蹶", "倒", "箅", "龃", 358 | "思", "泗", "偾", "曲", "较", "濡", "辜", "舆", "诟", "卖", "仰", "虱", "手", "坎", "芥", "乏", 359 | "夯", "柘", "泾", "烈", "荟", "拾", "案", "虺", "棼", "蚵", "观", "芡", "跗", "谫", "桨", "敝", 360 | "欧", "诡", "蔗", "凋", "鞠", "隆", "弦", "首", "发", "磕", "刳", "盒", "掏", "委", "赤", "曷", 361 | "劲", "翔", "纺", "楷", "鳖", "胎", "真", "篆", "桀", "漱", "云", "琼", "造", "舅", "僡", "漠", 362 | "谈", "晰", "径", "活", "煎", "且", "膛", "绾", "依", "耀", "镯", "库", "峇", "镭", "玦", "炗", 363 | "札", "濮", "蓑", "卜", "饪", "葉", "桉", "掴", "姜", "鹊", "毁", "茵", "贷", "廊", "沂", "钳", 364 | "樱", "典", "师", "床", "谵", "擎", "订", "镬", "鬲", "硎", "诧", "着"] 365 | 366 | def to_numpy(self, tensor): 367 | return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy() 368 | 369 | def classification(self, img: bytes): 370 | image = Image.open(io.BytesIO(img)) 371 | image = image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert('L') 372 | totensor = torchvision.transforms.ToTensor() 373 | normalize = torchvision.transforms.Normalize((0.5), (0.5)) 374 | image = totensor(image) 375 | image = normalize(image) 376 | ort_inputs = {'input1': np.array([self.to_numpy(image)])} 377 | ort_outs = self.ort_session.run(None, ort_inputs) 378 | result = [] 379 | last_item = 0 380 | for item in ort_outs[0][0]: 381 | if item == last_item: 382 | continue 383 | else: 384 | last_item = item 385 | if item != 0: 386 | result.append(self.charset[item]) 387 | 388 | return result 389 | 390 | 391 | server = Server() 392 | 393 | 394 | @app.route('/api', methods=['POST']) 395 | def api(): 396 | img = request.files.get('image').read() 397 | r = server.classification(img) 398 | return ''.join(r) 399 | 400 | if __name__ == '__main__': 401 | app.run(host="0.0.0.0", port=9898) 402 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | torchvision 2 | onnxruntime 3 | Pillow 4 | numpy 5 | flask 6 | gunicorn 7 | gevent -------------------------------------------------------------------------------- /test_api.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | api_url = "http://127.0.0.1:9898/api" 4 | # 5 | # # 方式一 6 | file = open(r'C:\Users\sml2h3\Desktop\20210521172450.png', 'rb').read() 7 | 8 | resp = requests.post(api_url, files={'image': file}) 9 | print(resp.text) 10 | 11 | # 方式二 12 | 13 | # 获取验证码图片 14 | # headers = { 15 | # "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 16 | # "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4195.1 Safari/537.36" 17 | # } 18 | # resp = requests.get('https://data.gdcic.net/Dop/CheckCode.aspx?codemark=408.15173910730016', headers=headers, verify=False) 19 | # captcha_img = resp.content 20 | # 21 | # # 识别 22 | # resp = requests.post(api_url, files={'image': captcha_img}) 23 | # print('验证码结果', resp.text) 24 | # 25 | # # 保存验证码图片以供验证 26 | # with open('captcha.jpg', 'wb') as f: 27 | # f.write(captcha_img) 28 | --------------------------------------------------------------------------------