日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)

發(fā)布時(shí)間:2024/7/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


# 將YOLO模型的檢測框和卡爾曼濾波的跟蹤框進(jìn)行匹配 def associate_detection_to_tracker(detections,trackers,iou_threshold=0.3):"""將檢測框bbox與卡爾曼濾波器的跟蹤框進(jìn)行關(guān)聯(lián)匹配:param detections:檢測框:param trackers:跟蹤框,即跟蹤目標(biāo):param iou_threshold:IOU閾值:return:跟蹤成功目標(biāo)的矩陣:matchs新增目標(biāo)的矩陣:unmatched_detections跟蹤失敗即離開畫面的目標(biāo)矩陣:unmatched_trackers"""#跟蹤/檢測為0時(shí):直接構(gòu)造返回結(jié)果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時(shí):# iou 不支持?jǐn)?shù)組計(jì)算,故IOU 逐個(gè)進(jìn)行交并比計(jì)算,構(gòu)造矩陣scipy.linear_assignment進(jìn)行匹配iou_matrix = np.zeros((len(detections), len(trackers)), dtype=np.float32)# 遍歷目標(biāo)檢測的bbox集合,每個(gè)檢測框的標(biāo)識為dfor d,det in enumerate(detections):# 遍歷跟蹤框(卡爾曼濾波器預(yù)測)bbox集合,每個(gè)跟蹤框標(biāo)識為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)#將匹配結(jié)果以 [[d,t]]的形式存儲匹配結(jié)果matched_indices = np.array(list(zip(*result)))#記錄未匹配的檢測框及跟蹤框#未匹配的檢測框放入unmatched_detections中,表示有新的目標(biāo)進(jìn)入畫面,要新增所要跟蹤的目標(biāo)序列unmatched_detecetions = []for d,det in enumerate(detections):if d not in matched_indices[:,0]:unmatched_detecetions.append(d)#未匹配的跟蹤框放入unmatched_trackers中,表示目標(biāo)離開之前的畫面,應(yīng)刪除對應(yīng)的跟蹤器unmatched_tracker = []for t,trk in enumerate(trackers):if t not in matched_indices[:,1]:unmatched_tracker.append(t)#將匹配成功的跟蹤框放入matches中進(jìn)行存儲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))#格式轉(zhuǎn)換:初始化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))

總結(jié)

以上是生活随笔為你收集整理的智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。