Hacker News 中文摘要

RSS订阅

Show HN:生成多样化肤色的简单算法与色彩空间 -- Show HN: Simple algorithm and color space to generate diverse skin tones

文章摘要

该文章介绍了一个为肤色构建的色彩空间项目,旨在帮助开发者创建更具包容性的色彩工具,如角色创建器或数字艺术工具,并提供了基于该色彩空间的JavaScript颜色选择器和Python采样算法。

文章总结

好的,这是根据您的要求,对原文主要内容进行的中文重述,保留了关键细节,并删减了与主题无关的内容(如致谢部分)。


标题:我们是什么颜色?构建肤色色彩空间

核心成果: 该项目旨在定义一个色彩空间,以便更容易地为角色创建或数字艺术等场景构建包容性的色彩工具。最终成果包括一个基于该色彩空间的JavaScript颜色选择器,以及一个Python程序化生成算法示例。

概述:

用数字方式呈现人类肤色的广泛范围是一个难题。现有的方案要么选项过少(如5种肤色表情符号),要么选项过多(如1670万种颜色),都无法很好地覆盖真实的多样性。本项目的目标是,在RGB色彩空间中,找出一个最广泛的、能对应合理(但简化)肤色的色彩范围,并用简单、“足够好”的数学公式来定义这个区域,使其能应用于多种场景。

局限性:

  • 肤色远比单一颜色复杂,受血流、黑色素、光线散射、白癜风、雀斑等多种因素影响。
  • 某些健康状况(如银中毒导致蓝灰色皮肤,高胆红素导致黄绿色皮肤)会产生超出常规范围的肤色。
  • 作者仅为个人,其主观判断和色彩感知存在偏差。
  • 颜色在不同显示设备和观看环境下感知不同。

方法论:

  1. 手动标记颜色: 作者构建了一个网页界面,手动将大量RGB颜色标记为“是肤色”或“不是肤色”,并绘制成3D图形。数据点在图形中呈现为一条从暗色到亮色的“香蕉形”曲线。
  2. 主成分分析(PCA): 对标记的数据集进行主成分分析(N=3),将“香蕉形”数据旋转并拉伸,使其主要变化方向与坐标轴对齐,从而得到一个更易于处理的XYZ空间。
  3. 手动函数拟合: 在XYZ空间中,作者通过手动尝试和目测,将一个球体方程(R² = t² + u² + v²)拟合到数据点云上。通过调整t、u、v与x、y、z的关系,使球体变形以匹配数据形状。最终得到一组在TUV空间和RGB空间之间转换的方程。

结果:

  • 颜色选择器界面: 该选择器有三个独立调节的变量(T、U、V),分别对应肤色的不同属性:
    • T(上下): 深/浅
    • U(左右): 红润/赭色
    • V(滑块左右): 冷/暖 这些控制项的含义是PCA分析的自然结果,而非预先设定。
  • 调整R²值: R²是TUV空间中球体的半径。调整R²可以控制生成肤色的变化范围:
    • R²=0.1:几乎无变化
    • R²=1.0:随机选取时获得基本多样性的最小值
    • R²=2.0:变化范围广,但可能出现卡通化或异常值
    • R²值越大,变化越极端,适合奇幻设定或用户可自行筛选的界面。 球体的特性使得调整R²能均匀地影响所有肤色维度(深/浅、冷/暖等),而不会只切掉某一端。

总结:

该项目成功定义了一个色彩空间、一个颜色选择器和一个程序化生成算法。虽然不完美,但提供了一个实用的起点。作者已将其应用于数字绘画,效果符合预期。

未来工作方向:

  • 优化色彩空间: 邀请多人(尤其是专家)参与数据标记,以更精确地测量和优化方程。
  • 模拟皮肤变化: 研究如何基于基础肤色,模拟黄疸、银中毒、雀斑、白癜风等状况下的颜色变化。
  • 技术改进: 使用符号回归等更正式的方法优化方程;探索在其他色彩空间(如HSL)中进行PCA和方程拟合的可能性。

评论总结

根据评论内容,总结主要观点如下:

1. 项目整体评价积极(高认可度) 多数评论者赞赏该项目的创意和技术实现,认为其将数学应用于肤色分类,兼具实用性和美感。 - "This is super cool! I have always loved projects that try to categorize color space." (mw) - "Such a beautiful use of some real nerdy math to benefit humans in a way non-nerds would appreciate." (PullJosh)

2. 肤色代表性存在偏差(中等认可度) 部分评论指出项目在肤色覆盖上存在不足,尤其是对深色肤色的多样性表现不够,可能隐含偏见。 - "It might be a bit biased though, as there's much more variation on fairer skin tones than on dark ones." (moralestapia) - "Seems to underrepresent pale skin tone variety" (383toast)

3. 技术细节与局限性讨论(中等认可度) 评论者关注数据标注、颜色空间选择等细节,认为手动标注可能引入偏差,但整体结果令人信服。 - "I still don't quite get the manual data labeling process at the beginning? It seems like it would encode some bias." (vermarish) - "Only realistic colors would be a different problem. And I'm not sure if there's a way to solve that problem without excluding some real colors too." (andai)

4. 应用场景与扩展建议(低认可度) 部分评论提出项目在游戏设计、动画、VR等领域的应用潜力,并建议增加开源许可。 - "I bet this has great applications in game design or animation." (vermarish) - "Could I use this code to generate skin tones in my own project? Or more meant to just be educational/inspirational?" (rrradical)

5. 文化与社会视角(低认可度) 少数评论从电影拍摄、基因表达等角度讨论肤色多样性,认为项目需考虑更广泛的现实肤色范围。 - "On the movie Dolemite... they go over the fact that black people absorb light and white people reflect." (ptsneves) - "The full range of possible human skin tones is perhaps a bit of a challenge for technical colour representation." (dofm)