diff --git a/README.md b/README.md index 638ff4b..b2068fe 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ -# CRNN_Attention_OCR -CRNN with attention to do OCR,this is just a toy code to show how use seq2seq with attention in OCR -## network model -CRNN is base CNN,and BiLSTM with 256 hidden_units is encode network ,GRU with 256 hidden_units is decode network - -## how to use -put your image in 'train' dir,and image name should be like "xx_label_xx.jpg",Parameters are set in config.py,
and then just run the train.py - -## Dependency Library +# 用CRNN+seq2seq+attention识别中文 +中文类别为5990类,类别可以在char_std_5990找到,中文样本的合成参考的是caffe_ocr项目, +## 网络结构 +CNN用的是CRNN中的结构,一层双向lstm做编码器,一层GRU做解码器 +## 如何训练 +训练需要2个txt文件(train.txt,test.txt)保存图片的名字以及label,
+可以在这里下载样本[(caffe_ocr)百度网盘](https://pan.baidu.com/s/1dFda6R3#list/path=%2F)
+在config.py里修改路径,运行train.py +## 依赖 TensorFlow >=1.2
-opencv +opencv
+## 引用 +[caffe_ocr](https://github.com/senlinuc/caffe_ocr)
+[attention-ocr-toy-example](https://github.com/ray075hl/attention-ocr-toy-example) diff --git a/char_std_5990.txt b/char_std_5990.txt new file mode 100644 index 0000000..fbb6e35 --- /dev/null +++ b/char_std_5990.txt @@ -0,0 +1,5990 @@ +blank +, +的 +。 +一 +是 +0 +不 +在 +有 +、 +人 +“ +” +了 +中 +国 +大 +为 +1 +: +上 +2 +这 +个 +以 +年 +生 +和 +我 +时 +之 +也 +来 +到 +要 +会 +学 +对 +业 +出 +行 +公 +能 +他 +于 +5 +e +3 +而 +发 +地 +可 +作 +就 +自 +们 +后 +成 +家 +日 +者 +分 +多 +下 +其 +用 +方 +本 +得 +子 +. +高 +4 +过 +经 +6 +现 +说 +与 +前 +o +理 +工 +所 +力 +t +如 +将 +军 +部 +, +事 +进 +9 +司 +场 +同 +机 +主 +都 +实 +天 +面 +市 +8 +i +a +新 +动 +开 +n +关 +定 +还 +长 +此 +月 +7 +道 +美 +心 +法 +最 +文 +等 +当 +第 +好 +然 +体 +全 +比 +股 +通 +性 +重 +三 +外 +s +但 +战 +; +相 +从 +你 +r +内 +无 +考 +因 +小 +资 +种 +合 +情 +去 +里 +化 +次 +入 +加 +间 +些 +度 +? +员 +意 +没 +产 +正 +表 +很 +队 +报 +已 +名 +海 +点 +目 +着 +应 +解 +那 +看 +数 +东 +位 +题 +利 +起 +二 +民 +提 +及 +明 +教 +问 +) +制 +期 +( +元 +游 +女 +- +并 +曰 +十 +果 +) +么 +注 +两 +专 +样 +信 +王 +平 +己 +金 +务 +使 +电 +网 +代 +手 +知 +计 +至 +常 +( +只 +展 +品 +更 +系 +科 +门 +特 +想 +西 +l +水 +做 +被 +北 +由 +c +》 +万 +老 +向 +《 +记 +政 +今 +据 +量 +保 +建 +物 +区 +管 +见 +安 +集 +或 +认 +程 +h +总 +— +少 +身 +先 +师 +球 +价 +空 +旅 +又 +求 +校 +强 +各 +非 +立 +受 +术 +基 +活 +反 +! +世 +何 +职 +导 +任 +取 +式 +[ +] +试 +才 +结 +费 +把 +收 +联 +直 +规 +持 +赛 +社 +四 +山 +统 +投 +南 +原 +该 +院 +交 +达 +接 +头 +打 +设 +每 +别 +示 +则 +调 +处 +义 +权 +台 +感 +斯 +证 +言 +五 +议 +d +给 +决 +论 +她 +告 +广 +企 +格 +增 +让 +指 +研 +商 +客 +太 +息 +近 +城 +变 +技 +医 +件 +几 +书 +选 +周 +备 +m +流 +士 +京 +传 +u +放 +病 +华 +单 +话 +招 +路 +界 +药 +回 +再 +% +服 +什 +改 +育 +口 +张 +需 +治 +德 +复 +准 +马 +习 +真 +语 +难 +始 +" +际 +观 +完 +标 +共 +项 +容 +级 +即 +必 +类 +领 +A +C +未 +w +型 +案 +线 +运 +历 +首 +风 +视 +色 +尔 +整 +质 +参 +较 +云 +具 +布 +组 +办 +气 +造 +争 +往 +形 +份 +防 +p +它 +车 +深 +神 +称 +g +况 +推 +越 +英 +易 +且 +营 +条 +消 +命 +团 +确 +S +划 +精 +足 +儿 +局 +飞 +究 +功 +索 +走 +望 +却 +查 +武 +思 +兵 +识 +克 +故 +步 +影 +带 +乐 +白 +源 +史 +航 +志 +州 +限 +清 +光 +装 +节 +号 +转 +图 +根 +省 +许 +引 +势 +失 +候 +济 +显 +百 +击 +f +器 +象 +效 +仅 +爱 +官 +包 +供 +低 +演 +连 +夫 +快 +续 +支 +验 +阳 +男 +觉 +花 +死 +字 +创 +素 +半 +预 +音 +户 +约 +率 +声 +请 +票 +… +便 +构 +T +存 +食 +y +段 +远 +责 +M +拉 +房 +随 +断 +极 +销 +林 +亚 +隐 +超 +获 +升 +B +采 +I +算 +益 +优 +愿 +找 +按 +维 +态 +满 +尽 +令 +汉 +委 +八 +终 +训 +值 +负 +境 +练 +母 +热 +适 +江 +住 +列 +举 +景 +置 +黄 +听 +除 +读 +众 +响 +友 +助 +弹 +干 +孩 +边 +李 +六 +甚 +罗 +致 +施 +模 +料 +火 +像 +古 +眼 +搜 +离 +D +闻 +府 +章 +早 +照 +速 +录 +页 +卫 +青 +例 +石 +父 +状 +农 +排 +降 +千 +P +择 +评 +疗 +班 +购 +属 +革 +够 +环 +占 +养 +曾 +米 +略 +站 +胜 +① +核 +否 +独 +护 +钱 +/ +红 +范 +另 +须 +余 +居 +虽 +毕 +攻 +族 +吃 +喜 +陈 +G +轻 +亲 +积 +星 +假 +b +县 +写 +刘 +财 +亿 +某 +括 +律 +酒 +策 +初 +批 +普 +片 +协 +售 +乃 +落 +留 +岁 +突 +双 +绝 +险 +季 +谓 +严 +村 +E +兴 +围 +依 +念 +苏 +底 +压 +破 +河 +怎 +细 +富 +切 +乎 +待 +室 +血 +帝 +君 +均 +络 +牌 +陆 +印 +层 +斗 +简 +讲 +买 +谈 +纪 +板 +希 +聘 +充 +归 +左 +测 +止 +笑 +差 +控 +担 +杀 +般 +朝 +监 +承 +播 +k +亦 +临 +银 +尼 +介 +v +博 +软 +欢 +害 +七 +良 +善 +’ +移 +土 +课 +免 +射 +审 +健 +角 +伊 +欲 +似 +配 +既 +拿 +刚 +绩 +密 +织 +九 +编 +狐 +右 +龙 +异 +若 +登 +检 +继 +析 +款 +纳 +威 +微 +域 +齐 +久 +宣 +阿 +俄 +店 +康 +执 +露 +香 +额 +紧 +培 +激 +卡 +短 +群 +② +春 +仍 +伤 +韩 +楚 +缺 +洲 +版 +答 +O +修 +媒 +秦 +‘ +错 +欧 +园 +减 +急 +叫 +诉 +述 +钟 +遇 +港 +补 +N +· +送 +托 +夜 +兰 +诸 +呢 +席 +尚 +福 +奖 +党 +坐 +巴 +毛 +察 +奇 +孙 +竞 +宁 +申 +L +疑 +黑 +劳 +脑 +R +舰 +晚 +盘 +征 +波 +背 +访 +互 +败 +苦 +阶 +味 +跟 +沙 +湾 +岛 +挥 +礼 +F +词 +宝 +券 +虑 +徐 +患 +贵 +换 +矣 +戏 +艺 +侯 +顾 +副 +妇 +董 +坚 +含 +授 +皇 +付 +坛 +皆 +抗 +藏 +潜 +封 +础 +材 +停 +判 +吸 +轮 +守 +涨 +派 +彩 +哪 +笔 +. +﹑ +氏 +尤 +逐 +冲 +询 +铁 +W +衣 +绍 +赵 +弟 +洋 +午 +奥 +昨 +雷 +耳 +谢 +乡 +追 +皮 +句 +刻 +油 +误 +宫 +巨 +架 +湖 +固 +痛 +楼 +杯 +套 +恐 +敢 +H +遂 +透 +薪 +婚 +困 +秀 +帮 +融 +鲁 +遗 +烈 +吗 +吴 +竟 +③ +惊 +幅 +温 +臣 +鲜 +画 +拥 +罪 +呼 +警 +卷 +松 +甲 +牛 +诺 +庭 +休 +圣 +馆 +_ +退 +莫 +讯 +渐 +熟 +肯 +V +冠 +谁 +乱 +朗 +怪 +夏 +危 +码 +跳 +卖 +签 +块 +盖 +束 +毒 +杨 +饮 +届 +序 +灵 +怀 +障 +永 +顺 +载 +倒 +姓 +丽 +靠 +概 +输 +货 +症 +避 +寻 +丰 +操 +针 +穿 +延 +敌 +悉 +召 +田 +稳 +典 +吧 +犯 +饭 +握 +染 +怕 +端 +央 +阴 +胡 +座 +著 +损 +借 +朋 +救 +库 +餐 +堂 +庆 +忽 +润 +迎 +亡 +肉 +静 +阅 +盛 +综 +木 +疾 +恶 +享 +妻 +厂 +杂 +刺 +秘 +僧 +幸 +扩 +裁 +佳 +趣 +智 +促 +弃 +伯 +吉 +宜 +剧 +野 +附 +距 +唐 +释 +草 +币 +骨 +弱 +俱 +顿 +散 +讨 +睡 +探 +郑 +频 +船 +虚 +途 +旧 +树 +掌 +遍 +予 +梦 +圳 +森 +泰 +慢 +牙 +盟 +挑 +键 +阵 +暴 +脱 +汇 +歌 +禁 +浪 +冷 +艇 +雅 +迷 +拜 +旦 +私 +您 +④ +启 +纷 +哈 +订 +折 +累 +玉 +脚 +亮 +晋 +祖 +菜 +鱼 +醒 +谋 +姐 +填 +纸 +泽 +戒 +床 +努 +液 +咨 +塞 +遭 +玩 +津 +伦 +夺 +辑 +癌 +x +丹 +荣 +仪 +献 +符 +翻 +估 +乘 +诚 +K +川 +惠 +涉 +街 +诗 +曲 +孔 +娘 +怒 +扬 +闲 +蒙 +尊 +坦 += +衡 +迪 +镇 +沉 +署 +妖 +脸 +净 +哥 +顶 +掉 +厚 +魏 +旗 +兄 +荐 +童 +剂 +乏 +倍 +萨 +偏 +洗 +惯 +灭 +径 +犹 +趋 +拍 +档 +罚 +纯 +洛 +毫 +梁 +雨 +瑞 +宗 +鼓 +辞 +洞 +秋 +郎 +舍 +蓝 +措 +篮 +贷 +佛 +坏 +俗 +殊 +炮 +厅 +筑 +姆 +译 +摄 +卒 +谷 +妈 +聚 +违 +忘 +鬼 +触 +丁 +羽 +贫 +刑 +岗 +庄 +伟 +兼 +乳 +叶 +凡 +龄 +宽 +峰 +宋 +硬 +岸 +迅 +喝 +拟 +雄 +役 +零 +舞 +暗 +潮 +绿 +倾 +详 +税 +酸 +徒 +伴 +诊 +跑 +吾 +燕 +澳 +啊 +塔 +宿 +恩 +忙 +督 +末 +⑤ ++ +伐 +篇 +敏 +贸 +巧 +截 +沟 +肝 +迹 +烟 +勇 +乌 +赞 +锋 +返 +迫 +凭 +虎 +朱 +拔 +援 +搞 +爆 +勤 +抢 +敬 +赶 +抱 +仁 +秒 +缓 +御 +唯 +缩 +尝 +贴 +奔 +跨 +炎 +汤 +侵 +骑 +励 +戴 +肤 +枪 +植 +瘤 +埃 +汽 +羊 +宾 +替 +幕 +贝 +刀 +映 +彻 +驻 +披 +抓 +奉 +抵 +肿 +麻 +U +炸 +繁 +赢 +茶 +伏 +梅 +狂 +忧 +豪 +暂 +贾 +洁 +绪 +刊 +忆 +桥 +晓 +册 +漫 +圆 +默 +妾 +侧 +址 +横 +□ +偶 +狗 +陵 +' +伙 +杜 +忍 +薄 +雪 +陷 +仙 +恋 +焦 +焉 +烦 +甘 +腺 +颇 +赏 +肠 +废 +墙 +债 +艾 +杰 +残 +冒 +屋 +堡 +曹 +储 +莱 +挂 +纵 +孝 +珍 +麦 +逃 +奋 +J +览 +镜 +缘 +昭 +摆 +跌 +胁 +昌 +耶 +腹 +偿 +蛋 +盈 +瓦 +摩 +沈 +惟 +迁 +冰 +辛 +震 +旁 +泉 +圈 +巡 +罢 +泛 +穷 +伸 +曼 +滋 +丈 +颜 +勒 +悲 +肥 +郭 +混 +灯 +租 +⑥ +鸡 +阻 +邑 +伍 +践 +驾 +魔 +X +拒 +懂 +糖 +脏 +沿 +翁 +胆 +惧 +聊 +携 +晨 +滑 +菌 +辅 +贤 +鉴 +丝 +尾 +赴 +吨 +宇 +眠 +脂 +籍 +彼 +污 +貌 +弄 +郡 +【 +奶 +菲 +烧 +垂 +壮 +浮 +弗 +赖 +】 +珠 +迟 +渠 +寿 +隆 +剑 +胞 +跃 +稍 +愈 +荷 +壁 +卿 +邦 +忠 +摇 +悟 +锦 +扰 +袭 +盾 +艘 +浓 +筹 +盗 +哭 +淡 +孕 +扣 +呈 +怨 +琳 +孤 +奴 +驱 +振 +闭 +~ +隔 +寒 +汝 +贯 +恢 +饰 +荡 +姑 +械 +* +猛 +亏 +锁 +硕 +舒 +嘉 +宏 +劲 +帅 +誉 +番 +惜 +胸 +抽 +脉 +孟 +遣 +碍 +辆 +玄 +陶 +丧 +矿 +链 +矛 +鸟 +夷 +嘴 +坡 +吕 +侦 +鸣 +妹 +邓 +钢 +妙 +z +欣 +骗 +浙 +辽 +奏 +唱 +腐 +仆 +祝 +冬 +韦 +邮 +酬 +尺 +涯 +毁 +粉 +井 +腰 +肌 +搭 +恨 +乙 +勿 +婆 +★ +闹 +猎 +厉 +哀 +递 +廉 +卧 +豆 +揭 +瓶 +⑦ +蒋 +忌 +贡 +邀 +覆 +墓 +捷 +Q +骂 +芳 +耗 +奈 +腾 +抑 +牵 +履 +绕 +睛 +炼 +描 +辉 +肃 +循 +仿 +葬 +漏 +恰 +殿 +遥 +尿 +凯 +仲 +婢 +胃 +翼 +卢 +慎 +厦 +颈 +哉 +疲 +惑 +汗 +衰 +剩 +昆 +耐 +疫 +霸 +赚 +彭 +狼 +洪 +枚 +媪 +纲 +窗 +偷 +鼻 +池 +磨 +尘 +账 +拼 +榜 +拨 +扫 +妆 +槽 +蔡 +扎 +叔 +辈 +― +泡 +伪 +邻 +锡 +仰 +寸 +盐 +叹 +囊 +幼 +拓 +郁 +桌 +舟 +丘 +棋 +裂 +扶 +逼 +熊 +轰 +允 +箱 +挺 +赤 +晶 +● +祭 +寄 +爷 +呆 +胶 +佩 +泪 +沃 +婴 +娱 +霍 +肾 +诱 +扁 +辩 +粗 +夕 +灾 +哲 +涂 +艰 +猪 +Y +铜 +踏 +赫 +吹 +屈 +谐 +仔 +沪 +殷 +辄 +渡 +屏 +悦 +漂 +祸 +赔 +涛 +谨 +赐 +劝 +泌 +凤 +庙 +墨 +寺 +淘 +勃 +崇 +灰 +虫 +逆 +闪 +竹 +疼 +旨 +旋 +蒂 +⑧ +悬 +紫 +慕 +贪 +慧 +腿 +赌 +捉 +疏 +卜 +漠 +堪 +廷 +氧 +牢 +吏 +帕 +棒 +纽 +荒 +屡 +戈 +氛 +黎 +桃 +幽 +尖 +猫 +捕 +嫁 +窃 +燃 +禽 +稿 +掩 +踪 +姻 +陪 +凉 +阔 +碰 +幻 +迈 +铺 +堆 +柔 +姿 +膜 +爸 +斤 +轨 +疆 +丢 +仓 +岂 +柳 +敦 +祥 +栏 +邪 +魂 +箭 +煤 +惨 +聪 +艳 +儒 +& +仇 +徽 +厌 +潘 +袖 +宅 +恒 +逻 +肺 +昂 +炒 +醉 +掘 +宪 +摸 +愤 +畅 +汪 +贺 +肪 +撑 +桂 +耀 +柏 +韂 +扑 +淮 +j +凌 +遵 +钻 +摘 +碎 +抛 +匹 +腔 +纠 +吐 +滚 +凝 +插 +鹰 +郊 +琴 +悄 +撤 +驶 +粮 +辱 +斩 +暖 +杭 +齿 +欺 +殖 +撞 +颁 +匈 +翔 +挤 +乔 +抚 +泥 +饱 +劣 +鞋 +肩 +雇 +驰 +莲 +岩 +酷 +玛 +赠 +斋 +辨 +泄 +姬 +拖 +湿 +滨 +鹏 +兽 +锐 +捧 +尸 +宰 +舆 +宠 +胎 +凶 +割 +虹 +俊 +糊 +兹 +瓜 +悔 +慰 +浦 +锻 +削 +唤 +戚 +撒 +冯 +丑 +亭 +寝 +嫌 +袁 +⑨ +尉 +芬 +挖 +弥 +喊 +纤 +辟 +菩 +埋 +呀 +昏 +傅 +桑 +稀 +帐 +添 +塑 +赋 +扮 +芯 +喷 +夸 +抬 +旺 +襄 +岭 +颗 +柱 +欠 +逢 +鼎 +苗 +庸 +甜 +贼 +烂 +怜 +盲 +浅 +霞 +畏 +诛 +倡 +磁 +茨 +毅 +鲍 +骇 +峡 +妨 +雕 +袋 +裕 +哩 +怖 +阁 +函 +浩 +侍 +拳 +寡 +鸿 +眉 +穆 +狱 +牧 +拦 +雾 +猜 +顷 +昔 +慈 +朴 +疯 +苍 +■ +渴 +慌 +绳 +闷 +陕 +宴 +辖 +「 +」 +舜 +讼 +柯 +丞 +姚 +崩 +绘 +枝 +牲 +涌 +虔 +姜 +擦 +桓 +逊 +汰 +斥 +﹒ +颖 +悠 +恼 +灌 +q +梯 +捐 +∶ +挣 +衷 +啡 +娜 +旬 +呵 +刷 +帽 +岳 +豫 +咖 +飘 +臂 +寂 +粒 +募 +嘱 +蔬 +苹 +泣 +吊 +淳 +诞 +诈 +咸 +猴 +~ +奸 +淫 +佐 +晰 +崔 +雍 +葛 +鼠 +爵 +奢 +仗 +涵 +淋 +挽 +敲 +沛 +蛇 +锅 +庞 +朵 +押 +鹿 +滩 +祠 +枕 +扭 +厘 +魅 +⑩ +湘 +柴 +炉 +荆 +卓 +碗 +夹 +脆 +颠 +窥 +逾 +诘 +贿 +虞 +茫 +榻 +碑 +傲 +骄 +卑 +× +Z +蓄 +煮 +劫 +卵 +碳 +痕 +攀 +搬 +拆 +谊 +禹 +窦 +绣 +叉 +爽 +肆 +羞 +爬 +泊 +腊 +愚 +牺 +胖 +弘 +秩 +娶 +妃 +柜 +觽 +躲 +葡 +浴 +兆 +滴 +衔 +燥 +斑 +挡 +笼 +徙 +憾 +垄 +肖 +溪 +叙 +茅 +膏 +甫 +缴 +姊 +逸 +淀 +擅 +催 +丛 +舌 +竭 +禅 +隶 +歧 +妥 +煌 +玻 +刃 +☆ +肚 +惩 +赂 +耻 +詹 +璃 +舱 +溃 +斜 +祀 +翰 +汁 +妄 +枭 +萄 +契 +骤 +醇 +泼 +咽 +拾 +廊 +犬 +筋 +扯 +狠 +挫 +钛 +扇 +蓬 +吞 +帆 +戎 +稽 +娃 +蜜 +庐 +盆 +胀 +乞 +堕 +趁 +吓 +框 +顽 +硅 +宛 +瘦 +剥 +睹 +烛 +晏 +巾 +狮 +辰 +茂 +○ +裙 +匆 +霉 +杖 +杆 +糟 +畜 +躁 +愁 +缠 +糕 +峻 +贱 +辣 +歼 +慨 +亨 +芝 +惕 +娇 +⑾ +渔 +冥 +咱 +栖 +浑 +禄 +帖 +巫 +喻 +毋 +泳 +饿 +尹 +穴 +沫 +串 +邹 +厕 +蒸 ++ +滞 +铃 +寓 +萧 +弯 +窝 +杏 +冻 +愉 +逝 +诣 +溢 +嘛 +兮 +暮 +豹 +骚 +跪 +懒 +缝 +盒 +亩 +寇 +弊 +巢 +咬 +粹 +冤 +陌 +涕 +翠 +勾 +拘 +侨 +肢 +裸 +恭 +叛 +纹 +摊 +# +兑 +萝 +饥 +> +浸 +叟 +滥 +灿 +衍 +喘 +吁 +晒 +谱 +堵 +暑 +撰 +棉 +蔽 +屠 +讳 +庶 +巩 +钩 +丸 +诏 +朔 +瞬 +抹 +矢 +浆 +蜀 +洒 +耕 +虏 +诵 +陛 +绵 +尴 +坤 +─ +尬 +搏 +钙 +饼 +枯 +灼 +饶 +杉 +盼 +蒲 +尧 +俘 +伞 +庚 +摧 +遮 +痴 +罕 +桶 +巷 +乖 +{ +啦 +纺 +闯 +→ +敛 +弓 +喉 +酿 +彪 +垃 +歇 +圾 +倦 +狭 +晕 +裤 +蜂 +} +垣 +莉 +谍 +俩 +妪 +⑿ +钓 +逛 +椅 +砖 +烤 +熬 +悼 +倘 +鸭 +馈 +惹 +旭 +薛 +诀 +渗 +痒 +蛮 +罩 +渊 +踢 +崖 +粟 +唇 +辐 +愧 +玲 +遏 +昼 +芦 +纣 +琼 +椎 +咳 +熙 +钉 +剖 +歉 +坠 +誓 +啤 +碧 +郅 +吻 +莎 +屯 +吟 +臭 +谦 +刮 +掠 +垫 +宙 +冀 +栗 +壳 +崛 +瑟 +哄 +谏 +丙 +叩 +缪 +雌 +叠 +奠 +髃 +碘 +暨 +劭 +霜 +妓 +厨 +脾 +俯 +槛 +芒 +沸 +盯 +坊 +咒 +觅 +剪 +遽 +贩 +寨 +铸 +炭 +绑 +蹈 +抄 +阎 +窄 +冈 +侈 +匿 +斌 +沾 +壤 +哨 +僵 +坎 +舅 +洽 +勉 +侣 +屿 +啼 +侠 +枢 +膝 +谒 +砍 +厢 +昧 +嫂 +羡 +铭 +碱 +棺 +漆 +睐 +缚 +谭 +溶 +烹 +雀 +擎 +棍 +瞄 +裹 +曝 +傻 +旱 +坑 +驴 +弦 +贬 +龟 +塘 +贞 +氨 +盎 +掷 +胺 +焚 +黏 +乒 +耍 +讶 +纱 +蠢 +掀 +藤 +蕴 +邯 +瘾 +婿 +卸 +斧 +鄙 +冕 +苑 +耿 +腻 +躺 +矩 +蝶 +浏 +壶 +凸 +臧 +墅 +粘 +⒀ +魄 +杞 +焰 +靶 +邵 +倚 +帘 +鞭 +僚 +酶 +靡 +虐 +阐 +韵 +迄 +樊 +畔 +钯 +菊 +亥 +嵌 +狄 +拱 +伺 +潭 +缆 +慑 +厮 +晃 +媚 +吵 +骃 +稷 +涅 +阪 +挨 +珊 +殆 +璞 +婉 +翟 +栋 +醋 +鹤 +椒 +囚 +瞒 +竖 +肴 +仕 +钦 +妒 +晴 +裔 +筛 +泻 +阙 +垒 +孰 +抖 +衬 +炫 +兢 +屑 +赦 +宵 +沮 +谎 +苟 +碌 +屁 +腕 +沦 +懈 +扉 +揖 +摔 +塌 +廖 +铝 +嘲 +胥 +曳 +敖 +傍 +筒 +朕 +扳 +鑫 +硝 +暇 +@ +冶 +靖 +袍 +凑 +悍 +兔 +邢 +熏 +株 +哮 +鹅 +乾 +鄂 +矶 +逵 +坟 +佣 +髓 +隙 +惭 +轴 +掏 +苛 +偃 +榴 +⒁ +赎 +谅 +裴 +缅 +皂 +淑 +噪 +阀 +咎 +揽 +绮 +瞻 +谜 +拐 +渭 +啥 +彦 +遁 +琐 +喧 +藉 +嫩 +寞 +梳 +溜 +粥 +恤 +迭 +瀑 +蓉 +寥 +彬 +俺 +忿 +螺 +膀 +惫 +扔 +匪 +毙 +怠 +彰 +啸 +荻 +逮 +删 +脊 +轩 +躬 +澡 +衫 +娥 +捆 +牡 +茎 +秉 +俭 +闺 +溺 +萍 +陋 +驳 +撼 +沽 +僮 +厥 +沧 +轿 +棘 +怡 +梭 +嗣 +凄 +℃ +铅 +绛 +祈 +斐 +箍 +爪 +琦 +惶 +刹 +嗜 +窜 +匠 +锤 +筵 +瑶 +幌 +捞 +敷 +酌 +阜 +哗 +聂 +絮 +阱 +膨 +坪 +歪 +旷 +翅 +揣 +樱 +甸 +颐 +兜 +頉 +伽 +绸 +拂 +狎 +颂 +谬 +昊 +皋 +嚷 +徊 +⒂ +曙 +麟 +嚣 +哑 +灞 +钧 +挪 +奎 +肇 +磊 +蕉 +荧 +嗽 +瓒 +苯 +躯 +绎 +鸦 +茵 +澜 +搅 +渺 +恕 +矫 +讽 +匀 +畴 +坞 +谥 +趟 +蔓 +帛 +寅 +呜 +枣 +萌 +磷 +涤 +蚀 +疮 +浊 +煎 +叮 +倩 +拯 +瑰 +涩 +绅 +枉 +朽 +哺 +邱 +凿 +莽 +隋 +炳 +睁 +澄 +厄 +惰 +粤 +黯 +纬 +哦 +徘 +炜 +擒 +捏 +帷 +攒 +湛 +夙 +滤 +浐 +霄 +豁 +甄 +剔 +丫 +愕 +袜 +呕 +| +蹲 +皱 +勘 +辜 +唬 +葱 +甩 +诡 +猿 +稻 +宦 +姨 +橡 +涧 +亢 +芽 +濒 +蹄 +窍 +譬 +驿 +拢 +叱 +喂 +怯 +坝 +椰 +孽 +阖 +瞩 +萎 +镑 +簿 +婷 +咐 +郸 +瑜 +瑚 +矮 +祷 +窟 +藩 +牟 +疡 +仑 +谣 +侄 +沐 +孜 +劈 +枸 +妮 +蔚 +勋 +玫 +虾 +谴 +莹 +紊 +瓷 +魁 +淄 +扛 +曩 +柄 +滔 +缀 +闽 +莞 +恳 +磅 +耸 +灶 +埠 +嚼 +汲 +恍 +逗 +畸 +翩 +甥 +蚁 +耽 +稚 +戟 +戊 +侃 +帜 +璧 +碟 +敞 +晖 +匙 +烫 +眷 +娟 +卦 +寐 +苌 +馨 +锣 +谛 +桐 +钥 +琅 +赁 +蜡 +颤 +陇 +僻 +埔 +腥 +皎 +酝 +媳 +⒃ +翘 +缔 +葫 +吼 +侮 +淹 +瘫 +窘 +啖 +犀 +弒 +蕾 +偕 +笃 +栽 +唾 +陀 +汾 +俨 +呐 +膳 +锌 +瞧 +骏 +笨 +琢 +踩 +濮 +黛 +墟 +蒿 +歹 +绰 +捍 +诫 +漓 +篷 +咄 +诬 +乓 +梨 +奕 +睿 +嫡 +幢 +砸 +俞 +亟 +捣 +溯 +饵 +嘘 +砂 +凰 +丕 +荥 +赀 +薇 +滕 +袱 +辍 +疹 +泗 +韧 +撕 +磕 +梗 +挚 +挠 +嫉 +奚 +弩 +蝉 +罐 +敝 +鞍 +晦 +酣 +搁 +柿 +菠 +卞 +煞 +堤 +蟹 +骼 +晤 +娡 +潇 +胰 +酱 +郦 +脖 +檐 +桩 +踵 +禾 +狩 +盏 +弈 +牒 +拙 +喇 +舶 +炊 +喀 +黔 +挟 +钞 +缕 +俏 +娄 +粪 +颅 +锏 +凹 +饲 +肘 +赟 +吝 +襟 +琪 +谕 +飙 +秽 +颊 +渝 +卯 +捡 +氢 +桀 +裳 +滇 +浇 +礁 +◎ +蚊 +芙 +荀 +吩 +凳 +峨 +巍 +雉 +郢 +铲 +倪 +杳 +汹 +豚 +乍 +蛙 +驼 +嗅 +讫 +痰 +棵 +睫 +绒 +捻 +罔 +杠 +氟 +堰 +羁 +穰 +钠 +骸 +睾 +鳞 +邸 +於 +谧 +睢 +泾 +芹 +钾 +颓 +Ⅱ +笋 +橘 +卉 +岐 +懿 +巅 +垮 +嵩 +柰 +鲨 +涡 +弧 +◆ +钝 +啃 +熹 +芭 +隅 +拌 +锥 +抒 +焕 +漳 +鸽 +烘 +瞪 +⒄ +箕 +驯 +恃 +靴 +刁 +聋 +剿 +筝 +绞 +鞅 +夯 +抉 +嘻 +弛 +垢 +衾 +丐 +斟 +恙 +雁 +匮 +娼 +鞠 +扼 +镶 +樵 +菇 +兖 +夭 +戌 +褚 +渲 +硫 +挞 +衙 +闫 +绾 +衅 +掣 +磋 +袒 +龚 +叨 +揉 +贻 +瑛 +俾 +薯 +憎 +傣 +炬 +荤 +烁 +沂 +粑 +蚌 +渣 +茄 +荼 +愍 +蒜 +菱 +狡 +蠡 +戍 +畤 +闵 +颍 +酋 +芮 +渎 +霆 +哼 +韬 +荫 +辙 +榄 +骆 +锂 +肛 +菑 +揪 +皖 +秃 +拽 +诟 +槐 +髦 +脓 +殡 +闾 +怅 +雯 +\ +戮 +澎 +悖 +嗓 +贮 +炙 +跋 +玮 +霖 +皓 +煽 +娠 +肋 +闸 +眩 +慷 +迂 +酉 +赘 +蝇 +羌 +蔑 +氯 +蚕 +汀 +憋 +臾 +汕 +缸 +棚 +唉 +棕 +裟 +蚡 +驮 +簇 +橙 +〉 +蹇 +庇 +佼 +禧 +崎 +痘 +芜 +姥 +绷 +惮 +雏 +⒅ +恬 +庵 +瞎 +臀 +胚 +嘶 +铀 +靳 +呻 +膺 +醛 +憧 +嫦 +橄 +褐 +讷 +趾 +讹 +鹊 +谯 +喋 +篡 +郝 +嗟 +琉 +逞 +袈 +鲧 +虢 +穗 +踰 +栓 +钊 +鬻 +羹 +掖 +笞 +恺 +掬 +憨 +狸 +瑕 +匡 +〈 +痪 +冢 +梧 +眺 +佑 +愣 +撇 +阏 +疚 +攘 +昕 +瓣 +烯 +谗 +隘 +酰 +绊 +鳌 +俟 +嫔 +崭 +妊 +雒 +荔 +毯 +纶 +祟 +爹 +辗 +竿 +裘 +犁 +柬 +恣 +阑 +榆 +翦 +佟 +钜 +札 +隧 +⒆ +腌 +砌 +酥 +辕 +铬 +痔 +讥 +毓 +橐 +跻 +酮 +殉 +哙 +亵 +锯 +糜 +壬 +瞭 +恻 +轲 +糙 +涿 +绚 +荟 +梢 +赣 +沼 +腑 +朦 +徇 +咋 +膊 +陡 +骋 +伶 +涓 +芷 +弋 +枫 +觑 +髻 +巳 +匣 +蠕 +恪 +槟 +栎 +噩 +葵 +殃 +淤 +诠 +昵 +眸 +馁 +奄 +绽 +闱 +蛛 +矜 +馔 +遐 +骡 +罹 +遑 +隍 +拭 +祁 +︰ +霁 +釜 +钵 +栾 +睦 +蚤 +咏 +憬 +韶 +圭 +觇 +芸 +氓 +伎 +氮 +靓 +淆 +绢 +眈 +掐 +簪 +搀 +玺 +镐 +竺 +峪 +冉 +拴 +忡 +卤 +撮 +胧 +邛 +彝 +楠 +缭 +棠 +腮 +祛 +棱 +睨 +嫖 +圉 +杵 +萃 +沁 +嬉 +擂 +澈 +麽 +轸 +彘 +褥 +廓 +狙 +笛 +彗 +啬 +盂 +贲 +忏 +驺 +悚 +豨 +旌 +娩 +扃 +蹦 +扈 +凛 +驹 +剃 +孺 +〕 +吆 +驷 +迸 +毗 +〔 +熔 +逍 +癸 +稼 +溥 +嫣 +瓮 +胱 +痊 +逡 +疟 +苻 +曪 +拣 +戛 +臻 +缉 +懊 +竣 +囤 +侑 +肽 +缮 +绥 +踝 +壑 +娴 +猝 +焻 +禀 +漱 +碁 +蹬 +祗 +濡 +挝 +亳 +萦 +癖 +彀 +毡 +锈 +憩 +筷 +莒 +噬 +珀 +砝 +鬓 +瑾 +澧 +栈 +恚 +搓 +褒 +疤 +沌 +絷 +镖 +塾 +钗 +骊 +拷 +铂 +郄 +窒 +驸 +裨 +矗 +烙 +惬 +炖 +赍 +迥 +蹴 +炽 +诧 +闰 +糯 +捅 +茜 +漯 +﹐ +峭 +哇 +鹑 +疵 +梓 +骠 +咫 +鹦 +檀 +痹 +侥 +蘑 +衢 +灸 +琵 +琶 +懦 +邺 +扪 +痿 +苔 +拇 +腋 +薨 +馅 +雠 +敕 +捂 +鴈 +栅 +瓯 +嘿 +溉 +胳 +拎 +巿 +赃 +咕 +诃 +谤 +舁 +禺 +榨 +– +拈 +瘙 +眯 +篱 +鬟 +咯 +抨 +桨 +岱 +赡 +蹶 +惚 +嗔 +喏 +聆 +曜 +窑 +瘢 +柠 +蕃 +寤 +攫 +饷 +佬 +臼 +皈 +蟒 +啜 +蔗 +汶 +酪 +豕 +窖 +膛 +檬 +戾 +蟠 +黍 +鲸 +漾 +猾 +驭 +踊 +稠 +脯 +潍 +倭 +谑 +猖 +聒 +骞 +熄 +渍 +瞳 +蒯 +陉 +褪 +筐 +彤 +蝴 +廪 +嬴 +沱 +闼 +橱 +蜚 +蹭 +鄢 +臆 +邳 +盔 +眶 +沓 +飨 +覃 +彷 +淌 +岚 +霹 +辔 +袂 +嗤 +榔 +鸾 +綦 +莘 +媲 +翊 +雳 +箸 +蚩 +茸 +嗦 +楷 +韭 +簸 +帚 +坍 +後 +璋 +剽 +渤 +骥 +犊 +迩 +悯 +饪 +搂 +鹉 +岑 +觞 +棣 +蕊 +诳 +黥 +藻 +郜 +舵 +毂 +茗 +忱 +铿 +谙 +怆 +钳 +佗 +瀚 +亘 +铎 +咀 +濯 +鼾 +酵 +酯 +麾 +Ⅰ +笙 +ü +缨 +翳 +龈 +忒 +煦 +顼 +俎 +圃 +刍 +喙 +羲 +陨 +嘤 +梏 +颛 +蜒 +啮 +镁 +辇 +葆 +蔺 +筮 +溅 +佚 +匾 +暄 +谀 +媵 +纫 +砀 +悸 +啪 +迢 +瞽 +莓 +瞰 +俸 +珑 +骜 +穹 +麓 +潢 +妞 +铢 +忻 +铤 +劾 +樟 +俐 +缗 +煲 +粱 +虱 +淇 +徼 +脐 +鼋 +嘈 +悴 +捶 +嚏 +挛 +谚 +螃 +殴 +瘟 +掺 +〇 +酚 +梵 +栩 +褂 +摹 +蜿 +钮 +箧 +胫 +馒 +焱 +嘟 +芋 +踌 +圜 +衿 +峙 +宓 +腆 +佞 +砺 +婪 +瀛 +苷 +昱 +贰 +秤 +扒 +龁 +躇 +翡 +宥 +弼 +醮 +缤 +瘗 +鳖 +擞 +眨 +礶 +锢 +辫 +儋 +纭 +洼 +漕 +飓 +纂 +繇 +舷 +勺 +诲 +捺 +瞑 +啻 +蹙 +佯 +茹 +怏 +蛟 +鹭 +烬 + +兀 +檄 +浒 +胤 +踞 +僖 +卬 +爇 +璀 +暧 +髡 +蚂 +饽 +镰 +陂 +瞌 +诽 +钺 +沥 +镍 +耘 +燎 +祚 +儣 +莺 +屎 +辘 +鸥 +驩 +氐 +匕 +銮 +━ +苴 +憔 +渥 +袅 +瞿 +瓢 +痣 +蘸 +蹑 +玷 +惺 +轧 +喃 +潺 +唏 +逅 +懵 +帏 +唠 +徨 +咤 +抠 +蛊 +苇 +铮 +疙 +闳 +砥 +羸 +遨 +哎 +捽 +钏 +壹 +昇 +擢 +贽 +汴 +砰 +牝 +蔼 +熠 +粽 +绌 +杼 +麒 +叭 +颔 +锭 +妍 +姒 +邂 +濞 +轶 +搔 +蹊 +阂 +垦 +猕 +伫 +瘩 +璐 +黠 +婺 +噫 +潞 +呱 +幡 +汞 +缯 +骁 +墩 +赧 +瞥 +媛 +瞠 +羔 +轼 +Ⅲ +拗 +鹞 +搴 +诮 +趴 +凋 +撩 +芥 +缎 +摒 +泮 +惘 +骛 +瘳 +姝 +β +渚 +吠 +稣 +獘 +篃 +罄 +吒 +茧 +黜 +缢 +獗 +诅 +絜 +蜕 +屹 +哽 +缄 +俑 +坷 +杓 +剁 +锺 +鹜 +谩 +岔 +籽 +磬 +溍 +邃 +钨 +甬 +笥 +蝠 +龋 +鸱 +孚 +馍 +溴 +妫 +偎 +烽 +椽 +阮 +酗 +惋 +牍 +觥 +瞅 +涣 +狈 +锰 +椟 +饺 +溲 +谪 +掇 +蓟 +倔 +鞫 +猢 +笄 +翕 +嗥 +卺 +寰 +狞 +洮 +炕 +夡 +瘠 +磺 +肱 +奭 +耆 +棂 +娅 +咚 +豌 +樗 +诩 +斡 +榈 +琛 +狲 +蕲 +捎 +戳 +炯 +峦 +嘎 +睬 +怙 +疱 +霎 +哂 +鱿 +涸 +咦 +痉 +$ +抟 +庖 +沅 +瑙 +珏 +祜 +楞 +漉 +鸠 +镂 +诰 +谄 +蜗 +嗒 +珂 +祯 +鸳 +殒 +潼 +柩 +萤 +柑 +轵 +缰 +淼 +冗 +蕙 +鳄 +嘀 +彊 +峥 +雹 +藜 +笠 +岖 +傥 +潦 +苞 +蛰 +嬖 +僦 +碣 +裰 +疸 +湮 +昴 +榷 +涎 +攸 +砾 +跖 +恂 +舄 +麝 +貂 +孢 +捋 +笈 +璨 +粕 +浚 +鹃 +歆 +漪 +岷 +咧 +殁 +篆 +湃 +侏 +傈 +殇 +霭 +嚎 +拊 +崂 +鬲 +碉 +菁 +庾 +拚 +旃 +幺 +皿 +焊 +噢 +祺 +锚 +痤 +翎 +醺 +噶 +傀 +俛 +秧 +谆 +僳 +菽 +绯 +瘥 +盥 +蹋 +髯 +岌 +痧 +偌 +禳 +簧 +跤 +伉 +腼 +爰 +箫 +曦 +蜘 +霓 +愆 +姗 +陬 +楂 +嵘 +蜓 +浼 +癫 +瓠 +跷 +绐 +枷 +墀 +馕 +盹 +聩 +镯 +砚 +晁 +僊 +° +坂 +煜 +俚 +眛 +焘 +阍 +袄 +夔 +馋 +泸 +庠 +毐 +飚 +刭 +琏 +羿 +斓 +稔 +阉 +喾 +恸 +耦 +咪 +蝎 +唿 +桔 +缑 +诋 +訾 +迨 +鹄 +蟾 +鬣 +廿 +莅 +荞 +槌 +媾 +愦 +郏 +淖 +嗪 +镀 +畦 +颦 +浃 +牖 +襁 +怂 +唆 +嚭 +涟 +拮 +腓 +缥 +郫 +遴 +邾 +悒 +嗝 +殽 +跛 +掂 +撬 +鄣 +鄱 +斫 +窿 +兕 +壕 +疽 +铙 +吱 +厩 +甭 +镪 +篝 +踣 +眦 +啧 +糠 +鲤 +粲 +噱 +椭 +哟 +潸 +铆 +姣 +馥 +胙 +迦 +偻 +嗯 +陟 +爲 +桧 +鸯 +恿 +晌 +臱 +骈 +喽 +淅 +澹 +叽 +桢 +刨 +忑 +忐 +猩 +蝙 +旄 +晾 +吭 +荏 +觐 +胄 +榛 +豢 +堑 +帔 +咙 +柚 +僭 +锵 +√ +肮 +囿 +忤 +惴 +燮 +棹 +摈 +缈 +幛 +墉 +诎 +仞 +剌 +氇 +泯 +茱 +獾 +豺 +蜃 +殂 +窈 +倨 +褓 +詈 +砷 +邕 +薰 +頫 +焖 +痫 +痢 +掾 +獐 +簌 +雎 +é +帧 +鸩 +匝 +桅 +椁 +绫 +桡 +氆 +哌 +咛 +鞘 +辎 +缙 +玑 +佤 +垓 +槿 +蛤 +烨 +泓 +罴 +鄜 +褶 +瘀 +颌 +蹂 +弑 +珪 +曷 +膑 +惦 +咆 +梆 +蛾 +牂 +髅 +捱 +拧 +婧 +踱 +怵 +侗 +屉 +讪 +衲 +麋 +宕 +畿 +唧 +怛 +豉 +籁 +觌 +舂 +蓦 +廨 +胪 +怍 +鄄 +绶 +飕 +蜻 +欷 +邬 +杲 +汧 +唑 +冽 +邰 +鼍 +魇 +铐 +哝 +泱 +扞 +飒 +醴 +陲 +喟 +筠 +殓 +瘸 +倏 +嗳 +啕 +睑 +翌 +à +幄 +娓 +蓺 +妩 +奁 +璜 +桦 +朐 +榕 +礴 +儡 +婕 +觎 +觊 +绦 +猥 +涮 +倬 +袤 +啄 +掳 +椿 +俪 +噜 +摞 +※ +鄗 +漩 +悝 +淞 +袴 +僇 +酹 +搒 +跽 +鳍 +疣 +姁 +猗 +舛 +鞮 +砭 +郯 +徕 +纥 +梃 +卮 +肣 +湎 +怦 +揄 +迕 +芍 +珥 +羚 +喔 +缁 +涝 +栉 +犷 +汜 +悻 +呛 +赭 +淬 +泫 +炀 +箴 +镌 +髫 +拄 +怔 +炷 +桎 +巽 +汭 +鹫 +挈 +蝄 +噙 +锄 +邴 +歔 +瘪 +腴 +呗 +慵 +撺 +欤 +阡 +傩 +苫 +掰 +盅 +冑 +躏 +茉 +霾 +耄 +楹 +蹻 +苋 +鲠 +哆 +傒 +榭 +牦 +婶 +仃 +囱 +皙 +醦 +隰 +掼 +琖 +駆 +暲 +砒 +舀 +鹗 +犒 +斛 +甑 +楫 +嫪 +胭 +瘁 +铛 +藕 +簋 +腭 +睽 +阕 +裀 +砧 +蓼 +贳 +劬 +搽 +龏 +荃 +奘 +祎 +泵 +攥 +翱 +晟 +酎 +睇 +逋 +箔 +羟 +诙 +饬 +跆 +眇 +佻 +铠 +娑 +郧 +葭 +蝗 +郓 +幞 +鉏 +碾 +硒 +釉 +磔 +殄 +藐 +莠 +颧 +熨 +獠 +浞 +笺 +癣 +茬 +衽 +喳 +裾 +倜 +鸢 +蠹 +廛 +惆 +芈 +燔 +伛 +妗 +佃 +缜 +咣 +龛 +挎 +徵 +粼 +锉 +啾 +隼 +猬 +镳 +璇 +胯 +饕 +揩 +縠 +虮 +苓 +噎 +祓 +筰 +奂 +搪 +喁 +俦 +隗 +馏 +圩 +褫 +僰 +吮 +哧 +湫 +旻 +筏 +搢 +佶 +茕 +铣 +娆 +揍 +嗷 +柈 +蕨 +绖 +旎 +汨 +畑 +鳏 +厝 +溷 +楯 +卅 +祇 +′ +怼 +焯 +± +柘 +骷 +澍 +▲ +` +珞 +褊 +╱ +痂 +罘 +殚 +垠 +缧 +瑁 +齮 +蓐 +怿 +蹿 +豳 +犴 +孵 +筱 +蜷 +窋 +泞 +肄 +祐 +窕 +酆 +谶 +阗 +讙 +镝 +匍 +腱 +^ +镬 +仡 +樾 +驽 +峒 +蟆 +葳 +徉 +昙 +罡 +耜 +嗨 +氲 +骅 +襦 +浔 +纮 +洱 +氦 +舐 +黙 +臊 +縯 +汛 +蹀 +溟 +枥 +祉 +铄 +豸 +揶 +馀 +闇 +呷 +仄 +焒 +嗡 +崆 +匳 +皑 +匐 +÷ +诿 +髭 +鲰 +鲲 +筴 +侬 +鹳 +滂 +△ +橹 +邈 +弭 +弁 +樽 +揆 +幔 +纨 +踉 +帼 +跸 +搠 +缞 +氤 +旒 +旖 +屣 +孱 +槁 +铉 +榼 +沣 +娣 +娈 +夤 +壅 +枇 +讴 +埶 +阆 +杷 +浣 +狰 +愠 +蚓 +咿 +藿 +欻 +萸 +刽 +稞 +刎 +骖 +冁 +骰 +嵯 +濂 +跚 +湄 +釂 +麤 +珰 +舔 +谮 +坨 +嗲 +埒 +锲 +鲇 +煨 +耎 +绻 +楣 +噉 +谟 +嗖 +裆 +晗 +囹 +黝 +讣 +薏 +⑴ +貉 +椹 +蟜 +犍 +蜇 +秏 +呶 +箩 +悞 +妤 +搐 +芪 +呦 +恽 +赊 +侩 +绁 +猱 +遒 +镵 +鸮 +趺 +簏 +迤 +坼 +痼 +棰 +凫 +诂 +骀 +瘴 +螨 +阚 +臃 +葩 +篓 +谲 +悌 +嬗 +颉 +赉 +珈 +汩 +薮 +亶 +鬃 +蒽 +黾 +噤 +螫 +嶲 +湍 +畲 +徜 +衮 +茀 +蓍 +┐ +遛 +磐 +篁 +遘 +乩 +蹒 +≥ +鸵 +褴 +苒 +郈 +踽 +叵 +咻 +伋 +襆 +歙 +伧 +醳 +鄠 +茴 +赳 +矾 +圄 +楮 +坯 +蕤 +迓 +锱 +腉 +滦 +饯 +诤 +懋 +呤 +纡 +隽 +妲 +蜴 +┌ +疋 +噻 +愀 +龊 +琨 +镭 +藓 +镣 +滈 +蓓 +杪 +糗 +菅 +椀 +懑 +苎 +劓 +囫 +α +啰 +钼 +烷 +兒 +脔 +郴 +忖 +芎 +啶 +巉 +钒 +缒 +蝼 +龌 +沔 +醢 +晔 +孳 +忝 +嗫 +橇 +勖 +宸 +佰 +蜈 +酞 +蔷 +糅 +噭 +猊 +儇 +觳 +缟 +郐 +眙 +赅 +剜 +徭 +蛭 +愎 +唔 +瘘 +魋 +镉 +殛 +茏 +邋 +垛 +垩 +焙 +篾 +羯 +浍 +鏖 +嚓 +躞 +堃 +烩 +莴 +¥ +绠 +纔 +衩 +糁 +≤ +町 +粝 +玳 +穑 +葺 +钲 +徂 +﹖ +棓 +泷 +涪 +囵 +怫 +屦 +歘 +鐘 +『 +裱 +缱 +圹 +罂 +荦 +腈 +愬 +坭 +嗛 +铩 +馐 +媸 +遢 +て +渑 +曛 +粳 +蹰 +舫 +勐 +窭 +濠 +亹 +跄 +琥 +戢 +駹 +燧 +嫜 +峄 +竽 +膈 +荚 +姞 +赇 +樭 +澙 +笮 +嶙 +氰 +孀 +崧 +郾 +蜥 +阊 +篙 +狻 +靛 +虬 +赝 +篑 +榇 +鞑 +侪 +盍 +疝 +矽 +堙 +毶 +泠 +瞟 +癀 +镞 +酤 +涔 +譄 +唁 +薜 +郿 +⑵ +爻 +盱 +膻 +菡 +⒉ +绨 +埽 +О +鳜 +醚 +阃 +遶 +岿 +張 +椐 +酺 +蔟 +螂 +辂 +窠 +淙 +鷪 +貋 +刳 +骶 +恫 +挹 +婀 +铳 +蒍 +孥 +蚣 +唳 +纻 +Ⅳ +甾 +旘 +膘 +< +脍 +耨 +翮 +赈 +浜 +洹 +蛎 +魉 +纰 +岫 +坌 +捭 +睒 +轺 +锗 +稗 +崚 +仫 +珩 +庑 +邽 +麃 +』 +縻 + +嗑 +瞋 +螭 +绔 +喱 +‰ +痞 +咔 +埤 +疥 +猷 +洺 +啁 +讦 +礻 +餮 +泅 +蛹 +癞 +妁 +桞 +匏 +琮 +铨 +杌 +孑 +菟 +骐 +钡 +钚 +莆 +荪 +魑 +峇 +斄 +缶 +茭 +煅 +酩 +酢 +湟 +潏 +嘌 +韪 +苣 +蛆 +侔 +帑 +鸨 +愫 +芫 +郪 +踔 +骧 +茁 +溧 +皁 +蜔 +魍 +瀹 +楔 +祧 +粜 +晡 +蹩 +畎 +啱 +窳 +瞾 +甙 + + +绺 +貔 + +痈 +舡 +葴 +耋 +囔 +П +蚯 +笆 +鲐 +踧 +遫 +踟 +Р +溊 +咂 +锹 +笫 +癔 +觜 +涒 +碓 +蛲 +跺 +枞 +茔 +⒈ +谸 +抿 +擘 +跬 +愛 +浿 +∩ +黟 +枰 +な +轘 +荠 +郇 +姮 +锑 +妳 +饴 +绡 +奡 +夥 +钤 +俅 +酊 +潴 +绀 +髋 +獬 +儆 +産 +乂 +餍 +颡 +胾 +碛 +貊 +魭 +钿 +鸬 +喑 +哏 +牯 +蜍 +摁 +嶓 +俳 +蟭 +躅 +羖 +鳃 +孛 +羑 +濑 +雩 +焜 +鸷 +箦 +茯 +醪 +鹂 +铚 +缳 +螳 +酇 +蛔 +罃 +珐 +苕 +罅 +蛀 +庳 +褛 +罥 +艮 +娲 +蒺 +娉 +撵 +禨 +蓖 +姹 +戕 +庥 +岬 +痍 +烜 +窴 +邠 +蹉 +诨 +狁 +顒 +莨 +阈 +嘹 +戆 +窎 +儙 +螾 +纾 +嵋 +镕 +跣 +繻 +枳 +菏 +赜 +槃 +趄 +煊 +嬛 +抡 +睚 +跹 +壖 +戗 +⑶ +榫 +沬 +崴 +颚 +畼 +嫚 +嚋 +珮 +◇ +娀 +枋 +獭 +畀 +谇 +欃 +瓴 +龂 +鲋 +鹆 +鳝 +郕 +疴 +偈 +诒 +讧 +惇 +跂 +扢 +爨 +赪 +苡 +鈇 +晞 +亓 +釐 +槊 +寘 +暾 +莩 +徳 +钹 +冏 +書 +麂 +撂 +犨 +滁 +孪 +刓 +逶 +澝 +嬃 +黡 +沕 +恝 +洟 +秸 +逑 +滓 +緃 +媢 +叼 +霣 +⒊ +慝 +厍 +炟 +皤 +囐 + +硼 +楸 +瞀 +烝 +炔 +瓻 +耙 +腩 +醵 +锽 +殪 +樯 +芡 +∈ +↓ +缵 +伻 +玊 +桠 +觚 +踯 +噔 +碴 +砣 +忪 +藁 +镒 +佝 +峤 +峣 +搤 +汐 +嗾 +鞚 +巂 +楗 +呓 +狒 +開 +坻 +蘧 +趵 +榱 +锷 +锾 +隳 +饟 +饦 +馎 +驵 +骘 +髀 +髑 +鮼 +鲑 +鲔 +鹘 +鹚 +﹔ +│ +刈 +刖 +剎 +啐 +嘭 +噌 +噗 +嚬 +嚰 +圯 +坳 +嫄 +寖 +尻 +峋 +崃 +嶂 +嶶 +帇 +幤 +悫 +慙 +扌 +揜 +撝 +旳 +昀 +昃 +暹 +玕 +琰 +璆 +玃 +疃 +猃 +皴 +狃 +祊 +燹 +燠 +熛 +窣 +窬 +糌 +糍 +紬 +濩 +飧 +肸 +脲 +臬 +芘 +荜 +蔫 +襜 +觖 +豭 +贇 +氩 +氖 +趸 +檠 +檇 +邘 +鄏 +酡 +鑙 +钴 +铵 +氅 +莜 +柢 +悭 +鄳 +蒗 +虺 +沇 +薤 +踹 +墠 +唶 +骍 +镊 +镛 +帨 +逖 +氡 +鹣 +恹 +臛 +呃 +幂 +鹖 +間 +磛 +弢 +蛐 +懜 +凇 +闟 +璟 +遹 +肓 +剐 +垝 +杅 +笤 +佈 +撷 +佘 +嚅 +蝮 +谳 +蚝 +栀 +眢 +∵ +蓿 +枵 +橪 +騳 +≠ +蟋 +嗌 +玦 +嗄 +劙 +騠 +鞣 +唢 +茆 +蚰 +喹 +趱 +珅 +喆 +谔 +苄 +靥 +鲛 +洫 +颀 +趹 +蛩 +馓 +轫 +叡 +蒉 +睪 +漦 +胝 +瘐 +逦 +嶷 +傕 +斲 +嵬 +缇 +洙 +瘵 +縢 +渖 +價 +灊 +訇 +醍 +膦 +癜 +歃 +钎 +讵 +钰 +嫱 +婊 +狝 +榧 +脁 +柞 \ No newline at end of file diff --git a/config.py b/config.py index 23897c1..791d037 100644 --- a/config.py +++ b/config.py @@ -1,34 +1,50 @@ import numpy as np import cv2 import os -learning_rate=0.001 +learning_rate=1e-4 momentum=0.9 START_TOKEN = 0 END_TOKEN = 1 UNK_TOKEN = 2 VOCAB = {'': 0, '': 1, '': 2,'':3}#分别表示开始,结束,未出现的字符 VOC_IND={} -charset='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' +#charset='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' +def get_class(path): + f = open(path, 'r', encoding='UTF-8') + line = f.readline().strip() + class2int = {} + int2class = {} + i = 0 + while line != '': + class2int[line] = i + int2class[i] = line + line = f.readline().strip() + i = i + 1 + f.close() + return class2int, int2class + +_,charset=get_class('char_std_5990.txt') + for i in range(len(charset)): VOCAB[charset[i]]=i+4 for key in VOCAB: VOC_IND[VOCAB[key]]=key -MAX_LEN_WORD=27#标签的最大长度,以PAD +MAX_LEN_WORD=20#标签的最大长度,以PAD VOCAB_SIZE = len(VOCAB) -BATCH_SIZE = 40 +BATCH_SIZE = 128 RNN_UNITS = 256 EPOCH=10000 -IMAGE_WIDTH=120 +IMAGE_WIDTH=240 IMAGE_HEIGHT = 32 MAXIMUM__DECODE_ITERATIONS = 20 -DISPLAY_STEPS = 2 +DISPLAY_STEPS = 500 LOGS_PATH = 'log' CKPT_DIR = 'save_model' -train_dir='train' -val_dir='train' - +train_dir='../stn_cnn_lstm/vgg' +val_dir='../stn_cnn_lstm/val256' is_restore=True + def label2int(label):#label shape (num,len) #seq_len=[] target_input=np.ones((len(label), MAX_LEN_WORD), dtype=np.float32) +2#初始化为全为PAD @@ -55,25 +71,43 @@ def int2label(decode_label): label.append(temp) return label -def read_data(data_dir): +def read_data(data_dir,file): image = [] labels = [] num=0 - for root, sub_folder, file_list in os.walk(data_dir): + f=open(file,'r',encoding='UTF-8') + lines=f.read().strip().split('\n') + f.close() + for line in lines: + s=line.strip().split(' ') + label='' + image_name = os.path.join(data_dir, s[0]) + im = cv2.imread(image_name, 0) # /255.#read the gray image + if im.shape!=[32,240]: + im = cv2.resize(im, (IMAGE_WIDTH, IMAGE_HEIGHT)) + img = im.swapaxes(0, 1) + image.append(np.array(img[:, :, np.newaxis])) + for i in range(len(s)-1): + label+=charset[int(s[i+1])] + labels.append(label) + num += 1 + print(data_dir, '---------------------------------get image:', num) + return np.array(image),labels + + '''for root, sub_folder, file_list in os.walk(data_dir): for file_path in file_list: image_name = os.path.join(root, file_path) im = cv2.imread(image_name, 0) # /255.#read the gray image img = cv2.resize(im, (IMAGE_WIDTH,IMAGE_HEIGHT)) img = img.swapaxes(0, 1) image.append(np.array(img[:, :, np.newaxis])) - labels.append(image_name.split('_')[1]) + labels.append(image_name.split('/')[-1].split('_')[1]) num+=1 - print(data_dir,'---------------------------------get image:',num) - return np.array(image),labels + print(data_dir,'---------------------------------get image:',num)''' + #return np.array(image),labels def cal_acc(pred,label): num=0 for i in range(len(pred)): if pred[i]==label[i]: num+=1 return num*1.0/len(pred) - diff --git a/infer.py b/infer.py index be92ddb..9f60b56 100644 --- a/infer.py +++ b/infer.py @@ -4,8 +4,13 @@ import os loss,train_decode_result,pred_decode_result=build_network(is_training=True) -saver = tf.train.Saver() +var_list = tf.trainable_variables() +g_list = tf.global_variables() +bn_moving_vars = [g for g in g_list if 'moving_mean' in g.name] +bn_moving_vars += [g for g in g_list if 'moving_variance' in g.name] +var_list += bn_moving_vars +saver = tf.train.Saver(var_list=var_list,max_to_keep=5) sess = tf.Session() ckpt = tf.train.latest_checkpoint(cfg.CKPT_DIR) diff --git a/model.py b/model.py index 7761396..2c20863 100644 --- a/model.py +++ b/model.py @@ -2,13 +2,15 @@ import config as cfg from tensorflow.contrib import layers from tensorflow.python.layers.core import Dense +from tensorflow.python.ops import embedding_ops + import numpy as np slim=tf.contrib.slim image = tf.placeholder(tf.float32, shape=(None,cfg.IMAGE_WIDTH,cfg.IMAGE_HEIGHT, 1), name='img_data') train_output = tf.placeholder(tf.int64, shape=[None, None], name='train_output') target_output = tf.placeholder(tf.int64, shape=[None, None], name='target_output') sample_rate=tf.placeholder(tf.float32, shape=[], name='sample_rate') -train_length=np.array([27]*cfg.BATCH_SIZE,dtype=np.int32) +train_length=np.array([20]*cfg.BATCH_SIZE,dtype=np.int32) def encoder_net(_image, scope,is_training,reuse=None): with tf.variable_scope(scope, reuse=reuse): @@ -50,14 +52,15 @@ def decode(helper, memory, scope, enc_state,reuse=None): output_layer=output_layer) outputs = tf.contrib.seq2seq.dynamic_decode( decoder=decoder, output_time_major=False, - impute_finished=True, maximum_iterations=27) + impute_finished=True, maximum_iterations=20) return outputs def build_network(is_training): train_output_embed,enc_state= encoder_net(image, 'encode_features',is_training) #vocab_size: 输入数据的总词汇量,指的是总共有多少类词汇,不是总个数,embed_dim:想要得到的嵌入矩阵的维度 - output_embed = layers.embed_sequence(train_output, vocab_size=cfg.VOCAB_SIZE, embed_dim=cfg.VOCAB_SIZE, scope='embed')#有种变为one-hot的意味 - embeddings = tf.Variable(tf.truncated_normal(shape=[cfg.VOCAB_SIZE, cfg.VOCAB_SIZE], stddev=0.1), name='decoder_embedding')#embdding变为类别 + embeddings = tf.get_variable(name='embed_matrix',shape=[cfg.VOCAB_SIZE,256]) + output_embed=embedding_ops.embedding_lookup(embeddings,train_output) + start_tokens = tf.zeros([cfg.BATCH_SIZE], dtype=tf.int64) diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..4ba947e --- /dev/null +++ b/test.txt @@ -0,0 +1,146 @@ +test_1.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_2.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_3.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_4.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_5.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_6.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_7.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_8.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_9.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_10.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_11.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_12.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_13.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_14.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_15.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_16.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_17.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_18.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_19.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_20.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_21.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_22.png 8 222 66 777 41 583 1691 1286 818 2 155 457 +test_23.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_24.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_25.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_26.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_27.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_28.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_29.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_30.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_31.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_32.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_33.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_34.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_35.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_36.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_37.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_38.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_39.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_40.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_41.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_42.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_43.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_44.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_45.png 5 16 59 727 122 259 673 564 1471 84 9 336 +test_46.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_47.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_48.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_49.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_50.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_51.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_52.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_53.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_54.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_55.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_56.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_57.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_58.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_59.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_60.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_61.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_62.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_63.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_64.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_65.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_66.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_67.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_68.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_69.png 2 154 122 1368 340 3 564 1471 84 9 61 1368 +test_70.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_71.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_72.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_73.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_74.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_75.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_76.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_77.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_78.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_79.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_80.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_81.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_82.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_83.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_84.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_85.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_86.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_87.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_88.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_89.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_90.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_91.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_92.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_93.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_94.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_95.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_96.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_97.png 340 263 82 28 222 66 55 219 2 564 1471 3 +test_98.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_99.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_100.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_101.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_102.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_103.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_104.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_105.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_106.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_107.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_108.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_109.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_110.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_111.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_112.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_113.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_114.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_115.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_116.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_117.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_118.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_119.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_120.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_121.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_122.png 564 169 340 525 702 564 1471 84 9 336 340 28 +test_123.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_124.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_125.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_126.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_127.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_128.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_129.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_130.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_131.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_132.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_133.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_134.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_135.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_136.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_137.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_138.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_139.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_140.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_141.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_142.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_143.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_144.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_145.png 564 1471 412 9 336 340 1 8 134 230 167 335 +test_146.png 564 1471 412 9 336 340 1 8 134 230 167 335 diff --git a/train.py b/train.py index 926d768..7e7313a 100644 --- a/train.py +++ b/train.py @@ -1,3 +1,4 @@ + from model import * import config as cfg import time @@ -5,8 +6,16 @@ from sklearn.utils import shuffle loss,train_decode_result,pred_decode_result=build_network(is_training=True) optimizer = tf.train.MomentumOptimizer(learning_rate=cfg.learning_rate, momentum=cfg.momentum, use_nesterov=True) -train_op=optimizer.minimize(loss) -saver = tf.train.Saver(max_to_keep=5) +var_list = tf.trainable_variables() +g_list = tf.global_variables() +bn_moving_vars = [g for g in g_list if 'moving_mean' in g.name] +bn_moving_vars += [g for g in g_list if 'moving_variance' in g.name] +var_list += bn_moving_vars +saver = tf.train.Saver(var_list=var_list,max_to_keep=5) +update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) +with tf.control_dependencies(update_ops): + train_op=optimizer.minimize(loss) + sess = tf.Session() sess.run(tf.global_variables_initializer()) @@ -21,8 +30,9 @@ if ckpt: saver.restore(sess,ckpt) print('restore from the checkpoint{0}'.format(ckpt)) -img,label=cfg.read_data(cfg.train_dir) -val_img,val_label=cfg.read_data(cfg.val_dir) +img,label=cfg.read_data(config.train_dir,'train.txt') +#img,label=cfg.read_data('test','test.txt') +val_img,val_label=cfg.read_data(config.val_dir,'test.txt') num_train_samples=img.shape[0] num_batches_per_epoch = int(num_train_samples/cfg.BATCH_SIZE) target_in,target_out=cfg.label2int(label) @@ -42,11 +52,11 @@ sess.run( train_op,feed_dict={image: batch_inputs,train_output: batch_target_in,target_output: batch_target_out,sample_rate:np.min([1.,0.2*cur_epoch+0.2])}) if cur_batch%cfg.DISPLAY_STEPS==0: summary_loss, loss_result = sess.run([summary_op, loss],feed_dict={image: batch_inputs,train_output: batch_target_in,target_output: batch_target_out, - sample_rate: np.min([1., 0.2*cur_epoch+0.2])}) + sample_rate: np.min([1., 1.])}) writer.add_summary(summary_loss, cur_epoch*num_batches_per_epoch+cur_batch) val_predict = sess.run(pred_decode_result,feed_dict={image: val_img[0:cfg.BATCH_SIZE]}) train_predict = sess.run(pred_decode_result, feed_dict={image: batch_inputs, train_output: batch_target_in, - target_output: batch_target_out,sample_rate:np.min([1., 0.2*cur_epoch+0.2])}) + target_output: batch_target_out,sample_rate:np.min([1., 1.])}) predit = cfg.int2label(np.argmax(val_predict, axis=2)) train_pre = cfg.int2label(np.argmax(train_predict, axis=2)) gt = val_label[0:cfg.BATCH_SIZE] @@ -60,6 +70,3 @@ if not os.path.exists(cfg.CKPT_DIR): os.makedirs(cfg.CKPT_DIR) saver.save(sess, os.path.join(cfg.CKPT_DIR, 'attention_ocr.model'), global_step=cur_epoch*num_batches_per_epoch+cur_batch) - - - diff --git a/train/test_1.png b/train/test_1.png new file mode 100644 index 0000000..38bea76 Binary files /dev/null and b/train/test_1.png differ diff --git a/train/test_2.png b/train/test_2.png new file mode 100644 index 0000000..fed356a Binary files /dev/null and b/train/test_2.png differ diff --git a/train/test_3.png b/train/test_3.png new file mode 100644 index 0000000..50b2eee Binary files /dev/null and b/train/test_3.png differ diff --git a/train/test_4.png b/train/test_4.png new file mode 100644 index 0000000..d23a49f Binary files /dev/null and b/train/test_4.png differ