一、引言

在《moviepy1.03音视频剪辑:使用manual_tracking和headblur实现追踪人脸打马赛克》介绍了使用手动跟踪跟踪人脸移动轨迹和使用headblur对人脸进行打马赛克。

实际上,moviepy除了使用manual_tracking手动追踪,另外还提供了autoTrack自动追踪的方式,该方式提供需要匹配的跟踪对象的图像数组,自动在剪辑对应帧中去查找跟踪对象。对于一个较长的剪辑来说,自动追踪可以避免选择多个帧来手动跟踪目标对象。

对一个较长剪辑来说,结合手动跟踪和自动跟踪实现一种半自动跟踪的方式追踪人脸打马赛克是一种相对来说节约操作时间的方式,本文将介绍这种方式的实现。

二、实现思路

要实现半自动跟踪,首先必须取得匹配的模板图像,半自动跟踪的思路就是通过手工方式获取需要跟踪的模板图像。具体实现步骤如下:

1、确认视频中需要跟踪对象的关键位置时间点,这些点跟踪对象的人脸图像较前一刻有比较大的变化,如正脸、侧脸、大图像、小图像等情况。将这些点(t1、t2、t3…,tn)分别作为手动跟踪选择目标对象的关键点;

2、对每个关键点调用manual_tracking获取跟踪对象的中心位置,并将对应范围的图像记录到需要匹配的模板图像列表中;

3、将要跟踪剪辑的时间段(traceStartPos----traceEndPos)按照关键点分隔成多个剪辑,分别与上步保存的模板图像进行匹配跟踪和模糊化,得到的新剪辑进行保存;

4、将模糊后的所有剪辑进行拼接,并与原剪辑中没进行模糊化的部分进行拼接,最后输出新剪辑即是半自动人脸根据并打马赛克的剪辑。

三、实现代码

3.1、获取跟踪对象指定时刻跟踪位置对应图像

moviepy音视频剪辑:视频半自动追踪人脸打马赛克的更多相关文章

  1. moviepy音视频剪辑:使用autoTrack、manual_tracking+headblur实现半自动追踪人脸打马赛克

    一.引言 在<moviepy1.03音视频剪辑:使用manual_tracking和headblur实现追踪人脸打马赛克>介绍了使用手动跟踪跟踪人脸移动轨迹和使用headblur对人脸进行 ...

  2. moviepy1.03音视频剪辑:使用manual_tracking和headblur实现追踪人脸打马赛克

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在moviepy官网的案例<Tracking and blurring someone's face>和CSDN的moviepy大神uc ...

  3. moviepy音视频剪辑:追踪人脸打马赛克的三种实现方式

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在moviepy官网的案例<Tracking and blurring someone's face>和CSDN的moviepy大神uc ...

  4. Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载

    ☞ ░ 前往老猿Python博文目录 ░ 一.简介 MoviePy是一个用于视频编辑的Python模块,可用于进行视频的基本操作(如剪切.拼接.标题插入).视频合成(也称非线性编辑).视频处理或创建高 ...

  5. moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍

    一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...

  6. PyQt+moviepy音视频剪辑实战文章目录

    ☞ ░ 前往老猿Python博文目录 ░ 本专栏为moviepy音视频剪辑合成相关内容介绍的免费专栏,对应的收费专栏为<moviepy音视频开发专栏>. 一.moviepy基础能力系统介绍 ...

  7. moviepy音视频剪辑:headblur函数遇到的ValueError assignment destination is read-only问题及解决办法

    ☞ ░ 前往老猿Python博文目录 ░ 一.运行环境 运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 二.错误案例代码及报错 ...

  8. moviepy音视频剪辑:headblur函数遇到的TypeError: integer argument expected, got float错误的解决方案

    运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 错误信息: 在调用moviepy1.03版本的headblur函数执行人脸跟踪 ...

  9. Python MoviePy中文教程导览及可执行音视频剪辑工具下载

    ☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy ...

随机推荐

  1. xshell断线解决办法

    困扰了好几个月了,网上更改ssh配置文件.固定ip都不好使,终于找到xshell掉线的解决办法了 哈哈!!! 设备管理器-->网络适配器-->对应网络连接虚拟机方式,本机虚拟机桥接如图 右 ...

  2. Redis快速入门教程

    1.Redis介绍 Redis说白了就是个存放Key-Value数据接口的内存存储系统,主要用作数据库缓存和消息代理. 内部支持sring,hash,list,set,sorted-set五种数据结构 ...

  3. UnixIPC之共享内存

    Unix-IPC之共享内存 一,共享内存的概念 共享内存通信技术是一种最快的可用IPC形式,它是针对其他通信机制运行效率低和设计的新型通信技术(其他的如:信号量,管道,套接字等).这种通信技术往往与其 ...

  4. wait()系统调用分别演示在父子进程

    废话不多说开代码 在父进程调用wait() #include<stdio.h> #include<unistd.h> #include<sys/wait.h> in ...

  5. 数据库Sharding的基本思想和切分策略(转)

    一.基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题.不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时 ...

  6. HttpClient4.3 连接池参数配置及源码解读

    目前所在公司使用HttpClient 4.3.3版本发送Rest请求,调用接口.最近出现了调用查询接口服务慢的生产问题,在排查整个调用链可能存在的问题时(从客户端发起Http请求->ESB-&g ...

  7. v-echarts安装

    npm install v-echarts echarts --save

  8. vector删除特定元素

    删除vector中小于20的元素,注意要使迭代器失效,不能简单的删除. #include <iostream>#include <vector>using namespace ...

  9. Jmeter监控插件

    Jmeter-Plugins支持CPU.Memory.Swap.Disk和Network的监控,在测试过程中更加方便进行结果收集和统计分析. 一.准备工作: 1.下载Jmeter-Plugins插件, ...

  10. Springboot使用EasyExcel(仅限自己收藏)

    pom文件依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel< ...