AlessandroBasso和StefanoSicco提出的算法虽然可以在一定程度上区分机器人和人类,但还是存在一些缺陷:
首先在算法描述中就存在错误,在第四步中,确定图像I_l所在的区域,将I_】分为4个相同面积的区域,随机的选择一个区域,并放置Ij在这个区域中,与Ij一重叠,这就存在1/4的几率会完全的覆盖图片Ii
另外,该算法在安全方面也存在着一定得缺陷:1)无论是基于概念的还是“最上层”的MosaHIP,都有一张完全没有被覆盖的真的图片暴露;2)每放置一张新的真的图片,它就会覆盖上一张图片的1,4区域,无论真的图片的顺序是什么,位置是什么,这些真的图片所在的区域的图片位置是有规律可循的,这就使机器人识别图片变得容易
2一个改进的基于马赛克图形的人机识别算法
对AlessandroBasso和Stefa130Sicco提出的算法的改进方案:1)在图像数据库P中选择n个图像,将它们添加到真的图像集合R={I….,1中;如果是基于概念的方法,随机的选择图像I∈R,确定它的种别G,否则I:=I。2)对于每一个Ij∈R,随机的选择缩放比例因数Si,S≤Sj≤S,根据Sj对Ij使用缩放比例函数;确定I.是否需要旋转,随机的选择旋转角度0,0≤o≤0,根据0.旋转Ij;确定Ij的透明度,随机的选择透明度因数,0≤T≤TAX,如果T.:!=O,根据对Ij使用透明度函数:
3)制作长m宽n的透明的图像c:在e上随机的选择一个位置,将I∈R放置在这个位置上,确保I没有超过c的边界;如果Ii=I,在集合D中保存I,的左上和右下的坐标:
4)对于每一个IiER,2≤j≤n;确定图像Ij一所在的区域,将Ij一。分为4个相同面积的区域,随机的选择一个区域,并按这个区域的方向,在这个区域中随机的选择一个新的区域,这个新的区域的面积≥原来区域的3/5,并放置Ij在这个新的区域中,与li一重叠,并保证它不覆盖Ij.,;如果是基于概念的方法Ii不能重叠预先放置的I,1≤k≤j;如果Ii=I,在集合D中保存I的左上和右下的坐标;