深度学习

理解和使用深度学习网络

用人工智能绘画音乐

由Andrew Starkey和Jack Caven博士共同撰写

介绍

P.AI.nting Music是我们与视觉艺术家Kate Steenhauer共同开发的一个项目。我们已经开发了一个使用图像处理和人工智能的系统,它可以实时地将现场绘画的过程转换为每个表演独有的乐谱(见图1现场表演时拍摄的照片)。这是一个本科生荣誉项目的一部分,重点是“人工智能是好还是坏?”此后,该原型系统一直被用于某一性能;拍了一个20分钟的短片;作为期刊论文发表;我们被邀请参加一些网络研讨会(链接如下)。在这篇博文中,我们希望能够深入了解系统中的过程,我们在开发过程中遇到的挑战,以及我们如何将视觉输入转化为音频输出。

图1:Kate Steenhauer的照片在绘画音乐中的Live Performance - Jack Caven坐在照明后面。

照片信用 - Aberdeen University May Festival

资源

在YouTube上画音乐 绘画音乐博客 网络研讨会 纸质论文
https://katesteenhauer.com/painting-music/ 滚动到第12集 绘图:研究,理论,实践

概述

在进行发展过程之前,我们花了一些时间识别实现最终结果所需的各个子系统。这使我们考虑了系统的所有方面以及它们如何链接。右侧的流程图传送了性能中使用的系统的良好概述。我们打算在整个博客中遵循流程图。

当我们希望实时将绘画的过程转换为音乐,我们想让系统由凯特控制的迭代过程。一旦凯特完成了整个绘图内的个别物体,那么她就会发出信号来捕获画布,开始分析和音乐创作过程。在到达AI模型之前,我们首先需要从图像输入中提取所需的特性,使用图像处理工具箱完成。

自组织地图(SOM)用作AI模型。使用A SOM的原因是这是一种可解释的AI方法,允许询问它用于做出决策的功能。这是重要的,因为它允许映射到音乐特征的图像特征,这在文章后面更详细地解释。其他形式的AI诸如神经网络或机器学习技术不合适,因为它们更难理解,并且一般倾向于更像“黑匣子”方法。

来自SOM的输出然后馈入音乐处理模型,这使我们能够在艺术图像和音乐之间进行相关性,并且还允许我们探索如何通过音乐组合顺序图像元素(例如,通过和弦或和谐)。

图2:绘画音乐过程概述

图像捕捉和实际设置

除了软件的发展外,我们还必须克服几种实际挑战。通过将Go Pro相机连接到画布上方的钻井座(见下面的图像),通过将Pro Pro相机克服了图像捕获问题。

图3:Kate Steenhauer和Jack Caven在绘画音乐的现场表现期间的照片。

照片信用 - Aberdeen University May Festival

我们能够通过MATLAB与Go Pro摄像机进行无线通信,使用MATLAB社区为此目的开发的库,这使得系统在Kate绘制每个元素时由Jack控制。在排练过程中,我们发现阴影会对图像的捕捉和最终的音乐输出产生意想不到的影响,因此需要在画布的两侧添加灯光。

图像分析和数据集收集

我们能够获得超过1300个不同元素的艺术件的图像,凯特先前涂过。这为我们提供了足够的数据集以用于培训自组织地图。物体和他们来自的艺术品的一个例子可以在下面看到。

图4:完成的绘画和示例图像元素提取。图片©Kate Steenhauer

下一步是确定我们可以从各种对象中提取的功能以及我们如何将它们与音乐输出相关联。下表传送了我们所做的相关的一些例子。请注意,这些属性并不暗示艺术和音乐之间的实际关系,这些属性只是我们定义的关系,以便在两个域之间创建关系,以便可以创建音乐。此外,我们希望在将来包括许多方面,例如绘制物体的对称性,或绘画本身的自我相似性。请注意,原则上,也可以从音乐到绘画(即,从音乐元素创建绘画),尽管这是一个未来研究的领域。

下面的代码段来自我们开发的特征提取功能,用于从图像中提取数据以构建我们的培训和测试集。在实时性能期间使用类似的脚本来从Go Pro捕获的图像中提取数据。首先,使用图像使用Imread.,然后裁剪以删除画布之外的任何内容imcrop在通过进一步的功能提取之前。特征提取功能使用选项变量来定义对过程的图像分析的哪些方面,这是二进制标志,以指示是否应进行。

如果options.pixelusedcount.%计数图像中的黑白像素数bw = imbinarize(timimage);这reatureanalysis.blackpixels = sum(bw(:));ThisFeatureanalysis.Whitepixels =(Numel(BW)-thisFeatureanalysis.Blackpixels)/ Numel(BW);这reatureanalysis.blackpixels = thisfeatureanalysis.blackpixels / numel(bw);结束如果选项.FREQURYANALYSION.%对图像进行仓位频率分析[thisfeatureanalysis.frequencybins,thisfeatureanalysis.rawfft2] =频率分析(thisimage,numberofbins);如果选择,则结束.BingReyscale.%对图像进行了收集的灰度分析thisFeatureAnalysis.GreyLevels = imhist(由(:),NumberOfBins);%除以总和的结果是一个%thisFeatureAnalysis.GreyLevels = thisFeatureAnalysis.GreyLevels / max (thisFeatureAnalysis.GreyLevels);结束

AI模型

我们使用自组织地图来分析输入的艺术属性数据并驱动音乐输出。利用深度学习工具箱,可以轻松地对SOM进行训练、可视化和测试。下面的代码片段显示了开发完训练数据后的训练过程。对于Painting Music应用程序,我们选择拥有36个节点的SOM。这就为绘画元素提供了足够的辨别能力,这也就意味着节点对于每个绘画元素的学习并不太专业。这有助于使用SOM的输出,因为这为等效音乐元素提供了一个范围,在实时运行时给进程一些选择,并防止为类似对象生成完全相同的音符。

SOM = selforgmap([6 6]);SOM =火车(SOM, ImageFeatures);视图(SOM)

使用工具箱中给出的多个解释工具,我们能够看到触发每个节点的属性类型。这允许我们将音乐属性分配给每个节点。下图显示了训练数据集的样本命中,因此可以在性能期间触发的各种节点。

图5:培训数据集训练SOM的样本命中

为了研究SOM如何进一步区分涂漆物体,我们将两个随机绘制的物体传递到系统中并观察到SOM的输出(见下表1)。

表1随机选取对象的SOM检验

上表的结果告诉我们,SOM能够区分绘制的物体。这一结论是通过检查SOM Hits Plots(如表1底部一行所示)得出的。通过进一步深入分析SOM权重,我们发现表1左列所示的绘制对象在频率上有更高的方差,但覆盖的空白比表1右列中绘制的对象的空白要少。

音乐处理模型

使用建立的相关性和SOM的输出节点,我们能够通过使用MIDI来提供声音输出。SOM触发的权重用于为上面表中给出的等效音乐属性定义每个属性的一系列值。因此,作为示例,由kate绘制的一个元素被映射到具有低频率特征的节点,然后使用这些节点,然后使用它们来驱动备注的选择,这些票据也低间距 - 或者如果创建和谐,则使用音符为此目的较低。

MIDI允许我们选择在旋律生成中使用的不同仪器,并允许我们使用与上表中描述的属性相关的数字选择要播放的注释,并且由SOM中的获胜节点定义。音乐制作的初始模拟建议我们需要一些额外的结构来指导系统生成稍微愉快的音乐。我们决定使用称为马尔可夫链的数学模型来帮助指导系统以产生更好的音乐。通过从MuseScore.com等网站下载MIDI文件的形式下载音乐评分,我们能够计算许多Markov链式模型,音乐来自披头士士,巴赫和贝多芬,我们曾经生成和弦和和谐。

最近的发展

我们在测试过程中遇到的一个问题是油漆干燥对特征提取阶段的影响。干燥会导致油漆颜色轻微变化,所以当比较新图像和旧图像时(在元素去除过程中),系统将颜色的新变化解释为新元素。为了防止这种情况,我们记录了元素已经绘制的区域。当一个新的元素被绘制时,我们可以删除由于油漆干燥而被拾起的任何形状。下面的代码片段展示了我们是如何做到这一点的。

单击代码以获得关于如何识别新元素的更多细节。

结论与未来发展

这个项目最初的目的是展示人工智能的力量。表演鼓励个体质疑自己对人工智能的立场(人工智能是好还是坏?)我们现在正在建造一个定制的,可移动的系统,让凯特能够独立地进行绘画音乐系统的表演。在此之后,我们将进一步加强系统所创造的音乐输出,并生成不同类型的音乐(如舞蹈音乐,或蓝调),并开发解决我们在原始表演中所面临的问题的方案。金宝搏官方网站例如,我们想要解决的一个问题是,如果摄像机意外地移出了它的原始位置,就需要重新对齐画布。我们坚信绘画音乐有很多应用,从艺术和娱乐(互动个人音乐生成)到医疗保健(艺术治疗);我们将继续开发这个系统,探索这些应用。

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击这里登录您的MathWorks帐户或创建新的。