gpt4 book ai didi

image - 如何通过向量表示图像或音频以获得余弦相似度?

转载 作者:行者123 更新时间:2023-12-02 03:16:02 26 4
gpt4 key购买 nike

我知道余弦相似度可以用来衡量两个图像或音频的相似程度。

但我不明白如何将图像表示为 N 维向量。对于文本文档 d,每个 i-th 维度表示术语 t_i,它的标量分量表示它在文档中的频率。问题是我无法找出图像(或音频)文件的相同“映射”。

我想到的唯一解决方案是我们有 M 维向量,其中 M 是图像中的像素数(数百万维?太疯狂了!)和值是“像素有多暗”,最大值代表白色,但我强烈认为这个解决方案不是使用的解决方案。我不知道如何对音频文件执行此操作。

最佳答案

Hilbert 曲线...将 2D 图像映射到 1D 线上的空间填充曲线...每个像素在空间模式中被访问一次且仅访问一次,该空间模式可以很好地处理像素密度的变化...在每个像素处强度被记录下来……生成的一维线是您的向量,可以进行叉积与使用相同技术从另一个源图像生成的线

use this to compute pixel intensity (Y)来自源图像像素 RGB 值:

Y = 0.2126 * R + 0.7152 * G + 0.0722 * B

因此,我们从源图像中的每个像素生成它的 Y 值,并使用它来填充我们的 1D 向量中的每个位置(其中像素顺序是从图像的希尔伯特曲线生成的),对源图像中的每个像素重复此操作

假设我们的图像是 16 x 16,所以我们在我们的线上有 256 个像素由 256 个等距点表示......如果我们选择从我们的图像生成音频,我们可以在这 256 个点中的每一个点放置一个正弦波振荡器并通过点的像素强度测量 ( Y ) 驱动每个振荡器的音量 ... 同时,我们通过每个振荡器在直线中的位置驱动每个振荡器的频率 ... 人类听觉频谱的低频到高频(比如 200hz 到 2khz)线的长度...通过短时间生成音频来引入时间...在每个瞬间将所有振荡器的曲线高度加在一起并除以 256(剪切音频样本)...此音频是声波我们的源图像的映射......这种转换是可逆的......我们可以很容易地从音频开始并生成图像......使用我们的(Y)值的一维向量作为中介

这是关于这个想法的精彩剪辑 https://www.youtube.com/watch?v=DuiryHHTrjU

重要的是,这项技术是完全可逆的……如果我们从音频开始,我们可以生成图像,这样我们就可以访问中介向量……do a Fourier Transform FFT在一个简短的音频剪辑上将其从时域转换为对应的频域...这会产生一组频率,每个频率都有一个幅度值...每个频率值都被放入我们的中介向量中的一个位置以表示输出像素 ...输出像素强度值由该频率的 FFT 振幅驱动 ...然后反向执行希尔伯特曲线以将我们的 1D 矢量线映射到输出 2D 图像

关于image - 如何通过向量表示图像或音频以获得余弦相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com