
今天,Technosphere项目庆祝成立五周年。 这是我们多年来的成就:
- 330名毕业生完成了培训。
- 该课程有120名学生。
- 班级由30位老师教授。
- 该课程有16门学科的250课。
- 学生表演71 DZ。
- 8000个用户。
- Mail.ru集团有100多名学生开始了他们的职业生涯。
在培训结束时,学生创建自己的毕业项目,并为此提供三个月的时间。 为了纪念技术圈五周年,我们收集了近年来最杰出的毕业作品。 毕业生自己会告诉他们他们的项目。
“明亮的记忆”
Vsevolod Vikulin,Boris Kopin,Denis Kuzmin最初,我们计划创建一个图像修饰服务,该服务还将使我们能够为黑白照片着色。 在与导师讨论项目时,出现了一个向OK团队介绍此想法的想法,结果,他们决定创建一个特殊应用程序,该功能具有为战争的黑白照片着色的功能。
为此,我们必须设计神经网络的体系结构,创建一组合适的照片以训练模型并在OK平台上运行应用程序。
我们尝试了许多现成的神经网络,但没有一个能提供理想的质量。 然后,我们决定创建自己的。 在第一阶段,神经网络试图预测BW通道上的RGB图像,但结果是一般的,因为该网络试图将所有颜色都用灰色调。
原始神经网络的操作示例。然后,我们决定使用第二个预训练的神经网络。
在它的帮助下,我们能够从原始彩色照片以及由第一个神经网络绘制的照片中提取符号。 因此,我们教了第二个神经网络来了解现实生活中某些对象固有的颜色:天空是蓝色,草是绿色,依此类推。 为了实现神经网络,我们使用了流行的Pytorch框架。
新的神经网络架构。但是最主要的是教模型如何尽可能真实地绘制人的脸。 我们面临这样一个事实,即在现有数据集中没有一个适合我们的任务-我们需要具有自然背景的大脸照片。 为了形成自己的图像集,我们首先建立了5000个名人姓名的列表。 然后,在各种搜索引擎中搜索了这些名称以查找图像。 使用脸部识别方法,删除了根本不包含脸部的照片,并在其余照片中突出显示了最合适的片段。 因此,我们收集了必要的60万张照片。
接下来是对军事制服进行逼真的绘画的任务。
为了解决这个问题,我不得不人工制作具有各种勋章和命令的军服。 另外,我不得不拍一些关于战争的彩色胶卷。
训练集中的照片示例。将所有这些与一组通用的通用照片结合在一起,我们收到了250万张用于训练神经网络的照片。
我们准备了神经网络的工作原型,并开始在OK平台上开发应用程序。 这是具有后端和前端的标准Web应用程序。 我们负责后端,OK团队接管了前端。 现实地评估可用资源后,我们决定使用Artisto项目的当前架构会更加合理。
为此,我们将神经网络代码移植到Lua Torch框架并在环境中实现。
应用程序界面正常。5月9日,Odnoklassniki的数百万美元的同学可以使用我们的应用程序,多家大型媒体对此进行了报道,目前有23万人使用了该服务。 在如此短的时间内实施该项目非常困难,但我们已完成了所有工作。 非常感谢我们的导师Olga Schubert和Alexei Voropaev,他们帮助我们融入了OK。 我们还要感谢Mail.ru Search的基础设施开发小组对与Artisto项目集成的帮助,并感谢Dmitry Solovyov对神经网络体系结构的宝贵建议。
“音乐地图”
弗拉基米尔·布加耶夫斯基(Vladimir Bugaevsky),达娜·兹洛切夫斯卡娅(Dana Zlochevskaya),Ralina Shavalieva

导师Aleksey Voropaev和Dmitry Solovyov向我们提出了该项目的想法。 曾几何时,有一位索尼播放器可以根据四种心情对歌曲进行分类。 如今,技术已向前迈进了一大步,人工智能和神经网络正在积极发展,我们意识到我们可以做一些用户想要的更酷的事情-音乐卡,可以形象地显示VK用户录音的心情。 他们决定将其实现为Chrome的扩展程序-它易于安装且易于使用。
自然地,我们从探索已经用于确定音乐氛围的方法开始。 看了十几篇科学文章后,我们意识到几乎没有人尝试使用神经网络来分析录音的情感。
对我们来说,另一个困难是视觉化情感的任务。 事实证明,在心理学中,有许多表示人类情绪的模型,每种模型都有其自身的优点和缺点。 我们确定了所谓的外接空间模型:其思想是任何情感都可以表示为二维空间中的一个点。 由于有了这样的规模,我们能够以一种用户可以理解的方式可视化他的录音的心情。
我们确定了该应用程序的三个工作领域:
- 服务器部分将接受扩展请求,构建频谱图,进行预测并将其返回给用户。
- 该人将与之交互的用户部分。
- 神经网络训练:准备训练集,选择网络架构和学习过程本身。
工作范围非常广泛,因此每个人都可以尝试所有事情。 我们的团队非常团结一致:我们不断提出不同的方法来解决某些问题,并互相帮助确定各个部分的实现特征。 我们遇到的主要困难是三个月的期限极为紧张。 在这段时间里,我们必须从头开始了解前端的开发(学习用JavaScript编写),训练神经网络的框架(PyTorch)的复杂性,并掌握模块化开发的技术(Docker)。 现在,我们的应用程序可以在多个用户的测试模式下工作。
“专业人士的视频着色”
尤里·阿德米拉尔斯基(Yuri Admiralsky),丹尼斯·比比克(Denis Bibik),安东·博格夫斯基(Anton Bogovsky),乔治·卡帕萨兰(George Kasparyants)

该项目的想法是通过分析神经网络发展中的现代趋势以解决计算机图形和多媒体内容处理问题而产生的。 在该领域已经提出了几种对单个图像进行着色的方法;例如,在处理旧的存档照片时会出现此问题。 另一方面,黑白苏联电影的彩色版本的成功表明了视频着色任务的重要性。 逐帧手动为视频着色是一项非常耗时的任务,解决方案需要专业工作室的参与。 在想要获取其旧视频的彩色版本的用户中,很少有人具备必要的技能并且有足够的时间进行手动着色,更不用说花钱在视频工作室的专业团队的帮助下完成此类任务了。 因此,我们决定尝试将众所周知的方法应用于着色,并创建一个编辑器程序,以使用神经网络显着降低着色视频的复杂性。
开发此类程序时必须解决的主要任务是在框架中绘制对象时获得正确的颜色。 我们面临这样一个事实,即用于训练神经网络以解决图像处理问题的经典数据集(例如ImageNet)不允许我们实现良好的自动着色(没有任何其他信息)。 例如,帧中的某些对象未被识别,并在彩色图像中保持黑白状态。 最新模型的另一个问题是绘画对象的颜色选择错误-既由于任务不确定(衣服着色),又由于对稀有对象以及受压缩伪影影响的对象的定义不正确。 当更换框架时,由于模型对于框架中的小变化的不稳定性,观察到框架中存在的对象的颜色发生了颜色变化。
为了解决这个问题,我们应用了
局部颜色提示的方法,该方法允许我们通过设置对象各个点的颜色来实现整个对象的正确颜色分配和正确的颜色过渡。 同时,着色过程中的神经网络控制对物体边界和亮度过渡的观察。 这种方法使我们减少了为单个框架着色的麻烦(有必要在不使用画笔的情况下显式设置框架上单个点的颜色),并有助于解决在框架之间切换时不确定性和颜色变化的问题。 此外,我们已经实现了模型,使您可以跟踪框架中对象的移动并移动颜色提示。 使用我们的编辑器程序,我们为黑白电影
《小子》中的片段着色。

电影《卓别林小子》(Chaplin The Kid,1921年)中的彩绘画框示例。我们以客户端独立应用程序的形式实现了该编辑器,将视频加载到该应用程序中,然后使用颜色提示标记帧。 您可以在本地计算机或第三方计算能力(例如,在云中部署服务器部分)上计算着色模型,以更快地处理视频。
为了创建编辑器,我们做了很多工作,包括测试和完成模型的着色和跟踪框架对象的模型,为应用程序开发客户端-服务器体系结构以及确定客户端应用程序的可用性。 我们了解了使用PyTorch框架实现神经网络工作的复杂性,掌握了用于开发客户端应用程序的Qt 5框架,并学习了如何使用Django-REST和Docker开发和部署计算后端。
客户端应用程序的示例。感谢Technosphere的老师们的辛勤工作,感谢您为学生提供的相关知识。 我们希望该项目能够发展壮大!
* * *
您可以在
sphere.mail.ru上于2月16日10:00之前申请培训。 请注意,只有莫斯科国立大学的学生和研究生可以在Technosphere学习。 MV 罗蒙诺索夫。