opencv gpu python_无需GPU,用OpenCV和Python实现图/视频风格迁移
2015年,Gatsys等人在论文A Neural Algorithm of Artistic Style中提出了最初的神经风格迁移算法。2016年,Johnson等人发表了Perceptual Losses for Real-Time Style Transfer and Super-Resolutioin一文,将神经网络迁移作为用感知损失处理超分辨率问题的框架。结果表明该算法比Gatys等人的方法快了三倍。接下来,我将介绍如何在自己的图像和视频流中应用神经风格迁移。
用OpenCV进行神经风格迁移
首先说明的一点是,今天讨论的方法在一个CPU上可以达到近乎实时的效果,如果在GPU上则完全可以实现实时效果。
首先我们会简单塔伦下什么是神经风格迁移,以及它是如何运作的。之后我们会用OpenCV和Python动手操作。
什么是神经风格迁移?从左至右:我们的内容图像;风格图像;输出的风格迁移图像
神经风格迁移主要有两个过程:提取某张图片的风格
将该种风格应用到另一张图片上
上图就是将梵高著名的画作《星夜》的风格应用到普通的生活照上,我们保留了原照片中的山、人物和啤酒等所有内容,但全部替换成了梵高的油画风格。
问题就是,我们应该如何定义一个神经网络,让它执行神经风格迁移呢?
神经风格迁移如何工作?
在Gatys等人提出的首篇论文中,神经风格迁移算法不需要新的架构。相反,我们可以用一个预训练网络(通常在ImageNet上进行的预训练),并且定义一个损失函数,能让我们达到风格迁移的目标,然后对损失函数不断优化。
那么,这里的问题就不是“该用什么神经网络”了,而是“该用什么损失函数”。
答案包括:内容损失、风格损失和总变差损失。每个部分都是单独计算,然后在一个元损失函数中结合。通过将元损失函数最小化,我们将依次对内容、风格和总变差损失进行优化。
虽然Gatys等人的方法能生成不错的神经风格迁移结果,但是它的速度非常慢。2016年,Johnson等人在Gatys的基础上提出的全新算法速度快了三倍,但同时也存在着缺点,即用户不能随机选择想要应用的风格图像。用户首先要训练一个网络,生成你想要的风格。网络训练好后,你可以将它应用到任意内容图像上。
然而到了2017年,Ulyanov等人发表了Instance Normalization: The Missing Ingredient for Fast Stylization一文,他们表示将batch normalization替换成instance normalization(然后在训练和测试时都应用instance normalization),可以达到更快的效果,并且艺术效果也更好。
项目结构
opencv gpu python_无需GPU,用OpenCV和Python实现图/视频风格迁移相关推荐
- python opencv 图像切割_Python 使用 OpenCV 进行图像神经风格迁移
Neural Style Transfer with OpenCV src: https://www. pyimagesearch.com/2018/ 08/27/neural-style-trans ...
- OpenCV之gpu 模块. 使用GPU加速的计算机视觉:GPU上的相似度检测(PNSR 和 SSIM)
GPU上的相似度检测(PNSR 和 SSIM) 学习目标 在 OpenCV的视频输入和相似度测量 教程中我们已经学习了检测两幅图像相似度的两种方法:PSNR和SSIM.正如我们所看到的,执行这些算法需 ...
- 胎儿式保姆级教程:Jetson Xavier NX镜像烧录、开机配置、中文配置、风扇设置、远程桌面、文件传输配置、pycharm安装环境配置,QQ,opencv(cuda编译),torch(GPU).
一.使用的硬件:nx板子.原装充电器.有线鼠标(USB).有线键盘(USB).有线摄像头(USB).7寸触摸显示屏.20寸大显示屏(显示屏有一个就可以,大屏幕更加方便).SD卡(128G,用64g也可 ...
- OpenCV实现影像畸变矫正GPU
OpenCV实现影像畸变矫正GPU OpenCV实现影像矫正使用的是 initUndistortRectifyMap()计算畸变的映射 remap()计算映射,其详解见:OpenCV函数remap详解 ...
- linux下基于c++使用opencv的cpu和gpu版本提取tvl1光流
使用opencv c++版本提取tvl1光流 前言 Gpu版本 cpu版本 配置文件及运行 前言 在计算机视觉中,光流可以用来反映视频中的信息,在行为识别,跟踪,视频分割等任务中都使用.对光流不了解的 ...
- UE5.1 像素流送公网部署无需GPU服务器
因为工作需要最近在做虚幻引擎5.1这方面的部署,简单记录一下最近学习的一点知识. 本文参考:虚幻引擎官网文档 UE5像素流送原理及多用户公网部署小白教程202211022220 一.像素流送介绍 像素 ...
- python视频处理加速的库_VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率...
原标题:VPF:适用于 Python 的开源视频处理框架,加速视频任务.提高 GPU 利用率 雷锋网 AI 开发者按:近日,NVIDIA 开源了适用于 Python 的视频处理框架「VideoProc ...
- VPF:适用于 Python 的开源视频处理框架,加速视频任务、提高 GPU 利用率
0 背景 近日,NVIDIA 开源了适用于 Python 的视频处理框架「VideoProcessingFramework(VPF)」.该框架为开发人员提供了一个简单但功能强大的 Python 工具, ...
- 大疆妙算Manifold刷机换源,cuda,opencv,qt配置以及实现opencv读取usb摄像头,qmake nvcc交叉编译
大疆妙算Manifold刷机换源,cuda,opencv,qt配置以及实现opencv读取usb摄像头,qmake nvcc交叉编译 一.刷机 1.解压安装包 2.制作镜像 3.然后按照妙算说明书进入 ...
最新文章
- 深度学习中的注意力机制(一)
- 机器学习成为未来趋势 北美未来将保持最大市场规模
- Qt中的图像处理与绘制
- html <link>标签
- [排序][二分][dp]JZOJ 2747 捡金子
- 一个人到底申请几张信用卡最合适?
- linux+手机+翻页,在Android手机上实现阅读器的翻页效果
- UI设计师必备知识|最全UI设计规范!
- php 环境搭建 -- 命令配置
- 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with
- 干货分享! 20种数学建模方法!
- (从源码解答)Failed to instantiate [org.elasticsearch.client.transport.TransportClient]
- jQuery遮罩插件 jquery.blockUI.js
- NLP扎实基础3:TF-IDF文本特征提取
- android 程序应用市场搜索关键字,安卓应用市场的搜索规则以及安卓应用市场ASO优化...
- cs架构(cs架构和bs架构的区别)
- 自动化测试的优缺点分析
- A Survey on Conversational Recommender Systems(2021)阅读笔记
- 微信答题竞赛的小程序
- 云服务器上部署仿牛客网项目