基于深度学习的多目标跟踪算法(上):端到端的数据关联
?PaperWeekly 原創 ·?作者|黃飄
學校|華中科技大學碩士生
研究方向|多目標跟蹤
最近基于深度學習的多目標跟蹤算法越來越多,有用于特征提取的,有改進單目標跟蹤器的,也有提升數據關聯的。如果真的要總結的話那就太多了,所以我準備分類別進行介紹,這次我主要介紹端到端的數據關聯方法。后期我會逐步整理這部分代碼到我的 Github,相關 MOT 和數據關聯的基礎知識可以去我的專欄查看。
DAN
論文標題:Deep Affinity Network for Multiple Object Tracking
論文作者:ShiJie Sun, Naveed Akhtar, HuanSheng Song, Ajmal Mian, Mubarak Shah
備注信息:PAMI 2019
論文鏈接:https://arxiv.org/abs/1810.11780
代碼鏈接:https://github.com/shijieS/SST.git
這是一篇創作于 2017.9,并刊登于 PAMI 2019 的端到端多目標跟蹤框架,對于后續幾篇文章都有著啟示作用。DAN 框架 [1] 很簡潔新穎:
作者提出這個框架的目的是將表觀特征和數據關聯算法結合形狀端到端的聯合框架,在 NVIDIA GeForce GTX Titan 上的效率為 6.7FPS,下面我結合文章內容具體地解析算法。
1.1 數據準備與增強
要實現端到端的訓練,如何將多目標跟蹤數據集整理出來是第一大難關。這里作者采用了單目標跟蹤算法中常用的跨幀匹配方式,允許相隔 1~30 幀的的視頻幀進行跨幀數據關聯,這樣就可以解決 MOT 樣本數量不足的問題。
然而,視頻類數據集還存在一個問題,即相鄰幀的信息幾乎一樣,使得樣本缺乏多樣性。因此作者采用了幾類數據增強方法:
作者在文中提到了三種數據增強方法:
光學擾動。即先將 RGB 圖像轉換到 HSV 格式,然后將 S 通道的每個值隨機放縮 [0.7,1.5],最后轉換到 RGB 格式,并將值域約束到 0~255 或者 0~1;
圖像擴展放縮。本質上就是圖像隨機放縮,但是為了保證輸入尺寸大小一致,作者在圖像四周增加 [1,1.2] 倍的 padding,padding 像素值為圖像均值;
隨機裁剪?;诓眉舯壤?[0.8,1] 在原圖上裁剪,不過要求無論怎么裁剪,圖像上所有目標框的中心點一定不能丟失,最后再放縮至指定尺寸。
而作者在代碼中實際上使用了更復雜的數據增強方法:
self.augment?=?Compose([ConvertFromInts(),PhotometricDistort(),Expand(self.mean),RandomSampleCrop(),RandomMirror(),ToPercentCoords(),Resize(self.size),SubtractMeans(self.mean),ResizeShuffleBoxes(),FormatBoxes(),ToTensor()])除去一些常規的數據類型轉換和歸一化操作,我們可以看到還多了一個隨機水平鏡像的操作RandomMirror,并且以上操作的概率為 0.3。
除此之外,熟悉 MOT Challenge 數據集的人應該知道,在該數據集中,無論目標是否可見都會標注,因此作者將可視度低于 0.3 的目標視為不可見,即認為不存在。另外,端到端的框架要保證輸入輸出的尺寸不變,因此作者設定了每一幀中出現的目標數量上限 Nm,如 80。
1.2 特征提取器
特征提取器作為網絡的第一個階段,由上面的圖示可以知道,作者利用孿生網絡結構,通過特征提取器處理指定兩幀中出現的所有目標框。特征提取器的結構為 VGG 網絡+自定義擴展的結構組成:
為了利用多尺度多感受野信息,作者取了以上 9 層的特征圖信息,得到了長度為 520 的特征向量,即 60+80+100+80+60+50+40+30+20,可以看到 520 這個數據就是 9 層特征通道之和。不過文中作者并沒有介紹是如何處理這些特征的,我們通過代碼來觀察:
def?forward_feature_extracter(self,?x,?l):'''extract?features?from?the?vgg?layers?and?extra?net:param?x::param?l::return:?the?features'''s?=?list()x?=?self.forward_vgg(x,?self.vgg,?s)x?=?self.forward_extras(x,?self.extras,?s)x?=?self.forward_selector_stacker1(s,?l,?self.selector)return?x def?forward_vgg(self,?x,?vgg,?sources):for?k?in?range(16):x?=?vgg[k](x)sources.append(x)for?k?in?range(16,?23):x?=?vgg[k](x)sources.append(x)for?k?in?range(23,?35):x?=?vgg[k](x)sources.append(x)return?xdef?forward_extras(self,?x,?extras,?sources):for?k,?v?in?enumerate(extras):x?=?v(x)?#x?=?F.relu(v(x),?inplace=True)????????#done:?relu?is?unnecessary.if?k?%?6?==?3:??????????????????#done:?should?select?the?output?of?BatchNormalization?(->?k%6==2)sources.append(x)return?xdef?forward_selector_stacker1(self,?sources,?labels,?selector):''':param?sources:?[B,?C,?H,?W]:param?labels:?[B,?N,?1,?1,?2]:return:?the?connected?feature'''sources?=?[F.relu(net(x),?inplace=True)?for?net,?x?in?zip(selector,?sources)]res?=?list()for?label_index?in?range(labels.size(1)):label_res?=?list()for?source_index?in?range(len(sources)):#?[N,?B,?C,?1,?1]label_res.append(#?[B,?C,?1,?1]F.grid_sample(sources[source_index],??#?[B,?C,?H,?W]labels[:,?label_index,?:]??#?[B,?1,?1,?2).squeeze(2).squeeze(2))res.append(torch.cat(label_res,?1))return?torch.stack(res,?1)從代碼可以看到,9 層不同分辨率的特征圖都通過采樣操作降維了,其中``source表示的是特征圖BxCxHxW,labels`表示的是一個框中心坐標 BxNx1x1x2,也就是說每個特征圖都會采樣每個框的映射位置。
因此最后通過得到就是 Bx(CxN) 的輸出,也就是圖中的 Nmx520,這個過程的確挺出乎我意料的。
1.3 親和度估計
親和度估計實際上就是特征相似度計算和數據關聯過程的集成,第一步我們可以看到作者將兩個 520xNm 大小的特征圖變成了一個 1040xNmxNm 大小的親和度矩陣,比較難理解:
這里我們觀察一下作者的代碼:
def?forward_stacker2(self,?stacker1_pre_output,?stacker1_next_output):stacker1_pre_output?=?stacker1_pre_output.unsqueeze(2).repeat(1,?1,?self.max_object,?1).permute(0,?3,?1,?2)stacker1_next_output?=?stacker1_next_output.unsqueeze(1).repeat(1,?self.max_object,?1,?1).permute(0,?3,?1,?2)stacker1_pre_output?=?self.stacker2_bn(stacker1_pre_output.contiguous())stacker1_next_output?=?self.stacker2_bn(stacker1_next_output.contiguous())output?=?torch.cat([stacker1_pre_output,?stacker1_next_output],1)return?output可以看到,作者的處理方式也比較特征先分別將兩個 520xNm 大小的特征圖分別擴展維度變成了 520x1xNm 和 520xNmx1 的矩陣,然后分別復制 Nm 次,得到兩個 520xNmxNm 矩陣,最后將通道合并得到 1040xNmxNm 大小的特征矩陣。隨后利用一系列 1x1 卷積降維至 NmxNm大小。
作者在這里考慮了實際過程中出現的 FP 和 FN 情況,即目標軌跡無對應觀測和觀測無對應目標軌跡的場景,分別為關聯矩陣的行列增加了一個 x 單元,用于存儲這些情況,即 L:(Nm+1)x(Nm+1)。
其中最后一行和最后一列都填充為固定值,文中作者設定的是 10.
1.4 訓練
為了方便損失函數的設計,作者將 L 拆解為 row-wise 何 column-wise 兩種形式:M1:Nmx(Nm+1) 和 M2:(Nm+1)xNm。并分別采用行 softmax 和列 softmax 求得各自的聯合概率分布 A1 和 A2 兩種分配矩陣**。
這里做一個解釋,對于增加了一列的 M1 矩陣,其針對的是第 t-n 幀的目標軌跡和第 t 幀觀測的匹配,通過行 softmax 可以得到每個目標屬于每個觀測的概率,這是一個前向的匹配過程。反之 M2 就是一個反向的匹配過程。**
基于這種假設,作者設計了四種損失函數,分別是前向/反向損失、前向反向一致性損失和聯合損失:
其中 L1 和 L2 是為了保證 L 和 A1/A2 矩陣尺寸一致所裁剪行列得到的矩陣。訓練算法方面,作者采用的是 multi-step 的學習率下降策略,batchsize=8,epochs=120.
1.5 推理
通過以上分析我們可以知道的是,該網絡通過輸入兩幀的目標信息可以得到親和度矩陣 A=max(A1, A2),然而這個矩陣并不是關聯矩陣,更像是相似度矩陣,并不能直接得到跟蹤結果。然而作者并沒有將相似度矩陣轉換為代價矩陣輸入匈牙利算法:
從文章可以看到,作者將目標軌跡i的歷史幀信息與當前幀第j個目標的親和度求和了,但是如何使用的還是沒說清,這一點我們在代碼里面找到了:
def?get_similarity_uv(self,?t,?frame_index):res_similarity?=?[]res_uv?=?[]for?i,?f?in?enumerate(t.f):if?len(t.f)?==?TrackerConfig.max_track_node?and?i?==?0:continueall_iou?=?self.recorder.all_iou[frame_index][f]all_similarity?=?self.recorder.all_similarity[frame_index][f]selected_box_index?=?t.uv[i,?i]if?selected_box_index?==?-1:?#?cannot?find?box?in?f?frame.res_similarity?+=?[0]res_uv?+=?[-1]continue#?combine?the?similarity?with?the?iouselected_similarity?=?np.copy(all_similarity[selected_box_index,?:])delta_f?=?frame_index?-?fif?delta_f?in?TrackerConfig.min_iou_frame_gap:iou_index?=?TrackerConfig.min_iou_frame_gap.index(delta_f)selected_iou?=?(all_iou[selected_box_index,?:]?>=?TrackerConfig.min_iou[iou_index]).astype(float)selected_iou?=?np.append(selected_iou,?1.0)selected_similarity?=?selected_similarity?*?selected_ioumax_index?=?np.argmax(selected_similarity)max_value?=?all_similarity[selected_box_index,?max_index]if?max_index?==?all_similarity.shape[1]?-?1:?#?new?nodemax_index?=?-1res_uv?+=?[int(max_index)]res_similarity?+=?[float(max_value)]#?get?the?representation?box?of?this?frame.res?=?{}for?uv,?s?in?zip(res_uv,?res_similarity):#?if?s?<?0.5:#?????continueif?uv?not?in?res:res[uv]?=?[s]else:res[uv]?+=?[s]if?len(res.keys())?>?0:max_uv?=?max(res.keys(),?key=(lambda?k:?np.sum(res[k])))else:max_uv?=?-1res_similarity?+=?[1]res_uv?+=?[max_uv]if?max_uv?==?-1:t.age?+=?1else:t.age?=?0return?res_similarity,?res_uv可以看到的是,除了親和度矩陣,作者還加入了 iou 信息作為 mask,然后利用 iou_tracker 的方式,采用貪婪算法,逐行取最大相似度的匹配,這種方式以及其變種我在之前的博客詳細介紹過。沒有引入其他的模塊,如運動信息等,效果也不錯:
DeepMOT
論文標題:How To Train Your Deep Multi-Object Tracker
論文作者:Yihong Xu, Aljosa Osep, Yutong Ban, Radu Horaud, Laura Leal-Taixé, Xavier Alameda-Pineda
備注信息:ICCV 2019 Tracktor++的作者團隊,CVPR 2020
論文鏈接:https://arxiv.org/abs/1906.06618
代碼鏈接:https://gitlab.inria.fr/yixu/deepmot
這篇 DeepMOT [2] 文章放在了 arxiv 上,作者團隊與 ICCV 2019 的 Tracktor++ [3] 團隊一致,不過這篇文章的創新性很高,內容也很精彩,所以我這里也詳細介紹一下。
2.1 匈牙利算法形式演化
作者一開始就交代了原始匈牙利算法的算法形式:
其中 D 表示代價矩陣,這里叫距離矩陣,A 表示 0-1 分配矩陣,匈牙利算法的核心就是在保證每個軌跡最多只有一個觀測,每個觀測最多只有一個目標軌跡對應的前提下,是的代價最小。
緊接著,作者以 MOT 中常用的兩個指標 MOTA 和 MOTP 為例進行微分化:
對于 MOTP,作者這里沒有給出原始的形式,不過我們將距離矩陣看做 iou 信息就可以啦,即 MOTP 統計的是所有跟蹤正確的軌跡的 IOU 平均值。這里我們不妨直接介紹 DeepMOT 的損失函數:
可以看到,作者直接借助 MOTA 和 MOTP 指標,通過將其微分化得到了損失函數。其中要微分化就要將 FP、FN、TP 和 ID Sw.等四個指標先微分化:
這里做一個解釋,作者在設計關聯矩陣的時候跟 DAN一樣,增加了一行一列,所以 FP 就是新增的目標觀測信息被誤匹配到了已存在的目標軌跡上,即最后一列的數值之和,同理可得 FN。
對于 IDS,其意義在于目標軌跡中的身份切換次數,因此作者通過上一幀的關聯 0-1 矩陣和當前幀估計的匹配矩陣 C 進行相乘。示例如下:
其中距離矩陣 D 的計算是根據關聯結果,利用 iou 和歐氏距離計算而來:
從上圖可以得到一個有意思的信息,即關聯矩陣大小可以不固定,不用預設目標數量。
2.2 DHN網絡設計
DHN 網絡是一個單獨設計的網絡框架,其輸入是目標軌跡和觀測量的距離矩陣,在訓練的時候作者直接采用了 public detections 作為目標軌跡,gt 作為觀測??梢钥吹降氖?#xff0c;作者通過兩個階段的特征變換,使得兩兩之間的相似度信息得到了充分交互。
這里作者設計了三種流程,一種是串行的 Sequential 模式,一種是并行的 Parallel 模式,最后一種是基于 U-Net 的形式,利用卷積網絡進行交互。其中 row-wise 的意思是一行行的從 NxM 的距離矩陣中取向量,得到 1x(MN) 的向量。
而對于向量中各單元的交互,作者采用了 Seq2Seq 的 BiRNN 結構:
但是我從文中不明白的是,作者如何將一個 1x(MN) 的向量,通過 Seq2Seq 轉換為 2HxNxM 的矩陣的。這里我去看了一下代碼:
self.lstm_row?=?nn.GRU(element_dim,?hidden_dim,?bidirectional=biDirenction,?num_layers=2) self.lstm_col?=?nn.GRU(512,?hidden_dim,?bidirectional=biDirenction,?num_layers=2)#?The?linear?layer?that?maps?from?hidden?state?space?to?tag?space if?biDirenction:#?*2?directions?*?2?ways?concatself.hidden2tag_1?=?nn.Linear(hidden_dim?*?2,?256)self.hidden2tag_2?=?nn.Linear(256,?64)self.hidden2tag_3?=?nn.Linear(64,?target_size) else:#?*?2?ways?concatself.hidden2tag_1?=?nn.Linear(hidden_dim,?target_size)備注:element_dim為1,hidden_dim為 256。也就是說輸入一個長為 NM的序列,得到 NMx512 的輸出。
可以看到基于 Sequential 流程和 GRU 結構的框架效果最好,其中 WA 指的是準確率,MA 指的是未被分配到觀測信息的比例,SA 指的是分配超過一個觀測信息的比例。
2.3 實現細節
對于填充行列的固定值,作者采用的是 0.5,另外,由于關聯矩陣是離散且稀疏的,所以作者首先通過 sigmoid 離散化 0-1 矩陣,然后基于關聯矩陣中的 0-1 數量比例進行自適應的損失加權。
采用 RMSprop 優化器,初始學習率為 3e-4,每 2w iter 降低 5% 學習率,訓練 20epochs,只用 6 小時。gt 是通過匈牙利算法生成的。
作者的底層多目標跟蹤框架是 Tracktor++ 構建的,在此基礎上加入了 ReID head,從而實現多任務的訓練模式。其中 Re-ID 分支采用 ResNet50 網絡結構,通過 triplet loss 訓練。
除此之外,作者還嘗試利用單目標跟蹤算法 SiamRPN 和 GOUTRN 作為底層跟蹤器進行實現,可以發現,DeepMOT 均有所幫助。
為了降低過擬合風險,作者還將標注的目標框信息進行一定尺度的放縮和平移,增大誤差,模擬實際觀測誤差。
DMAN
論文標題:Online Multi-Object Tracking with Dual Matching Attention Network
論文作者:Ji Zhu, Hua Yang, Nian Liu, Minyoung Kim, Wenjun Zhang, and Ming-Hsuan Yang
備注信息:ECCV 2018
論文鏈接:https://arxiv.org/abs/1902.00749
代碼鏈接:https://github.com/jizhu1023/DMAN_MOT
DMAN [4] 和 FAMNet [5] 我本來準備放到下一講 SOT 專題來講的,但是考慮到篇幅平衡,并且這兩個都可以扯到端到端的 SOT+Data Association 框架,就還是加進來了。
DMAN算法是基于以下四個方向展開的討論:
通過空間注意力模塊讓網絡更加注意前景目標:
基于循環網絡,利用時間注意力機制分析目標軌跡中各個歷史信息的權重:
利用SOT跟蹤器,緩解MOT中由于遮擋、觀測信息質量不高導致的目標丟失等情況,增強魯棒性。
其中空間注意力模塊很簡單,就是深度學習中常見的 mask,利用 mask 與原特征圖進行相乘。而時間注意力網絡,則是將目標軌跡中的所有的歷史信息與當前觀測信息進行匹配,最后加權判斷是否匹配成功。
而 SOT 跟蹤器的底層算法是單目標跟蹤中知名的 ECO 算法,不過作者考慮到背景和前景的樣本不平衡問題,引入代價敏感參數 q(t) 對其進行了進一步的改進:
之所以我要將 DMAN 算做端到端的數據關聯框架,是因為這個框架實現的是 1:N 的數據關聯,這里有兩層含義:
一個觀測對應N個軌跡歷史信息;
一個觀測對應N條目標軌跡,這里是以batch的形式實現的,勉強沾邊吧。
FAMNet
論文標題:FAMNet: Joint Learning of Feature, Affinity and Multi-Dimensional Assignment for Online Multiple Object Tracking
論文作者:Peng Chu, Haibin Ling
備注信息:ICCV 2019
論文鏈接:https://arxiv.org/abs/1904.04989
相比于 DMAN,FAMNet [4] 對于端到端數據關聯算法的集成更加緊密:
通過觀察網絡可以看到,FAMNet 的流程是 SOT->Affinity->Data Association->post process,其中它的核心在于通過局部的關聯形式完成了 K 幀的聯合數據關聯訓練。
4.1 Affinity Subnet
作者將 SOT 孿生網絡和親和度網絡合并,SOT backbone 作為特征提取器,SOT 輸出的置信圖作為親和度依據。下面我們詳細分析一下這個網絡結構。
作者這里提出了一個新概念anchor candidate,這里指的是當前幀的目標,對應上圖中中間部分 k=1 的分支,至于途中所提到的數字2,這里指的是當前幀中的第二個目標。
對于指定目標,通過對當前幀和前后幀擴展區域的裁剪,基于兩個孿生網絡進行兩次 SOT 跟蹤流程,從而得到上下兩個置信圖輸出。
這其中還有三個Detection Attention Mask,初步理解就是將觀測信息變成 mask,而觀測信息的確定是通過目標序號來確定的,所以可以看到觀測信息并非與當前目標對應。
最終得到的親和度就是兩個 SOT 置信圖得到的信息和 detection mask 得到的親和度之和,在上面的例子里面存在 3x3x3 對親和度,但是由于兩個非 `anchor frame 并沒有直接參與匹配,所以圖中顯示的是? C222。
這里作者借鑒的是 IJCAI 2019 的一篇論文的策略 [6]:
4.2 R1TA Power Iteration Layer
對于關聯假設的生成,FAMNet 采用了與前文一致的策略:
那么從親和度矩陣到數據關聯的集成,作者同樣借鑒了 IJCAI 2019 的那篇論文的策略 [6],首先將匈牙利算法進行了重構:
即將整體的數據關聯 n:m,變成了 n 份小型的數據關聯的聯合作用,對于這個關系的轉換,可以參照論文 [6]:
其中?z_212?指的是第一幀中的第二個目標、第二幀中的第一個目標和第三幀中的第二個目標的整體關聯結果是否為真,其中任意一對不成立都會變成? 0。然后基于 R1TA Power Iteration 過程,將這種多次 SOT 過程組成一個完整的數據關聯過程:
經過我們上面的討論,這幅圖里面的大多數的示意應該能懂,但是對于 Rank-1 tensor approximation 可能還有疑惑,文中也給出了解釋,我感覺這兩篇幾乎就是理論和實踐分開投了兩個頂會。
可以看到,作者通過一個連續的外積公式來近似 k 階關聯矩陣,從而轉換了匈牙利算法問題形式。作者也給出了迭代算法的前向反向公式:
可以注意到的是,這里面有一個除法因子,用作 L1 norm,作者也給出了它的求導轉換,這里我就不再放了。
結果如下:
MPNTracker
論文標題:Learning a Neural Solver for Multiple Object Tracking
論文作者:Brasó G, Leal-Taixé L
備注信息:ICCV 2019 Tracktor++ 的作者團隊,CVPR 2020
論文鏈接:https://arxiv.xilesou.top/pdf/1912.07515
代碼鏈接:https://github.com/selflein/GraphNN-Multi-Object-Tracking
MPNTracker 在 MOT Challenge 各個榜單上都位于前列,不過近期有個別算法超過去了,但是它的各項指標性能依舊很高。這個算法框架很簡潔,直接借助了圖卷積網絡中的消息傳遞機制,基于 Re-ID 和位置形狀信息進行特征建模,不過我暫時對于圖卷積不是很了解,所以就不做詳細的介紹:
對于當前幀的每個目標,其消息傳遞方式的節點更新部分考慮了時間信息,即針對前面的幀和后面的幀,分開計算邊的累加影響,利用鏈接的方式結合,而非累加的方式。
可以看到,整體結構很簡單,就是網絡的構建和特征的建模,其中網絡構建部分我在之前的博客中進行了詳細的介紹。其效果也很不錯:
參考文獻
[1] Sun S, Akhtar N, Song H, et al. Deep affinity network for multiple object tracking[J]. IEEE transactions on pattern analysis and machine intelligence, 2019.
[2] Xu Y, Ban Y, Alameda-Pineda X, et al. DeepMOT: A Differentiable Framework for Training Multiple Object Trackers[J]. arXiv preprint arXiv:1906.06618, 2019.
[3] Bergmann P, Meinhardt T, Leal-Taixe L. Tracking without bells and whistles[C]. in: Proceedings of the IEEE International Conference on Computer Vision. 2019. 941-951.
[4] Zhu J, Yang H, Liu N, et al. Online multi-object tracking with dual matching attention networks[C]. in: Proceedings of the European Conference on Computer Vision (ECCV). 2018. 366-382.
[5] Chu P, Ling H. Famnet: Joint learning of feature, affinity and multi-dimensional assignment for online multiple object tracking[C]. in: Proceedings of the IEEE International Conference on Computer Vision. 2019. 6172-6181.
[6]X. Shi, H. Ling, Y. Pang, W. Hu, P. Chu, and J. Xing. Rank-1 tensor approximation for high-order association in multi-target tracking. IJCV, 2019.
[7] Brasó G, Leal-Taixé L. Learning a Neural Solver for Multiple Object Tracking[J]. arXiv preprint arXiv:1912.07515, 2019.
點擊以下標題查看更多往期內容:?
大規模計算時代:深度生成模型何去何從
視線估計(Gaze Estimation)簡介概述
聯合檢測和跟蹤的MOT算法解析
從近年CVPR看域自適應立體匹配
淺談多目標跟蹤中的相機運動
CVPR 2020三篇有趣的論文解讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的基于深度学习的多目标跟踪算法(上):端到端的数据关联的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 张召忠为什么叫张局座?
- 下一篇: 苹果计划在印度开设四家新零售店,并已开始