视频可视化目标检测中的bounding box及实现检测目标的剪切

本文介绍了在视频可视化目标检测中如何处理bounding box,并提供了一种实现目标检测的剪切方法。内容包括变量格式的定义,如输入视频格式和ground truth标签格式,以及具体的实现代码。代码中涉及读取txt文档,定义视频和输出路径,为不同对象分配随机颜色,整理txt文件以获取每帧的bounding box集合,然后在视频每一帧上绘制box,最后处理视频并执行程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量格式

输入:视频,格式通过改文件名字确定
ground truth / target标签格式:一个txt文档,其中包含若干行lines,每一行为
[object_id conf frame_index x y w h] 如果格式不对应 只需要修改读取文档的代码部分即可

实现代码

需要的函数库

import os
import cv2
import numpy as np

需要定义的三个路径(txt文档所在路径、输入视频路径、输出视频路径)

det_path = "../detections.txt"      # 根据使用情况修改
video_path = "../video.avi"         # 根据使用情况修改
out_video_path = "../video_out.mp4" # 输出文件路径 当前代码支持格式为mp4 如需修改格式 需修改下文编码方式 

对每一种对象,获得随机的颜色

def get_random_color(object_id): # 用每一种不同的对象 设置对应随机种子以每次获得相同的颜色
    np.random.seed(object_id)
    random_color = np.random.randint(0,255,3)
    return (int(random_color[0]),int(random_color[1]),int(random_color[2]))

整理输入txt文件,以每一帧整理对应的bounding box集合

def sort_tracklets(gts):
    sorted_gts = {
   }

    for line in gts:
        line = line.strip().split(" ")
        object_id = int(line[0])
        #if object != "car":  #这里可以通过这样的方式进行筛选 diy
        
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值