项目实训(十四)---视频中人脸信息与场景信息字典文件整合

该博客内容涉及对视频场景和人物信息的处理,以生成供前端使用的csv文件。通过检查是否存在场景照片来决定是否填充1,确保字典结构统一。如果有人脸信息且场景齐全,则不补充;否则,为空场景或人物添加1。最终,根据不同的信息组合,进行'与'操作生成所需的字典文件。

2021SC@SDUSC

最终需要返回给前端同学一个csv文件保存的字典,用来反映视频的场景人物信息。为了方便前端同学处理,这里针对不同组合情况进行归一化处理,生成最后一份字典文件。

处理情况:

-场景-人物1-人物2

-场景-人物1

-人物1-人物2

-人物1

最终字典结构如下:

视频名 -人物1 -人物2-场景

前端同学只需要将上面的情况依据选择进行“与”操作,空缺部分后端提前填入1,不受影响。

如果存在场景要求,判断人脸信息是否齐全,齐全则不用补充,否则空缺部分补1

try:
    print("有场景照片")

    t=CalculateDistance('/opt/data/private/xuyunyang/EasyCut/'+id+'/'+id_video_name+'/Resources/ScenePhoto')

    df1 = pd.read_csv(
        '/opt/data/private/xuyunyang/EasyCut/' + id + '/' + id_video_name + '/Resources/result/' + id_video_name + "_" + 'gif_count.csv')

    df2 = pd.DataFrame({'scene': t})

    l = len(list(df1.keys()))

    if l == 4:

        pass

    else:

        if l == 3:
            df1.columns = ['videoPath', 'face1', 'face2']
            df2.columns = ['scene']
            dataframe = df1.join(df2)
            dataframe.to_csv(
                '/opt/data/private/xuyunyang/EasyCut/' + id + '/' + id_video_name + '/Resources/result/' + id_video_name + "_" + 'gif_count.csv',
                index=False, mode='w', sep=',')
        else:
            df1.columns = ['videoPath', 'face1']
            df2.columns = ['scene']
            a = len(df1['videoPath'])
            d = []
            for i in range(a):
                d.append(1)
            df3 = pd.DataFrame({'face2': d})
            dataframe = df1.join(df3)
            dataframe = dataframe.join(df2)
            dataframe.to_csv(
                '/opt/data/private/xuyunyang/EasyCut/' + id + '/' + id_video_name + '/Resources/result/' + id_video_name + "_" + 'gif_count.csv',
                index=False, mode='w', sep=',')

如果没有场景要求,则会把场景部分补1

except:
    print("没有场景照片")
    #场景照片补1
    df1 = pd.read_csv(
        '/opt/data/private/xuyunyang/EasyCut/' + id + '/' + id_video_name + '/Resources/result/' + id_video_name + "_" + 'gif_count.csv')

    if l == 3:
        df1.columns = ['videoPath', 'face1', 'face2']
        a = len(df1['videoPath'])
        d = []
        for i in range(a):
            d.append(1)
        df3 = pd.DataFrame({'scene': d})
        dataframe = df1.join(df3)
        dataframe.to_csv(
            '/opt/data/private/xuyunyang/EasyCut/' + id + '/' + id_video_name + '/Resources/result/' + id_video_name + "_" + 'gif_count.csv',
            index=False, mode='w', sep=',')

    else:
        df1.columns = ['videoPath', 'face1']

        a = len(df1['videoPath'])
        d = []
        for i in range(a):
            d.append(1)
        df3 = pd.DataFrame({'face2': d})
        dataframe = df1.join(df3)

        a = len(df1['videoPath'])
        d = []
        for i in range(a):
            d.append(1)
        df3 = pd.DataFrame({'face2': d})
        dataframe = dataframe .join(df3)

实现

运行命令测试:

python scene_gennerate.py --ID 5 --ID_VideoName 5_5_1654526936103

出错记录:

 最后调试成功,在服务器顺利生成:

效果:

这里测试是使用一个人脸无场景进行的:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值