# ----------------------------------------------------------------------------- # Japanese Character Recognition CNN # A Keras-based model for classifying individual Japanese Kanji, Kana, Romaji, # digits, and punctuation, supporting both handwritten and printed styles. # # Author: Andreas Gaiser (2025) # # License: Apache 2.0 # This code is released under the Apache License 2.0. See the LICENSE file for details. # ----------------------------------------------------------------------------- import gradio as gr import tensorflow as tf import numpy as np from PIL import Image, ImageEnhance from huggingface_hub import hf_hub_download kanji_labels = [ "!", ",", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "?", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "⺉", "⺌", "⺍", "⺕", "⺗", "⺡", "⺢", "⺤", "⺦", "⺨", "⺭", "⻃", "⻌", "⻏", "⻖", "、", "。", "々", "〆", "ぁ", "あ", "ぃ", "い", "ぅ", "う", "ぇ", "え", "ぉ", "お", "か", "が", "き", "ぎ", "く", "ぐ", "け", "げ", "こ", "ご", "さ", "ざ", "し", "じ", "す", "ず", "せ", "ぜ", "そ", "ぞ", "た", "だ", "ち", "ぢ", "っ", "つ", "づ", "て", "で", "と", "ど", "な", "に", "ぬ", "ね", "の", "は", "ば", "ぱ", "ひ", "び", "ぴ", "ふ", "ぶ", "ぷ", "へ", "べ", "ぺ", "ほ", "ぼ", "ぽ", "ま", "み", "む", "め", "も", "ゃ", "や", "ゅ", "ゆ", "ょ", "よ", "ら", "り", "る", "れ", "ろ", "ゎ", "わ", "ゐ", "ゑ", "を", "ん", "ゔ", "ゕ", "ゖ", "゛", "゜", "ゝ", "ゞ", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヮ", "ワ", "ヰ", "ヱ", "ヲ", "ン", "ヴ", "ヵ", "ヶ", "ヷ", "ヸ", "ヹ", "ヺ", "・", "ー", "ヽ", "ヾ", "㐬", "㓁", "㔾", "一", "丁", "七", "万", "丈", "三", "上", "下", "不", "与", "丐", "丑", "且", "丕", "世", "丗", "丘", "丙", "丞", "両", "並", "丨", "个", "中", "丱", "串", "丶", "丸", "丹", "主", "丼", "丿", "乂", "乃", "久", "之", "乍", "乎", "乏", "乕", "乖", "乗", "乘", "乙", "九", "乞", "也", "乢", "乱", "乳", "乾", "亀", "亂", "亅", "了", "予", "争", "亊", "事", "二", "于", "云", "互", "五", "井", "亘", "亙", "些", "亜", "亞", "亟", "亠", "亡", "亢", "交", "亥", "亦", "亨", "享", "京", "亭", "亮", "亰", "亳", "亶", "人", "亻", "什", "仁", "仂", "仄", "仆", "仇", "今", "介", "仍", "从", "仏", "仔", "仕", "他", "仗", "付", "仙", "仝", "仞", "仟", "代", "令", "以", "仭", "仮", "仰", "仲", "件", "价", "任", "企", "伉", "伊", "伍", "伎", "伏", "伐", "休", "会", "伜", "伝", "伯", "估", "伴", "伶", "伸", "伺", "似", "伽", "佃", "但", "佇", "位", "低", "住", "佐", "佑", "体", "何", "佗", "余", "佚", "佛", "作", "佝", "佞", "佩", "佯", "佰", "佳", "併", "佶", "佻", "佼", "使", "侃", "來", "侈", "例", "侍", "侏", "侑", "侖", "侘", "供", "依", "侠", "価", "侫", "侭", "侮", "侯", "侵", "侶", "便", "係", "促", "俄", "俊", "俎", "俐", "俑", "俔", "俗", "俘", "俚", "俛", "保", "俟", "信", "俣", "俤", "俥", "修", "俯", "俱", "俳", "俵", "俶", "俸", "俺", "俾", "倅", "倆", "倉", "個", "倍", "倏", "們", "倒", "倔", "倖", "候", "倚", "借", "倡", "倣", "値", "倥", "倦", "倨", "倩", "倪", "倫", "倬", "倭", "倶", "倹", "偃", "假", "偈", "偉", "偏", "偐", "偕", "偖", "做", "停", "健", "偬", "偲", "側", "偵", "偶", "偸", "偽", "傀", "傅", "傍", "傑", "傘", "備", "傚", "催", "傭", "傲", "傳", "傴", "債", "傷", "傾", "僂", "僅", "僉", "僊", "働", "像", "僑", "僕", "僖", "僚", "僞", "僣", "僥", "僧", "僭", "僮", "僵", "價", "僻", "儀", "儁", "儂", "億", "儉", "儒", "儔", "儕", "儖", "儘", "儚", "償", "儡", "優", "儲", "儷", "儺", "儻", "儼", "儿", "兀", "允", "元", "兄", "充", "兆", "兇", "先", "光", "克", "兌", "免", "兎", "児", "兒", "兔", "党", "兜", "兢", "入", "全", "兩", "兪", "八", "公", "六", "兮", "共", "关", "兵", "其", "具", "典", "兼", "冀", "冂", "内", "円", "冉", "冊", "册", "再", "冏", "冐", "冑", "冒", "冓", "冕", "冖", "冗", "写", "冠", "冢", "冤", "冥", "冦", "冨", "冩", "冪", "冫", "冬", "冰", "冱", "冲", "决", "冴", "况", "冶", "冷", "冽", "凄", "凅", "准", "凉", "凋", "凌", "凍", "凖", "凛", "凜", "凝", "几", "凡", "処", "凧", "凩", "凪", "凭", "凰", "凱", "凵", "凶", "凸", "凹", "出", "函", "凾", "刀", "刂", "刃", "刄", "分", "切", "刈", "刊", "刋", "刎", "刑", "刔", "列", "初", "判", "別", "刧", "利", "刪", "刮", "到", "刳", "制", "刷", "券", "刹", "刺", "刻", "剃", "剄", "則", "削", "剋", "剌", "前", "剏", "剔", "剖", "剛", "剝", "剞", "剣", "剤", "剥", "剩", "剪", "副", "剰", "剱", "割", "剳", "剴", "創", "剽", "剿", "劃", "劇", "劈", "劉", "劍", "劑", "劒", "劔", "力", "功", "加", "劣", "助", "努", "劫", "劬", "劭", "励", "労", "劵", "効", "劼", "劾", "勁", "勃", "勅", "勇", "勉", "勍", "勒", "動", "勗", "勘", "務", "勝", "勞", "募", "勠", "勢", "勣", "勤", "勦", "勧", "勲", "勳", "勵", "勸", "勹", "勺", "勾", "勿", "匀", "匁", "匂", "包", "匆", "匈", "匍", "匏", "匐", "匕", "化", "北", "匙", "匚", "匝", "匠", "匡", "匣", "匪", "匯", "匱", "匳", "匸", "匹", "区", "医", "匿", "區", "十", "千", "卅", "卆", "升", "午", "卉", "半", "卍", "卑", "卒", "卓", "協", "南", "単", "博", "卜", "卞", "占", "卦", "卩", "卮", "卯", "印", "危", "即", "却", "卵", "卷", "卸", "卻", "卿", "厂", "厄", "厖", "厘", "厚", "原", "厠", "厥", "厦", "厨", "厩", "厭", "厮", "厰", "厳", "厶", "去", "参", "參", "又", "叉", "及", "友", "双", "反", "収", "叔", "取", "受", "叙", "叛", "叟", "叡", "叢", "口", "古", "句", "叨", "叩", "只", "叫", "召", "叭", "叮", "可", "台", "叱", "史", "右", "叶", "号", "司", "叺", "吁", "吃", "各", "合", "吉", "吊", "吋", "同", "名", "后", "吏", "吐", "向", "君", "吝", "吞", "吟", "吠", "否", "吩", "含", "听", "吭", "吮", "吶", "吸", "吹", "吻", "吼", "吽", "吾", "呀", "呂", "呆", "呈", "呉", "告", "呎", "呑", "呟", "周", "呪", "呰", "呱", "味", "呵", "呶", "呷", "呻", "呼", "命", "咀", "咄", "咆", "咋", "和", "咎", "咏", "咐", "咒", "咢", "咤", "咥", "咨", "咫", "咬", "咯", "咲", "咳", "咸", "咼", "咽", "咾", "哀", "品", "哂", "哄", "哇", "哈", "哉", "哘", "員", "哢", "哥", "哦", "哨", "哩", "哭", "哮", "哲", "哺", "哽", "唄", "唆", "唇", "唏", "唐", "唔", "唖", "售", "唯", "唱", "唳", "唸", "唹", "唾", "啀", "啄", "啅", "商", "啌", "問", "啓", "啖", "啗", "啜", "啝", "啣", "啻", "啼", "啾", "喀", "喃", "善", "喇", "喉", "喊", "喋", "喘", "喙", "喚", "喜", "喝", "喞", "喟", "喧", "喨", "喩", "喪", "喫", "喬", "單", "喰", "営", "喻", "嗄", "嗅", "嗇", "嗔", "嗚", "嗜", "嗟", "嗣", "嗤", "嗷", "嗹", "嗽", "嗾", "嘆", "嘉", "嘔", "嘖", "嘗", "嘘", "嘛", "嘩", "嘯", "嘱", "嘲", "嘴", "嘶", "嘸", "噂", "噌", "噎", "噐", "噓", "噛", "噤", "器", "噪", "噫", "噬", "噴", "噸", "噺", "嚀", "嚆", "嚇", "嚊", "嚏", "嚔", "嚠", "嚢", "嚥", "嚮", "嚴", "嚶", "嚼", "囀", "囁", "囂", "囃", "囈", "囎", "囑", "囓", "囗", "囘", "囚", "四", "回", "因", "団", "囮", "困", "囲", "図", "囹", "固", "国", "囿", "圀", "圃", "圄", "圈", "圉", "國", "圍", "圏", "園", "圓", "圖", "團", "圜", "土", "圣", "圦", "圧", "在", "圭", "地", "圷", "圸", "圻", "址", "坂", "均", "坊", "坎", "坏", "坐", "坑", "坡", "坤", "坦", "坩", "坪", "坿", "垂", "垈", "垉", "型", "垓", "垠", "垢", "垣", "垤", "垪", "垰", "垳", "埀", "埃", "埆", "埋", "城", "埒", "埓", "埔", "埖", "埜", "域", "埠", "埣", "埴", "埶", "執", "培", "基", "埼", "堀", "堂", "堅", "堆", "堊", "堋", "堕", "堙", "堝", "堡", "堤", "堪", "堯", "堰", "報", "場", "堵", "堺", "堽", "塀", "塁", "塊", "塋", "塑", "塒", "塔", "塗", "塘", "塙", "塚", "塞", "塡", "塢", "塩", "填", "塰", "塲", "塵", "塹", "塾", "境", "墅", "墓", "増", "墜", "墟", "墨", "墫", "墮", "墳", "墸", "墹", "墺", "墻", "墾", "壁", "壅", "壇", "壊", "壌", "壑", "壓", "壕", "壗", "壘", "壙", "壜", "壞", "壟", "壤", "壥", "士", "壬", "壮", "壯", "声", "壱", "売", "壷", "壹", "壺", "壻", "壼", "壽", "夂", "変", "夊", "复", "夏", "夐", "夕", "外", "夘", "夙", "多", "夛", "夜", "夢", "夥", "大", "天", "太", "夫", "夬", "夭", "央", "失", "夲", "夷", "夸", "夾", "奄", "奇", "奈", "奉", "奎", "奏", "奐", "契", "奔", "奕", "套", "奘", "奚", "奠", "奢", "奥", "奧", "奨", "奩", "奪", "奬", "奮", "女", "奴", "奸", "好", "妁", "如", "妃", "妄", "妊", "妍", "妓", "妖", "妙", "妛", "妝", "妣", "妥", "妨", "妬", "妲", "妹", "妻", "妾", "姆", "姉", "始", "姐", "姑", "姓", "委", "姙", "姚", "姜", "姥", "姦", "姨", "姪", "姫", "姶", "姻", "姿", "威", "娃", "娉", "娑", "娘", "娚", "娜", "娟", "娠", "娥", "娩", "娯", "娵", "娶", "娼", "婀", "婁", "婆", "婉", "婚", "婢", "婦", "婪", "婬", "婿", "媒", "媚", "媛", "媼", "媽", "媾", "嫁", "嫂", "嫉", "嫋", "嫌", "嫐", "嫖", "嫗", "嫡", "嫣", "嫦", "嫩", "嫺", "嫻", "嬉", "嬋", "嬌", "嬖", "嬢", "嬪", "嬬", "嬰", "嬲", "嬶", "嬾", "孀", "孃", "孅", "子", "孑", "孔", "孕", "字", "存", "孚", "孛", "孜", "孝", "孟", "季", "孤", "孥", "学", "孩", "孫", "孰", "孱", "孳", "孵", "學", "孺", "宀", "它", "宅", "宇", "守", "安", "宋", "完", "宍", "宏", "宕", "宗", "官", "宙", "定", "宛", "宜", "宝", "実", "客", "宣", "室", "宥", "宦", "宮", "宰", "害", "宴", "宵", "家", "宸", "容", "宿", "寂", "寃", "寄", "寅", "密", "寇", "寉", "富", "寐", "寒", "寓", "寔", "寛", "寝", "寞", "察", "寡", "寢", "寤", "寥", "實", "寧", "寨", "審", "寫", "寮", "寰", "寳", "寵", "寶", "寸", "寺", "対", "寿", "封", "専", "尃", "射", "尅", "将", "將", "專", "尉", "尊", "尋", "對", "導", "小", "少", "尓", "尖", "尚", "尠", "尢", "尤", "尨", "尭", "就", "尸", "尹", "尺", "尻", "尼", "尽", "尾", "尿", "局", "屁", "居", "屆", "屈", "届", "屋", "屍", "屎", "屏", "屐", "屑", "屓", "展", "属", "屠", "屡", "層", "履", "屬", "屮", "屯", "山", "屶", "屹", "岌", "岐", "岑", "岔", "岡", "岨", "岩", "岫", "岬", "岱", "岳", "岶", "岷", "岸", "岻", "岼", "岾", "峅", "峇", "峙", "峠", "峡", "峨", "峩", "峪", "峭", "峯", "峰", "島", "峺", "峻", "峽", "崇", "崋", "崎", "崑", "崔", "崕", "崖", "崗", "崘", "崙", "崚", "崛", "崟", "崢", "崩", "嵋", "嵌", "嵎", "嵐", "嵒", "嵜", "嵩", "嵬", "嵯", "嵳", "嵶", "嶂", "嶄", "嶇", "嶋", "嶌", "嶐", "嶝", "嶢", "嶬", "嶮", "嶷", "嶺", "嶼", "嶽", "巉", "巌", "巍", "巒", "巓", "巖", "巛", "川", "州", "巡", "巣", "工", "左", "巧", "巨", "巫", "差", "己", "已", "巳", "巴", "巵", "巷", "巻", "巽", "巾", "市", "布", "帆", "帋", "希", "帑", "帖", "帙", "帚", "帛", "帝", "帥", "師", "席", "帯", "帰", "帳", "帶", "帷", "常", "帽", "幀", "幃", "幄", "幅", "幇", "幌", "幎", "幔", "幕", "幗", "幟", "幡", "幢", "幣", "幤", "干", "平", "年", "幵", "并", "幸", "幹", "幺", "幻", "幼", "幽", "幾", "广", "庁", "広", "庄", "庇", "床", "序", "底", "庖", "店", "庚", "府", "庠", "度", "座", "庫", "庭", "庵", "庶", "康", "庸", "廁", "廂", "廃", "廈", "廉", "廊", "廏", "廐", "廓", "廖", "廚", "廛", "廝", "廟", "廠", "廡", "廢", "廣", "廨", "廩", "廬", "廰", "廱", "廳", "廴", "延", "廷", "廸", "建", "廻", "廼", "廾", "廿", "弁", "弃", "弄", "弉", "弊", "弋", "弌", "弍", "式", "弐", "弑", "弓", "弔", "引", "弖", "弗", "弘", "弛", "弟", "弥", "弦", "弧", "弩", "弭", "弯", "弱", "張", "強", "弸", "弼", "弾", "彁", "彈", "彊", "彌", "彎", "彐", "彑", "当", "彖", "彗", "彙", "彜", "彝", "彡", "形", "彦", "彩", "彪", "彫", "彬", "彭", "彰", "影", "彳", "彷", "役", "彼", "彿", "往", "征", "徂", "徃", "径", "待", "徇", "很", "徊", "律", "後", "徐", "徑", "徒", "従", "得", "徘", "徙", "從", "徠", "御", "徨", "復", "循", "徭", "微", "徳", "徴", "徹", "徼", "徽", "心", "忄", "必", "忌", "忍", "忖", "志", "忘", "忙", "応", "忝", "忠", "忤", "快", "忰", "忱", "念", "忸", "忻", "忽", "忿", "怎", "怏", "怐", "怒", "怕", "怖", "怙", "怛", "怜", "思", "怠", "怡", "急", "怦", "性", "怨", "怩", "怪", "怫", "怯", "怱", "怺", "恁", "恂", "恃", "恆", "恊", "恋", "恍", "恐", "恒", "恕", "恙", "恚", "恟", "恠", "恢", "恣", "恤", "恥", "恨", "恩", "恪", "恫", "恬", "恭", "息", "恰", "恵", "恷", "悁", "悃", "悄", "悉", "悋", "悌", "悍", "悒", "悔", "悖", "悗", "悚", "悛", "悟", "悠", "患", "悦", "悧", "悩", "悪", "悲", "悳", "悴", "悵", "悶", "悸", "悼", "悽", "情", "惆", "惇", "惑", "惓", "惘", "惚", "惜", "惟", "惠", "惡", "惣", "惧", "惨", "惰", "惱", "想", "惴", "惶", "惷", "惹", "惺", "惻", "愀", "愁", "愃", "愆", "愈", "愉", "愍", "愎", "意", "愕", "愚", "愛", "感", "愡", "愧", "愨", "愬", "愴", "愼", "愽", "愾", "愿", "慂", "慄", "慇", "慈", "慊", "態", "慌", "慍", "慎", "慓", "慕", "慘", "慙", "慚", "慝", "慟", "慢", "慣", "慥", "慧", "慨", "慫", "慮", "慯", "慰", "慱", "慳", "慴", "慵", "慶", "慷", "慾", "憂", "憇", "憊", "憎", "憐", "憑", "憔", "憖", "憙", "憚", "憤", "憧", "憩", "憫", "憬", "憮", "憲", "憶", "憺", "憾", "懃", "懆", "懇", "懈", "應", "懊", "懋", "懌", "懍", "懐", "懣", "懦", "懲", "懴", "懶", "懷", "懸", "懺", "懼", "懽", "懾", "懿", "戀", "戈", "戉", "戊", "戌", "戍", "戎", "成", "我", "戒", "戔", "或", "戚", "戛", "戝", "戞", "戟", "戠", "戡", "戦", "截", "戮", "戯", "戰", "戲", "戳", "戴", "戸", "戻", "房", "所", "扁", "扇", "扈", "扉", "手", "扌", "才", "扎", "打", "払", "托", "扛", "扞", "扠", "扣", "扨", "扮", "扱", "扶", "批", "扼", "找", "承", "技", "抂", "抃", "抄", "抉", "把", "抑", "抒", "抓", "抔", "投", "抖", "抗", "折", "抛", "抜", "択", "披", "抬", "抱", "抵", "抹", "抻", "押", "抽", "拂", "担", "拆", "拇", "拈", "拉", "拊", "拌", "拍", "拏", "拐", "拑", "拒", "拓", "拔", "拗", "拘", "拙", "招", "拜", "拝", "拠", "拡", "括", "拭", "拮", "拯", "拱", "拳", "拵", "拶", "拷", "拾", "拿", "持", "挂", "指", "挈", "按", "挌", "挑", "挙", "挟", "挧", "挨", "挫", "振", "挺", "挽", "挾", "挿", "捉", "捌", "捍", "捏", "捐", "捕", "捗", "捜", "捧", "捨", "捩", "捫", "据", "捲", "捶", "捷", "捺", "捻", "掀", "掃", "授", "掉", "掌", "掎", "掏", "排", "掖", "掘", "掛", "掟", "掠", "採", "探", "掣", "接", "控", "推", "掩", "措", "掫", "掬", "掲", "掴", "掵", "掻", "掾", "揀", "揃", "揄", "揆", "揉", "描", "提", "插", "揖", "揚", "換", "握", "揣", "揩", "揮", "援", "揶", "揺", "搆", "損", "搏", "搓", "搖", "搗", "搜", "搦", "搨", "搬", "搭", "搴", "搶", "携", "搾", "摂", "摎", "摑", "摘", "摧", "摩", "摯", "摶", "摸", "摺", "撃", "撈", "撒", "撓", "撕", "撚", "撞", "撤", "撥", "撩", "撫", "播", "撮", "撰", "撲", "撹", "撻", "撼", "擁", "擂", "擅", "擇", "操", "擒", "擔", "擘", "據", "擠", "擡", "擢", "擣", "擦", "擧", "擬", "擯", "擱", "擲", "擴", "擶", "擺", "擽", "擾", "攀", "攅", "攘", "攜", "攝", "攣", "攤", "攪", "攫", "攬", "支", "攴", "攵", "收", "攷", "攸", "改", "攻", "放", "政", "故", "效", "敍", "敏", "救", "敕", "敖", "敗", "敘", "教", "敝", "敞", "敢", "散", "敦", "敬", "数", "敲", "整", "敵", "敷", "數", "斂", "斃", "文", "斈", "斉", "斌", "斎", "斐", "斑", "斗", "料", "斛", "斜", "斟", "斡", "斤", "斥", "斧", "斫", "斬", "断", "斯", "新", "斷", "方", "於", "施", "斿", "旁", "旃", "旄", "旅", "旆", "旋", "旌", "族", "旒", "旗", "旙", "旛", "无", "旡", "既", "日", "旦", "旧", "旨", "早", "旬", "旭", "旱", "旺", "旻", "昂", "昃", "昆", "昇", "昊", "昌", "明", "昏", "易", "昔", "昜", "星", "映", "春", "昧", "昨", "昭", "是", "昴", "昵", "昶", "昼", "昿", "晁", "時", "晃", "晄", "晉", "晋", "晏", "晒", "晝", "晞", "晟", "晢", "晤", "晦", "晧", "晨", "晩", "普", "景", "晰", "晴", "晶", "智", "暁", "暃", "暄", "暇", "暈", "暉", "暎", "暑", "暖", "暗", "暘", "暝", "暢", "暦", "暫", "暮", "暴", "暸", "暹", "暼", "暾", "曁", "曄", "曇", "曉", "曖", "曙", "曚", "曜", "曝", "曠", "曦", "曩", "曰", "曲", "曳", "更", "曵", "曷", "書", "曹", "曼", "曽", "曾", "替", "最", "會", "月", "有", "朋", "服", "朏", "朔", "朕", "朖", "朗", "望", "朝", "朞", "期", "朦", "朧", "木", "未", "末", "本", "札", "朮", "朱", "朴", "朶", "朷", "朸", "机", "朽", "朿", "杁", "杆", "杉", "李", "杏", "材", "村", "杓", "杖", "杙", "杜", "杞", "束", "杠", "条", "杢", "杣", "杤", "来", "杪", "杭", "杯", "杰", "東", "杲", "杳", "杵", "杷", "杼", "松", "板", "枅", "枇", "枉", "枋", "枌", "析", "枕", "林", "枚", "果", "枝", "枠", "枡", "枢", "枦", "枩", "枯", "枳", "枴", "架", "枷", "枸", "枹", "柁", "柄", "柆", "柊", "柎", "柏", "某", "柑", "染", "柔", "柘", "柚", "柝", "柞", "柢", "柤", "柧", "柩", "柬", "柮", "柯", "柱", "柳", "柴", "柵", "査", "柾", "柿", "栂", "栃", "栄", "栓", "栖", "栗", "栞", "校", "栢", "栩", "株", "栫", "栲", "栴", "核", "根", "格", "栽", "桀", "桁", "桂", "桃", "框", "案", "桍", "桎", "桐", "桑", "桓", "桔", "桙", "桜", "桝", "桟", "档", "桧", "桴", "桶", "桷", "桼", "桾", "桿", "梁", "梃", "梅", "梍", "梏", "梓", "梔", "梗", "梛", "條", "梟", "梠", "梢", "梦", "梧", "梨", "梭", "梯", "械", "梱", "梳", "梵", "梶", "梹", "梺", "梼", "棄", "棆", "棉", "棊", "棋", "棍", "棒", "棔", "棕", "棗", "棘", "棚", "棟", "棠", "棡", "棣", "棧", "森", "棯", "棲", "棹", "棺", "椀", "椁", "椄", "椅", "椈", "椋", "椌", "植", "椎", "椏", "椒", "椙", "椚", "椛", "検", "椡", "椢", "椣", "椥", "椦", "椨", "椪", "椰", "椴", "椶", "椹", "椽", "椿", "楊", "楓", "楔", "楕", "楙", "楚", "楜", "楝", "楞", "楠", "楡", "楢", "楪", "楫", "業", "楮", "楯", "楳", "楴", "極", "楷", "楸", "楹", "楼", "楽", "楾", "榁", "概", "榊", "榎", "榑", "榔", "榕", "榛", "榜", "榠", "榧", "榮", "榱", "榲", "榴", "榻", "榾", "榿", "槁", "槃", "槇", "槊", "構", "槌", "槍", "槎", "槐", "槓", "様", "槙", "槝", "槞", "槧", "槨", "槫", "槭", "槲", "槹", "槻", "槽", "槿", "樂", "樅", "樊", "樋", "樌", "樒", "樓", "樔", "樗", "標", "樛", "樞", "樟", "模", "樢", "樣", "権", "横", "樫", "樮", "樵", "樶", "樸", "樹", "樺", "樽", "橄", "橇", "橈", "橋", "橘", "橙", "機", "橡", "橢", "橦", "橲", "橸", "橿", "檀", "檄", "檍", "檎", "檐", "檗", "檜", "檠", "檢", "檣", "檪", "檬", "檮", "檳", "檸", "檻", "櫁", "櫂", "櫃", "櫑", "櫓", "櫚", "櫛", "櫞", "櫟", "櫨", "櫪", "櫺", "櫻", "欄", "欅", "權", "欒", "欖", "欝", "欟", "欠", "次", "欣", "欧", "欲", "欷", "欸", "欹", "欺", "欽", "款", "歃", "歇", "歉", "歌", "歎", "歐", "歓", "歔", "歙", "歛", "歟", "歡", "止", "正", "此", "武", "歩", "歪", "歯", "歳", "歴", "歸", "歹", "死", "歿", "殀", "殃", "殄", "殆", "殉", "殊", "残", "殍", "殕", "殖", "殘", "殞", "殤", "殪", "殫", "殯", "殱", "殲", "殳", "殴", "段", "殷", "殺", "殻", "殼", "殿", "毀", "毅", "毆", "毋", "母", "毎", "毒", "毓", "比", "毘", "毛", "毟", "毫", "毬", "毯", "毳", "氈", "氏", "民", "氓", "气", "気", "氛", "氣", "氤", "水", "氵", "氷", "永", "氺", "氾", "汀", "汁", "求", "汎", "汐", "汕", "汗", "汚", "汝", "汞", "江", "池", "汢", "汨", "汪", "汰", "汲", "汳", "決", "汽", "汾", "沁", "沂", "沃", "沈", "沌", "沍", "沐", "沒", "沓", "沖", "沙", "沚", "沛", "没", "沢", "沫", "沮", "沱", "河", "沸", "油", "沺", "治", "沼", "沽", "沾", "沿", "況", "泄", "泅", "泉", "泊", "泌", "泓", "法", "泗", "泙", "泛", "泝", "泡", "波", "泣", "泥", "注", "泪", "泯", "泰", "泱", "泳", "洋", "洌", "洒", "洗", "洙", "洛", "洞", "洟", "津", "洩", "洪", "洫", "洲", "洳", "洵", "洶", "洸", "活", "洽", "派", "流", "浄", "浅", "浙", "浚", "浜", "浣", "浤", "浦", "浩", "浪", "浬", "浮", "浴", "海", "浸", "浹", "涅", "消", "涌", "涎", "涓", "涕", "涙", "涛", "涜", "涯", "液", "涵", "涸", "涼", "淀", "淅", "淆", "淇", "淋", "淌", "淑", "淒", "淕", "淘", "淙", "淞", "淡", "淤", "淦", "淨", "淪", "淫", "淬", "淮", "深", "淳", "淵", "混", "淹", "淺", "添", "清", "渇", "済", "渉", "渊", "渋", "渓", "渕", "渙", "渚", "減", "渝", "渟", "渠", "渡", "渣", "渤", "渥", "渦", "温", "渫", "測", "渭", "渮", "港", "游", "渺", "渾", "湃", "湊", "湍", "湎", "湖", "湘", "湛", "湟", "湧", "湫", "湮", "湯", "湲", "湶", "湾", "湿", "満", "溂", "溌", "溏", "源", "準", "溘", "溜", "溝", "溟", "溢", "溥", "溪", "溯", "溲", "溶", "溷", "溺", "溽", "滂", "滄", "滅", "滉", "滋", "滌", "滑", "滓", "滔", "滕", "滝", "滞", "滬", "滯", "滲", "滴", "滷", "滸", "滾", "滿", "漁", "漂", "漆", "漉", "漏", "漑", "漓", "演", "漕", "漠", "漢", "漣", "漫", "漬", "漱", "漲", "漸", "漾", "漿", "潁", "潅", "潔", "潘", "潛", "潜", "潟", "潤", "潦", "潭", "潮", "潯", "潰", "潴", "潸", "潺", "潼", "澀", "澁", "澂", "澄", "澆", "澎", "澑", "澗", "澡", "澣", "澤", "澪", "澱", "澳", "澹", "激", "濁", "濂", "濃", "濆", "濔", "濕", "濘", "濛", "濟", "濠", "濡", "濤", "濫", "濬", "濮", "濯", "濱", "濳", "濶", "濺", "濾", "瀁", "瀆", "瀉", "瀋", "瀏", "瀑", "瀕", "瀘", "瀚", "瀛", "瀝", "瀞", "瀟", "瀦", "瀧", "瀬", "瀰", "瀲", "瀾", "灌", "灑", "灘", "灣", "火", "灬", "灯", "灰", "灸", "灼", "災", "炉", "炊", "炎", "炒", "炙", "炬", "炭", "炮", "炯", "炳", "炸", "点", "為", "烈", "烋", "烏", "烙", "烝", "烟", "烱", "烹", "烽", "焉", "焔", "焙", "焚", "焜", "無", "焦", "焰", "然", "焼", "煉", "煌", "煎", "煕", "煖", "煙", "煢", "煤", "煥", "煦", "照", "煩", "煬", "煮", "煽", "熄", "熈", "熊", "熏", "熔", "熕", "熙", "熟", "熨", "熬", "熱", "熹", "熾", "燃", "燈", "燉", "燎", "燐", "燒", "燔", "燕", "燗", "營", "燠", "燥", "燦", "燧", "燬", "燭", "燮", "燵", "燹", "燻", "燼", "燿", "爆", "爍", "爐", "爛", "爨", "爪", "爬", "爭", "爰", "爲", "爵", "父", "爺", "爻", "爼", "爽", "爾", "爿", "牀", "牆", "片", "版", "牋", "牌", "牒", "牘", "牙", "牛", "牝", "牟", "牡", "牢", "牧", "物", "牲", "牴", "特", "牽", "牾", "犀", "犁", "犂", "犇", "犒", "犖", "犠", "犢", "犧", "犬", "犭", "犯", "犲", "状", "犹", "狂", "狃", "狄", "狆", "狎", "狐", "狒", "狗", "狙", "狛", "狠", "狡", "狢", "狩", "独", "狭", "狷", "狸", "狹", "狼", "狽", "猊", "猖", "猗", "猛", "猜", "猝", "猟", "猥", "猩", "猪", "猫", "献", "猯", "猴", "猶", "猷", "猾", "猿", "獄", "獅", "獎", "獏", "獗", "獣", "獨", "獪", "獰", "獲", "獵", "獸", "獺", "獻", "玄", "率", "玉", "王", "玖", "玩", "玲", "玳", "玻", "珀", "珂", "珈", "珊", "珍", "珎", "珞", "珠", "珥", "珪", "班", "珮", "珱", "珸", "現", "球", "琅", "理", "琉", "琢", "琥", "琲", "琳", "琴", "琵", "琶", "琺", "琿", "瑁", "瑕", "瑙", "瑚", "瑛", "瑜", "瑞", "瑟", "瑠", "瑣", "瑤", "瑩", "瑪", "瑯", "瑰", "瑳", "瑶", "瑾", "璃", "璋", "璞", "璢", "璧", "環", "璽", "瓊", "瓏", "瓔", "瓜", "瓠", "瓢", "瓣", "瓦", "瓧", "瓩", "瓮", "瓰", "瓱", "瓲", "瓶", "瓷", "瓸", "甃", "甄", "甅", "甌", "甍", "甎", "甑", "甓", "甕", "甘", "甚", "甜", "甞", "生", "産", "甥", "甦", "用", "甫", "甬", "田", "由", "甲", "申", "男", "甸", "町", "画", "甼", "畄", "畆", "畉", "畊", "畋", "界", "畍", "畏", "畐", "畑", "畔", "留", "畚", "畛", "畜", "畝", "畠", "畢", "畤", "略", "畦", "畧", "畩", "番", "畫", "畭", "異", "畳", "畴", "當", "畷", "畸", "畿", "疂", "疆", "疇", "疉", "疊", "疋", "疎", "疏", "疑", "疒", "疔", "疚", "疝", "疣", "疥", "疫", "疱", "疲", "疳", "疵", "疸", "疹", "疼", "疽", "疾", "痂", "痃", "病", "症", "痊", "痍", "痒", "痔", "痕", "痘", "痙", "痛", "痞", "痢", "痣", "痩", "痰", "痲", "痳", "痴", "痺", "痼", "痾", "痿", "瘁", "瘉", "瘋", "瘍", "瘟", "瘠", "瘡", "瘢", "瘤", "瘧", "瘰", "瘴", "瘻", "療", "癆", "癇", "癈", "癌", "癒", "癖", "癘", "癜", "癡", "癢", "癧", "癨", "癩", "癪", "癬", "癰", "癲", "癶", "癸", "発", "登", "發", "白", "百", "皀", "皃", "的", "皆", "皇", "皈", "皋", "皎", "皐", "皓", "皖", "皙", "皚", "皮", "皰", "皴", "皷", "皸", "皹", "皺", "皿", "盂", "盃", "盆", "盈", "益", "盍", "盒", "盖", "盗", "盛", "盜", "盞", "盟", "盡", "監", "盤", "盥", "盧", "盪", "目", "盲", "直", "相", "盻", "盾", "省", "眄", "眇", "眈", "眉", "看", "県", "眛", "眞", "真", "眠", "眤", "眥", "眦", "眩", "眷", "眸", "眺", "眼", "着", "睇", "睚", "睛", "睡", "督", "睥", "睦", "睨", "睫", "睹", "睾", "睿", "瞋", "瞎", "瞑", "瞞", "瞠", "瞥", "瞬", "瞭", "瞰", "瞳", "瞶", "瞹", "瞻", "瞼", "瞽", "瞿", "矇", "矍", "矗", "矚", "矛", "矜", "矢", "矣", "知", "矧", "矩", "短", "矮", "矯", "石", "矼", "砂", "砌", "砒", "研", "砕", "砠", "砥", "砦", "砧", "砲", "破", "砺", "砿", "硅", "硝", "硫", "硬", "硯", "硲", "硴", "硼", "碁", "碆", "碇", "碌", "碍", "碎", "碑", "碓", "碕", "碗", "碚", "碣", "碧", "碩", "碪", "碯", "碵", "確", "碼", "碾", "磁", "磅", "磆", "磊", "磋", "磐", "磑", "磔", "磚", "磧", "磨", "磬", "磯", "磴", "磽", "礁", "礇", "礎", "礑", "礒", "礙", "礦", "礪", "礫", "礬", "示", "礻", "礼", "社", "祀", "祁", "祇", "祈", "祉", "祐", "祓", "祕", "祖", "祗", "祚", "祝", "神", "祟", "祠", "祢", "祥", "票", "祭", "祷", "祺", "祿", "禀", "禁", "禄", "禅", "禊", "禍", "禎", "福", "禝", "禦", "禧", "禪", "禮", "禰", "禱", "禳", "禸", "禹", "禺", "离", "禽", "禾", "禿", "秀", "私", "秉", "秋", "科", "秒", "秕", "秘", "租", "秡", "秣", "秤", "秦", "秧", "秩", "秬", "称", "移", "稀", "稈", "程", "稍", "税", "稔", "稗", "稘", "稙", "稚", "稜", "稟", "稠", "種", "稱", "稲", "稷", "稻", "稼", "稽", "稾", "稿", "穀", "穂", "穃", "穆", "穉", "積", "穎", "穏", "穐", "穗", "穡", "穢", "穣", "穩", "穫", "穰", "穴", "究", "穹", "空", "穽", "穿", "突", "窃", "窄", "窈", "窒", "窓", "窕", "窖", "窗", "窘", "窟", "窩", "窪", "窮", "窯", "窰", "窶", "窺", "窿", "竃", "竄", "竅", "竇", "竈", "竊", "立", "竍", "竏", "竒", "竓", "竕", "站", "竚", "竜", "竝", "竟", "章", "竡", "竢", "竣", "童", "竦", "竪", "竭", "端", "竰", "競", "竸", "竹", "竺", "竿", "笂", "笄", "笆", "笈", "笊", "笋", "笏", "笑", "笘", "笙", "笛", "笞", "笠", "笥", "符", "笨", "第", "笳", "笵", "笶", "笹", "筅", "筆", "筈", "等", "筋", "筌", "筍", "筏", "筐", "筑", "筒", "答", "策", "筝", "筥", "筧", "筬", "筮", "筰", "筱", "筴", "筵", "筺", "箆", "箇", "箋", "箍", "箏", "箒", "箔", "箕", "算", "箘", "箙", "箚", "箜", "箝", "箟", "管", "箪", "箭", "箱", "箴", "箸", "節", "篁", "範", "篆", "篇", "築", "篋", "篌", "篏", "篝", "篠", "篤", "篥", "篦", "篩", "篭", "篳", "篶", "篷", "簀", "簇", "簍", "簑", "簒", "簓", "簔", "簗", "簞", "簟", "簡", "簣", "簧", "簪", "簫", "簷", "簸", "簽", "簾", "簿", "籀", "籃", "籌", "籍", "籏", "籐", "籔", "籖", "籘", "籟", "籠", "籤", "籥", "籬", "米", "籵", "籾", "粁", "粂", "粃", "粉", "粋", "粍", "粐", "粒", "粕", "粗", "粘", "粛", "粟", "粡", "粢", "粤", "粥", "粧", "粨", "粫", "粭", "粮", "粱", "粲", "粳", "粹", "粽", "精", "糀", "糂", "糅", "糊", "糎", "糒", "糖", "糘", "糜", "糞", "糟", "糠", "糢", "糧", "糯", "糲", "糴", "糶", "糸", "糺", "系", "糾", "紀", "紂", "約", "紅", "紆", "紊", "紋", "納", "紐", "純", "紕", "紗", "紘", "紙", "級", "紛", "紜", "素", "紡", "索", "紫", "紬", "紮", "累", "細", "紲", "紳", "紵", "紹", "紺", "紿", "終", "絃", "組", "絅", "絆", "絋", "経", "絎", "絏", "結", "絖", "絛", "絞", "絡", "絢", "絣", "給", "絨", "絮", "統", "絲", "絳", "絵", "絶", "絹", "絽", "綉", "綏", "經", "継", "続", "綛", "綜", "綟", "綢", "綣", "綫", "綬", "維", "綮", "綯", "綰", "綱", "網", "綴", "綵", "綸", "綺", "綻", "綽", "綾", "綿", "緇", "緊", "緋", "総", "緑", "緒", "緕", "緘", "線", "緜", "緝", "緞", "締", "緡", "緤", "編", "緩", "緬", "緯", "緲", "練", "緻", "縁", "縄", "縅", "縉", "縊", "縋", "縒", "縛", "縞", "縟", "縡", "縢", "縣", "縦", "縫", "縮", "縱", "縲", "縵", "縷", "縹", "縺", "縻", "總", "績", "繁", "繃", "繆", "繊", "繋", "繍", "織", "繕", "繖", "繙", "繚", "繝", "繞", "繡", "繦", "繧", "繩", "繪", "繫", "繭", "繰", "繹", "繻", "繼", "繽", "繿", "纂", "纃", "纈", "纉", "續", "纎", "纏", "纐", "纒", "纓", "纔", "纖", "纛", "纜", "缶", "缸", "缺", "罅", "罌", "罍", "罎", "罐", "网", "罒", "罔", "罕", "罘", "罟", "罠", "罧", "罨", "罩", "罪", "罫", "置", "罰", "署", "罵", "罷", "罸", "罹", "羂", "羃", "羅", "羆", "羇", "羈", "羊", "羌", "美", "羔", "羚", "羝", "羞", "羣", "群", "羨", "義", "羮", "羯", "羲", "羶", "羸", "羹", "羽", "翁", "翅", "翆", "翊", "翌", "習", "翔", "翕", "翠", "翡", "翦", "翩", "翫", "翰", "翳", "翹", "翻", "翼", "耀", "老", "耂", "考", "耄", "者", "耆", "耋", "而", "耐", "耒", "耕", "耗", "耘", "耙", "耜", "耡", "耨", "耳", "耶", "耻", "耽", "耿", "聆", "聊", "聒", "聖", "聘", "聚", "聞", "聟", "聡", "聢", "聨", "聯", "聰", "聲", "聳", "聴", "聶", "職", "聹", "聽", "聾", "聿", "肄", "肅", "肆", "肇", "肉", "肋", "肌", "肓", "肖", "肘", "肚", "肛", "肝", "股", "肢", "肥", "肩", "肪", "肬", "肭", "肯", "肱", "育", "肴", "肺", "胃", "胄", "胆", "背", "胎", "胖", "胙", "胚", "胛", "胝", "胞", "胡", "胤", "胥", "胯", "胱", "胴", "胸", "胼", "能", "脂", "脅", "脆", "脇", "脈", "脉", "脊", "脚", "脛", "脣", "脩", "脯", "脱", "脳", "脹", "脾", "腆", "腋", "腎", "腐", "腑", "腓", "腔", "腕", "腟", "腥", "腦", "腫", "腮", "腰", "腱", "腴", "腸", "腹", "腺", "腿", "膀", "膂", "膃", "膈", "膊", "膏", "膓", "膕", "膚", "膜", "膝", "膠", "膣", "膤", "膨", "膩", "膰", "膳", "膵", "膸", "膺", "膽", "膾", "膿", "臀", "臂", "臆", "臈", "臉", "臍", "臑", "臓", "臘", "臙", "臚", "臟", "臠", "臣", "臥", "臧", "臨", "自", "臭", "至", "致", "臺", "臻", "臼", "臾", "舁", "舂", "舅", "與", "興", "舉", "舊", "舌", "舍", "舎", "舐", "舒", "舖", "舗", "舘", "舛", "舜", "舞", "舟", "舩", "航", "舫", "般", "舮", "舳", "舵", "舶", "舷", "舸", "船", "艀", "艇", "艘", "艙", "艚", "艝", "艟", "艢", "艤", "艦", "艨", "艪", "艫", "艮", "良", "艱", "色", "艶", "艷", "艸", "艹", "艾", "芋", "芍", "芒", "芙", "芝", "芟", "芥", "芦", "芫", "芬", "芭", "芯", "花", "芳", "芸", "芹", "芻", "芽", "苅", "苑", "苒", "苓", "苔", "苗", "苙", "苛", "苜", "苞", "苟", "苡", "苣", "若", "苦", "苧", "苫", "英", "苳", "苴", "苹", "苺", "苻", "茂", "范", "茄", "茅", "茆", "茉", "茎", "茖", "茗", "茘", "茜", "茣", "茨", "茫", "茯", "茱", "茲", "茴", "茵", "茶", "茸", "茹", "荀", "荅", "草", "荊", "荏", "荐", "荒", "荘", "荳", "荵", "荷", "荻", "荼", "莅", "莇", "莉", "莊", "莎", "莓", "莖", "莚", "莞", "莟", "莠", "莢", "莨", "莪", "莫", "莱", "莵", "莽", "菁", "菅", "菊", "菌", "菎", "菓", "菖", "菘", "菜", "菟", "菠", "菩", "菫", "華", "菰", "菱", "菲", "菴", "菷", "菻", "菽", "萃", "萄", "萇", "萊", "萋", "萌", "萍", "萎", "萓", "萠", "萢", "萩", "萪", "萬", "萱", "萵", "萸", "萼", "落", "葆", "葉", "葎", "著", "葛", "葡", "葢", "董", "葦", "葩", "葫", "葬", "葭", "葮", "葯", "葱", "葵", "葷", "葹", "葺", "蒂", "蒄", "蒋", "蒐", "蒔", "蒙", "蒜", "蒟", "蒡", "蒭", "蒲", "蒸", "蒹", "蒻", "蒼", "蒿", "蓁", "蓄", "蓆", "蓉", "蓊", "蓋", "蓍", "蓐", "蓑", "蓖", "蓙", "蓚", "蓬", "蓮", "蓴", "蓼", "蓿", "蔀", "蔆", "蔑", "蔓", "蔔", "蔕", "蔗", "蔘", "蔚", "蔟", "蔡", "蔣", "蔦", "蔬", "蔭", "蔵", "蔽", "蕀", "蕁", "蕃", "蕈", "蕉", "蕊", "蕋", "蕎", "蕕", "蕗", "蕘", "蕚", "蕣", "蕨", "蕩", "蕪", "蕭", "蕷", "蕾", "薀", "薄", "薇", "薈", "薊", "薐", "薑", "薔", "薗", "薙", "薛", "薜", "薤", "薦", "薨", "薩", "薪", "薫", "薬", "薮", "薯", "薹", "薺", "藁", "藉", "藍", "藏", "藐", "藕", "藜", "藝", "藤", "藥", "藩", "藪", "藷", "藹", "藺", "藻", "藾", "蘂", "蘆", "蘇", "蘊", "蘋", "蘓", "蘖", "蘗", "蘚", "蘢", "蘭", "蘯", "蘰", "蘿", "虍", "虎", "虐", "虔", "處", "虚", "虜", "虞", "號", "虧", "虫", "虱", "虹", "虻", "蚊", "蚋", "蚌", "蚓", "蚕", "蚣", "蚤", "蚩", "蚪", "蚫", "蚯", "蚰", "蚶", "蛄", "蛆", "蛇", "蛉", "蛋", "蛍", "蛎", "蛔", "蛙", "蛛", "蛞", "蛟", "蛤", "蛩", "蛬", "蛭", "蛮", "蛯", "蛸", "蛹", "蛻", "蛾", "蜀", "蜂", "蜃", "蜆", "蜈", "蜉", "蜊", "蜍", "蜑", "蜒", "蜘", "蜚", "蜜", "蜥", "蜩", "蜴", "蜷", "蜻", "蜿", "蝉", "蝋", "蝌", "蝎", "蝓", "蝕", "蝗", "蝙", "蝟", "蝠", "蝣", "蝦", "蝨", "蝪", "蝮", "蝴", "蝶", "蝸", "蝿", "螂", "融", "螟", "螢", "螫", "螯", "螳", "螺", "螻", "螽", "蟀", "蟄", "蟆", "蟇", "蟋", "蟐", "蟒", "蟠", "蟬", "蟯", "蟲", "蟶", "蟷", "蟹", "蟻", "蟾", "蠅", "蠍", "蠎", "蠏", "蠑", "蠕", "蠖", "蠡", "蠢", "蠣", "蠧", "蠱", "蠶", "蠹", "蠻", "血", "衂", "衄", "衆", "行", "衍", "衒", "術", "街", "衙", "衛", "衝", "衞", "衡", "衢", "衣", "衤", "表", "衫", "衰", "衲", "衵", "衷", "衽", "衾", "衿", "袁", "袂", "袈", "袋", "袍", "袒", "袖", "袗", "袙", "袞", "袢", "袤", "被", "袮", "袰", "袱", "袴", "袵", "袷", "袿", "裁", "裂", "裃", "裄", "装", "裏", "裔", "裕", "裘", "裙", "補", "裝", "裟", "裡", "裨", "裲", "裳", "裴", "裸", "裹", "裼", "製", "裾", "褂", "褄", "複", "褊", "褌", "褐", "褒", "褓", "褝", "褞", "褥", "褪", "褫", "褶", "褸", "褻", "襁", "襃", "襄", "襌", "襍", "襖", "襞", "襟", "襠", "襤", "襦", "襪", "襭", "襯", "襲", "襴", "襷", "襾", "西", "要", "覃", "覆", "覇", "覈", "覊", "見", "規", "覓", "視", "覗", "覘", "覚", "覡", "覦", "覧", "覩", "親", "覬", "覯", "覲", "観", "覺", "覽", "覿", "觀", "角", "觚", "觜", "觝", "解", "触", "觧", "觴", "觸", "言", "訂", "訃", "計", "訊", "訌", "討", "訐", "訓", "訖", "託", "記", "訛", "訝", "訟", "訣", "訥", "訪", "設", "許", "訳", "訴", "訶", "診", "註", "証", "詁", "詆", "詈", "詐", "詑", "詒", "詔", "評", "詛", "詞", "詠", "詢", "詣", "試", "詩", "詫", "詬", "詭", "詮", "詰", "話", "該", "詳", "詼", "誂", "誄", "誅", "誇", "誉", "誌", "認", "誑", "誓", "誕", "誘", "誚", "語", "誠", "誡", "誣", "誤", "誥", "誦", "誨", "説", "読", "誰", "課", "誹", "誼", "調", "諂", "諄", "談", "請", "諌", "諍", "諏", "諒", "論", "諚", "諛", "諜", "諞", "諠", "諡", "諢", "諤", "諦", "諧", "諫", "諭", "諮", "諱", "諳", "諷", "諸", "諺", "諾", "謀", "謁", "謂", "謄", "謇", "謌", "謎", "謐", "謔", "謖", "謗", "謙", "謚", "講", "謝", "謠", "謡", "謦", "謨", "謫", "謬", "謳", "謹", "謾", "譁", "證", "譌", "譎", "譏", "譖", "識", "譚", "譛", "譜", "譟", "警", "譫", "譬", "譯", "議", "譱", "譲", "譴", "護", "譽", "讀", "讃", "變", "讌", "讎", "讐", "讒", "讓", "讖", "讙", "讚", "谷", "谺", "谿", "豁", "豆", "豈", "豊", "豌", "豎", "豐", "豕", "豚", "象", "豢", "豪", "豫", "豬", "豸", "豹", "豺", "豼", "貂", "貅", "貉", "貊", "貌", "貍", "貎", "貔", "貘", "貝", "貞", "負", "財", "貢", "貧", "貨", "販", "貪", "貫", "責", "貭", "貮", "貯", "貰", "貲", "貳", "貴", "貶", "買", "貸", "費", "貼", "貽", "貿", "賀", "賁", "賂", "賃", "賄", "資", "賈", "賊", "賍", "賎", "賑", "賓", "賚", "賛", "賜", "賞", "賠", "賢", "賣", "賤", "賦", "質", "賭", "賺", "賻", "購", "賽", "贄", "贅", "贇", "贈", "贊", "贋", "贍", "贏", "贐", "贓", "贔", "贖", "赤", "赦", "赧", "赫", "赭", "走", "赱", "赳", "赴", "起", "趁", "超", "越", "趙", "趣", "趨", "足", "趺", "趾", "跂", "跋", "跌", "跏", "跖", "跚", "跛", "距", "跟", "跡", "跣", "跨", "跪", "跫", "路", "跳", "践", "跼", "跿", "踈", "踉", "踊", "踏", "踐", "踝", "踞", "踟", "踪", "踰", "踴", "踵", "蹂", "蹄", "蹇", "蹈", "蹉", "蹊", "蹌", "蹐", "蹕", "蹙", "蹟", "蹠", "蹣", "蹤", "蹲", "蹴", "蹶", "蹼", "躁", "躄", "躅", "躇", "躊", "躋", "躍", "躑", "躓", "躔", "躙", "躡", "躪", "身", "躬", "躯", "躰", "躱", "躾", "軅", "軆", "軈", "車", "軋", "軌", "軍", "軒", "軛", "軟", "転", "軣", "軫", "軸", "軻", "軼", "軽", "軾", "較", "輅", "載", "輊", "輌", "輒", "輓", "輔", "輕", "輙", "輛", "輜", "輝", "輟", "輦", "輩", "輪", "輯", "輳", "輸", "輹", "輻", "輾", "輿", "轂", "轄", "轅", "轆", "轉", "轌", "轍", "轎", "轗", "轜", "轟", "轡", "轢", "轣", "轤", "辛", "辜", "辞", "辟", "辣", "辧", "辨", "辭", "辮", "辯", "辰", "辱", "農", "辶", "辷", "辺", "辻", "込", "辿", "迂", "迄", "迅", "迎", "近", "返", "迚", "迢", "迥", "迦", "迩", "迪", "迫", "迭", "迯", "述", "迴", "迷", "迸", "迹", "迺", "追", "退", "送", "逃", "逅", "逆", "逋", "逍", "逎", "透", "逐", "逑", "逓", "途", "逕", "逖", "逗", "這", "通", "逝", "逞", "速", "造", "逡", "逢", "連", "逧", "逮", "週", "進", "逵", "逶", "逸", "逹", "逼", "逾", "遁", "遂", "遅", "遇", "遉", "遊", "運", "遍", "過", "遏", "遐", "遑", "遒", "道", "達", "違", "遖", "遘", "遙", "遜", "遞", "遠", "遡", "遣", "遥", "遨", "適", "遭", "遮", "遯", "遲", "遵", "遶", "遷", "選", "遺", "遼", "遽", "避", "邀", "邁", "邂", "邃", "還", "邇", "邉", "邊", "邏", "邑", "那", "邦", "邨", "邪", "邯", "邱", "邵", "邸", "郁", "郊", "郎", "郛", "郡", "郢", "郤", "部", "郭", "郵", "郷", "都", "鄂", "鄒", "鄙", "鄭", "鄰", "鄲", "酉", "酊", "酋", "酌", "配", "酎", "酒", "酔", "酖", "酘", "酢", "酣", "酥", "酩", "酪", "酬", "酲", "酳", "酵", "酷", "酸", "醂", "醇", "醉", "醋", "醍", "醐", "醒", "醗", "醜", "醢", "醤", "醪", "醫", "醬", "醯", "醴", "醵", "醸", "醺", "釀", "釁", "釆", "采", "釈", "釉", "釋", "里", "重", "野", "量", "釐", "金", "釖", "釘", "釛", "釜", "針", "釟", "釡", "釣", "釦", "釧", "釵", "釶", "釼", "釿", "鈍", "鈎", "鈑", "鈔", "鈕", "鈞", "鈩", "鈬", "鈴", "鈷", "鈿", "鉄", "鉅", "鉈", "鉉", "鉋", "鉐", "鉗", "鉚", "鉛", "鉞", "鉢", "鉤", "鉦", "鉱", "鉾", "銀", "銃", "銅", "銑", "銓", "銕", "銖", "銘", "銚", "銛", "銜", "銭", "銷", "銹", "鋏", "鋒", "鋤", "鋩", "鋪", "鋭", "鋲", "鋳", "鋸", "鋺", "鋼", "錆", "錏", "錐", "錘", "錙", "錚", "錠", "錢", "錣", "錦", "錨", "錫", "錬", "錮", "錯", "録", "錵", "錺", "錻", "鍄", "鍋", "鍍", "鍔", "鍖", "鍛", "鍜", "鍠", "鍬", "鍮", "鍵", "鍼", "鍾", "鎌", "鎔", "鎖", "鎗", "鎚", "鎧", "鎬", "鎭", "鎮", "鎰", "鎹", "鏃", "鏈", "鏐", "鏑", "鏖", "鏗", "鏘", "鏝", "鏡", "鏤", "鏥", "鏨", "鐃", "鐇", "鐐", "鐓", "鐔", "鐘", "鐙", "鐚", "鐡", "鐫", "鐵", "鐶", "鐸", "鐺", "鑁", "鑄", "鑑", "鑒", "鑓", "鑚", "鑛", "鑞", "鑠", "鑢", "鑪", "鑰", "鑵", "鑷", "鑼", "鑽", "鑾", "鑿", "钁", "長", "門", "閂", "閃", "閇", "閉", "閊", "開", "閏", "閑", "間", "閔", "閖", "閘", "閙", "閠", "関", "閣", "閤", "閥", "閧", "閨", "閭", "閲", "閹", "閻", "閼", "閾", "闃", "闇", "闊", "闌", "闍", "闔", "闕", "闖", "闘", "關", "闡", "闢", "闥", "阜", "阝", "阡", "阨", "阪", "阮", "阯", "防", "阻", "阿", "陀", "陂", "附", "陋", "陌", "降", "陏", "限", "陛", "陜", "陝", "陞", "陟", "院", "陣", "除", "陥", "陦", "陪", "陬", "陰", "陲", "陳", "陵", "陶", "陷", "陸", "険", "陽", "隅", "隆", "隈", "隊", "隋", "隍", "階", "随", "隔", "隕", "隗", "隘", "隙", "際", "障", "隠", "隣", "隧", "隨", "險", "隰", "隱", "隲", "隴", "隶", "隷", "隸", "隹", "隻", "隼", "雀", "雁", "雄", "雅", "集", "雇", "雉", "雋", "雌", "雍", "雎", "雑", "雕", "雖", "雙", "雛", "雜", "離", "難", "雨", "雩", "雪", "雫", "雰", "雲", "零", "雷", "雹", "電", "需", "霄", "霆", "震", "霈", "霊", "霍", "霎", "霏", "霑", "霓", "霖", "霙", "霜", "霞", "霤", "霧", "霪", "霰", "露", "霸", "霹", "霽", "霾", "靂", "靄", "靆", "靈", "靉", "青", "靖", "静", "靜", "非", "靠", "靡", "面", "靤", "靦", "靨", "革", "靫", "靭", "靱", "靴", "靹", "靺", "靼", "鞁", "鞄", "鞅", "鞆", "鞋", "鞍", "鞏", "鞐", "鞘", "鞜", "鞠", "鞣", "鞦", "鞨", "鞫", "鞭", "鞳", "鞴", "韃", "韆", "韈", "韋", "韓", "韜", "韭", "韮", "韲", "音", "韵", "韶", "韻", "響", "頁", "頂", "頃", "項", "順", "須", "頌", "頏", "預", "頑", "頒", "頓", "頗", "領", "頚", "頡", "頤", "頬", "頭", "頰", "頴", "頷", "頸", "頻", "頼", "頽", "顆", "顋", "題", "額", "顎", "顏", "顔", "顕", "願", "顚", "顛", "類", "顧", "顫", "顯", "顰", "顱", "顳", "顴", "風", "颪", "颯", "颱", "颶", "飃", "飄", "飆", "飛", "飜", "食", "飠", "飢", "飩", "飫", "飭", "飮", "飯", "飲", "飴", "飼", "飽", "飾", "餃", "餅", "餉", "養", "餌", "餐", "餒", "餓", "餔", "餘", "餝", "餞", "餠", "餡", "餤", "館", "餬", "餮", "餽", "餾", "饂", "饅", "饉", "饋", "饌", "饐", "饑", "饒", "饕", "饗", "首", "馗", "馘", "香", "馥", "馨", "馬", "馭", "馮", "馳", "馴", "馼", "駁", "駄", "駅", "駆", "駈", "駐", "駑", "駒", "駕", "駘", "駛", "駝", "駟", "駢", "駭", "駮", "駱", "駲", "駸", "駻", "駿", "騁", "騅", "騎", "騏", "騒", "験", "騙", "騨", "騫", "騰", "騷", "騾", "驀", "驂", "驃", "驅", "驍", "驕", "驗", "驚", "驛", "驟", "驢", "驤", "驥", "驩", "驪", "驫", "骨", "骭", "骰", "骸", "骼", "髀", "髄", "髏", "髑", "髓", "體", "高", "髞", "髟", "髢", "髣", "髦", "髪", "髫", "髭", "髮", "髯", "髱", "髴", "髷", "髻", "鬆", "鬘", "鬚", "鬟", "鬢", "鬣", "鬥", "鬧", "鬨", "鬩", "鬪", "鬮", "鬯", "鬱", "鬲", "鬻", "鬼", "魁", "魂", "魃", "魄", "魅", "魍", "魎", "魏", "魑", "魔", "魘", "魚", "魯", "魴", "鮃", "鮎", "鮑", "鮒", "鮓", "鮖", "鮗", "鮟", "鮠", "鮨", "鮪", "鮫", "鮭", "鮮", "鮴", "鮹", "鯀", "鯆", "鯉", "鯊", "鯏", "鯑", "鯒", "鯔", "鯖", "鯛", "鯡", "鯢", "鯣", "鯤", "鯨", "鯰", "鯱", "鯲", "鯵", "鰄", "鰆", "鰈", "鰉", "鰊", "鰌", "鰍", "鰐", "鰒", "鰓", "鰔", "鰕", "鰛", "鰡", "鰤", "鰥", "鰭", "鰮", "鰯", "鰰", "鰲", "鰹", "鰺", "鰻", "鰾", "鱆", "鱇", "鱈", "鱒", "鱗", "鱚", "鱠", "鱧", "鱶", "鱸", "鳥", "鳧", "鳩", "鳫", "鳬", "鳰", "鳳", "鳴", "鳶", "鴃", "鴆", "鴇", "鴈", "鴉", "鴎", "鴒", "鴕", "鴛", "鴟", "鴣", "鴦", "鴨", "鴪", "鴫", "鴬", "鴻", "鴾", "鴿", "鵁", "鵄", "鵆", "鵈", "鵐", "鵑", "鵙", "鵜", "鵝", "鵞", "鵠", "鵡", "鵤", "鵬", "鵯", "鵲", "鵺", "鶇", "鶉", "鶏", "鶚", "鶤", "鶩", "鶫", "鶯", "鶲", "鶴", "鶸", "鶺", "鶻", "鷁", "鷂", "鷄", "鷆", "鷏", "鷓", "鷗", "鷙", "鷦", "鷭", "鷯", "鷲", "鷸", "鷹", "鷺", "鷽", "鸚", "鸛", "鸞", "鹵", "鹸", "鹹", "鹽", "鹿", "麁", "麈", "麋", "麌", "麑", "麒", "麓", "麕", "麗", "麝", "麟", "麥", "麦", "麩", "麪", "麭", "麸", "麹", "麺", "麻", "麼", "麾", "麿", "黃", "黄", "黌", "黍", "黎", "黏", "黐", "黑", "黒", "黔", "默", "黙", "黛", "黜", "黝", "點", "黠", "黥", "黨", "黯", "黴", "黶", "黷", "黹", "黻", "黼", "黽", "鼇", "鼈", "鼎", "鼓", "鼕", "鼠", "鼡", "鼬", "鼻", "鼾", "齊", "齋", "齎", "齏", "齒", "齔", "齟", "齠", "齡", "齢", "齣", "齦", "齧", "齪", "齬", "齲", "齶", "齷", "龍", "龕", "冷", "令", "嶺", "玲", "羚", "聆", "鈴", "零", "領", "!", "𠂊", "𠂤", "𠆢", "𠮟", "𦥑", ] # load model model_path = hf_hub_download(repo_id="gaiseras/kanjiDNN", filename="KanjiDNN_v2.keras") model = tf.keras.models.load_model(model_path) def preprocess(drawing): if not drawing or not drawing["composite"].any(): return None rgba_array = drawing["composite"] # shape: (H, W, 4) image = Image.fromarray(np.uint8(rgba_array), mode="RGBA") image = image.convert("L") image = image.resize((64, 64)) brightener = ImageEnhance.Brightness(image) image = brightener.enhance(1.2) image = np.expand_dims(image, axis=0) return image def predict(image): default_out = {"?%s" % i: 0.0 for i in range(5)}, "?" if image is None or image["composite"] is None: return default_out x = preprocess(image) if x is None: return default_out preds = model.predict(x)[0] top5_idx = preds.argsort()[-5:][::-1] return {kanji_labels[i]: float(preds[i]) for i in top5_idx}, "-".join(kanji_labels[i] for i in top5_idx) brush = gr.Brush(default_size=5) white_image = Image.new("RGBA", (256, 256), (255, 255, 255, 255)) sketchpad = gr.Sketchpad( value=white_image, height=256, width=256, brush=brush, interactive=True ) demo = gr.Interface( fn=predict, inputs=sketchpad, outputs=[gr.Label(num_top_classes=5, value="?"),gr.Textbox(label="Recognized Kanji", lines=1)], title="KanjiDNN", description="Draw a Kanji for predictions.", live=True, ) demo.launch()