利用现有模型处理面部视频获取特征向量(4)

于是载入完整版视频

bash 复制代码
conda activate video_features
cd video_features 
python main.py \
    feature_type=r21d \
    device="cuda:0" \
    video_paths="[/home/ubuntu/low/0.mp4,/home/ubuntu/low/1.mp4,/home/ubuntu/low/2.mp4,/home/ubuntu/low/3.mp4,/home/ubuntu/low/4.mp4,/home/ubuntu/low/5.mp4,/home/ubuntu/low/6.mp4,/home/ubuntu/low/7.mp4,/home/ubuntu/low/8.mp4,/home/ubuntu/low/9.mp4,/home/ubuntu/low/10.mp4,/home/ubuntu/low/12.mp4,/home/ubuntu/low/13.mp4,/home/ubuntu/low/14.mp4,/home/ubuntu/low/15.mp4,/home/ubuntu/low/16.mp4,/home/ubuntu/low/17.mp4,/home/ubuntu/low/18.mp4,/home/ubuntu/low/19.mp4,/home/ubuntu/low/20.mp4,/home/ubuntu/low/21.mp4,/home/ubuntu/low/22.mp4,/home/ubuntu/low/23.mp4,/home/ubuntu/low/24.mp4,/home/ubuntu/low/25.mp4,/home/ubuntu/low/26.mp4,/home/ubuntu/low/27.mp4,/home/ubuntu/low/28.mp4,/home/ubuntu/low/29.mp4,/home/ubuntu/low/30.mp4,/home/ubuntu/low/31.mp4,/home/ubuntu/low/32.mp4,/home/ubuntu/low/33.mp4,/home/ubuntu/low/34.mp4,/home/ubuntu/low/35.mp4,/home/ubuntu/low/36.mp4,/home/ubuntu/low/37.mp4,/home/ubuntu/low/38.mp4,/home/ubuntu/low/39.mp4,/home/ubuntu/low/40.mp4,/home/ubuntu/low/41.mp4,/home/ubuntu/low/42.mp4,/home/ubuntu/low/43.mp4,/home/ubuntu/low/44.mp4,/home/ubuntu/low/45.mp4,/home/ubuntu/low/46.mp4,/home/ubuntu/low/47.mp4,/home/ubuntu/low/48.mp4,/home/ubuntu/low/49.mp4,/home/ubuntu/low/50.mp4,/home/ubuntu/low/51.mp4,/home/ubuntu/low/52.mp4,/home/ubuntu/low/53.mp4,/home/ubuntu/low/54.mp4,/home/ubuntu/low/55.mp4,/home/ubuntu/low/56.mp4,/home/ubuntu/low/57.mp4,/home/ubuntu/low/58.mp4,/home/ubuntu/low/59.mp4,/home/ubuntu/low/60.mp4,/home/ubuntu/low/61.mp4,/home/ubuntu/low/62.mp4,/home/ubuntu/low/63.mp4,/home/ubuntu/low/64.mp4,/home/ubuntu/low/65.mp4,/home/ubuntu/low/66.mp4,/home/ubuntu/low/67.mp4,/home/ubuntu/low/68.mp4,/home/ubuntu/low/69.mp4]"

并且把支持的feature_type尝试个遍,clip、i3d、r21d、raft、resnet、s3d、timm和vggish共八个

率先试一下r21d,对69个视频处理过后会生成什么,修改configs中的r21d.yml文件

把output_path指代清楚,并且把on_extraction这里换成我prefer的numpy形式

运行完之后,把output_path当中的文件夹下载到window,写一个代码把生成的69个.npy文件整合到一个csv文件中,供我跑机器学习。npy------>csv代码如下

python 复制代码
import numpy as np
import pandas as pd
import os,re
from itertools import chain
numpy_os = "C:/Users/DDDCY/Desktop/fsdownload/r2plus1d_18_16_kinetics"
csv_os = "C:/Users/DDDCY/Desktop/result/features"

def natural_sort_key(s):
    """
    按文件名的结构排序,即依次比较文件名的非数字和数字部分
    """
    sub_strings = re.split(r'(\d+)', s)
    sub_strings = [int(c) if c.isdigit() else c for c in sub_strings]
    return sub_strings

filenames = os.listdir(numpy_os)
filename = sorted(filenames, key=natural_sort_key)
df = pd.DataFrame()
for file in filename:
    input = np.load(numpy_os+'/'+file)
    x = list(chain.from_iterable(input))
    dx = pd.DataFrame(x)
    dy = dx.transpose()
    df = pd.concat([df,dy])
df = df.reset_index(drop=True)
df.to_csv(csv_os+'/r21d.csv',sep=',',index="None")

每个视频其实输出的特征是一个93 rows x512 columns 的向量,但是考虑到如果再增加一个维度,变成三维张量,机器学习算法不好处理。所以我把每个视频的二维向量转化为一维。结果就如下了。

既然拿到了特征,我就赶忙去跑一下机器学习。还是先跑个回归吧

相关推荐
apocelipes11 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户83562907805113 小时前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent17 小时前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m62520 小时前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵2 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸3 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学3 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员