美文网首页程序员
【机器学习】视频3D效果实现

【机器学习】视频3D效果实现

作者: AIPlayer | 来源:发表于2020-10-18 21:46 被阅读0次

一、前言

现在有一些网站视频的弹幕会从人像后面穿过,要实现这种效果,一种简单的方法是通过物体分割算法对视频帧进行分割,记录下分割出来的人体边缘像素位置,当弹幕流动到这些像素位置时则不再显示。基于此,本文试图实现一个可以给视频添加简单3D效果的功能,效果如下:

「机器学习」视频3D效果实现

二、Yolact简介

YolAct是一种基于神经网络的分割算法,其优势在于实时性较好。算法的整体结构如下图所示:

「机器学习」视频3D效果实现

网络基础骨架为ResNet101,采用经典的FPN进行特征融合。网络的创新点在于增加了的prorotype分支进行不同位置和前景背景分割的预测,并且在FPN的预测部分,也增加了分割的一个分支。使用FPN处分割的分支预测的权值和prorotype mask结合,生成每一个anchor对应的mask分割结果。

三、实现

使用基于NCNN开源库的实现,NCNN是一个为手机端极致优化的高性能神经网络前向计算框架,无第三方依赖且跨平台。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行。在其开源的例子程序中就已经实现了Yolact的推理计算。本文在此基础上添加后处理以实现3D效果的功能。

(1)类设计

通过继承MediaHandler实现VideoHandler和ImageHandler分别处理视频和图像,定义DetectorManager和EffectManager用于管理和创建不同的目标检测器和不同的效果,本文目前仅实现了YolactDetector和Effect3d的效果类。定义的类图如下所示:

「机器学习」视频3D效果实现

(2)3D效果

简单的3D效果是给图像帧画两条白线,当目标从左到右移动时,左线一直保持,右线根据目标的分割位置进行动态调整。同理,当目标从右到左移动时,右线一直保持,左线根据目标位置调整。所以,需要根据目标移动的方向由用户指定使用哪一种。

(3)编译与使用

在Linux环境下:

git clone https://github.com/Oreobird/effect3d
mkdir build && cd build && cmake .. && make

命令选项:

./effect3d --file hand.wmv 输入的文件名               
    --video hand3d.mp4 输出的文件名               
    --detector yolact 使用的检测器               
    --effect lr 目标移动方向 lr 从左到右,rl从右到左               
    --target person 指定检测的目标

四、总结

本文在NCNN实现的Yolact基础上,对检测与分割得到的目标边缘添加后处理,实现了一个简单的3D效果。

相关文章

  • 【机器学习】视频3D效果实现

    一、前言 现在有一些网站视频的弹幕会从人像后面穿过,要实现这种效果,一种简单的方法是通过物体分割算法对视频帧进行分...

  • 2020-01-31

    学习规划 1、Three.js 3D场景 40分钟 2、尝试实现简单的3d效果 3、SSM框架 3小时视频 4、J...

  • css实现简单的3D效果

    css实现简单3D房间效果 纯3D效果实现上述效果,总体思路就是旋转容器,为容器贴纸。 这是一个简单的3D立方体空...

  • shader中制作简易3d绘制

    在游戏开发中近大远小的效果是3d图形所呈现的基本效果,那我们如何在着色器中实现3d的效果呢,实现的方式有多种形式,...

  • Flutter 实现酷炫的3D效果

    老孟导读:此文讲解3个酷炫的3D动画效果。 下面是要实现的效果: Flutter 中3D效果是通过 Transfo...

  • 随手收集

    one div实现icon one div 实现动态天气 css实现文字3D CSS实现文本干扰效果 CSS实现文...

  • 2018 10 09

    阅读书籍《程序员的修炼之道——从小工到专家》,学习pygame中的音频引入和实现,学习3d视角效果的原理

  • Android初级进阶之自定义View之SafeVeiw

    SafeView 这是我模仿的一个效果,要不断的进步,就要不断的学习。主要实现的效果是一个转动的效果和一个3D触摸...

  • 微信小程序实现打卡(翻转效果)

    1.实现效果 2.实现原理 perspective定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D ...

  • CSS3 - 3D位移

    使用3D位移时,需给要表现出3D效果元素的父元素增加透视效果样式,实现近大远小: 3D移动 参数说明:x:设置元素...

网友评论

    本文标题:【机器学习】视频3D效果实现

    本文链接:https://www.haomeiwen.com/subject/hgchmktx.html