F6.09.2initial avatar collision设计研究
纯色首字母占位在同名或同色情况下会降低可辨性
别名: 首字母撞车 · 同色头像 · letter avatar
概念解释
一块纯色底上放一个首字母,看起来像解决了「没有照片」:张三是蓝底张,李四是绿底李。撞车发生在两个地方——同名(两个张、两个 Alex)和同色(调色板只有八色,第九个人开始循环)。两种撞车可以叠在一起:同一列表里出现两枚一模一样的蓝底 A。此时占位不再识别人,只识别「这一类字母」。
机制
首字母占位的区分度是字母集合大小乘以颜色集合大小。中文姓的熵很低,张王李刘会占掉很大一份;英文名的首字母也集中在少量字母上。颜色再少,笛卡尔积很快被真实通讯录填满。人的再认还依赖「上次那枚蓝 A」,不是依赖哈希函数保证全局唯一。哈希把名字映射到颜色,只能推迟撞车,不能取消:只要两个名字被映到同一对(字母, 色),图形通道就塌缩。字色对比不够时,字母本身也读不出来,只剩色块,熵更低。同名同色因此不是边角,是这种编码的容量上限。
怎么研究
用真实姓名分布(不要均匀随机字母)生成列表,统计(字母, 色)对的碰撞率,再做「找出这个人」任务。自变量:字母取姓还是取全名、色板长度、是否加第二字母。因变量:碰撞对数、找人时间和认错。必须报告姓名来源——用均匀 26 字母会把问题藏掉。也可以测色板在小尺寸、深色底上的可辨对数,因为不可辨的颜色等于没加那一维。
边界
- 人数很少、姓名差异很大的小团队,碰撞可以低到能用。
- 两个字母、或字母加稳定图案,能抬容量;抬的是容量,不是把纯色首字母变成一种不同的东西。
- 全员有独一无二的照片时,这条不启动。
- 缺省要可区分是总要求;这里单独处理这种编码在同名同色上的塌缩。
怎么落地
- 不要只用单字母加短色板。至少加第二字符,或把色板拉到在小尺寸上仍可互辨的长度,并处理哈希碰撞(碰撞时改图案,而不是静默复用)。
- 色与字要在小尺寸、深色底上各自可认,颜色不能只在设计稿的大圆里可辨。
- 验证办法:拿一份真实用户姓名跑一遍占位生成,列出完全相同的(字母, 色)对。每一对都是认错候选人;在列表里把这两人放相邻,看会不会点错。