智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)
生活随笔
收集整理的這篇文章主要介紹了
智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 將YOLO模型的檢測框和卡爾曼濾波的跟蹤框進行匹配 def associate_detection_to_tracker(detections,trackers,iou_threshold=0.3):"""將檢測框bbox與卡爾曼濾波器的跟蹤框進行關聯匹配:param detections:檢測框:param trackers:跟蹤框,即跟蹤目標:param iou_threshold:IOU閾值:return:跟蹤成功目標的矩陣:matchs新增目標的矩陣:unmatched_detections跟蹤失敗即離開畫面的目標矩陣:unmatched_trackers"""#跟蹤/檢測為0時:直接構造返回結果if len(trackers) == 0 or (len(detections)==0):return np.empty((0,2),dtype=int),np.arange(len(detections)),np.empty((0,5),dtype=int)# 跟蹤/檢測不為0時:# iou 不支持數組計算,故IOU 逐個進行交并比計算,構造矩陣scipy.linear_assignment進行匹配iou_matrix = np.zeros((len(detections), len(trackers)), dtype=np.float32)# 遍歷目標檢測的bbox集合,每個檢測框的標識為dfor d,det in enumerate(detections):# 遍歷跟蹤框(卡爾曼濾波器預測)bbox集合,每個跟蹤框標識為tfor t,trk in enumerate(trackers):iou_matrix[d,t] = iou(det,trk)#通過匈牙利算法(linear_assignment)將跟蹤框和檢測框以[[d,t]...]的二維矩陣的形式存儲在match_indices中result = linear_sum_assignment(-iou_matrix)#將匹配結果以 [[d,t]]的形式存儲匹配結果matched_indices = np.array(list(zip(*result)))#記錄未匹配的檢測框及跟蹤框#未匹配的檢測框放入unmatched_detections中,表示有新的目標進入畫面,要新增所要跟蹤的目標序列unmatched_detecetions = []for d,det in enumerate(detections):if d not in matched_indices[:,0]:unmatched_detecetions.append(d)#未匹配的跟蹤框放入unmatched_trackers中,表示目標離開之前的畫面,應刪除對應的跟蹤器unmatched_tracker = []for t,trk in enumerate(trackers):if t not in matched_indices[:,1]:unmatched_tracker.append(t)#將匹配成功的跟蹤框放入matches中進行存儲matchs = []for m in matched_indices:# 過濾掉IOU低的匹配,將其放入到unmatched_detections和unmatched_trackersif iou_matrix[m[0],m[1]]<iou_threshold:unmatched_tracker.append([m[1]])unmatched_detecetions.append(m[0])else:matchs.append(m.reshape(1,2))#格式轉換:初始化matchs,以np.array的形式返回if len(matchs) == 0 :matchs = np.array((0,2),dtype=int)else:matchs = np.concatenate(matchs, axis=0)return matchs,np.array(unmatched_detecetions,np.array(unmatched_detecetions))
總結
以上是生活随笔為你收集整理的智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js调用vlc_如何使用HTML5或Ja
- 下一篇: 智慧交通day02-车流量检测实现06: