全景丨0基础学习VR全景制作,后期篇:嵌入视频前期注意事项及后期处理

大家好,欢迎观看蛙色官方系列全景摄影课程!

 

一、前期拍摄要点

 

嵌入视频的简介和用途

livepano即完全无缝融合到全景图中的热点嵌入视频。

这种无缝融合是真正无缝,从而让观者产生沉浸感和真实感。例如在场景中放入宠物、让喷泉动起来、灯光的闪烁、主持人讲解等等。

适用范围包括:

商场、餐厅、乐园、展厅、酒店、博物馆、风景区等多种环境的介绍和讲解。

 

嵌入视频前期拍摄注意事项

后期制作采用的是PTGui方案,所以建议拍摄设备为:全画幅单反+12mm鱼眼镜头

拍摄手法:单反+鱼眼镜头拍摄全景,固定机位&相同曝光参数录制视频。

鱼眼镜头拍摄视频的好处

1. 鱼眼镜头视野广泛,能够拍摄更多的内容,视频主体可以更多地在画面中走动;

2. 不需要另外更换镜头,避免不必要的机位偏差、光学节点偏移、白平衡&曝光色彩差异;

3. 采用同一支鱼眼镜头拍摄全景和视频,规避可能发生的意外,PTGui拼接效果好,效率高,风险低。

拍摄步骤:

1. 拍摄全景每隔60度,云台有一个卡顿点,开始拍摄前就确定好其中一个拍摄角度的画面正中能覆盖动态主体的活动区域,录制视频的云台角度也需要放置在其中一个卡顿点上;

2. 拍摄全景图片和录制视频的曝光参数都要完全一致,因为很多相机录制视频时较慢快门只有“1/30”,换句话说,图片和视频拍摄时的快门、光圈、感光度&白平衡需要完全相同;

3. 提前确定好机位、曝光参数和拍摄角度后,我们将相机对焦在动态主体身上,正常拍摄全景,之后切换视频模式,录制嵌入视频素材,需要主持人提前备场,尽量缩短全景和视频拍摄之间的时间间隔。

注意事项:

画质:现在一般的相机都支持4k录制,那么尽量直接使用相机能够达到的好的画质进行拍摄;

光线:室外光比大,日光随着时间推移,光线变化较大,尽量选取室内、人造光源、稳定明亮的场景进行拍摄;

背景:人物站位尽量选取非纯色、特征点丰富的背景,严禁非静止背景,有人流/车流等会超出镜头画面;

对焦:对焦到嵌入视频主体或人物身上,建议使用小光圈,保证了比较大的景深和较高的清晰度;

人物:人物运动范围不宜过大,左右运动不得超过镜头涵盖范围,减少前后移动,防止虚焦;

镜头:镜头高度设定在人物的肩部,保证人物身材比例的美观度,过高过低均会造成走样。

二、后期处理思路

1.【素材导入电脑】将前期拍摄好的图片素材和视频素材导入电脑,整理分类;

2.【Lightroom转换图片格式】RAW格式图片导入Lr转成JPG格式图片,备用;

3.【Premiere剪辑视频,导出帧序列】Pr剪去视频多余部分,导出视频的帧序列和音频文件;

4.【PTGui拼接全景图】将图片素材和视频首先帧图片一起拼接,甚至需要手动添加控制点达到较好融合,导出全景图;

5.【PTGui定位嵌入视频区域】打开PTGui新窗口,导入拼接好的全景图,利用直线投影模式定位嵌入区域,保存定位参数(视场参数&三轴参数),导出遮罩图;

6.【同步两个窗口的定位参数,批量处理帧序列图片】将定位参数同步设置到之前项目窗口,以首先帧为模板,使用批量生成器和批量缝合器统一处理视频的所有帧序列图片;

7.【Premiere合成嵌入视频】帧序列按顺序批量改名成:名称+数字,导入处理过的帧序列进入Pr,还原成视频,导入之前保存的音频,导出MP4格式的嵌入视频;

8.【Photoshop制作遮罩图】将之前保存的遮罩图导入Ps,用橡皮擦工具擦去主体的活动区域,导出PNG格式图片,保留透明图层;

9.【蛙色后台制作】将处理好的成果上传蛙色后台,进行线上制作。

嵌入视频后期处理小结:

需要用到的工具是:PTGui Pro,Lightroom,Photoshop,Premiere,文件批量改名工具;

随后所得到的成果是:一张全景图,一段嵌入视频,一张遮罩图,两张定位参数截图。

 (所需工具)

 

(处理成果)

三、后期操作详解

 

(嵌入视频素材)

将相机拍摄的素材导入电脑,可根据项目不同,分类整理文件夹,做好名称命名,我这里命名为“嵌入视频素材”。这组素材是用Canon 5DSR+Canon 8-15红圈鱼眼镜头拍摄,前六张是图片素材,随后一个是视频素材。

 

 (RAW格式图片导入Lr)

 

 (Lr导出JPG格式图片)

 

 

(子文件夹jpg)

 

先处理图片素材,将RAW格式素材导入Lr,导出JPG图片。

这里我们分成两种情况来说,我们尽量鼓励大家在前期拍摄时就充足曝光,这样的话,就不需要分别对图片和视频调色,就不会造成嵌入视频和全景图片有色差、不融合的情况;

如果由于其他原因,必须调色,需要把视频转成帧序列之后,再对帧序列图同步调色以尽量统一视频和全景图的曝光和色彩。如果用Lr和Pr分别调色,因为工具调色机制不同很难做到曝光和色彩融合。

Lr操作已经教过,在这不再赘述,需要注意的地方,已在上图用红框圈中。

 

(视频素材导入Pr) 

 

 (素材拖进时间轴,更改序列设置)

 

(新建文件夹“帧序列”) 

 

(导出帧序列) 

 

 (帧序列图)

 

 (导出音频)

 

 

(音频文件)

再处理视频素材,将视频素材导入Pr,更改序列设置,导出帧序列和音频文件。

打开Pr,按照之前Pr教程的步骤,新建项目,新建序列(序列的分辨率、帧数不用在意),导入视频素材后,直接拖入时间轴,用视频素材的序列预设,直接点击“更改序列设置”按钮,替换掉当前随意设置的序列预设。

之后就剪辑掉视频素材中多余的部分,以本次演示的案例为例,只选择了其中3秒。

在素材文件夹中新建一个文件夹,名为:帧序列,待会Pr导出帧序列图到这个文件夹中。

重点:

1.导出图片文件。在导出选项中,选择“JPEG”格式,设置好存储位置,图片质量调整到“100”,“导出为序列”一定要勾选上,随后点击“导出”即可。

2.导出音频文件。在导出选项中,选择“MP3”格式,设置好存储位置,声道选择“立体声”,点击“导出”即可。

 

 

(向右旋转序列图)

看到这里大家会发现导出的帧序列图是横着的,我们只需要在文件夹中“全选”所有帧序列图,单击鼠标右键弹出菜单,再点击“向右旋转”按钮,所有的序列图就都变成竖图了。

 

(复制首先帧帧序列图至子文件夹jpg) 

 

(拼接全景)

之后,我们开始用PTGui拼接全景图,我们建议较高版本的PTGui,拼接效果更好,甚至不需要手动添加控制点,这组素材由于前期相机云台节点调节较为准确,PTGui版本也比较高,直接可以拼接融合的比较好。

首先,复制帧序列图中的首先帧,粘贴到子文件夹jpg中,和拍摄的水平6张图像一起,一共7张图片一起拼接。其中图像6和图像7是同一个角度同一个位置拍摄的,图像6是单反拍摄的原图,图像7是视频帧序列的首先帧图。

 

(绿色画笔强制显示嵌入视频主体) 

 

(全景编辑器中将主体拖拽至中心位置)

全景图拼接完成后,我们可以看到拼接的不错。如果发现拼接不上,或者错位较多,需要手动给图像6和图像7添加控制点,直至全景图拼接效果较好为止。

之后我们需要保证的是,我们嵌入视频的主体所在的活动区域在全景图画面中强制显示,这个活动区域包含视频主体自始至终的运动范围。我们需要用“遮罩”选项卡中的绿色画笔把视频主体涂抹上,保证在全景画面中显示。

然后,在全景编辑器里,我们用鼠标左键拖拽全景画面将视频主体放置在中心位置,以便为后面的操作省去一些麻烦。

 

 (导出全景)

 

 (全景图)

 

 (保存项目1)

以上操作结束后,我们创建全景图,别忘了图片品质调整到“100”。并且在菜单栏中“文件>另存项目”,保存一下现在这个项目,名为“项目1”。因为在后续的操作中,项目1窗口一直不能关闭,以防止手误。 

 

(全景图补地)

项目1创建出来的全景图,直接放到Ps中补地,补地方法参考我们之前的教程,不再多说。地面补完后,直接保存替换原文件。

(新建PTGui窗口) 

现在我们用PTGui来定位嵌入视频在全景图中所在的区域。

我们新建一个PTGui窗口,将刚刚补完地的全景图直接拖入PTGui新窗口,因为本来就是拼接完成的全景,直接打开全景图编辑器预览即可。

(PTGui左右窗口)

现在我们的PTGui有两个窗口,为了以示区别,我们将用碎图拼接的项目1窗口放在屏幕左侧,将只有一张拼接完成全景图的PTGui新窗口放在屏幕右侧,我们分别取名为“左窗口”和“右窗口”。

 

(右窗口更改“直线投影”)

在右窗口的全景编辑器中,将全景的投影模式改为“直线投影”。

非常重要的一点,在右窗口右侧的“投影”选项卡中,将垂直那一栏的滑块,由“0.2”移至“0”。这项不改回为“0”会让直线投影的画面有较大的变形,导致制作失败。(切记!切记!切记!!!)

 

(右窗口更改视野参数) 

“垂直”移回“0”后,接着设置视野角度,让直线投影的视野长宽在包含视频主体活动区域的前提下,尽量的缩小。因为,我们知道图片的分辨率是远高于视频的,换句话说,也就是图片比视频清晰。所以,我们要尽量保证画面中嵌入视频所占视野刚好够用即可。

例如,演示案例中,我们给直线投影视野设置成“65°*65°”的一个正方形,我们尽量保证选取的定位范围是正方形。因为如果选取长方形,容易导致嵌入视频的分辨率出现奇数,像“324*615”,这样的奇数分辨率,Pr在输出渲染时容易丢失一列像素,分辨率变成“324*614”,那嵌入视频会产生一条黑边黑缝,这样的状况则可以用正方形分辨率去避免。

 

(截图记录直线投影的水平视野)

 

 (截图记录直线投影的x、y、z轴)

 

(截图定位参数保存) 

我们刚刚用视野角度选取的直线投影区域就是嵌入视频在全景图的中的区域,这个区域可以在右窗口中分别截图保存“直线投影:水平视野*垂直视野”和“影像参数:偏航yaw、俯仰pitch、滚动roll”,另外重命名为“参数1”和“参数2”。

后面在蛙色后台填写的定位参数(水平视场、x轴、y轴、z轴)就对应:“直线投影:水平视野、偏航yaw、俯仰pitch、滚动roll”填写即可。

 

 (右窗口保存遮罩图)

 

(改名:遮罩图) 

截完图,右窗口拉满输出品质,点击“创建全景”,注意:这时输出的并不是全景,而是刚刚调整视野角度选取的直线投影区域,我们用这张图作为“遮罩图”,自行重命名,后面用来遮盖在嵌入视频上方,让嵌入视频和全景图较好融合。

 

 

(左窗口重复右窗口定位操作)

 

我们继续同步两个窗口的定位参数。

左窗口重复右窗口刚刚完成的那些定位操作,我们正好也来复盘一下:

1. 将全景的投影模式改为“直线投影”;

2. 右侧的“投影”选项卡,将垂直那一栏的滑块由“0.2”移至“0”;

3. 设置视野角度,选取嵌入视频所在区域;

4. 定位参数以右窗口为准,左窗口参数不做参考;

 

(左窗口删除多余影像) 

现在开始,批量处理帧序列图片。

接下来的的所有PTGui操作在左窗口完成。

首先,左窗口【影像】选项卡中,删去影像1-6这6张多余图片,因为这6张图片在后面批量处理帧序列时并无帮助,影像7是序列帧的首先帧图,以影像7为模板即可。

 

(左窗口创建样板图)

删除多余影像后,我们进行下一步。

第二步,左窗口拉满输出品质,点击创建全景,也生成一张与之前“遮罩图”相同的平面图片,我们起名为“样板图”,后面批量处理的每一张序列帧图都以这张“样板图”为准。

 

(保存项目2)

第三步,左窗口保存“项目2”,这个项目2保存的就是刚刚创建“样板图”的操作,这步操作不仅仅包含定位区域、输出直线投影平面图,还包括帧序列图与全景图的拼接融合关系,后面的批量处理需要参考这个模板。

 

 (打开左窗口批量生成器)

 

 (批量生成器:检测全景图)

 

 

(批量生成器:生成项目设置)

 

第四步,批量生成项目。

1. 在左窗口菜单栏“工具”中,单击打开“批量生成器”,跳出“批量生成器”弹窗;

2. “批量生成器”弹窗左上角,点击【检测全景图】,进行设置:“方法”选择“每个文件夹具有固定数量的多个全景图”,“源文件夹”选择“帧序列”文件夹,“每幅全景影像数量”填写“1”,设置好后,点击“检测”按钮;

3. 生成项目设置,“使用模板”选择“当前项目:项目2”,“批量缝合器”选择“不会对齐影像…与模板完全相同”,接着点击“生成项目”按钮,“帧序列”文件夹中生成与帧序列图数量相同的、后缀名为“pts”的项目文件;

 

 (点击取消)

4. 批量生成项目完成,跳出弹窗,询问:“是否将生成的批次列表发送到批处理器?”

强烈建议选择“取消”,以防出现BUG,耽误制作。

 

(批量生成器:生成项目设置)

第五步,批量缝合影像。

1. 在左窗口菜单栏“工具”中,单击打开“批量缝合器”,跳出“批量缝合器”弹窗;

 

(pts项目拖入批量缝合器) 

2. 将“帧序列”文件夹中的“pts”项目文件,拖入“批量缝合器”弹窗;

 

 (批量缝合完成)

3. 耐心等待“批量缝合器”每个项目的进度条走完,每个项目后出现一个绿底对号“√”,批量缝合完成,“帧序列”文件夹中所有的帧图都被生成为数量相同的直线投影平面图。

 

 (二次序列文件夹)

4. 再新建一个文件夹,名为“二次序列”,将批量缝合器生成的所有直线投影平面图复制粘贴到此文件夹里。

(文件批量改名工具)

 

(批量替换改名) 

Premiere导入二次帧序列,合成嵌入视频。

下面,我们需要做的是把二次序列里的帧序列图还原回视频。需要注意的是,经过PTGui批量处理的二次帧序列图都被重新命名了,例如“序列 0100 全景、序列 0101 全景……”,这样的命名方式导致Pr无法识别帧序列图的排列编号顺序,不能导入,所以我们首先需要批量修改二次帧序列图的名称。

这里用到一个工具:文件批量改名工具。如上截图所示,添加二次序列中的图片文件进入工具,进行批量替换,【查找目标】填写“ 全景”,【替换成】不填写留空,然后点击右下角“开始重命名”,批量改名成功。

 

 (Premiere导入二次帧序列图)

 

(单击选中二次序列首先帧,勾选图像序列)

同样,Pr新建项目,新建序列(序列的分辨率、帧数随意,后面更改),ctrl+i 启动导入,在跳出的文件资源管理器中,找到并打开“二次序列”文件夹,单击选中首先帧“序列 0100”,勾选上左下角的“图像序列”,接着点击右下角“打开”,完成二次帧序列图的导入。

 

 (二次序列拖入时间轴,更改序列设置)

 

(时间轴加入音频素材) 

 

 (导出嵌入视频)

 

 (嵌入视频制作完成)

“序列0100”素材直接拖入时间轴,用视频素材的序列预设,直接点击“更改序列设置”按钮,替换掉当前设置的序列预设。

接着,导入之前单独保存的MP3格式的音频素材,对齐音画后,直接导出媒体,如上截图,格式选择“H.264”,设置好存储位置,点击右下角“导出”按钮即可。

 (制作遮罩)
利用Ps制作遮罩图。
将此前PTGui右窗口保存的遮罩图导入Ps,解锁背景图层,用橡皮檫把嵌入视频主体活动的区域擦除,保存成PNG格式的图片。PNG格式图片可以保留透明图层,这部分被橡皮擦擦去的透明区域留给嵌入视频的动态画面显示,又可以将原本静止的部分做到与全景图背景较好嵌入,遮罩图作用非常重要。
小提示:橡皮檫擦除时需要将画笔硬度调到较低的数值,也就是柔边画笔,这样过渡会比较自然。
为保证动态视频在蛙色平台上的流畅度和兼容性,建议对调整后的视频及遮罩图的处理要求(原则上不做要求):
1. 10s视频对应1-1.5M左右,20s的视频对应2-2.5M左右,以此类推,幅度自控;
2. 遮罩图不必和视频分辨率大小相同,等比例缩放即可,不高于200k,越小越好;
3. 处理后的视频和遮罩图不能和全景图片有明显的黑缝、色差、穿帮。
  

 

(五项成果) 

至此,我们的嵌入视频成果已经全部准备完毕,我们新建一个名为“成果”的文件夹,将两张参数截图,一段嵌入视频,一张全景图和一张遮罩图放进“成果”文件夹中,准备上传蛙色平台,进行后台制作。

 

 

 

 

 

 

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MPAM中PARTID的虚拟化(Virtualization)

MPAM支持对PARTID的virtualization,需要在满足所有以下条件下才能使用: 在当前的security状态下有实现EL2;支持MPAM virtualization,也就是MPAMIDR_EL1.HAS_HCR等于1; 以下是MPAM中使用virtual-to-physical PARTID ma…

Scala之面向对象

目录 Scala包: 基础语法: Scala包的三大作用: 包名的命名规范: 写包的好处: 包对象: 导包说明: 类和对象: 定义类: 封装: 构造器: 主从…

Spark 之 解析json的复杂和嵌套数据结构

本文主要使用以下几种方法: 1,get_json_object():从一个json 字符串中根据指定的json 路径抽取一个json 对象 2,from_json():从一个json 字符串中按照指定的schema格式抽取出来作为DataFrame的列 3,to_j…

【SpringMVC】第一个springmvc项目

需求: 用户在页面发起一个请求, 请求交给springmvc的控制器对象,并显示请求的处理结果(在结果页面显示一个欢迎语句)。 实现步骤: 新建web maven工程 加入依赖 spring-webmvc依赖,间接把spri…

FLINK 在蚂蚁大规模金融场景的平台建设

摘要:本文整理自蚂蚁集团高级技术专家、蚂蚁集团流计算平台负责人李志刚,在 Flink Forward Asia 2022 平台建设专场的分享。本篇内容主要分为四个部分: 主要挑战架构方案核心技术介绍未来规划点击查看直播回放和演讲 PPT 一、主要挑战 1.1 金…

【 Spring MVC 核心功能(三) - 输出数据】

文章目录引言一、返回静态页面二、返回非静态页面的数据三、返回 JSON 对象四、请求转发(forward)和请求重定向(redirect)五、拓展:IDEA 热部署(热加载)3.1 添加 SpringBoot DevTools 框架3.2 开起 IDEA 的自动编译3.3 开起运行中的热部署3.4 使用 debug 启动项目引…

【机器学习】SoftMax多分类---学习笔记

SoftMax---学习笔记softMax分类函数定义:softmax分类损失函数softMax分类函数 首先给一个图,这个图比较清晰地告诉大家softmax是怎么计算的。 (图片来自网络) 定义: 给定以歌nknknk矩阵W(w1,w2,...,wk)W(w_1,w_2,...,w_k)W(w1​,w2​,...,w…

Arcgis小技巧【12】——ArcGIS标注的各种用法和示例

标注是将描述性文本放置在地图中的要素上或要素旁的过程。 本文整理了ArcGIS中的各种标注方法、可能遇到的问题和细节,内容比较杂,想到哪写到哪。 一、正常标注某一字段值的内容 右键点击【属性】,在【标注】选项卡下勾选【标注此图层中的的…

Python 小型项目大全 1~5

一、百吉饼 原文:http://inventwithpython.com/bigbookpython/project1.html 在百吉饼这种演绎逻辑游戏中,你必须根据线索猜出一个秘密的三位数。该游戏提供以下提示之一来响应您的猜测:"Pico",当您的猜测在错误的位置有…

【SpringMVC】7—文件上传

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍…

布隆过滤器讲解及基于Guava BloomFilter案例

目录 1、布隆过滤器是什么 2、主要作用 3、存储过程 4、查询过程 5、布隆过滤器的删除操作 6、优点 7、缺点 8、测试误判案例 8.1、引入Guava依赖 8.2、编写测试代码 8.3、测试 8.4、BloomFilter实现原理 9、总结 推荐博主视频,讲的很棒:布隆…

华为运动健康服务Health Kit 6.10.0版本新增功能速览!

华为运动健康服务(HUAWEI Health Kit)6.10.0 版本新增的能力有哪些? 阅读本文寻找答案,一起加入运动健康服务生态大家庭! 一、 支持三方应用查询用户测量的连续血糖数据 符合申请Health Kit服务中开发者申请资质要求…

大数据项目之电商数据仓库系统回顾

文章目录一、实训课题二、实训目的三、操作环境四、 实训过程(实训内容及主要模块)五、实训中用到的课程知识点六、实训中遇到的问题及解决方法七、课程实训体会与心得八、程序清单一、实训课题 大数据项目之电商数据仓库系统 二、实训目的 完成一个电…

7.基于概率距离快速削减法的风光场景生成与削减方法

matlab代码:基于概率距离快速削减法的风光场景生成与削减方法 采用蒙特卡洛进行场景生成,并再次进行场景缩减。 clear;clc; %风电出力预测均值E W[5.8,6.7,5.8,5.1,6.3,5,6.2,6,4.1,6,7,6.8,6.5,6.9,5,5.6,6,5.8,6.2,4.7,3.3,4.4,5.6,5]; %取标准差为风…

在unreal中的基于波叠加的波浪水面材质原理和制作

关于水的渲染模型 如何渲染出真实的水体和模拟,是图形学,游戏开发乃至仿真领域很有意思的一件事 记得小时候玩《Command & Conquer: Red Alert 3》,被当时的水面效果深深震撼,作为一款2008年出的游戏,现在想起它…

算法:将一个数组旋转k步

题目 输入一个数组如 [1,2,3,4,5,6,7],输出旋转 k 步后的数组。 旋转 1 步:就是把尾部的 7 放在数组头部前面,也就是 [7,1,2,3,4,5,6]旋转 2 步:就是把尾部的 6 放在数组头部前面,也就是 [6,7,1,2,3,4,5]… 思路 思…

C++继承(上)

一、继承的概念及定义1.继承的概念2.继承定义2.1定义格式2.2继承关系和访问限定符2.3继承基类成员访问方式的变化二、基类和派生类对象赋值转换三、继承中的作用域一、继承的概念及定义 1.继承的概念 继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允…

聊聊如何运用JAVA注解处理器(APT)

什么是APT APT(Annotation Processing Tool)它是Java编译期注解处理器,它可以让开发人员在编译期对注解进行处理,通过APT可以获取到注解和被注解对象的相关信息,并根据这些信息在编译期按我们的需求生成java代码模板或…

【SQL Server】数据库开发指南(一)数据库设计

文章目录一、数据库设计的必要性二、什么是数据库设计三、数据库设计的重要性五、数据模型5.1 实体-关系(E-R)数据模型5.2 实体(Entity)5.3 属性(Attribute)5.5 关系(Relationship)六…

和ChatGPT-4聊完后,我觉得一切可能已经来不及了

了然无味,晴空万里!和ChatGPT-4开始了一场坦诚的沟通,它全程都表现出高情商,以及不断尽量安抚我的情绪,而这,恰恰令我脊背发凉。 部分文字截取 ZM:我能不能理解每次对话就是一次你的“生命” G&…