视频制作中的绿幕与拜耳阵列

先来欣赏一些大片背后的特效。

现在国内的电影市场越来越大,做短视频的自媒体也越来越多,在他们的后期视频制作的片花中可以看到很多都在使用绿幕或者蓝幕,这是为什么呢?

首先肯定是为了抠图的方便。将主体部分抠出再将通过特效渲染的背景图像叠加上去。那么为什么使用的幕布颜色是绿色或者蓝色呢?我们知道光源的三原色是RGBRBG,而抠像的主体一般是人,红色接近人类肤色,在密布红色的工作环境中,长时间的工作也会让电影制作的人员产生暴躁、疲劳的生理反应,十分不利于电影制作,所以红色幕布是很少选择的。这就是幕布一般是绿色或者蓝色的原因,而绿幕又比蓝幕流行,一般认为西方人瞳孔是蓝色的,所以使用绿幕,而东方人使用蓝幕,这样会让角色皮肤显得更加细腻白嫩。

但是正如为什么电影特效多用绿幕? - 深刻的回答 - 知乎提到的,使用绿幕还有其他专业的技术原因。数码相机中的传感器,不论是CCD还是CMOS,像素排列的方式都是拜耳矩阵,所以感光芯片采集颜色信号是RGGB(其实也是基于人眼对绿色更敏感的研究)。这从另外一方面解释了绿幕使用绿色,因为相机也是对绿色更敏感。

我们大部分的光电传感器只能捕获光的强度而无法捕获光的颜色(频率),而我们知道光的三原色是RBG,理论上只需要知道每个像素的RBG三个通道的颜色强度就可以融合得到真实色彩,而我们也确实可以借助滤波片实现。但问题是在工业上这样相当于在三个通道成了三次像,而且滤波片的难度很高,且需要严格对齐。

原则上需要在三个通道分别成像,最后叠加,得到数码彩色图像。

拜耳阵列是伊士曼·柯达公司科学家Bryce Bayer发明的。通过拜耳阵列,三合一成一个Bayer filter mosaic,其实就是一个颜色滤波器阵列(color filter array (CFA)),在一次成像的过程中将RGB三个通道有规律地排列好。

 

拜耳矩阵同样借助了滤波片,但是在排列中是三个通道的滤波片以一定的规律排列。下图就是一种排列方式。

这样的结果就是有的像素位置捕获到了红色通道的信息,有的是绿色通道信息,有的是蓝色通道信息。当这些像素位置正好和滤波片的颜色一样时当然可以无失真的捕获真实色彩,但是大多时候没有这么凑巧,我们仍然需要三原色来合成真实色彩。通过拜耳阵列就可以对每个三原色进行插值(去马赛克demosaicing),得到各个位置的其他二原色。而使用的插值方法其实是和常见的插值方法类似的,如最近邻插值,双线性插值。

对绿色通道进行插值时需要特别综合考虑水平方向和竖直方向上其他通道的变化幅度。

下面看一下在我们按下拍摄按键的短时间内相机都做了什么。你会发现,即便你还没有动手p图,相机已经做了一系列的图像处理,即便是实时取景器中也是经过默认参数处理之后的图像。

这是通过拜耳阵列的成像过程分解。图2就是RAW(raw image format)数据得到的灰度图像,传感器只记录了光强信息,再加上Bayer CAF就可以得到图3,这时候只有BGB和黑四种颜色;再通过去马赛克算法就可以重构出其他通道的颜色信息从而优化图像得到图4.而图5是由原图1经过下采样(最近邻算法)和缩放至图4分辨率的结果,可以看到图4和图5已经很接近了。

手机厂商一般会宣称手机相机像素是多少,以Iphone X为例,后置摄像头是1200万像素,那么意味着RBG三种传感器的数目之和是1200万,且三种的比例是1:1:2. 在显示设备如屏幕中,以Iphone X为例,屏幕分辨率2436x1125=2740500. 每个像素由红绿蓝三个子像素组成,如果像成像设备一样以单色像素计算像素总数,那么典型的1080p显示器就有1920x1080x3,大约620万的单色像素。

近年已有一些公司提出了新的传感器排列方式,如适马公司的Foveon X3或富士公司的X-Trans传感器,但在目前市场上拜耳阵列传感器仍然占有绝对的统治地位。拜耳阵列的问题之一是,在拍摄具有重复细节(如纺织品)的画面时,容易产生彩色干扰信息。该问题是由于其规则的分布方式而造成的。其具体表现为在画面中产生难看的色带,而解决该问题的方法是在传感器其安装一块会将画面细节模糊化的AA(anti-aliasing或称低通)滤镜。低通滤镜可以减弱摩尔纹,但同时也降低了相机分辨率。可能造成的人为现象还包括假彩色现象False color artifact和锯齿效应Zippering artifact。

Reference:

  1. https://blog.csdn.net/youmingyu/article/details/52572977
  2. http://www.ruanyifeng.com/blog/2012/12/bayer_filter.html
  3. https://en.wikipedia.org/wiki/Demosaicing
  4. https://en.wikipedia.org/wiki/Bayer_filter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达作业8:三层神经网络实现手势数字的识别(基于tensorflow)

数据集的载入,随机产生mini-batch放在tf_utils.py,代码如下 import h5py import numpy as np import tensorflow as tf import mathdef load_dataset():train_dataset h5py.File(datasets/train_signs.h5, "r")train_set_x_orig np.array(train_datase…

基于visual Studio2013解决面试题之0307最后谁剩下

题目解决代码及点评/* n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数字&…

谷歌、苹果等大佬亲自戳穿自动驾驶完美童话,技术、场景、安全牢笼实难突围!...

来源: 物联网智库摘要:自动驾驶普及不仅局限于自身技术和应用场景,而且与产业链各环节密切相关。一项科技从诞生到被人们所接受是一个循序渐进的过程,自动驾驶真正普及还任重而道远。2018年11月1日百度世界大会上,百度…

使用文件监控对象FileSystemWatcher实现数据同步

使用文件监控对象FileSystemWatcher实现数据同步 原文 使用文件监控对象FileSystemWatcher实现数据同步 最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内 容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高&a…

吴恩达作业11:残差网络实现手势数字的识别(基于 keras)+tensorbord显示loss值和acc值

一,残差网络实现手写数字识别 数据集地址:https://download.csdn.net/download/fanzonghao/10551018 首先来resnets_utils.py,里面有手势数字的数据集载入函数和随机产生mini-batch的函数,代码如下: import os import numpy as…

通过SVD求解单应矩阵

我们现在知道原则上4对匹配点对就可以唯一确定单应矩阵,但是在实际应用中我们无法保证两个视图严格满足使用条件(只有旋转变换;远景;平面场景),所以要使用拟合的方法求一个最优解。现在就来以SIFT算法源码为…

注意力机制(Attention)最新综述论文及相关源码

来源:专知注意力机制(Attention)起源于模仿人类的思维方式,后被广泛应用于机器翻译、情感分类、自动摘要、自动问答等、依存分析等机器学习应用中。专知编辑整理了Arxiv上一篇关于注意力机制在NLP中应用的综述《An Introductory Survey on Attention Mec…

橙子楼的猥琐大叔

故事要从暑假开始说起,那时我还在准备考研,每天往返于教室、宿舍和食堂,单调但不会无趣,常常会有故事发生,生活也很充实。 考研的一般都会在固定的教室有个自己的位子。 坐我正前面的是一个妹子,准确的说是…

Pycharm下安装Tensorflow

趁着帮师妹看Github上的一个项目,督促自己学习一下Python下训练神经网络的一整套流程。没想到在一开头就遇到了不少问题。首先是Pycharm中导入Github项目的问题,还有安装tensorflow的问题,之后又遇到了多种版本的Python共存的问题。在这里记录…

吴恩达作业9:卷积神经网络实现手势数字的识别(基于tensorflow)

数据集链接:https://download.csdn.net/download/fanzonghao/10551018 提供数据集代码放在cnn_utils.py里。 import math import numpy as np import h5py import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.python.framework import ops…

AI洞观 | 戴上红帽 看IBM冲杀云计算市场

来源 | 网易智能(公众号 smartman163)摘要:可以预计,未来的云计算市场将越来越比拼生态综合服务能力,云计算行业进入下半场,谁在裸泳不久见分晓。IBM豪掷340亿美元收购红帽(Red Hat)…

基于visual Studio2013解决面试题之0608找出两个只出现一次的数

题目解决代码及点评/*已知数组中有两个数只出现一次,其他成对出现,请找出这两个数解决办法:1)简化问题,如果数组中只有一个数出现一次,那么只要对这个数组做异或即可2…

工业富联:左手工业AI,右手“雾小脑”

来源:先进制造业摘要:11月14日,第二十届中国国际高新技术成果交易会在深圳会展中心开幕。11月14日,第二十届中国国际高新技术成果交易会在深圳会展中心开幕。备受瞩目的是,在分论坛“2018第九届中国信息通信论坛”上&a…

吴恩达作业10:用卷积神经网络识别人脸happy(基于Keras)

数据集提供的代码放在kt_utils.py: import keras.backend as K import math import numpy as np import h5py import matplotlib.pyplot as pltdef mean_pred(y_true, y_pred):return K.mean(y_pred)def load_dataset():train_dataset h5py.File(datasets/train_h…

清华大学:智能驾驶背景下转向系统发展趋势

来源:智车科技这里近几年,自动驾驶汽车的研发与推广发展迅速,根据国家工业和信息化部等发布的《汽车产业中长期发展规划》,2025 年,高度和完全自动驾驶汽车开始进入市场,在此背景下,线控转向技术…

TensorFlow学习之——checkpoints

在看别人的训练网络中一开头就遇到这样一行代码: ckpt tf.train.get_checkpoint_state(directories.checkpoints) 鼠标放在函数名上,ctrlB,或者ctrl点击函数名,可以跳转到函数的定义,可以知道tf.train.get_checkpoi…

jQuery.ajax

(摘录)http://www.cnblogs.com/XuebinDing/archive/2012/03/01/2376041.html 情况一、使用WebService验证 1.新建demo.aspx页面。2.首先在该页面的后台文件demos.aspx.cs中添加引用。 using System.Web.Services; 3.无参数的方法调用. 大家注意了,这个版本不能低于.…

基于Keras的卷积神经网络用于猫狗分类(未进行数据增强)+卷积层可视化

首先看数据集路径: cats和dogs存放的就是各种大小的猫狗图片。 读取数据集代码: import os import matplotlib.pyplot as plt """ 读取数据 返回数据的文件夹名字,和具体的猫狗的路径 """ def read_data(): …

芯片植入:“增强人类”的生物黑科技

来源:资本实验室摘要:当医疗、电子、生物科技快速发展,并紧密融合的时候,许多科幻电影中的场景正在不断变为现实,而“增强人类”、”赛博格“、“电子人”、“生化人”正在成为这个时代最值得期待,又多少让…

如何通过VC的 CHttpFile 抓取网页内容

在点击一个按钮时开始请求你输入的地址。void CHttpFileDlg::OnButton1() {   CString url;   GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。   char* headers"Accept:*/*\r\nAccept-Language:zh-cn\r\nUser-Agent:VCTestClient\r\n"; …