分为两个部分:①一个是简单的多视频逐帧拼接;②另一个是全景融合可以达到两个视频彻底合为一个。
①:
前提:
在多个摄像头分别位于完全不同的位置进行拍摄这个前提下,我们可以采用简单的将不同摄像头画面进行逐帧拼接再进行目标检测,追踪来实现这个要求。
因为我们对视频、摄像头进行目标检测、每个对象添加id并不是对视频这个整体一次性地进行处理,而是将视频进行while循环来做到逐帧提取图片,再对单张图片进行画面内的目标检测,在利用多目标跟踪技术进行单个对象的下一帧位置预测等等来保证单个对象id不变。
解决方案:
所以我们同时可以从输入多个视频源(或开启多个摄像头),在while循环前
cap1 = cv2.VideoCapture(args.video_path1)
cap2 = cv2.VideoCapture(args.video_path2)
cap3 = cv2.VideoCapture(args.video_path3)
#略
#先引入多个视频
在while循环里,我们先通过判断视频源能否读取到画面,并加入辅助判断变量
while True:
#略
bool1=False
bool2=False
bool3=False
#略
if cap1 != None:
success1, frame1 = cap.read()