一、模型的构建

base -- 基类,允许不同input channel 和不同的output channel 不同的backbone,通过参数传入。

1、backbone--resnet101

建构resnet:

input channel 6

替换first conv layer 因为 input channel = 6

删除原来的fully-connected layer

注:

Variant : 特殊的数据类型,除了固定长度string数据以外的任何类型的数据。

2、ASPP

来自于deeplabv3

金字塔池化,增加了空间的感受野

input channel = 2048

output channel = 256

ASPPConv 继承了 nn.Sequential, supper 先找到ASPPConv的父类 nn.Sequential,然后用父类的初始化方法来对ASPPConv的属性进行初始化。Sequential 是一个容器,将模块依次传入容器中。

torch.cat(x,dim) 将不同空洞卷积的结果连接起来。

3、decoder

output channel 1 + 3 + 1 + 32=37

各层输出通道的维数逐渐减少。512 -->256 -->64--> 6

有skilp connection

4、Refiner

有来自原始图像的skilp connection

------------------------------------------------------------------------------------------------------------------------------

二、模型参数、数据的加载

model.load_state_dict(torch.load(model_checkpoint))

cv2.VideoCapture(videopath)

获取宽 高 帧率 帧数等信息

使用单映变换匹配source image 和background, cv2.ORB_create 。对于超出bgr 部分的区域,就将source 对应的像素拷贝过去。

VideoWriter(output_dir, frame_rate, width,height) 按照输入的video 的参数保存数据。

-------------------------------------------------------------------------------------------------------------------------------------------------

执行推断的过程

with torch.no_grad():

图像/视频背景替换--BackgroundMattingV2 笔记相关推荐

  1. OpenCV C++案例实战六《绿幕视频背景替换》

    OpenCV C++案例实战六<绿幕视频背景替换> 前言 一.图像预处理 二.HSV色彩空间转换 1. cvtColor色彩空间转换 2. inRange抠图 三.背景替换 四.源码 总结 ...

  2. C++OpenCV系统学习(17)——图像分割与抠图(6)——视频背景替换

    1.关键知识点 分割算法选择 背景融合-高斯模糊 遮罩层生成 1.1分割算法的选择 GMM/Kmeans:对视频的第一帧做trainning,对其他帧只做预言不做trainning. .基于色彩的处理 ...

  3. OpenCV4学习笔记(57)——基于GrabCut图像分割算法实现背景替换与背景虚化效果

    在上一篇笔记<OpenCV4学习笔记(56)>中,整理了关于在OpenCV中使用GrabCut图像分割算法的相关内容,那么本次笔记就以GrabCut算法为基础来实现对图像的背景替换和背景虚 ...

  4. OpenCV4学习笔记(31)——视频背景、前景提取分离及运动检测

    这次要整理的笔记是视频背景.前景提取及运动检测,是通过对视频前面的一系列帧图像来提取背景模型,从而分离出前景目标和背景,进而对运动的前景目标进行检测.OpenCV中实现的背景模型提取算法有两种,一种是 ...

  5. 几行代码就能去除图像和视频背景,还用啥PS

    背景去除是将主要对象/图像与其背景分离的过程. 深度学习是基于表示学习的人工神经网络的机器学习方法家族的一部分 U-2-Net是用于显着对象检测的深度网络模型(Github存储库:U-2-Net) 我 ...

  6. Opencv4学习-2、小案例之绿布抠图-视频背景图替换

    一.绿布抠图-背景图替换 主要是基于图像色彩空间,转换为HSV色彩空间实现mask层提取.然后通过一些简单的图像处理比如形态学开闭操作.高斯模糊等到完整的mask区域,运用mask区域生成权重系数,对 ...

  7. (六)图像背景移除/去背景/换背景/抠图/抠像代码示例:AI实时抠图、AI实时抠像、PaddlePaddle模型、虚拟现实视频会议、沉浸式会议场景、人像去背景、视频背景消除、摄像头背景移除

    (六)图像背景移除/去背景/换背景/抠图/抠像代码示例:AI实时抠图.AI实时抠像.PaddlePaddle模型.虚拟现实视频会议.沉浸式会议场景.人像去背景.视频背景消除.摄像头背景移除 本文与前几 ...

  8. 如何替换视频背景为其它的场景?

    今天教大家一个高大上的操作,当然,也相对比较简单.给视频更换背景首先要做的就是把视频中的人物抠出来,然后放在任何场景里面,场景可以包括图片场景或者视频场景. 但你拥有一段透明的视频,便可以随时随地做一 ...

  9. Python OpenCV学习笔记之:使用MOG2视频背景消除

    为什么80%的码农都做不了架构师?>>>    # -*- coding: utf-8 -*- """ 视频背景消除 """ ...

最新文章

  1. 「小程序JAVA实战」小程序的页面重定向(60)
  2. 线程五种状态(新建、就绪、运行、阻塞、死亡)
  3. iOS开发之观察者模式初探
  4. python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...
  5. influxDB+grafana 日志监控平台(Golang)
  6. Spark记录-Scala基础语法
  7. ButterKnife的简单使用
  8. 如何实现一个循环显示超长图片的控件
  9. linux oracle 11g ora-00845,Linux下安装Oracle11g , MEMORY_TARGET(AMM)小于/dev/shm处理(ORA-00845)...
  10. 图片 滚动切换效果(五) 高级篇
  11. windows 下使用 virtualenv 创建虚拟环境
  12. oracle 字段带数字,Oracle字符串中包含数字、特殊符号的排序
  13. matlab双目标定
  14. s查看oracle空间分配,Oracle查看表空间使用率(包括临时表空间)
  15. plc secs通讯协议_一种SECSGEM通讯协议转换的方法与流程
  16. 如何解决Mac电脑没声音了的问题
  17. 多糖类水凝胶构建制备介绍(瑞禧多糖水凝胶简述)
  18. 简单的 C/C++ 项目自动化构建--Xmake
  19. 哪些是linux系统版本,linux系统主要有哪些版本
  20. 红色的反色是青色引申出PS怎么反色之教程

热门文章

  1. 二叉树(三)——堆排序优化、TOP K问题
  2. 【开源大模型效果测评:WizardLM-13B vs NousHermes-13B】写神经网络发展历史
  3. Java / Android 正则表达式判断是否为手机号码
  4. DALL-E 2再跑酷!杂志封面20秒内搞定,设计师都傻了
  5. 最全最详细的Java异常处理机制
  6. KUOKUO的趣味教程 | 进击的小怪诞生(1)
  7. 社招前端必会手写面试题集锦
  8. 中国兽药市场营销创新策略与投资方向建议报告2022版
  9. python从含有汉字和数字的字符串中提取数字部分
  10. paho架构_Paho -物联网 MQTT C Cient的实现和详解