[总结] 视频广告秒级语义解析 代码总结

2024-04-21 11:18

本文主要是介绍[总结] 视频广告秒级语义解析 代码总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0. 目录

1. 环境配置

1.0 环境配置:

pip install tensorflow==1.14
pip install scenedetect[opencv] #分割镜头的时候用到
pip install baidu-aip 

1.1 链接数据集

将 VideoStructuring/dataset 链接到主目录 /home/tione/notebook/algo-2021/dataset

!ln -s /home/tione/notebook/algo-2021/dataset /home/tione/notebook/VideoStructuring/dataset

2. 视频时序分割 模型训练

对于structuring任务,训练需要分为两步,视频切分标签预测

对于视频切分,需要完成特征提取(./run.sh seg_extract)与数据集生成(./run.sh seg_gt)两项任务。
为了简化操作,baseline已完成了前置步骤,用户可以直接使用下列脚本进行视频切分模型的训练。
训练完成后,模型存在于VideoStructuring/SceneSeg/run/目录下。

!sudo chmod a+x ./run.sh && ./run.sh seg_train

3. 视频幕多标签分类 模型预测

对于标签预测,需要完成 特征提取(./run.sh tag_extract)与 数据集生成(./run.sh tag_gt)两项任务。
为了简化操作,baseline已完成了前置步骤,用户可以直接使用下列脚本进行 视频标签模型 的训练。
训练完成后,模型存在于VideoStructuring/MultiModal-Tagging/checkpoints/目录下。

!sudo chmod a+x ./run.sh && ./run.sh tag_train

4. 模型测试

Baseline的测试可以直接使用 ./run.sh test [CHECKPOINT_DIR] 进行,成功执行后会在VideoStructuring/MultiModal-Tagging/results/目录下生成 structuring_tagging_5k.json结果文件。
提交这个文件就可以参与排名。
注意:   ./run.sh test  也分为 视频切分 标签预测 两个步骤,视频切分的时间比较长(32小时左右),用户可以尝试进行优化,标签预测的时间在30分钟左右。

!sudo chmod a+x ./run.sh && ./run.sh test checkpoints/structuring_train5k/export/step_7000_0.7875

这篇关于[总结] 视频广告秒级语义解析 代码总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922949

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

解析 XML 和 INI

XML 1.TinyXML库 TinyXML是一个C++的XML解析库  使用介绍: https://www.cnblogs.com/mythou/archive/2011/11/27/2265169.html    使用的时候,只要把 tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

Java注解详细总结

什么是注解?         Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。         注解不光可以用在方法上,还可以用在类上、变量上、构造器上等位置。 自定义注解  现在我们自定义一个MyTest注解 public @interface MyTest{String aaa();boolean bbb()