謝 憬,仝明磊
(1.上海交通大學 錢學森圖書館,上海 200030;2.上海電力大學電子與信息學院,上海 201306)
當前,新興的檢測定位技術[1-3]逐漸成為研究熱點。經典的目標檢測方法主要包括兩階段檢測[4-5]和端到端檢測方法YOLO 系列算法[6-8],這類算法將目標檢測視為空間上的坐標回歸問題進行推理,通過單獨的端到端網絡,實現由原始輸入圖像得到檢測目標的分類與位置。以二維RGB 圖像為輸入數據的檢測算法缺少目標的深度信息,而利用RGBD 圖像進行三維目標定位在實時性和準確性方面都有很大提升[9-11]。輸入數據也可以是激光雷達點云數據,包括點云以及體素等格式[12-16],這類方法能夠比較直觀地表示出待檢測的三位目標。
該文提出一種基于YOLOv5 的2.5D 的博物館觀眾三維定位方法,該算法的創新點在于利用兩維的人體檢測結果,通過多基線相機關聯地面網格點,從而得到人體位置的全局坐標,同時能夠使用網格點的分辨率調節人員定位精度。
該文提出一種新的基于2.5D 的定位方法,在YOLOv5二維目標檢測基礎上實現偽3D算法(不包含目標的高度信息),主要應用于博物館內觀眾定位。
在基于YOLOv5 的2.5D 定位算法中,共需四臺攝像機來實現偽3D 檢測,首先需要對攝像機進行標定,以實現世界坐標系Lw(Xw,Yw,Zw)向攝像機坐標系Lc(Xc,Yc)再到圖像像素坐標系l(u,v)的轉換,其中,世界坐標系指的是物體在實際三維空間中所處的位置,攝像機坐標系則是以相機主點作為原點的坐標系,圖像像素坐標系是以圖像左上角作為原點的二維坐標。世界坐標系與像素坐標系之間的映射關系可以表示為以下形式:
其中,N1代表內參數矩陣,由攝像機內部特性決定;N2為外參數矩陣,由旋轉矩陣R和平移矩陣T決定,代表了目標在世界坐標中的具體方位,通過確定內外參數矩陣完成對四臺攝像機的標定。
利用如圖1 所示棋盤格對世界坐標系進行人為規定,世界坐標系原點一般選在棋盤格的第一個網格點,Z軸向下,X軸和Y軸分別沿著棋盤長邊和短邊,圖2 為分別對四臺攝像機進行標定時的場景,通過標定將世界坐標中的立體點投射到攝像機坐標系中,確認其是否為目標所在區域,完成像素點與空間點之間的轉變,實現空間三維定位。

圖1 標定用棋盤格

圖2 攝像機外參數標定
對于大場景的標定,可以用一個標定板擺放在不同的位置上,靠近對應的相機,板子位置坐標關系必須已知(使用地板磚角點標記或者利用其他測量手段),這樣可以克服遠處標定板標志點的難以定位的問題。利用標定板坐標相對位置關系,計算出不同位置的標志點在世界坐標系中的精確坐標。
對于單相機來說,當測量目標超過一定距離,投影關系仿射變換會大于透射效應,因此,在標定時要考慮在遠處放置標志點,要選用較大面積的方塊或者圓點以防止漏檢或者錯檢。
標定出來的相機中心位置,一般Z軸為負值,屬于左手系,在圖形坐標系渲染時,應該加負號以轉換到右手坐標系。
鑒于YOLOv5 在2D 檢測算法中表現出優越的實時性和準確性,該文選擇YOLOv5 檢測模型作為2.5D 全局定位算法的基礎框架,所有后續的定位結果是依賴于四臺攝像機在博物館場景下對觀眾的檢測結果進行的,因此,該方法需要具備較高的實時性和準確性,才可保證后續處理結果的精確有效。
該文提出的2.5D 定位算法流程如圖3 所示,使用四個標定過的攝像機分別利用YOLOv5 模型對博物館中的觀眾進行目標檢測,得到目標檢測框,將世界坐標Zw=0 平面中的網格點全部分別映射到四臺相機坐標系中,相當于將地面上的三維點(Zw=0)全部投射于相機中,驗證其是否為目標所在區域,投影后落入檢測框中的區域取交集后的中心點即為目標在實際三維空間中的位置,由此實現全局定位算法的定位功能。

圖3 基于YOLOv5 的2.5D定位算法流程
在地面的網格化過程中,首先要指定世界坐標系的原點位置,把原點位置定位在多相機標定時的標定板的第一個角點上(標定板平放在地面上),這樣做可以省去一部分旋轉平移變換的計算。當標定板的厚度不計時,坐標系原點被認為是地面上一個點(標定板的第一個標志點位置)。
網格點分別投影到多相機圖像坐標系后,判斷是否落入目標檢測框,算法設定人體檢測框下邊界附近的點的平均值為腳的位置,最后通過多相機融合估計出人的位置。在該方法中舍去了圖像下邊界的檢測框,因為與下邊界相交的檢測框檢測出來的人員不完整。
該方法的優點是避免了稠密體素投影重建(多層),僅僅利用稀疏的地面網格點(一層)投影,大大地減少了計算量,并且網格點的距離可以自由調節,利用網格大小可以調節定位精度。
該文實驗在Windows 工作站上進行,人體檢測算法運行在Ultrascale FPGA 平臺,并將檢測出的人體位置通過串口推到工作站上,通過工作站上基于Python 語言編寫的程序實現定位算法。
1)訓練用數據集:實現算法功能需要首先對模型進行訓練,博物館觀眾的檢測任務中,場景環境較為單一且目標視角較為固定,因此,選用輕量模型YOLOv5s 中的小體量數據集coco128(如圖4 所示)進行訓練,在保證準確率的前提下可提高實驗效率。

圖4 coco128數據集
2)檢驗用數據集:為了檢測2.5D 定位模型的實際效果,在相機標定后,進行檢驗所用數據集的采樣,如圖5 所示,其中包括人物聚集、重疊等各種遮擋視角下的靜態數據集,記錄目標在世界坐標系中的位置坐標(通過地磚測量),還包括沿著固定直線行走的動態數據集。實驗場景主要包括兩個:實驗樓門廳以及某博物館,門廳實驗環境相對簡單、光線良好、博物館場景面積大、光線復雜、人員眾多。

圖5 檢驗用數據集
在模型訓練過程中的參數設置如表1 所示。

表1 參數設置
用YOLOv5、YOLOv3、faster-RCNN、RCNN 等常用的目標檢測方法進行對比實驗,將三個人分別站在已知坐標的位置點,通過比較計算位置與實際位置的誤差得到的結果如圖6 所示,該文采用YOLOv5模擬實驗結果的平均精度能夠達到142 mm,并且實時性也能得到滿足,而雖然faster-RCNN 精度稍微高于YOLOv5,但是該方法無法滿足實時性。

圖6 常用方法精度對比實驗
相對于其他室內場景的光線明亮、形狀規則等特點,博物館內光線昏暗且照射不均勻,建筑空間不規則,場地較大。攝像機離目標越遠,則透視效應減少,仿射效應增加。該文利用多相機標定并融合各相機觀測值基本解決了以上問題。
使用訓練完成的模型對實際場景中的觀眾進行檢測,其四個鏡頭的檢測效果分別如圖7(a)、(b)、(c)、(d)(學校實驗場景)及圖8(a)、(b)、(c)、(d)(博物館場景)所示。

圖7 模擬場景模型檢測效果

圖8 真實場景模型檢測效果
第一個實驗場景門廳面積為9 m×5 m,場景光線比較好,參與人員有三人,四個相機位置按照矩形四角放置,實驗中出現人體目標行動期間存在相互遮擋的現象,圖7 中相機1 與相機4 在對觀眾的檢測中存在漏檢的現象,這也是單相機二維定位方法的弊端。
第二個實驗場景在某博物館,實驗場景面積約為13 m×15 m,其為不規則場景,四個相機的擺放也非矩形四角擺放,測試人員有5 位,圖8 中相機也存在因遮擋而漏檢的情況,結合四臺相機的位置信息,通過基于二維檢測的2.5D 定位算法實現的全局定位點為圖8(e)中面積最大的點,盡管存在部分相機漏檢的情況,仍能實現目標在實際坐標空間中的全局定位,且定位精度較高。
如圖8 所示,各相機拍攝的場景光線復雜,同一個平面光影交疊、明暗相間,該算法在復雜背景的環境中仍然能夠精確地定位多個觀眾所在位置。
該文提出了一種基于YOLOv5 的2.5D 的博物館觀眾全局定位算法,以YOLOv5 模型為檢測框架,實時性和準確性都得到保證;利用相機標定實現世界坐標系與圖像坐標系之間的轉換,相機檢測結果轉變為實際三維空間信息;訓練后的模型結合2.5D 定位算法實現偽3D 定位,完成了算法功能。實驗表明,無論是仿真實驗還是在實際場景中,均能較好地完成全局定位任務,該算法的實時性和靈活性較高,且基于2D 檢測模型的偽3D 定位在模型訓練方面參數較少、訓練較快,較參數較多的3D 定位模型更加方便靈活。未來研究中,若可實現在人物三維定位的基礎上加強對人物高度、寬度以及方向的感知,從而實現全方面全維度的三維定位,將具有更高的實用價值與意義。