[0059] 为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0060] 实施例1:
[0061] 本发明提供了显示终端身份识别方法,包括身份码嵌入过程和终端识别过程。
[0062] 如图2所示,本发明中的身份码嵌入过程按如下步骤进行:
[0063] 步骤201,获取显示终端中正在使用的字体文件,同时生成唯一标识所述显示终端的身份码。获取显示终端中正在使用的字体文件,作为身份码信息嵌入的载体。生成代表当前显示终端唯一标识的32位二进制比特序列,即终端身份码。其中,二进制比特序列由计算机终端的MAC地址、IP地址、主机名、用户名和当前时间信息组合生成。本发明实施例用十六进制信息“0x12AB34CD”表示生成的32位二进制比特序列。
[0064] 步骤202,将字体文件中的常用汉字和身份码序列进行分组。将32位的身份码序列(二进制比特序列)按照每2位一组共划分位16组。将字体文件中的1000个常用高频汉字划分为16组,其他非常用汉字不做字体变形,不用于承载身份码信息。常用高频汉字的分组规则为:将待分组的1000个汉字按照使用频率由高到低进行排序;如果汉字排在第i位,则划分到第i%16组,其中%表示取余符号。
[0065] 步骤203,修改常用汉字笔画结构生成变形汉字,并用生成的变形汉字来承载身份码信息,同时建立变形字集合。对16个分组中的1000个常用汉字,依次使用字体制作工具修改每个汉字的笔画结构,生成4种不同的变形汉字。将每个汉字的四种不同的变形字符,采用二进制依次编号为00、01、10、11,用于承载2位比特的身份码信息;将步骤202得到的16组身份码信息与16组常用汉字一一对应,依次根据每一组的身份码比特信息,对每一个常用汉字选择四种变形字符中的一种,建立常用汉字的变形字集合。具体方式为:如果比特信息为00,则选择汉字的第1种变形字;如果比特信息为01,则选择汉字的第2种变形字;如果比特信息为10,则选择汉字的第3种变形字;如果比特信息为11,则选择汉字的第4种变形字。
[0066] 步骤204,用建立的变形字集合中的变形字替换原字体文件中的常用汉字字体,并生成新字体文件。在步骤201获取的字体文件中,将1000个常用汉字替换为步骤203得到的变形字集合中的变形字体,生成新的字体文件;新字体文件中的其余非常用汉字保持不变。
[0067] 步骤205,用新字体文件替换显示终端中的原字体文件,完成终端身份码的嵌入。在显示终端中,用生成的新字体文件替换原字体文件,完成本发明的身份码嵌入过程。
[0068] 具体的,如图3所示,对本发明方法中的身份码嵌入过程作进一步说明:
[0069] 步骤301,获取字体文件和生成身份码。获取显示终端中正在使用的字体文件Font.ttf,作为身份码信息嵌入的载体。生成代表当前终端唯一标识的32位二进制比特序列“00010010101010110011010011001101”,即终端身份码。其中,二进制比特序列由计算机终端的MAC地址、IP地址、主机名、用户名和当前时间信息组合生成。
[0070] 步骤302,常用汉字和身份码序列分组。将32位的身份码序列按照每2位一组共划分位16组。将字体文件中的1000个常用高频汉字划分为16组,其他非常用汉字不做字体变形,不用于承载身份码信息。常用高频汉字的分组规则为:将待分组的1000个汉字按照使用频率由高到低进行排序;如果汉字排在第i位,则划分到第i%16组,其中%表示取余符号。
[0071] 例如,如图3所示中“的”字使用频率最高,因此排在第1位,划分在第1组;“会”字的使用频率排在第17位,因此划分在第17%16=1组,其中%表示取余符号;其余常用汉字分组依此类推。
[0072] 步骤303,常用汉字变形嵌入身份码信息。对16个分组中的1000个常用汉字,依次使用字体制作工具修改每个汉字的笔画结构,生成4种不同的变形汉字。例如,“的”字的4种不同变形字,它们的生成方式是将其右半边“勺”中的笔画点分别进行了不同的移位修改。将每个汉字的四种不同的变形字符,采用二进制依次编号为00、01、10、11,用于承载2位比特身份码信息。
[0073] 将步骤302得到的16组身份码信息与16组常用汉字一一对应,依次根据每一组的身份码比特信息,对每一个常用汉字选择四种变形字符中的一种,建立常用汉字的变形字集合。具体方式为:如果比特信息为00,则选择汉字的第1种变形字;如果比特信息为01,则选择汉字的第2种变形字;如果比特信息为10,则选择汉字的第3种变形字;如果比特信息为11,则选择汉字的第4种变形字。
[0074] 例如,身份码序列第一组比特信息为“00”,则在常用汉字分组的第1组中,选择汉字“的”、“会”的第1种变形,其余变形字依此类推。
[0075] 步骤304,生成新字体文件。在步骤301获取的字体文件中,将1000个常用汉字替换为步骤303得到的变形字集合中的变形字体,生成新的字体文件NewFont.ttf;新字体文件中的其余非常用汉字保持不变。
[0076] 步骤305,用新字体文件替换原字体文件。在显示终端中,用生成的新字体文件NewFont.ttf替换原字体文件Font.ttf,完成本发明的身份码嵌入过程。
[0077] 如图4所示,本发明中的终端识别过程按如下步骤进行:
[0078] 步骤401,获取待识别终端来源的文本图片。获取待识别终端来源的文本图片,图片中的汉字承载有显示终端的身份码。在本发明实施例中,文本图片可以通过对当前终端显示的文本内容进行截图、拍照或将终端中显示的文档进行扫描、打印、复印后拍照等方式获取。图片中承载有终端的身份码信息以十六进制表示为“0x12AB34CD”。
[0079] 步骤402,对所述文本图片进行文字识别和切分处理,获取每一个汉字和对应的汉字图像块。
[0080] 步骤403,将汉字图像块与变形字集合进行匹配,并提取匹配的变形字所承载的身份码比特信息。对于每一个汉字图像块,依次判断汉字是否为常用汉字。如果汉字不是常用汉字,则不做处理;如果汉字是常用汉字,则将汉字图像块与汉字的4种不同变形字分别进行匹配。根据匹配结果,判断汉字是属于四种变形字中的哪一种,并获取到这种变形字所承载的2位比特信息。具体方式为:如果汉字属于第1种变形,则获取到比特信息00;如果汉字属于第2种变形,则获取到比特信息01;如果汉字属于第3种变形,则获取到比特信息10;如果汉字属于第4种变形,则获取到比特信息11。
[0081] 步骤404,利用常用汉字分组对提取的身份码比特信息进行排列,并采用投票算法纠错,同时提取出正确的身份码序列。利用本发明实施例身份码嵌入中步骤202的常用汉字分组,依次将步骤403得到的2位比特信息与分组中的常用汉字一一对应,生成16组不同的比特信息。由于步骤403中匹配变形字获取的比特信息可能存在错误,导致每一组中的2比特信息可能不同。因此,依次选择每一组中出现次数最多的比特信息,作为该组提取正确的2位比特信息。依次输出16组2位的比特信息,即32位的二进制身份码序列。
[0082] 步骤405,将提取出的身份码序列转换回终端标识信息,识别出信息所标识的显示终端。将提取的32位身份码转换为终端的MAC地址、IP地址、主机名、用户名和时间等标识信息,识别出身份码信息所标识的显示终端,完成本发明的终端识别过程。
[0083] 具体的,如图5所示,对本发明方法中的终端识别过程作进一步说明;
[0084] 步骤501,获取待识别终端来源的文本图片。本发明实施例中,通过截取正在显示文档的终端屏幕,获得待识别终端来源的文本图片,图片中的汉字承载有显示终端的身份码。
[0085] 步骤502,文字识别切分。对文本图片依次进行文字识别和文字切分处理,获取文本图片中的每一个汉字的图像块。
[0086] 步骤503,字符匹配获取比特信息。对于每一个汉字图像块,依次判断汉字是否为常用汉字。如果汉字不是常用汉字,则不做处理;如果汉字是常用汉字,则将汉字图像块与汉字的4种不同变形字分别进行匹配。根据匹配结果,判断汉字是属于四种变形字中的哪一种,并获取到这种变形字所承载的2位比特信息。具体方式为:如果汉字属于第1种变形,则获取到比特信息00;如果汉字属于第2种变形,则获取到比特信息01;如果汉字属于第3种变形,则获取到比特信息10;如果汉字属于第4种变形,则获取到比特信息11。
[0087] 例如,对于第一个汉字“甲”、第二个汉字“乙”,都是非常用汉字,因此不做处理;对于汉字“双”,其是常用汉字,因此将“双”字的图像块与4种不同变形字分别进行匹配。根据匹配结果判断出其属于“双”字的第3种变形,由此提取出“双”字所承载的比特信息“10”。其余汉字依此类推。
[0088] 步骤504,提取身份码。利用本发明实施例身份码嵌入中步骤302的常用汉字分组,依次将步骤503得到的2位比特信息与分组中的常用汉字一一对应,生成16组不同的比特信息。由于步骤503中匹配变形字获取的比特信息可能存在错误,导致每一组中的2位比特信息可能不同。因此,依次选择每一组中出现次数最多的比特信息,作为该组提取正确的2位比特信息。
[0089] 例如,在提取的16组不同的比特信息中,第5组中的“将”和“括”字,根据步骤503提取的比特信息分别为“00”和“01”,而其余汉字所提取的比特信息均为“10”。因此,选择出现次数最多的“10”作为第5组提取正确的2位比特信息。其余分组投票依此类推。依次输出16组2位的比特信息,即32位的二进制身份码序列“00010010101010110011010011001101”。
[0090] 步骤505,识别显示终端。将提取的32位身份码转换为终端的MAC地址、IP地址、主机名、用户名和时间标识信息,识别出身份码信息所标识的显示终端,完成本发明的终端识别过程。
[0091] 本发明实施例进一步给出实现上述方法实施例的应用场景和实施例运行界面示意图。
[0092] 参考图1,为本发明实施例的应用场景示意图。
[0093] 如图1所示,本发明实施例将终端A的身份码嵌入到字体文件Font.ttf中,同时生成新的字体文件NewFont.ttf,并替换终端A中的原字体文件。当终端A中的文档通过拍照、截屏或打印、扫描后拍照等方式被非法传播后,本发明实施例能够准确提取出传播的文本图片中的身份码信息,从而根据身份码识别到其传播的源头是终端A。
[0094] 参考图6,为本发明实施例的身份码提取运行界面的示意图。
[0095] 如图6所示,提取身份码的运行界面包括4个显示框。其中左上角为待识别终端来源的文本图片显示框,即显示读取的等待识别其来源的文本图片;右上角为文本识别结果输出框,即输出对文本图片做文本识别后的文字结果;左下角为汉字切分结果显示框,即显示文字切分后的文本图像;右下角为提取身份码结果输出框,即输出提取出来的十六进制形式的身份码信息。
[0096] 基于实施例1,本发明还提供了显示终端身份识别系统,包括:
[0097] 字体信息获取模块,用于获取显示终端中正在使用的字体文件,同时生成唯一标识所述显示终端的身份码,并将字体文件中的常用汉字和身份码序列进行分组;
[0098] 字体处理模块,用于修改常用汉字笔画结构生成变形汉字,并用生成的变形汉字来承载身份码信息,同时建立变形字集合;
[0099] 文件替换模块,用于将变形字集合中的变形字替换原字体文件中的常用汉字字体,并生成新字体文件,并用新字体文件替换显示终端中的原字体文件;
[0100] 文本图片获取模块,用于获取待识别终端来源的文本图片;
[0101] 文本图片处理模块,用于对文本图片进行文字识别和切分处理,获取每一个汉字和对应的汉字图像块;
[0102] 匹配提取模块,用于将汉字图像块与变形字集合进行匹配,并提取匹配的变形字所承载的身份码比特信息,并利用常用汉字分组对提取的身份码比特信息进行排列,并采用投票算法纠错,同时提取出正确的身份码序列;
[0103] 识别模块,用于将提取出的身份码序列转换回终端标识信息,识别出信息所标识的显示终端。
[0104] 基于实施例1,本发明还提供了计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述任一实施方式所述的显示终端身份识别方法的步骤。
[0105] 本发明实施例实现的显示终端身份识别方法,将唯一标识终端身份的溯源信息嵌入到终端字体文件中。对于该终端中的电子文档,即使通过拍照、截屏或打印、扫描后拍照等方式进行传播,也能够准确提取出溯源信息。因此,可以大大提升追踪识别文档泄露源头的准确率和效率。
[0106] 以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。