-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcrnn.cpp
286 lines (262 loc) · 47.9 KB
/
crnn.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
#include <torch/script.h> // One-stop header.
#include "torch/torch.h"
#include "torch/jit.h"
#include <iostream>
#include "opencv2/opencv.hpp"
#include <dirent.h>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
static std::string chn_tab[] = {"某","乃","菽","赅","鲍","堌","窟","千","嗡","持","补","嚅","厍","珪","郈","贱","谅","邻","嬗","絷","塩","戊","釜","玊","刨","敬","匀","塾","茞","尾","宜","梗","皤","气","穹","A","鹧","遁","景","凯","臾","觊","廛","靓","芋","嶋","毐","鸪","苻","慰","檑","癸","喂","救","怵","彰","眢","子","决","濠","溏","樨","肱","跺","佺","腿","固","邓","皞","蟭","孕","馎","越","邰","传","垩","删","竩","疹","杭","蚁","崮","播","冻","雯","锵","荧","将","畏","谏","艮","靶","遹","煲","瞾","泠","语","沭","绡","简","蔑",
"撺","魂","姚","忝","剎","蹬","@","葳","诀","钜","祁","斗","役","y","犸","癌","钴","卅","绣","其","梭","迂","亚","拈","膦","阪","僮","盐","踯","骘","復","尘","院","尬","莱","俸","搔","坐","瞭","牛","乏","冽","娱","暘","绰","蛟","峡","劈","烫","啊","剑","奶","拭","暄","露","鹜","訸","贴","孳","濯","陡","妃","衍","仿","D","草","扮","性","腼","辑","座","煊","柞","扁","缁","豨","边","坝","瓻","家","账","锗","髭","非","服","待","浇","嬴","霁","宸","吞","酊","肃","ぴ","剪","玷","剿","磋","祖","荒",
"巡","缸","蔫","咕","亷","〇","汾","噌","皊","沿","匣","莊","酌","熊","瑚","饷","钕","犷","鹖","瓣","耎","婿","蝙","火","臊",""","÷","藓","k","篮","谀","谥","裟","儣","饱","戾","徇","鞑","留","愫","盅","蛤","敝","症","诽","啉","栓","]","姞","良","诘","活","唢","芗","蚬","狮","丰","刍","擀","蓄","槊","录","本","橇","映","了","蚀","琖","走","衅","澛","辐","$","蕨","篾","狭","鲋","片","蔸","峪","功","刺","酂","褴","壎","骖","陌","弢","轸","迁","揶","檀","绪","暴","苏","韬","膳","媳","铜","鲇",
"岗","c","脊","鹭","筰","翩","衷","甥","烛","倪","魭","怕","木","凄","镖","砌","±","卧","碳","嫣","粱","奖","损","疸","嗳","叹","密","吮","聊","璁","楦","术","Y","戎","薮","铣","唯","检","婊","擎","畿","絜","辄","骀","熹","棣","缮","阉","葛","晃","证","裤","娈","暹","9","柈","休","伍","最","旮","码","戡","铐","橦","璟","戟","馄","二","扈","眷","°","盲","棠","石","获","薰","。","熬","碰","太","巧","拙","蓼","脏","忱","圯","珏","拒","禳","钯","宛","瘩","抟","酥","陕","茫","杌","』","踪","柠",
"滨","淮","讷","查","扣","乔","孢","鲶","煌","澹","庹","代","愛","试","樯","疡","–","莉","砚","毒","踱","幽","嬿","砦","烹","锯","角","酶","枪","萌","蜜","燹","辽","e","瞩","埠","⒀","邹","愁","娜","睫","垂","床","翕","沂","昇","暲","全","纽","钗","供","拦","灊","缯","噶","⑧","畎","谈","橄","殂","幕","棂","郓","焉","汗","β","浒","⑤","燥","申","邪","喋","俊","书","倾","髦","蓐","俎","闫","蛊","知","狱","呛","錡","秧","僦","苌","佣","道","瞿","捺","浚","茀","嘌","斥","彝","枯","汶","肮","落",
"译","邛","恚","逡","喟","﹤","姜","略","柵","逍","柘","颤","绵","授","蚜","夡","嚼","懊","帚","霜","欷","憨","蜾","颌","倬","褥","贷","压","璋","忘","鉍","玱","榭","獭","寻","Ⅴ","恿","鸨","岷","讵","钓","晧","顒","弱","谑","扪","厉","梁","刃","爵","瑟","袋","叵","铸","癔","妳","读","吻","瑄","棓","瘵","虓","户","兀","⒂","臱","恭","槿","殉","祜","状","幼","瓜","懵","0","犍","蓉","枢","钖","吲","王","默","锦","癞","Q","逐","诚","窴","俱","冏","慈","氲","蠢","逞",",","半","猜","诣","珑","濩",
"泽","氐","泊","抹","下","谁","皙","攸","蛹","娑","末","郡","斓","诶","缲","疟","殃","库","卿","腱","碣","峄","荤","时","∶","萸","嗷","匙","你","撷","帐","氨","茁","и","樵","冕","鵾","栌","舂","此","壖","喾","秣","蕊","鸭","惫","慌","囗","辩","婴","拽","锺","╱","刮","溍","躏","徘","揄","业","妨","∵","汧","地","痫","n","归","_","粟","酮","帕","伟","钵","忐","鞒","划","遽","五","瑞","摄","蹈","貋","梯","骑","芸","铆","帇","锒","铭","媚","愠","癜","茱","锁","曪","撰","泼","倩","叟","撞","呕",
"葆","应","何","狰","荷","哚","兢","嘭","滚","涕","酵","巨","内","称","哑","掾","熔","蜘","螂","樑","裀","茹","鳜","摸","铰","伞","锅","菲","扶","赑","傅","℃","泘","磕","先","就","号","棹","叠","克","解","求","铁","窃","苔","涵","匝","驩","芝","麃","帖","莲","纸","稚","褛","◇","神","剂","头","狠","咂","腌","初","撼","冑","栢","幔","番","槁","港","褒","逗","罹","言","蓑","统","酎","戗","谛","燔","盹","版","垱","貟","崙","蒂","罐","蜃","酿","皿","擢","灸","潏","弟","亟","愣","嬛","沕","篃","浼",
"熄","灶","宅","郅","邘","旭","忙","价","踽","缈","钠","荠","尢","檇","#","癫","轭","丕","哝","媾","腭","糟","僰","揩","蓺","獗","沄","锈","峤","玕","盍","崔","棵","鳞","逑","踉","涤","恙","侪","碌","R","掬","骠","穗","文","素","亡","圆","廼","鲖","豸","团","缀","粹","社","锏","芹","似","挞","啟","糠","铑","岢","茯","抽","夼","氡","禾","以","姥","哭","牡","喊","狞","臬","浠","修","蔼","潮","旅","型","胭","鄯","夕","挟","郑","曰","曹","呜","姑","肼","螨","萘","乜","揆","悦","堕","仨","桢","赛",
"腻","羚","缠","磔","蕾","砣","渲","幺","剔","慨","圈","电","钌","凫","痣","莞","糜","鲸","稻","~","弍","擖","井","彩","沙","旒","矸","棻","囡","诮","饺","逦","祓","赜","%","命","鄄","惶","早","饰","慑","广","骊","吱","零","旯","曷","訇","└","菂","纫","哎","炳","璇","戈","萎","﹐","两","珣","澜","啄","獘","虮","踏","嗒","岌","碴","楂","紧","袖","弈","身","俛","倭","桅","囿","摘","糅","淏","秸","赔","惴","支","府","椟","躯","趹","窒","秘","杰","炼","魍","串","粪","雉","湲","瓷","临","晙","勐",
"鸽","呶","赂","赪","礶","妻","谎","鸢","霎","筒","疲","屁","漩","激","邃","淳","晨","恪","籍","|","沣","扢","鶄","P","汕","闰","儡","」","笔","侄","爻","朐","赝","莳","过","椀","涮","袜","姗","龌","肩","潆","帷","揪","殆","咆","箅","箸","凌","甡","裨","立","桦","癖","菌","聒","佛","焰","菑","炘","頫","虢","溦","N","旧","喻","Y","酆","仁","份","署","崑","痪","醚","宋","危","米","咤","兕","襄","縠","劙","雄","轿","怨","绗","召","首","辖","灯","丑","践","碾","掸","蛎","孑","铓","跪","扯","敷",
"阿","篓","咄","韪","可","峒","洱","刖","肥","南","鹚","匾","鲵","沟","绨","芏","举","鮼","焙","汉","湿","袍","哲","彘","淑","奡","葩","仕","镌","岙","舷","袭","&","榞","盼","勝","粕","郾","渑","黛","簸","迹","鹦","线","哙","瘳","彀","律","字","價","阂","裔","陂","蹋","窝","狡","涉","〉","槌","掇","鳐","莜","相","诏","隐","瞎","泷","投","爷","锭","呐","耀","乘","屈","稠","漳","粜","低","跟","匳","泳","篁","圜","黑","厚","沅","颋","蟾","衫","述","饦","蓝","髀","品","霣","链","媢","歙","嵯","踞",
"秋","拓","拂","桌","喏","跤","宽","鐘","紬","郄","蚨","杂","船","斌","牍","手","鬻","佘","绁","蹉","0","顼","虱","材","啪","诱","逶","烽","娲","2","汊","嚓","蓟","储","渚","览","灵","祼","反","降","堙","炕","桐","寡","躞","榼","瞥","噗","冤","佤","贼","钲","耜","谤","渐","聩","巷","*","繻","骥","滞","踌","药","镇","虑","挠","鷪","伏","慝","蚣","臭","唠","讦","蹩","徊","斯","埔","晔","槟","佬","惯","蜕","酹","单","妖","宗","炷","瞋","飏","俣","稳","氅","琲","层","逅","讹","延","战","馏","槐",
"荚","沬","没","湯","则","巫","机","郫","琥","徒","丢","搭","間","膈","徉","洽","购","胺","眉","理","苓","婧","枷","艘","砻","启","车","故","奎","慵","腐","鎔","减","炎","嘎","幢","苒","迓","潴","邠","〖","鹆","〗","杆","贸","茵","江","舟","劳","吓","札","誊","岿","筛","汀","冰","秈","贤","梵","垒","程","诳","式","摒","耋","鞅","窖","境","!","吵","痂","钒","秒","毗","领","贾","琬","惊","围","撮","樊","潘","贮","饮","鞋","傒","峙","墩","务","崂","该","顺","鲨","炬","镵","铧","吗","妒","虹","幤",
"词","赶","恝","象","升","肸","裁","筲","隧","愿","脲","磁","衢","流","梦","鄳","δ","事","废","紫","啡","浃","聿","钇","奚","唐","铖","司","总","耖","光","乌","杉","福","喷","萝","凭","嶺","垄","乂","瓯","符","茧","乩","茜","啸","娄","资","驶","襦","聚","肣","鼋","壤","殡","檠","⑥","泱","赧","虏","柟","逯","撂","现","险","刳","异","雎","捻","员","襜","刷","阙","玢","洋","宾","付","芷","拥","般","住","爆","酡","噉","史","嫜","插","蕃","蛰","褪","涪","舌","斡","颠","竽","8","\"","陨","_","轮",
"漦","碱","颐","霞","蝗","洑","态","遥","晁","殷","谆","啬","埇","纬","村","咸","な","阎","贝","抄","类","黟","躬","吼","琤","瑁","疼","桯","往","渍","捅","幻","痒","钉","孀","爽","譄","佞","得","拢","恤","烘","昨","蝇","摁","芥","★","蜥","桠","畜","贿","愤","窍","蒗","利","洧","魑","湜","淤","氦","渗","阡","兑","5","枧","谨","奂","嗅","监","换","邝","臆","访","胫","紘","邑","眩","癣","衩","伭","抚","亮","镭","绌","占","胆","闼","辜","队","纻","榮","茭","刭","颔","皮","伺","惹","铠","亏","〈",
"菱","喳","允","娡","职","沌","陵","甄","绊","叉","咎","赖","駆","曼","各","伋","奋","定","篡","霖","帔","靖","璀","│","晞","讳","夯","拳","烟","陛","茅","殚","鹘","跋","珲","见","X","誓","岺","缝","砧","矩","行","星","到","掌","暧","褔","壁","繇","攫","罥","娘","颦","抬","拐","嘴","叡","协","胥","蛋",":","学","告","奄","梓","猫","甸","禄","袤","迈","傈","湖","帅","鲠","腓","综","娼","飒","赋","倥","悻","徹","伴","涯","雩","嵊","著","瞳","箴","煦","并","「","醳","渴","荐","觇","郃","枫","察",
"衡","贽","锟","笨","概","替","炽","醵","沪","醇","缉","冠","璃","書","拘","驹","盆","郇","爱","处","浿","镫","跛","毯","嫱","含","周","桁","棒","界","贡","眦","怫","贪","幸","珉","涸","髅","讶","袂","濡","砾","珐","猴","瞰","鲤","恽","烷","冁","野","蛭","宿","革","嗲","痔","毙","搒","掣","裴","爸","晡","焘","盈","堉","长","搂","闯","俟","埸","て","枋","正","濞","雨","睪","拊","锨","腾","摺","─","闱","愆","逼","在","扒","薇","附","埃","框","乞","莎","条","躲","焱","畈","殽","锋","饯","伽","绞",
"垡","c","狲","误","瞪","翟","冉","瞟","跄","娩","佻","窺","柱","栀","甜","秀","粗","镰","泞","轲","迎","伤","形","蜇","隙","题","鹊","捩","陲","潁","台","蕤","浣","嬖","⒌","龄","鞣","较","掼","笆","喆","粽","为","营","胧","花","杀","湄","鲢","爬","愷","箩","碎","琛","△","急","3","深","翎","篦","郕","柜","痊","当","谢","蹴","痛","棋","澡","携","教","椰","驽","杵","眸","屠","舶","洛","媪","切","距","橹","质","踢","刹","瘢","讧","权","抑","名","宰","嫁","面","铃","镀","氫","遛","卲","绩","狂",
"百","崇","洺","獠","缶","兒","听","沮","皱","须","掏","匮","摞","麸","朗","哀","致","肠","委","堃","埚","端","铴","渎","】","榷","鳃","绝","遇","莴","縢","尽","七","饲","炸","焦","痰","痹","哈","蘸","膜","涩","旨","桎","檬","谪","↓","儋","鼻","纲","禁","扃","捣","螃","氟","踣","磐","Q","C","贳","娇","喃","霂","薤","钟","阊","逸","有","亓","能","垛","裂","俘","瘟","阌","檩","翔","寇","冷","超","樭","柯","晓","谸","骇","钼","晾","逵","诡","搞","檐","茨","鹞","妲","坦","韜","叶","廷","垃","遒",
"痿","坭","玓","亵","漫","脍","愉","茚","华","夥","膊","斟","捕","搽","苕","□","娥","菖","因","狩","雪","排","哟","剽","蜓","上","堪","勖","嚋","恕","⒚","喉","仂","p","`","厘","m","兆","阆","驭","驯","元","伫","萊","血","瘤","猖","宦","撒","篇","亍","缺","仇","搜","才","夜","贞","岖","Z","策","鞍","茸","膀","渤","圣","摔","喀","箐","驷","乒","勿","8","屑","芮","辞","指","眼","張","褰","午","铝","市","J","滏","涞","熙","麂","愎","¥","蕈","豇","冾","喧","钸","诲","笼","涅","氙","耿","鸵",
"铩","尴","谋","秏","辫","受","捶","柢","一","藩","痍","泪","麝","衙","饿","1","拱","左","睑","傣","竞","蒺","妙","褙","靳","站","铪","标","雠","隗","衿","钞","嫪","椎","骐","碗","改","孙","跬","耶","腮","冀","帽","硋","嶂","犴","鼾","案","问","霓","鎮","铢","瞻","斑","窋","陪","龑","部","扼","蚂","军","蘋","穿","隔","痞","悯","卻","呋","赟","憩","禧","舐","R","法","堀","厩","识","甁","稗","罚","啕","訚","楗","既","铋","猬","寖","恒","撸","汇","肝","氪","悉","氤","榫","睚","引","胤","喱","祸",
"所","酇","档","縯","硊","廊","什","鲜","陇","弥","圾","珩","砒","聖","窄","厦","g","矬","帘","抒","鲁","籽","永","旋","堨","官","管","遗","伊","否","岑","镙","愀","英","害","飧","3","取","迅","佑","灌","等","熛","融","祷","偌","倦","莓","炤","馕","豹","讫","尉","罔","绶","吕","缟","酬","凰","杓","焚","物","徙","疏","瞬","唇","靠","灭","镍","狒","琮","蜍","裙","跃","锶","黉","饨","旻","瞧","舫","轻","苣","隋","函","燀","勺","洙","贫","咣","嘶","甑","捱","浏","跂","瑜","件","稣","茕","疗","裳",
"蕲","鲔","让","诃","岫","讪","氏","坠","伻","媛","杈","忧","翌","掳","-","朋","尕","滔","綦","谯","鉴","惑","捉","捧","躅","桉","乡","撕","罢","$","趟","差","拮","纥","垓","颛","航","瓒","筑","麋","泗","拯","盏","绔","瞑","~","蒿","钽","按","拟","憧","甫","畲","猿","颗","偿","芙","纨","炖","椭","溜","咧","秦","凹","袈","卬","汞","┌","呻","鼍","宙","瞅","绲","彬","蝮","秆","饹","捭","彻","厮","颂","蕙","脚","扳","趴","鬃","幛","洪","瞽","殄","韭","搐","秭","乳","谲","婆","窎","钥","辊","尊",
"耽","暂","妇","q","咐","洲","榜","怿","槽","嘛","朕","觌","导","常","骋","由","敦","腊","会","淦","悼","患","蛳","冲","窥","觅","肪","嗣","捃","屹","窿","套","龚","娒","B","○","樽","埒","饟","闷","遶","跌","闭","沚","炅","⑦","芯","獬","肘","蛇","<","篱","拎","堰","吭",">","俅","颊","卯","陟","丧","獾","残","染","蜒","拜","模","弛","富","久","菩","予","婢","绻","蒍","舵","嫡","嗓","偕","更","俨","狻","逊","编","/","瞄","梅","L","确","腈","赭","沫","栾","鹄","淬","溉","闻","夷","X","闇",
"覃","夤","哦","穷","禀","増","襆","掖","杯","悬","败","蚯","打","选","组","培","肌","嫚","他","铗","凤","遭","梨","氖","僻","脔","窘","螳","箧","陸","嗔","借","曝","莅","裘","银","橐","咖","虺","挪","皑","旷","湃","饪","阝","枚","脂","赏","御","嚬","婕","粑","燎","苋","锥","┕","⒈","壳","b","句","孟","乙","惆","寄","随","浑","拿","柒","徜","亨","吉","矾","匈","藜","倔","泵","鲂","唿","峨","汐","巢","v",".","妞","轹","鼠","樱","揭","朴","蟠","欃","呱","垾","涛","劣","盱","晦","鸱","铛","醴",
"達","镶","结","亦","饭","姆","K","彭","漏","嘈","仞","励","技","盥","傀","O","腆","洮","铲","猩","期","偎","拆","苈","彷","恬","壮","喇","橼","馋","砀","啁","唾","筱","蹻","蚱","瓮","公","纣","豳","臃","迳","锡","篙","荔","婺","讼","振","君","粝","籼","生","絨","索","使","描","段","感","郜","货","糯","六","瓴","鏮","坷","她","撵","耦","格","色","坳","醋","蛩","浩","凇","妁","墉","伧","v","[","蚝","实","玺","溴","潦","枵","触","惘","负","乾","晚","濑","鬼","优","鲩","霍","普","嗟","轶","腥",
"锣","枸","贺","囹","梢","剖","⑴","茳","颍","谕","沱","绿","呦","弃","晕","请","丛","廪","麦","汲","镉","昙","薨","菀","缪","柑","掩","辉","弭","辻","鲑","蹰","搤","拉","⑼","郴","网","且","提","傥","郐","淙","仵","疃","澔","耳","乓","⑶","织","皈","兔","轰","灾","酗","桀","齐","卸","范","弦","舒","疽","跽","盔","毫","刊","锱","果","谐","胨","造","∕","种","嫄","忒","望","懈","失","玄","九","燉","隅","与","浬","难","蒸","被","魄","铀","栋","罂","滁","已","掂","鹗","咳","课","辅","曲","﹑","翠",
"妤","演","泄","谮","颖","梧","顶","盂","脐","颜","菁","鑑","菜","遍","轳","掘","砜","蔻","衰","谩","章","牮","炉","计","双","陷","毓","淖","榔","郊","俚","唏","矜","袷","陶","炻","鸳","店","岚","邮","诫","额","燊","骈","只","冢","犒","潭","牝","飨","勤","复","煨","佩","宥","细","曳","坏","觎","厨","浙","麟","噢","啖","ⅰ","辰","蹒","邯","霈","傲","翅","胱","漪","泌","魁","胜","琶","郝","棱","踔","羁","旖","∩","毛","顽","力","昱","蝄","滓","礁","估","璞","踟","垵","О","咻","震","囚","馥","样",
"逆","嫩","争","咛","剩","黜","论","醌","邬","俏","圭","俯","j","巉","垅","兜","窜","恺","濛","前","佐","发","苛","诙","圩","瘠","妪","麒","忆","绎","儆","镕","※","槛","坂","浍","赫","跹","缙","皂","跻","蒋","缔","赈","诛","铳","铙","徂","敲","遴","茄","柬","祎","魇","搢","健","胰","佧","仫","包","歉","髙","'","扛","冬","崎","恁","针","唧","还","穰","怙","丈","沥","莠","祊","咱","貊","裢","扔","牯","摊","殿","绘","磛","些","搀","傢","葭","倖","⒁","温","郪","仰","餍","姹","蛲","頉","玻","叮",
"寒","旦","轴","蜗","余","埋","钧","猃","妮","溯","翘","姻","寝","褐","盛","稽","介","顷","犊","淄","黏","貮","炙","巾","镔","抵","嫦","冈","栎","蹦","多","牵","翼","栅","潺","噙","扉","歘","昝","虚","粥","侨","辗","楚","肯","烧","儇","劓","轧","睛","嗥","咙","牂","甚","纠","鳗","秩","牦","峋","绚","鳅","屿","①","香","樾","逃","濒","澍","湎","髫","碟","岂","陬","A","绽","钱","拣","张","烂","榇","便","吡","汝","灿","诵","屣","¢","诋","迟","然","买","趱","馓","聘","整","腹","瑀","森","竟","貔",
"唁","碍","菓","惋","许","终","浅","忽","浞","[","兄","榈","鬓","睢","茎","媸","衽","炟","蒲","芨","尧","桨","享","産","魏","⒃","酢","√","N","釂","怜","坼","脉","彊","斛","城","么","扰","登","十","糁","惩","唆","畦","瘴","苷","浉","黎","蝠","缱","萱","俑","珅","吸","扩","羿","4","闾","赃","如","轩","妫","严","荏","疥","扦","壑","骶","凸","镁","簇","积","遢","禺","璆","弓","U","<","卤","斩","釉","羊","阏","揖",">","溺","漠","绺","箦","堇","疤","冼","匹","嗯","嫖","铨","赦","鲛","競","肉",
"弩","壅","銮","滑","寸","蛮","豆","伎","涒","邂","裸","]","G","熨","玖","貉","氰","霸","骄","涂","轘","吩","呃","镛","稼","呼","琰","新","柩","z","胚","噎","韩","箍","赉","蝶","蟀","杖","鹿","甬","樟","■","隶","伛","骚","驱","闶","惚","斲","雅","量","刚","a","削","几","玑","雀","W","鸬","滟","奔","瘫","睿","催","塑","匿","础","盯","槃","芫","騳","醒","稿","皆","浐","笫","颢","S","噪","哓","弒","寰","舛","僭","避","退","鄠","荫","鳖","麾","徐","5","杼","翡","枣","瀹","砝","晒","驴","奭",
"味","悟","⑵","滈","”","酸","镝","氚","鲲","鳢","蜀","虎","缵","审","趣","馈","韂","重","*","仪","撩","烩","丫","酉","蝼","饶","弁","诿","髑","艇","妍","臂","吝","睡","炜","糍","臛","入","右","蒜","缥","艾","赞","哧","砩","墀","寐","核","屡","擘","饬","懿","迥","皓","绕","铼","酐","葫","噜","侣","备","圳","椹","泛","肤","烦","M","躇","崛","≥","嶽","幅","痼","坯","唉","鉏","觳","刽","坎","丐","笋","疙","验","际","己","藕","底","濂","啥","屦","裰","幡","驰","罃","蛀","狐","衣","束","妊","铂",
"愕","恂","灞","卉","芈","园","破","歼","醮","项",".","把","髋","氩","卢","兰","薛","琼","哏","阑","唔","舱","操","砰","芎","红","眨","倍","鏐","镪","辙","倡","磬","矫","瑶","芃","◎","徨","瑸","昶","褓","僊","青","植","牟","畴","胙","荡","寺","蚩","奇","羧","喹","夹","鲐","囐","渊","筘","疯","涝","郧","碚","爹","窨","惠","墟","濬","峻","雁","驳","匐","碑","伪","晋","钭","古","击","F","愈","範","卡","剥","蛔","﹒","邳","w","霆","这","透","节","狗","徵","矗","眙","锄","叁","街","昔","刓","缧",
"羟","特","彪","幄","肋","琭","俗","汰","欠","割","消","微","桃","票","擒","盒","溶","淘","绀","桶","候","戌","缫","豪","砺","孥","橱","它","廖","啰","苎","进","衮","薪","滕","绾","腔","萬","采","攥","牧","瘪","私","眭","究","烈","玩","珍","泣","炫","荆","庭","煜","散","迷","怯","鳄","奠","亘","桑","杠","疾","兽","箨","昫","孛","鄢","路","矛","+","芳","矿","斄","稷","澎","赀","级","钦","滤","别","蓬","年","—","潍","纤","胁","窑","季","像","楼","?","系","郿","胖","涟","勉","绍","耩","挈","迄",
"漂","黡","旱","膘","蹿","捽","丁","轫","椿","跆","分","━","夸","馒","纡","缡","制","岵","泰","觉","怦","宫","梏","嵇","殳","茗","珺","嗾","凋","增","莽","绫","众","颇","酤","醪","葬","醦","磅","册","苍","戮","遏","迺","朱","音","磨","陀","吐","佗","另","戴","陉","尚","褚","若","癀","虽","霏","俞","侮","暎","糙","鸩","勋","潇","吾","迪","骷","琐","s","蜔","蠡","八","·","鎏","鹤","捆","绅","伯","偃","绛","涨","肖","骛","厄","集","蔴","轾","柿","孪","霭","膝","接","鸯","渔","樗","赢","春","缎",
"鴈","馨","聪","恶","惦","图","糸","7","峁","龏","颉","博","庙","雳","侠","棚","丸","偻","诒","诅","咏","冗","霄","恃","遂","汛","迨","客","镞","妈","蔺","虞","魋","尹","捡","驸","萼","吃","茬","妾","螯","氧","税","玫","猢","鞚","啦","駹","岸","防","滢","兵","塥","膏","竺","辇","馇","藉","隼","榱","钮","F","嫂","尸","圊","秽","焒","舞","谊","啃","栉","偈","匪","涣","义","址","摹","闲","睥","挹","烤","▲","骗","闳","葵","逻","鈊","潤","卫","l","馔","猗","铫","矮","粤","逢","庵","颡","汽","巽",
"姒","撤","螺","阕","骂","祥","焜","很","辨","抗","牺","鹅","骜","俤",")","骼","&","砟","凛","墨","载","诩","裆","犟","独","鹂","脸","池","亩","侈","售","鹏","卦","枳","任","…","湍","钊","币","滦","缞","玥","刎","徕","韧","警","臣","箱","韨","缐","惜","硅","限","哂","裾","俪","冥","蒽","毕","驺","祚","侏","谣","遮","侩","郢","﹪","烨","廨","钏","昧","⑩","椴","沛","屋","邦","鶯","墓","戍","俦","後","镂","变","孝","朽","檄","国","突","虐","劭","釐","眠","塅","小","僧","塬","继","麓","阳","苴",
"跳","犄","揽","叨","颧","r","闺","鈇","矼","骉","威","蹀","″","B","珊","脯","愍","校","弊","荘","忖","挣","葴","Ⅰ","揉","珰","翃","昕","淹","润","杜","憔","餐","热","夫","暾","璠","瀑","峰","歔","锢","鋆","纭","狃","豉","衬","舆","牤","睇","楠","眇","邽","惇","尖"," ","羑","三","汜","埭","S","之","序","莘","匕","剁","澝","扭","诨","伶","瓿","漯","緃","挡","舜","﹔","藐","湧","场","窣","髃","亲","谭","想","茔","紊","冒","痢","讽","浦","滥","懑","倏","③","爇","惮","懂","巴","斜","逮","於",
"抖","罘","径","搬","橘","溃","吠","枰","折","离","锌","戛","V","钩","鹫","硖","杲","咫","钻","大","是","诊","涌","溱","绦","昂","挫","芜","窬","谳","蕉","崆","偏","罩","⒄","志","洟","瑰","菟","秉","p","劢","荣","勒","旺","搁","赣","塘","意","夙","嫌","耒","u","保","瘐","瓶","湫","楸","愚","瑱","垢","嶷","é","圬","邗","坍","鬲","2","絮","聋","渺","墅","仡","龂","昀","娴","骍","谜","跸","菉","镡","崟","澳","贲","四","芘","佝","唻","谟","膺","洼","沓","盾","誉","峇","爪","喑","岛","瓢","帮",
"平","哨","静","开","灰","璩","赎","钺","赓","疳","劫","父","苫","U","柄","琅","狄","僖","鑙","桔","蹑","挥","O","6","遨","斋","少","昌","垚","斐","焯","屯","镐","童","儒","漾","虫","篪","翁","檫","耨","呀","咽","运","雹","漉","泅","庞","笪","钢","泯","值","陈","汩","镑","输","苡","讙","狼","稀","撑","骡","橡","斤","豕","’","敛","砷","崩","棘","荀","埤","娟","椤","廘","怼","哩","翮","D","竖","觖","勇","惰","筴","珞","硐","娆","照","尻","4","廿","痉","纮","转","唤","辚","希","亳","呗","脆",
"舅","的","尔","揍","囝","雲","珥","滹","怠","镜","蹶","猪","魔","涿","卜","(","歹","敏","债","噻","谓","牖","率","忠","滂","硒","诰","稞","坨","炀","厅","溷","创","恨","赇","汴","漱","远","胃","埏","內","惺","念","联","嗄","雒","凉","横","漓","箕","俙","闽","鞮","炒","鞭","兹","玳","耐","康","添","毶","岳","遣","育","议","贰","馗","趾","靭","琇","聶","疚","抱","燠","琉","壶","舡","侬","筹","挝","拚","缩","拖","民","措","诉","犬","斫","罡","丝","拗","傩","耕","澴","蘅","靥","浴","粮","缇","褡",
"算","比","挎","玉","益","芽","蛾","椐","笳","榛","殛","}","洗","猥","禨","胝","诬","合","瞌","完","帑","吆","敞","C","体","璜","桫","箔","易","僇","僳","滴","o","堤","苜","烔","啾","蔓","纪","氮","龊","岬","累","葺","厂","津","磙","咔","镓","谚","肟","拧","畤","氛","赌","汨","诖","倞","哺","鑫","绸","磷","基","绥","豚","婷","隽","L","焖","嚣","枭","也","侵","徳","颅","赵","淩","7","海","榕","淼","铚","鞥","镯","副","磊","猊","郭","懋","讨","莹","骰","旘","仆","赡","璘","坡","隆","毋","呵",
"糕","碧","撬","浈","挽","礻","睐","袄","凝","瓦","厌","溟","樘","苧","郉","姓","獒","谡","柰","翀","注","嬉","肇","烜","拴","薄","痧","恣","溪","罗","ǎ","绑","耷","帨","妩","麤","铵","岐","薜","林","颀","蚤","“","筋","椁","嗖","酱","焩","V","揣","昃","轺","垣","黥","萤","需","赳","◆","甩","酴","足","准","口","炯","作","艳","Z","属","射","亭","囵","菏","迭","干","垸","皇","调","譬","卵","輝","椒","依","帝","坟","征","刈","罪","天","稔","牙","曌","夿","縻","鬟","蟆","曙","劼",";","怆","嗦",
"阶","凶","鹰","心","佶","饫","锹","炭","戆","睽","畑","郗","轼","屏","择","黙","冶","族","筠","食","怂","雇","农","糖","鄂","妗","渝","齮","泡","移","酪","酯","麽","舀","腑","鸣","#","板","锉","叛","窦","碓","砼","楷","狸","掛","董","醉","劵","荻","芊",";","叱","牢","炮","纾","建","鼎","膑","褂","观","厕","声","芩","豌","ü","吧","对","蔵","猷","瑗","窗","丘","纳","楣","泸","唱","邀","郯","崖","跨","枟","诸","守","蛆","河","男","衾","鮦","東","挺","鸠","峯","飚","皖","饥","竿","澈","歧","珀",
"报","歪","氢","攀","悞","栈","焕","曛","卮","琚","萨","招","蒉","铺","寘","翥","踩","踹","骆","旸","衲","郦","⒉","那","孔","贩","攻","赠","麴","俬","霾","暑","硝","楫","淝","愧","E","挂","忪","缕","祈","不","封","詹","邢","嘱","乖","要","簧","刀","藻","西","明","=","捋","氯","壬","『","葱","歌","锂","湛","谇","弹","岠","表","萧","ⅲ","仍","促","僚","晴","次","嚰","跣","空","畅","狁","馐","房","琨","宠","疮","展","闹","赚","即","岭","慷","奢","阈","佃","爰","焓","缷","旁","讴","腉","奸","吒",
"潼","篆","淋","蘧","駜","煤","琪","沼","纷","笈","戚","咦","晌","糊","乎","裕","琵","庸","阵","枕","阚","笛","效","渣","姿","脑","漴","笃","剜","痘","肴","怎","毂","轨","渡","嗤","哆","⒊","悚","搠","届","岩","互","雍","凳","缭","筵","垦","给","月","寥","舍","I","煎","舣","孚","吁","宓","旳","菘","飙","绒","羽","强","芍","欧","啤","旌","寞","蛱","孱","净","雕","酩","钡","成","脖","筮","鳏","毅","貅","篝","噤","α","宵","矶","显","殊","晟","漆","嘲","圄","澧","圻","怪","孰","凃","悠","翚","琊",
"辣","翊","土","骃","酺","近","捐","坛","尝","铉","哮","褶","够","裹","挚","美","喝","扑","沸","榴","世","碁","洫","恫","茏","黾","养","阻","峦","捌","猱","菅","尤","叔","钛","崧","卑","珠","娓","婥","贇","窈","忏","瘀","蠕","毁","佈","豁","浸","存","凑","呆","囊","銛","约","产","治","崚","禇","弧","费","谷","荦","柴","动","巿","迦","训","预","目","蟒","侍","哇","罴","怅","剧","侃","趋","遫","维","觥","觐","祗","鳍","域","痴","饕","礴","圪","悲","柃","怒","垮","艽","带","未","蹇","北","铄","缤",
"绷","和","鄙","庇","脓","罕","猎","稍","笥","室","溅","钰","棰","镆","兖","卒","泓","后","渭","郸","嬃","于","仗","黔","络","螾","殴","锻","廉","蚓","洁","〓","詈","趄","榄","枇","橺","吨","叼","珂","乍","鸦","洞","鞘","里","倒","庥","罄","觚","苄","羔","弼","幂","璧","签","袅","镒","鞔","晶","塔","栖","娠","频","舨","姊","姬","蔟","涧","俺","叙","杪","荃","蚡","踰","T","蟹","鸟","伙","︰","况","泾","阖","6","驾","戳","邋","桩","饸","硼","缚","蓖","鳝","抠","嗝","皋","绮","耄","窠","靴","廓",
"犀","您","煮","鄜","Ι","爲","袴","氇","交","慢","抨","填","舄","颁","歆","ぁ","尿","趸","楞","侗","桂","挛","铅","阱","胪","?","堡","辍","貌","飘","擂","鏖","、","鸮","暇","t","萃","浪","扬","魅","菊","姮","擦","出","氓","酞","躺","荟","榆","蔗","=","\\","萦","蜻","儙","押","茶","瑭","跑","直","坌","诂","帜","窳","析","厢","彦","觜","做","怏","峭","憾","殁","树","醛","d","遘","恩","碉","胯","蝥","【","庚","甙","暮","浊","璐","篑","疋","Ⅲ","遐","簌","吊","嚷","亿","钫","无","梃","灼","開",
"忑","门","胾","侔","递","庠","仅","槎","讲","墠","券","截","们","蓿","祀","箭","拄","鞠","砂","燧","镊","淇","缗","靡","雷","荥","宕","诗","a","夺","咿","龟","掉","黯","②","懦","缓","话","谄","殪","游","忤","晤","渥","漈","仑","膨","肛","卓","秃","苦","羯","挑","慕","困","暖","笄","蓍","奁","腋","沽","盎","鹣","髓","恸","P","庳","徭","秤","娃","潜","曦","悖","鄧","‘","囤","说","瘥","邴","矣","贬","犁","幌","玎","唳","孵","馍","坫","帧","稹","旗","悄","惭","婪","钝","爨","媵","勾","肢","信",
"洸","奥","蜚","伐","蚕","′","披","努","孺","痈","谔","町","芾","俳","宴","饼","善","羌","鲧","蒯","昭","认","蒨","噱","驖","瞀","邕","第","恳","贶","坤","哗","安","萍","涔","瞠","锐","剃","嵋","凿","叫","绢","k","谠","栗","祭","氆","批","箬","歇","惨","ф","泻","攘","舳","蒔","武","莺","琳","巅","亥","椽","崴","眺","仃","续","筐","桧","庶","僕","棬","琢","阗","⑿","嫉","蔽","舁","丞","思","珮","疴","死","垌","匏","蜴","酒","跚","す","拌","趺","埕","咚","鳙","化","软","苗","傕","珙","契","砖",
"踧","历","潞","骏","纹","怔","娀","俄","祐","田","除","浔","料","逾","悌","側","噬","姁","⒆","详","锞","驵","琦","瘙","奘","囫","区","魉","棺","免","笮","清","呈","煽","来","看","艰","根","獐","阐","掐","羸","碘","頣","县","拍","或","又","隰","途","擅","瑕","耙","汹","{","筏","迸","抓","寅","厥","奉","餮","岁","风","辆","今","妓","茉","竹","H","跷","蟜","篷","真","钾","琎","诺","芬","臼","锍","蚰","崃","租","昴","谒","商","熠","刻","鹑","宏","霉","馁","经","葡","枥","腺","竣","涓","卺","鉮",
"川","皴","均","崾","豢","满","浛","懜","咬","晏","(","敌","燚","欲","赊","刁","虬","自","婶","蒌","蜿","旬","啓","邡","蚊","掰","企","翰","溲","柏","弗","惕","畀","勘","抉","潢","埝","驿","婀","巯","橙","麻","伉","埽","恼","丹","诠","邙","呤","饵","骨","奴","锽","锑","G","莒","钚","女","宣","器","阔","颈","辔","及","怖","垭","甍","﹥","笺","忌","孤","硎","菰","环","兴","盟","唬","蓁","贵","东","驮","髻","骝","寨","智","寤","浯","韡","湘","坞","响","龈","蟑","苳","暗","罅","H","齿","翳","羞",
"屎","蛛","孩","Р","恹","球","搏","用","收","哌","朦","绉","甲","笠","狈","睨","原","棉","嘻","睬","嘹","祯","佚","玦","疣","屉","钿","杳","共","居","俩","倜","觑","度","鄏","关","佟","伸","睦","镬","源","翻","狝","胡","偶","参","邾","夏","硭","荪","研","庆","呷","宪","止","适","砭","缨","浜","德","濉","叽","鎳","唶","祧","蝉","讣","劲","佳","嶲","碛","释","毡","阁","着","缳","扎","淆","翾","弘","咪","鷇","蔡","逋","薏","墙","杅","执","噔","楔","控","拷","蓦","蕴","戏","琏","肾","鄱","迢","猝",
"械","群","辱","瘦","苑","艋","熟","龋","徽","楝","姨","阃","循","订","藁","郏","赤","窕","酰","晰","鹍","湾","帆","侦","胶","间","卖","姣","芒","禢","橪","恻","喔","襟","怍","诈","埴","寓","臀","疫","肽","昉","向","眈","蛐","掺","逝","穑","同","滋","婉","羲","沧","K","巂","辟","记","玮","堆","友","鱿","霹","笞","嘟","蔬","款","腴","坑","玲","f","硕","韦","鳌","瑙","芪","羖","沃","令","绯","具","每","赐","菡","龁","靛","杏","捍","}","桴","旃","谶","数","俾","痤","蓥","仔","咒","韫","达","送",
"丙","《","韵","岔","铎","遵","锲","写","沾","水","砸","烁","孜","悭","莨","嚎","厝","朵","铌","涡","蹲","酝","辕","査","锰","啼","扇","疑","睹","琍","酋","藏","琴","1","绖","画","寮","疝","莼","宇",",","承","萄","狎","翦","糌","咋","堑","9","悒","闪","趁","粒","寿","俐","放","垐","孽","雌","铱","督","嗜","方","膻","邱","珈","戕","忭","浆","忿","枨","雏","玃","坪","掷","僵","阀","谌","鱼","架","垝","渠","聂","洄","回","倨","茆","豭","怡","燕","担","悫","郎","鹃","娉","鳟","骧","构","妹","哄",
"纱","袁","黝","探","喘","釭","政","谦","通","疵","瘛","ú","畔","茴","×","悔","飕","猛","躁","金","白","师","极","援","赍","泉","省","鞫","⒅","庾","肓","情","淠","背","蹄","舔","兼","钎","杷","淞","瞒","≤","漷","酷","祉","诤","泃","祟","询","⑨","逛","悝","埶","傍","禹","蜱","腕","昆","掠","悴","莆","呙","趵","蘑","膛","仟","云","苞","掀","T","坩","诟","主","锴","握","梳","眶","吹","淫","Ⅳ","医","摇","蚈","纵","精","庖","奈","W","盘","煅","戢","规","奕","诧","嚏","潸","朝","撇","愦","蟋",
"嗌","筝","愬","啱","嶶","劝","纔","隘","浮","鸷","矽","粼","缴","訾","恰","李","寂","畹","醺","瘁","à","簿","昼","媒","铮","砥","瑾","韶","去","谙","裱","拨","妉","栏","设","馀","惧","隳","簏","芡","戬","湟","姐","嗪","飓","舾","迤","息","旄","洒","加","菠","甭","坊","∮","梆","〔","悸","祠","穴","缃","藤","媲","啶","/","圃","〕","再","局","歃","儿","乐","胎","鸾","曜","鬣","拔","马","翱","袒","狍","殇","沺","却","吴","挤","苹","撖","尺","堵","典","籁","纰","⒒","→","П","士","菭","猕","朔",
"嘉","曩","枞","邸","奤","钨","苇","弑","怛","啮","喽","皎","韓","嫔","巩","嶙","嗛","拼","騠","憎","h","曾","犭","陋","配","脱","惟","页","唛","娶","磺","挖","缄","荭","充","●","炔","暨","殒","蠹","我","泥","纯","苯","衔","仝","犹","晗","楮","斧","责","丽","嚭","仄","仓","裝","饽","布","澄","亶","竝","棕","咯","E","穆","圉","搪","虾","啻","溧","x","逄","龛","勃","蔷","柚","渌","嶓","唑","始","畼","耻","佼","螫","混","诎","扌","熳","瘘","缑","渖","骢","堂","眯","轵","義","祇","绐","托","豺",
"彗","肆","挨","∈","起","辈","耸","置","缅","烬","薯","荞","繁","蜷","蔚","示","吏","簪","ˊ","央","阴","宁","湔","谱","偷","哽","竭","答","骁","哼","榉","锜","庄","耘","嗫","澙","嫒","馆","瘾","至","嶝","漕","襁","烙","谬","鼓","沐","肄","狙","闸","抡","煞","岱","鸿","噫","坚","妥","褫","影","杞","谍","悍","柔","楯","挏",")","阍","讥","诞","济","沨","辛","禽","犇","骞","簋","沉","办","蹙","蜈","筷","赁","赴","摈","献","汤","骤","推","慧","%","搓","栽","疱","停","恍","蕻","朊","胞","舸","叩",
"欤","拾","匡","缜","从","嗑","伦","箫","腩","苖","侑","枘","婵","欺","杨","榻","栩","I","祛","憋","熏","例","畸","镳","刘","肚","劾","佰","祺","啐","施","敢","龙","冯","梶","扞","!","捞","粘","殖","逷","铬","邺","弄","羹","钳","桡","追","侥","绠","ㄖ","练","飞","☆","酚","睁","茂","彤","洵","奏","日","咨","嘤","顸","老","蹊","锾","剌","艺","昏","匠","瓠","夭","惬","席","黠","藿","卷","讯","‰","募","括","竑","肺","株","{","逖","髯","黍","呢","踅","徼","评","钤","恋","辋","佾","帼","淅","阜",
"印","啧","绳","班","鄗","考","股","瑢","测","汪","―","滇","坻","馅","镗","鹁","兮","嵘","胍","忻","牲","攒","嵩","摆","泮","朣","啜","窭","﹖","摩","骸","巳","邈","矢","枝","胳","屺","州","缢","蕹","烃","湮","点","M","憬","欣","姝","楹","溊","垫","蜂","疆","蓓","沇","盗","蚌","颚","菇","装","闩","濮","恢","佯","峣","槠","婚","瘗","侯","仙","苟","山","病","工","侧","甦","助","护","谗","必","囱","昊","玠","钹","彧","瘸","觞","驻","笤","嘿","虔","眛","莫","噩","郁","玭","赘","腰","辂","岘","熵",
"浓","勍","抢","弯","步","玛","短","-","桥","顾","尼","燃","判","邵","但","④","甾","牌","嗨","波","肿","驼","捷","速","京","瑛","莩","帛","缆","蚧","母","摧","汎","璨","耍","迴","捏","厐","粉","者","蛙","铕","锚","砍","i","荼","羡","哥","J","鲰","剀","抛","荜","聆","遑","瀛","殓","溢","锆","顿","祝","⑾","辘","呓","芦","隹","好","胓","找","乱","饴","┐","液","钙",":","螭","沁","臻","阅","勔","缘","榧","燮","拇","松","慎","侉","澥","捎","晖","酣","胄","粳","贯","捂","个","塌","谧","粲","鲟",
"万","喙","销","搅","庐","^","喜","娅","芭","党","人","匍","巍","胸","中","戒","俭","鸡","睾","皁","妄","匆","塞","骅","外","块","娣","笙","忍","镣","糗","鼐","蜡","瀚","埂","沦","牒","胀","垠","高","叭","凡","忡","闵","据","@","迕","连","倚","而","蝴","吟","禅","慙","纺","位","嘏","彼","容","钅","颓","阮","嗽","科","锷","劬","ɑ","伢","油","焻","断","卞","弋","欻","溥","臧","觽","派","蹂","仉","帏","踵","敕","棍","扫","踊","柽","恐","髡","甘","昵","庑","势","鸥","铤","蝎","键","踝","傻","焊",
"哉","怀","枉","谴","犯","烝","嵬","耆","辎","醍","圹","嵌","纂","习","污","猾","桞","钣","假","幞","抿","懒","椅","返","壹","鹌","夔","淡","澂","蹭","崭","峥","壕","陆","烯","汁","喁","快","黄","塚","咀","迫","迩","囔","陔","嘧","韻","亹","宝","障","Ⅱ","盖","仲","脁","雾","闟","笑","嘀","倘","履","敖","燦","滩","缒","袱","妆","堽","硫","脾","专","沔","列","隍","铿","耗","褊","淀","+","俢","泫","搴","犨","硬","玙","桓","覆","刑","锤","贻","笏","揜","柳","鹳","欢","滘","舰","错","淌","洹","亢",
"醢","撝","旎","睒","痕","鄣","伲","擞","汭","鹉","貂","嘘","榨","蒙","涎","豫","炊","违","哪","都","跖","剐","≠","叢","财","纶","缰","灏","鋉","视","》","噭","礼","沈","々","∧","漭","騰","Ⅵ","-",};
bool LstmImgStandardization(const cv::Mat &src, const float &ratio, int standard_w, int standard_h, cv::Mat &dst)
{
if(src.empty())return false;
float width=src.cols;
float height=src.rows;
float a=width/ height;
if(a <=ratio)
{
Mat mask(height, ratio*height, CV_8UC3, cv::Scalar(255, 255, 255));
Mat imageROI = mask(Rect(0, 0, width, height));
src.copyTo(imageROI);
dst=mask.clone();
}
else
{
Mat mask(width/ratio, width, CV_8UC3, cv::Scalar(255, 255, 255));
Mat imageROI = mask(Rect(0, 0, width, height));
src.copyTo(imageROI);
dst=mask.clone();
}
//cv::resize(dst, dst, cv::Size(standard_w,standard_h));
cv::resize(dst, dst, cv::Size(standard_w,standard_h),0,0,cv::INTER_AREA);
return true;
}
torch::Tensor pre_img(const cv::Mat &img, std::vector<float>v_mean, std::vector<float>v_std, int standard_w, int standard_h)
{
cv::Mat m_stand;
float ratio = 10.0;
if(1 == img.channels()) { cv::cvtColor(img,img,CV_GRAY2BGR); }
LstmImgStandardization(img, ratio, standard_w, standard_h, m_stand);
std::vector<int64_t> sizes = {m_stand.rows, m_stand.cols, m_stand.channels()};
torch::TensorOptions options = torch::TensorOptions().dtype(torch::kByte);
torch::Tensor tensor_image = torch::from_blob(m_stand.data, torch::IntList(sizes), options);
// Permute tensor, shape is (C, H, W)
tensor_image = tensor_image.permute({2, 0, 1});
// Convert tensor dtype to float32, and range from [0, 255] to [0, 1]
tensor_image = tensor_image.toType(torch::ScalarType::Float);
tensor_image = tensor_image.div_(255.0);
// Subtract mean value
for (int i = 0; i < std::min<int64_t>(v_mean.size(), tensor_image.size(0)); i++) {
tensor_image[i] = tensor_image[i].sub_(v_mean[i]);
}
// Divide by std value
for (int i = 0; i < std::min<int64_t>(v_std.size(), tensor_image.size(0)); i++) {
tensor_image[i] = tensor_image[i].div_(v_std[i]);
}
//[c,h,w] --> [1,c,h,w]
tensor_image.unsqueeze_(0);
return tensor_image;
}
string get_label(const torch::Tensor &out_)
{
torch::Tensor output = out_.squeeze(1);
torch::Tensor index_max = torch::argmax(output, 1).cpu();
auto index_tmp =index_max.accessor<long,1>();
vector<float> t;
for(int i=0;i<index_tmp.size(0);i++)
{
t.push_back(index_tmp[i]);
}
std::string rec_str = "";
for(int i=0;i<t.size();i++)
{
if(0 != t[i] && !(i>0 && t[i-1]==t[i]))
{
rec_str += chn_tab[(int)t[i]-1];
}
}
return rec_str;
}
void GetFileInDir(string dirName, vector<string> &v_path)
{
DIR* Dir = NULL;
struct dirent* file = NULL;
if (dirName[dirName.size()-1] != '/')
{
dirName += "/";
}
if ((Dir = opendir(dirName.c_str())) == NULL)
{
cerr << "Can't open Directory" << endl;
exit(1);
}
while (file = readdir(Dir))
{
//if the file is a normal file
if (file->d_type == DT_REG)
{
v_path.push_back(dirName + file->d_name);
}
//if the file is a directory
else if (file->d_type == DT_DIR && strcmp(file->d_name, ".") != 0 && strcmp(file->d_name, "..") != 0)
{
GetFileInDir(dirName + file->d_name,v_path);
}
}
}
string str_replace(const string &str,const string &str_find,const string &str_replacee)
{
string str_tmp=str;
size_t pos = str_tmp.find(str_find);
while (pos != string::npos)
{
str_tmp.replace(pos, str_find.length(), str_replacee);
size_t pos_t=pos+str_replacee.length();
string str_sub=str_tmp.substr(pos_t,str_tmp.length()-pos_t);
size_t pos_tt=str_sub.find(str_find);
if(string::npos != pos_tt)
{
pos =pos_t + str_sub.find(str_find);
}else
{
pos=string::npos;
}
}
return str_tmp;
}
string get_ans(const string path)
{
int pos_1 = path.find_last_of("_");
int pos_2 = path.find_last_of(".");
string ans = path.substr(pos_1+1,pos_2-pos_1-1);
ans = str_replace(ans,"@","/");
return ans;
}
int main()
{
std::string path_pt = "./model0.9833.pt";
std::string path_img_dir = "./data/test";
std::vector<float> v_mean = {0.406,0.224,0.229};
std::vector<float> v_std = {0.406,0.456,0.485};
int standard_w = 320;
int standard_h = 32;
vector<string> v_path;
GetFileInDir(path_img_dir, v_path);
for(int i=0;i<v_path.size();i++)
{
std::cout<<i<<" "<<v_path[i]<<std::endl;
}
torch::Device m_device(torch::kCUDA);
torch::jit::script::Module m_module = torch::jit::load(path_pt);
m_module.to(m_device);
std::cout<<"success load model"<<std::endl;
int cnt_all = 0;
int cnt_right = 0;
double start = getTickCount();
for(int i=0;i<v_path.size();i++)
{
cnt_all += 1;
std::string path_img = v_path[i];
std::cout<<i<<" path="<<path_img<<std::endl;
string ans = get_ans(path_img);
cv::Mat img = cv::imread(path_img);
torch::Tensor input = pre_img(img, v_mean, v_std, standard_w, standard_h);
input = input.to(m_device);
torch::Tensor output = m_module.forward({input}).toTensor();
std::string rec = get_label(output);
#if 1 //for show
std::cout<<"rec="<<rec<<std::endl;
std::cout<<"ans="<<ans<<std::endl;
cv::imshow("img",img);
cv::waitKey(0);
#endif
#if 0 //In order to test the accuracy
std::cout<<"rec="<<rec<<std::endl;
std::cout<<"ans="<<ans<<std::endl;
if(ans == rec)
{
cnt_right += 1;
}
std::cout<<"cnt_right="<<cnt_right<<std::endl;
std::cout<<"cnt_all="<<cnt_all<<std::endl;
std::cout<<"ratio="<<cnt_right * 1.0 / cnt_all<<std::endl;
#endif
}
double time_cunsume = ((double)getTickCount() - start) / getTickFrequency();
std::cout<<"ave time="<< time_cunsume * 1.0 / cnt_all * 1000 <<"ms"<<std::endl;
return 0;
}