“ Play The City”是一种增强现实体验,旨在庆祝第60届格莱美(GRAMMY)返回纽约。 我们与TBWA / Chiat / Day LA和“北美工具”一起乘坐Uber,并为其配备了Computer Vision软件,可让毫无戒心的乘客像乐器一样弹奏这座城市。
当一辆定制的操纵车辆在四处行驶时,音乐和视觉效果将根据在纽约街头发现的人物和物体实时生成。 整个体验是使用多台摄像机实时捕获的,以创建最终的广告,并在格莱美(GRAMMY)推出。
- Welcum2hell再次带来了狂野的夜晚,而这一次是德里。
- 伯灵顿县图书馆系统宣布周五晚上表演的新系列
- 横幅@准将宴会厅(10/26/18)
- 安德烈·威廉姆斯(Andre Williams),一个动摇了许多尾羽的人
- 专辑评论:一切都是爱-卡特
除了设计和开发自定义跟踪软件以创建独特的歌曲并生成视觉效果外,我们还在视频拍摄期间提供了现场支持。 极短的周转时间,颇具挑战性的安装…
很好奇我们是如何做到的? 继续阅读!

1.视频服务器
使用Blackmagic捕获卡捕获GoPro摄像机的实时视频,并将其流式传输到在同一台计算机上运行的计算机视觉应用程序。
同时,它还将视频流传输到第二台计算机上的增强现实应用程序。 该流用作基础层,我们在其中添加了插图。
2.计算机视觉
使用YOLO检测器分析传入的视频流,这使我们能够跟踪人和物体。 每次检测到感兴趣的对象时,都会向增强现实应用程序和Midi控制器应用程序发送OSC消息。
3.增强现实
捕获传入的视频流,并根据接收到的OSC消息,使用Musketon的自定义图稿对其进行增强。 然后将最终的视觉输出推送到安装在汽车外部的显示器。
4. Midi控制器
Midi控制器应用程序将传入的数据转换为Midi笔记和Midi CC消息。 然后将Midi音符发送到Ableton Live,以触发不同的(预先录制的)乐器和循环,并控制每个音轨的音量。
所有应用程序都是使用openFrameworks构建的,openFrameworks是用于创意编码的开源C ++工具包。 我们还使用了社区开发的一些附加组件。 没有这些开源项目,我们将无法在这么短的时间内构建此安装。

视频服务器从摄像机获取实时流,并将其分发给其他应用程序。 Spout(用于同一台计算机上的应用程序)和NDI(将视频分发到另一台计算机上)处理了不同应用程序之间的通信。
最初的测试很有希望,但是瓶颈之一似乎是标准的openFrameworks视频捕获类。 我们首先使用Logitech HD Pro网络摄像头C920,该摄像头发出两个视频流:
1.原始视频供稿
2. H264资讯提供
事实证明,openFrameworks的“ ofVideoPlayer”类不支持从网络摄像头获取H264编码的流。 这迫使我们使用原始饲料,从而导致严重的掉帧。 有一些解决方法可以解决此问题,但我们没有时间对此进行探讨。
因此,计划B…使用GoPro Hero 5和Blackmagic Design DeckLink Mini Recorder 4K PCIe采集卡。 为了使捕获的视频提要进入openFrameworks,我们使用了Elliot Woods的ofxBlackMagix2库。
在开发过程中,我们还使用了Blackmagic Design Intensity Shuttle,因为我们没有专职访问主要设置。
该项目最重要的挑战是实时视频流中人和物体的检测。 为此,我们使用了约瑟夫·雷德蒙(Joseph Redmon)的Darknet,该网络具有名为YOLO:实时对象检测的最新检测器。
为了使检测器在openFrameworks中启动并运行,我们使用了由Cocel数据集实现的Marcel Schwittlick开发的xDarknet。

除了对象检测之外,我们还实现了一个“播放头”系统,该系统使我们可以更精细地控制信号通过系统发送的时间和次数。 我们使用OSC发出消息。
这些“播放头”可以放置在提要中的任何位置,每个控制着不同的动画,乐器或全局参数(音量)。 某个播放头的“感兴趣区域”由其宽度和位置定义。

Augmented Reality应用程序正在为体验创建视觉输出,从Video Server接收视频流,并根据从Computer Vision应用程序收到的OSC消息,使用自定义插图对视频流进行扩充。
每条OSC消息均包含检测到的对象类型,其在屏幕上的位置以及其边框的大小。 然后,将每个检测到的对象与一个动画配对,该动画正在回放一系列PNG图像。
基于代理商的视觉参考,我们引入了Musketon来创作艺术品并将其与生成的设计元素结合在一起。

汽车,卡车和公共汽车例外,它们没有与插图配对,而是控制了一条丝带,每当它们被发现时,它们就会在音符栏上开始跳舞。
最后,将传入的视频和增强现实层合成并显示在安装在汽车外部的显示器上。

所有音乐都是由埃迪·阿隆索(Eddie Alonso)创作的,由不同的乐器和循环组成,并在Ableton Live中分层合成。
最初的想法是对检测到的物体使用不同的乐器,这些乐器可以以不同的比例演奏不同的音符。 但是,这变得非常复杂,听起来不像我们为这种体验所设想的音乐原声带。
为了获得最终的体验,我们最终只使用了一种在有人被发现时使用的仪器,并与其他物体(例如消防栓,自行车,交通信号灯,停车标志等)的音频回路配对。

同样,对汽车,卡车和公共汽车也有特殊的例外。 就像视觉输出中的中央功能区一样,它们控制着三个基本音轨之一的音量。
对于与人联系的工具,我们制定了一些基本规则:
1.人的垂直位置定义音符的音高
2.位于屏幕顶部的人演奏高音符
3.所有注释应为C-小调
播放的音符基于视频中检测到对象的位置。 我们将视频的高度映射到两个八度,这意味着音符可以在C2和B3之间。 在乐曲中随机演奏所有这些音符听起来很恐怖。 为了使其更具音乐感,我们在Ableton Live中使用了Midi音阶效果。 此效果会基于预定义的比例图更改传入音符的音高。

为了实现所有这些目的,我们创建了一个Midi控制器应用程序,该应用程序接收OSC消息,进行处理并将结果再次通过Midi和/或OSC发送到Ableton Live。
为此,我们使用了Dan Wilcox的ofxMidi,并且还添加了一个用于传入音符和控制音频循环播放的量化器。



幕后花絮
玩城 60th格莱美
增强现实体验–幕后制作
www.flickr.com
阅读更多
– thefwa.com/cases/play-the-city-the-recording-academy-60th-grammys
谢谢
– tbwachiatdayla.com,代理机构-TBWA / Chiat / Day LA
– toolofna.com,生产—北美工具
– musketon.com,插图— Musketon
站在巨人的肩膀上
没有以下项目背后的开源社区的帮助,这是不可能的。 非常感谢!
– openFrameworks,创意编码工具包和社区
– github.com/danomatika/ofxMidi
– github.com/mrzl/ofxDarknet
– github.com/Kj1/ofxSpout2
– github.com/elliotwoods/ofxBlackmagic2
– github.com/kylemcdonald/ofxCv
– pjreddie.com/darknet/yolo
– spout.zeal.co
– MaxForLive
– Ableton
–