假设我查询
我得到了所有的黑色天空,背后的算法实际上是如何工作的?
根据Google 工程师 Henry Rowley、Shumeet Baluja 和 Yushi Jing 博士发表的这篇论文,您关于识别图像颜色的问题的最重要含义似乎与 google 的图片“saferank”算法有关,该算法可以在没有检测肤色的情况下检测肤色它周围的任何文字。
本文首先描述了“经典”方法,这些方法通常基于标准化颜色亮度,然后使用“高斯分布”或使用以像素为单位的 RGB 值构建的三维直方图(每种颜色都是0-255 的 8 位整数值,表示像素中包含多少 . 该颜色)。还引入了依赖于诸如“亮度”(通常被错误地称为“亮度”)等属性的方法,它是从给定图像到肉眼的发光强度密度。
谷歌论文提到他们将需要使用他们的算法处理大约 10^9 图像,因此它需要尽可能高效。为了实现这一点,他们在 ROI(感兴趣区域)上执行大部分计算,ROI(感兴趣区域)是一个以图像为中心的矩形,并且在所有侧面都插入了图像尺寸的 1/6。一旦他们确定了 ROI,他们就会有许多不同的算法应用于图像,包括人脸检测算法、颜色恒常性算法等,它们作为一个整体找到图像着色的统计趋势,最重要的是找到颜色统计分布中频率最高的阴影。
他们使用熵、边缘检测和纹理定义等其他特征来从图像中提取线条,他们使用计算的概率霍夫变换 (Kiryati et al., 1991) 的 OpenCV 实现 (Bradski, 2000)在肤色连接组件的边缘,这使他们能够找到可能不是身体部位的直线,另外还使他们能够更好地确定图像中哪些颜色最重要,这是他们图像颜色搜索的关键因素。
有关该主题的更多技术细节,包括数学方程式等,请阅读开头链接的谷歌论文并查看其网站的研究部分。
非常有趣的问题和主题!
图像只是像素。像素只是 RGB 值。我们知道 RGB 中的黑色是什么,因此我们可以在图像中查找它。
嗯,一种方法是,用非常基本的术语来说:
给定一个图像语料库,确定给定颜色范围的高浓度(这实际上相当简单),存储此数据,相应地索引(根据上一步确定的颜色索引图像)。现在,您基本上拥有与查找包含某些单词的文档相同的功能。
这是对一种可能方法的非常非常基本的描述。
从图像中提取颜色的方法有很多种,我认为其他答案可以解决这些问题(K-Means、分布等)。
假设您已经提取了颜色,有几种按颜色搜索的方法。一种缓慢但明显的方法是使用某种度量(例如Color Difference)计算搜索颜色与图像的主要颜色之间的距离,然后根据“接近度”对结果进行加权。
另一种更快的方法是从本质上降低色彩空间的分辨率。与其处理所有可能的 RGB 颜色值,不如像 Google 那样将提取限制在更小的范围内(只有蓝色、绿色、黑色、黄色等)。然后,用户可以使用一组有限的色样进行搜索,计算颜色距离变得微不足道。