您好、欢迎来到现金彩票网!
当前位置:刘伯温论坛 > 图像代码 >

手把手教你用OpenCV和Python实现图像和视频神经风格迁移(代码)

发布时间:2019-05-20 20:09 来源:未知 编辑:admin

  原标题:手把手教你用OpenCV和Python实现图像和视频神经风格迁移(代码)

  【新智元导读】在这篇教程中,作者Adrian Rosebrock将教你如何用OpenCV、Python和深度学习技术对图像和实时视频进行神经风格迁移。

  首先说明的一点是,今天讨论的方法在一个CPU上可以达到近乎实时的效果,如果在GPU上则完全可以实现实时效果。

  首先我们会简单塔伦下什么是神经风格迁移,以及它是如何运作的。之后我们会用OpenCV和Python动手操作。

  上图就是将梵高著名的画作《星夜》的风格应用到普通的生活照上,我们保留了原照片中的山、人物和啤酒等所有内容,但全部替换成了梵高的油画风格。

  在Gatys等人提出的首篇论文中,神经风格迁移算法不需要新的架构。相反,我们可以用一个预训练网络(通常在ImageNet上进行的预训练),并且定义一个损失函数,能让我们达到风格迁移的目标,然后对损失函数不断优化。

  那么,这里的问题就不是“该用什么神经网络”了,而是“该用什么损失函数”。

  答案包括:内容损失、风格损失和总变差损失。每个部分都是单独计算,然后在一个元损失函数中结合。通过将元损失函数最小化,我们将依次对内容、风格和总变差损失进行优化。

  虽然Gatys等人的方法能生成不错的神经风格迁移结果,但是它的速度非常慢。2016年,Johnson等人在Gatys的基础上提出的全新算法速度快了三倍,但同时也存在着缺点,即用户不能随机选择想要应用的风格图像。用户首先要训练一个网络,生成你想要的风格。网络训练好后,你可以将它应用到任意内容图像上。

  在开始今天的教程前,请先下载我提供的资料(点击文末原文地址获取资料)。准备好了脚本、模型和图像后,你可以用tree指令检查项目的结构:

  如果你从下载了.zip文件,就无需上网找其他素材了。我在其中提供了很多测试用的图像和模型。同时还有三种Python脚本。

  你不需要改变命令行代码,参数会在运行过程中进行处理。如果你不熟悉这一过程,可以阅读我另一篇文章:

  现在,对命令行参数做简单改变,然后用《侏罗纪公园》中的截图作为内容图像,进行风格迁移:

  上面我们讲了如何在单一图像上应用风格迁移,现在我们要把这一过程放在视频上。

  利用一个特殊的Python迭代器,它可以让我们在模型路径中循环使用所有可用的神经风格迁移模型。

  启动网络摄像头视频流,我们会(近乎)实时处理摄像头的帧。对于某些较大的模型,系统可能会慢一些。

  如果用户按下“n”键,我们将把迭代器循环运用到下一个神经风格迁移模型上,不用重启脚本。

  一旦我们开始在while循环中处理帧,“n”按键就会在迭代器中下载“下一个”模型。

  在32行,我们读取了第一个模型利用的路径。在36和37行,启动了视频,从摄像头中采集帧。

  可以看到,只需要按一个按键就能轻松地进行循环。下面是我自己做的demo视频:

  今天的教程是教大家如何用OpenCV和Python在图片和视频上运用神经风格迁移。具体来说,我们用的模型是Johnson等人于2016年提出的,你可以在我提供的链接中下载。希望这篇教程对你有用!

http://airgomusic.com/tuxiangdaima/15.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有