張 悅,王曉懿,李 娟
(北京工業大學,北京 100020)
隨著人工智能[1]領域的探索不斷深入,高鐵和城市交通逐漸走向智能化,越來越多的圖像識別算法應用[2-3]在輔助導航、自動駕駛上。在實際場景中,高鐵在行駛過程中會面臨一些極端情況,例如泥石流災害、軌道脫軌等,對于這些極端情況通常采用圖像識別的方式進行判斷 。而圖像識別算法的訓練需要大量高質量的數據集,尤其是面向圖像分割算法[4]的語義分割標注數據,獲取成本極高。語義分割標注是對物體區域進行劃分并分類,通常使用多邊形標注的方式對各類物體輪廓進行標注。目前針對物體輪廓標注多邊形的方式存在更為明顯的效率低下問題,人工標注成本過高。為控制數據標注成本,提高人工標注物體輪廓效率是最直接有效的方法,設計實現一個高效率的數據標注工具十分關鍵。
國內外已經有很多開源[5]數據標注工具,例如CVAT、Labelme、VOTT等,這些標注工具都存在一些不足。一方面,在人工標注物體輪廓時,都通過描點標注多邊形的方式完成,描點標注的方式需要標注人員不斷進行點標記,操作繁多,人工標注效率較低;另一方面,當數據源是視頻時,沒有利用視頻幀連續的特殊性進行標注,標注效率較低。
針對上述數據標注問題,本章節提出提升人工標注物體輪廓效率的方法,并設計和實現一個數據標注系統。首先,進行數據標注系統的架構設計;然后,針對人工描點標注多邊形操作繁多的問題,提出鼠標快速標注物體輪廓的方法,并應用到系統當中;最后,利用視頻中幀連續的特性,進行整體拷貝/調整標注多邊形方法的研究和應用。
本標注系統采用B/S架構[6],前端使用React[7]框架,后端使用Flask框架[8],前后端通信使用Axios庫和SocketIO[9]技術,采用前后端分離模式,采用關系型數據庫MySQL[10]存儲數據。前端即客戶端主要包含UI層和業務邏輯層,UI層負責界面展示和數據可視化,同時提供數據標注工作相關的交互功能,業務邏輯層負責實現前端標注操作的業務邏輯,處理數據變化,并提供與后端的通信的功能。后端即服務器端主要包含業務邏輯層和數據訪問層,業務邏輯層提供接口給客戶端,為客戶端功能的實現提供業務邏輯處理,并集成圖像分割算法模塊,數據訪問層控制對數據庫的訪問操作,為業務邏輯層提供增刪改查方法。系統架構設計如圖1所示。

圖1 系統架構設計Fig.1 System architecture design diagram
面向圖像分割的數據標注系統能夠支持使用多邊形標注物體輪廓,目前純人工標注多邊形需要沿物體輪廓描點標記,對于物體輪廓較為復雜的情況,描點標記的難度和復雜度會成倍上升。為了方便描繪物體輪廓,本標注系統提出了一種使用鼠標快速標注物體輪廓的方式:按下鼠標左鍵不松開,沿物體輪廓移動,鼠標移動過的位置生成標注多邊形。
鼠標移動過程中會產生很多連續的點,將這些點的坐標記錄下來,作為原始數據。這些連續的點構成曲線,如果將所有的點都顯示在界面上,會導致描述輪廓的點過多,需要維護的數據過大,編輯大量定點顯得不太現實,且大部分頂點對標注不產生積極作用。所以要對坐標點進行篩選,盡可能保留最少的坐標點來標注較為完整準確的物體輪廓。
綜上所述,設計方案概括為:鼠標按下左鍵不松開,沿物體輪廓移動鼠標,開始快速標注過程,在這個過程中采集鼠標移動的每個坐標點并有序保存到集合中,當鼠標描繪物體輪廓完畢時松開鼠標左鍵,快速標注過程結束,將采集的有序坐標點集合中的所有點按一定的容忍值進行篩選,篩選后得到一個新的有序坐標點集合,這就是鼠標快速標注物體輪廓形成的多邊形的坐標點,用這些點在界面上繪制出標注多邊形即可。
按照上述初步設計方案,要在本標注系統中進行實現,細化為以下更為具體的設計方案。首先,鼠標左鍵拖動操作會觸發繪制區域的移動操作,所以給鼠標快速標注設置一個激活按鈕,當激活鼠標快速標注功能時,進入快速標注狀態,禁用繪制區域的移動操作。然后,在激活鼠標快速標注功能時,要對鼠標左鍵的拖動事件進行注冊,包括“拖拽移動過程中(drag move)”“拖拽結束(drag end)”事件。在拖動事件“drag move”的回調函數中,采集觸發點的坐標,保存到指定集合中;在拖動結束事件“drag end”的回調函數中,將集合中的坐標進行處理,得到篩選后的集合后,替換掉按原集合繪制的多邊形。這樣,界面上就顯示了一個可以描述物體輪廓的多邊形。最后,當不需要鼠標快速標注功能時,同樣點擊激活按鈕,就可以取消快速標注功能,退出快速標注狀態,恢復繪制區域的移動操作,在此操作中需要移除之前注冊的拖動事件,這樣就進入到標注系統默認狀態。
當標注數據源為視頻時,經過預處理模塊會篩選出一組連續的幀圖片。顯然,這組圖片之間是有連續關系的。但是人工進行標注時,并沒有利用這種關系,人工對每一張幀圖片進行標注,標注效率并不高。基于幀圖片之間的連續性可得,在兩張連續幀圖片中的物體也具有連續性,對應的標注多邊形的位置、大小也具有相似性。因此,提出一種思路:將上一幀圖片的標注多邊形復制到連續的下一幀圖片上,再整體調整多邊形來吻合物體。基于以上思路,提出整體拷貝/調整標注多邊形的方法。
根據以上分析,對整體拷貝/調整方法進行詳細設計,細化為以下3個功能點:
1)對整個標注多邊形進行拷貝操作;
2)對整個標注多邊形進行移動操作;
3)對整個標注多邊形調整大小操作。針對第一個功能點“對整個標注多邊形進行拷貝”,本系統提供兩種拷貝方式,即“整體拷貝到當前圖片”和“整體拷貝到下一張圖片”,兩種拷貝方式通過右鍵菜單以菜單選項顯示,供標注人員選擇。拷貝到當前圖片的標注多邊形與原標注圖形原本在同一位置,會重疊在一起,無法區分選擇,所以設計復制的標注圖形向右下偏移5像素,方便標注人員區分與選擇,如圖2所示。拷貝到下一張圖片的標注多邊形在位置和大小上與原標注多邊形保持一致。

圖2 整體拷貝到當前圖片的示意Fig.2 Schematic diagram of whole copy to the current image
針對第二個功能點“對整個標注多邊形進行移動”,本系統通過對整個標注多邊形注冊拖拽事件來實現,對整個標注多邊形注冊“drag move”和“drag end”事件。在“drag move”事件的回調函數中,實時計算拖拽后的多邊形頂點的坐標,更新到顯示的多邊形中,實現多邊形跟隨拖拽實時移動位置的效果;在“drag end”事件的回調中,獲取到當前多邊形頂點的坐標,更新到數據模型中,以實現數據模型中的多邊形坐標與界面顯示的多邊形坐標保持一致。
假設物體可能的位置在區域內為均勻分布,那么流場內每個點都有可能會對其產生影響,根據Leeway模型,以流場中Xij位置為例,假設物體處于該位置,那么物體可能的速度計算為
為避免與標注區域的移動操作沖突,新增整體移動多邊形狀態。通過快捷鍵M激活整體移動多邊形狀態,按以上論述對多邊形注冊拖拽事件,此時將不能編輯多邊形單個頂點,也不能整體調整多邊形大小寬高。當鼠標移動到標注多邊形上時,當前標注多邊形半透明填充類別顏色,這種高亮的顯示方式告訴標注人員,可以對當前標注多邊形進行整體移動操作;當鼠標移動離開標注多邊形,半透明填充色消失,當前多邊形填充色為透明。
當標注多邊形顯示半透明填充色時,代表此多邊形可以被拖拽移動,在該多邊形上按下鼠標左鍵不松開,移動鼠標,多邊形會根據鼠標移動位置而實時跟隨移動,鼠標左鍵松開,多邊形移動結束,當前位置即為多邊形新的位置,如圖3所示,虛線多邊形為移動前多邊形的位置,實線多邊形為移動后多邊形的位置。

圖3 整體移動多邊形示意Fig.3 Schematic diagram of whole moving polygon
以圖3中頂點(x0,y0)的移動為例,根據水平和垂直移動的距離Δx、Δy,則新坐標(x1,y1)=(x0+Δx,y0+Δy)。針對第三個功能點“對整個標注多邊形調整大小”,本系統通過提供調整點的方式,允許標注人員拖動調整點對整個標注多邊形調整大小,與整體移動多邊形功能的實現類似,對調整點注冊拖拽事件,具體不再贅述,可以參考對整個多邊形注冊拖拽事件的描述。
新增整體調整多邊形大小狀態,通過快捷鍵R激活整體調整多邊形大小狀態,此時將不能編輯多邊形單個點,也不能整體移動多邊形,鼠標左鍵點擊要整體調整的多邊形,激活該多邊形的整體調整功能,根據邊界框P(x,y,w,h)繪制出邊界框以及調整點,如圖4所示,表明可以對當前多邊形進行整體調整大小的操作。

圖4 邊界框及調整點的繪制Fig.4 Bounding boxes and adjustment points drawing
對調整點注冊拖拽事件,邊界框邊上的調整點是單向調整點,邊界框頂點上的調整點是雙向調整點。上、下邊中間的調整點僅支持上、下拖動,用來調整多邊形的高度。左、右邊中間的調整點僅支持左、右拖動,用來調整多邊形的寬度。頂點上的雙向調整點支持上、下、左、右拖動,用來同時調整多邊形的高度和寬度。以拖拽左上調整點改變多邊形大小為例進行推導計算多邊形頂點的坐標。
拖拽邊界框左上調整點來整體調整多邊形大小的示意如圖5所示。假設向左調整寬度為Δx,向上調整寬度為Δy,那么調整后的邊界框P(x,y,w,h)=(x-Δx,y-Δy,w+Δx,h+Δy),以多邊形頂點(x0,y0)為例,調整后該頂點為(x0,y0),顯而易見x0=x0-Δx,y0的計算如公式(1)所示。


圖5 整體調整多邊形大小的示意Fig.5 Schematic diagram of whole adjust of the polygon size
本文對高鐵行駛場景進行類別標注,通常的場景是正常的軌道,對鐵軌、護欄、列車、山脈等進行標注,并標記分類標簽,得到標注數據集,用以訓練圖像識別算法。如圖6所示,本標注系統對高鐵行駛場景進行標注。

圖6 高鐵行駛場景標注示意Fig.6 Schematic diagram of high-speed railway operation scene annotation
實驗選擇30名標注人員對指定的同一批物體分別使用描點標注和鼠標快速標注兩種方式進行輪廓標注。
第1次標注,30名標注人員使用描點標注方式,對30張標注圖片中指定的54個物體進行標注。第2次標注,30名標注人員使用鼠標快速標注方式,標注對象與第1次標注相同。
為了更直觀地對上述兩次標注的數據進行對比,將兩種標注方式下的標注人員所用時長以柱狀圖形式展現出來,如圖7所示。為了體現使用鼠標快速方法的效率提升情況,將每個人效率提升的百分比計算出來,并以散點圖的形式展現出來,如圖8所示。

圖7 描點標注與鼠標快速標注時長對比柱狀Fig.7 Bar chart of duration comparison of tracing points annotation and mouse fast annotation

圖8 使用鼠標快速標注方法的效率提升散點Fig.8 Scatter diagram of efficiency improvement by using mouse fast annotation method
從圖7中可以看出,在其他標注條件相同的情況下,每個標注人員使用鼠標快速標注方式的標注時間均少于描點標注的標注時間。由圖8分析可得,76.7%人員的標注效率提升在10%以上,100%人員的標注效率都得到了提升,標注效率平均提升11.6%,說明該方法可以有效提升標注效率。
實驗選擇30名標注人員對30張標注圖片中指定的同一有連續運動軌跡的車輛進行描點標注和整體拷貝/調整標注。
第1次標注,30名標注人員使用描點標注的方式標注30張圖片中的目標物體。第2次標注,30名標注人員可以使用整體拷貝/調整的方式輔助描點標注對30張圖片中的目標物體進行標注。
為了更直觀的對上述兩次標注的數據進行對比,將兩種標注方式下的標注人員所用時長以柱狀圖的形式展現出來,如圖9所示。為了體現使用整體拷貝/調整標注方法的效率提升情況,將每個人效率提升的百分比計算出來,并以散點圖的形式展現出來,如圖10所示。

圖9 描點標注與整體拷貝/調整標注時長Fig.9 Bar chart of duration comparison of tracing points annotation and whole copy/adjust annotation

圖10 使用整體拷貝/調整方法的效率提升Fig.10 Scatter diagram of efficiency improvement by using whole copy/adjust annotation method
從圖9中可以看出,在其他標注條件相同的情況下,每個標注人員使用整體拷貝/調整標注方式輔助標注的標注時間都少于僅使用描點標注方式的標注時間。由圖10可得,90%人員的標注效率提升超過28%,標注效率平均提升29.7%,說明該方法可以有效提升標注效率。
本文主要圍繞人工標注物體輪廓效率低下的問題,以提高人工標注物體輪廓效率為目標,提出鼠標快速標注和整體拷貝/調整標注多邊形兩種標注方法,應用于數據標注系統。結論如下。
研究鼠標快速標注方法對標注效率的影響,通過實驗驗證了鼠標快速標注方法可以提升人工標注速度,可以達到提高標注效率的目的。鼠標快速標注方法比描點標注方法平均提升了11.6%的效率。
研究整體拷貝/調整標注多邊形方法對標注效率的影響,通過實驗證明了整體拷貝/調整標注多邊形方法可以提高標注人員的標注效率。整體拷貝/調整標注多邊形方法相比描點標注方法平均縮短了29.7%的標注時間。