IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 项目实训(五)—参数设置与调用接口 -> 正文阅读

[Python知识库]项目实训(五)—参数设置与调用接口

前言:

我们在服务器中专门建立了一个文件夹用于保存用户上传的视频、视频处理的中间结果以及最终果,结构如下:(每个用户都会有一个以ID命名的文件夹,这里我们创建的文件夹仅仅用于测试)

——EasyCut
  ——ID
    ——ID_VideoName
      ——Original_Video  //原视频地址
      ——SceneSeg_Video  //场景划分结果
      ——Key_Frame
      ——Resources

1、命令行参数设置:

LGSS框架关于场景划分处理的原视频的地址、中间结果的保存地址以及划分结果的保存地址都是固定的,如果想要实际运用起来,需要将其设置为参数。

1、pre/ShotDetection/shotdetect.py

(1)原视频地址:运行时由 --video_path 指定:
请添加图片描述

(2)帧(frame)和镜头(shot)相关文件的保存目录:运行时由 --save_data_root_path 指定:
请添加图片描述
shot_stats 文件保存和读取地址:
请添加图片描述
shot_keyf 文件保存地址:
请添加图片描述
shot_txt 文件保存地址:
请添加图片描述

shot_spilt_video 文件保存地址:
请添加图片描述

2、lgss/config/demo.py
data_root 、shot_frm_path 、video_name:
请添加图片描述

3、lgss/run.py
config/demo 中的 data_root、shot_frm_path、video_name 由运行时的参数指定:
请添加图片描述
4、lgss/utilis/dataset_utilis.py:
最终划分结果的保存地址(即 scene_video):
请添加图片描述
shot_txt 文件的读取也在该程序中:
请添加图片描述

5、lgss/src/data/demo.py
通过切分出的镜头(shot)进行最后的场景划分时(即运行 lgss/run.py)需要读取 shot_keyf 文件:
请添加图片描述
6、lgss/utilis目录下的 iou.py 和 recall_time.py 中相关中间结果文件的地址也需要进行相应修改

测试:
1、运行 shotdetect.py:

python ShotDetection/shotdetect.py --print_result --save_keyf --save_keyf_txt --video_path /opt/data/private/xuyunyang/EasyCut/ID/ID_VideoName/Original_Video/demo.mp4  --save_data_root_path /opt/data/private/xuyunyang/EasyCut/ID/ID_VideoName/SceneSeg_Video

请添加图片描述请添加图片描述
2、运行 run.py:

python run.py config/demo.py /opt/data/private/xuyunyang/EasyCut/ID/ID_VideoName demo

请添加图片描述

2、调用接口

运行场景划分、视频摘要、人脸检测算法需要多次通过命令行、使用多个参数,为了更方便地在后端使用,需要将这三个算法连起来,对外提供一个调用接口:

新建一个接口文件 algorithm_run.py ,使用 subprocess.call ( ) 来执行命令行:

import subprocess
import argparse
from app import start

if __name__ == '__main__':

    parser = argparse.ArgumentParser("Single Video ShotDetect")
    parser.add_argument('ID')
    parser.add_argument('ID_VideoName')
    parser.add_argument('video_name')
    args = parser.parse_args()

    #SceneSeg
    path_root='/opt/data/private/xuyunyang/2022419/SceneSeg'
    save_path='/opt/data/private/xuyunyang/EasyCut/'+args.ID+'/'+args.ID_VideoName
    command1='python '+path_root+'/pre/ShotDetection/shotdetect.py --print_result --save_keyf --save_keyf_txt --video_path '+save_path+'/Original_Video/'+args.video_name+' --save_data_root_path '+save_path+'/SceneSeg_Video'
    retcode1=subprocess.call(command1,shell=True)
    command2='python '+path_root+'/lgss/run.py '+path_root+'/lgss/config/demo.py '+save_path+' '+args.video_name.split('.')[0]
    retcode2=subprocess.call(command2,shell=True)

    # key frame
    command3='python /opt/data/private/xuyunyang/run.py --id '+args.ID+' --idvn '+args.ID_VideoName+' --name '+args.video_name
    retcode3=subprocess.call(command3,shell=True)

    # face detect
    start(args.ID,args.ID_VideoName,args.video_name)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:41:12  更:2022-04-30 08:42:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:35:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码