介紹一些圖像標注技巧。之前引用過別人的文章 yolo目標檢測 技巧 trick 提升模型性能,deep research檢測調研報告也可以進行參考。
拉框類的標注,如果你不確定哪種方法好,你可以把所標注區域的都剪切出來,然后站在屏幕一米之外瞇起眼睛,看看能否區分不同的標注類別,人工模擬卷積過程。
1.模糊、重合圖像
參考d-fine的標注方法,模糊、重合物體可以這樣標注。
前后重合(例如近處一個人張開手,遠處在他的手下面還有一個人),可以將兩個人分別標注;模糊目標也可以整體標注,但是置信度可能較低。
2.過大的目標
假設一張圖像中,人體比例大于畫面整體70%,那么你可以把圖像處理成下圖那樣(加個黑邊),然后再進行標注、模型訓練。推理的時候,如果需要,也可以把圖像進行類似的加黑邊處理。
3.一般原則
- 距離太遠?法判斷,不標。角度相似的重復樣本只取一張 (除非角度有變化,比如在側面和正面拍攝了同一臺筆記本)。
- 主要目標被異物遇到遮擋?于 70%時,?需標注。(假設一個人站在一塊大模板上,只漏出脖子和胸部,那么大概率你不能把他標成“人體”;個人感覺,在這樣的條件下即便不標注,模型也有一定的概率識別出“人體”)。
- 只能看到?個?標的局部圖,占據整體圖像?積超過70%且?法分辨具體?標,不標(假設你在距離一臺施工機械一米的地方拍了張照片,你只能看到黃色的車體結構,但是無法分辨挖掘機/吊車等具體類型,此時可以不標注,但是模型仍有可能識別出某一種施工機械)。
- 對于過明,過暗,模糊,??標注圖?(圖中有標注框)時,不標。
4.細長目標
可以從中間斷開,例如一根電線被電線桿階段,則可以分成兩個區域,標注電線桿左邊和右邊的電線,如紅色框:
如果中間沒有分割,例如一條垂直的細線,那么你可以把標注框稍微留寬一點(也可以先貼著邊緣標注,然后用代碼統一沿較細的邊按照10%等比例進行放大,這個方法試過,即便沒有提升,也不會有太大的損失),例如左右各延長1/3:
5.傾斜目標
建議用旋轉目標檢測或分割解決。圖中紅框有些超過邊界了。
6.零散目標
假設著火了,4條火線聚在一起,遠處有一條短的火線,且距離較遠,那么也許可以使用右圖的綠框進行標注(盡可能讓畫框中的火焰面積占比大一些),但是沒有驗證過。
7.L形目標
例如下圖近處的金屬桿子,呈現L形,用兩個框標注L的每一條臂。
8.易混淆目標
例如吊車、斗臂車,二者底盤幾乎一致(都是黃色的多輪卡車),那么在標注的時候就可以先標出施工機械整體,再標出標“底盤”、“吊臂”、“載人斗臂”等(可以不標底盤),通過組合關系進行判斷(例如在施工機械整體大框中,有一個吊臂的框,那么大概率這就是一輛吊車臂車)。有時候你進能看到吊車的吊臂,這時候“吊臂”標簽就發揮了作用。
有其他類似的車輛,例如普通的城市救援黃色多輪卡車,你可以嘗試僅僅將其標注為底盤,然后通過斗臂和吊臂來判斷。你也可以將其標注為“城市救援車輛”,或者直接不對其做任何標注,可以試一下哪種方法效果好。
假設你正在識別地面上的深坑。水坑反光會對你造成影響,那么你就可以增加一個類別“水坑反光”,或者訓練一個二分類模型,區別深坑和水坑。玻璃瓶塑料瓶也可以采取類似的手段,先識別瓶子,再做分類。
假設你在識別電線桿上的裂縫,那么先識別電線桿,再判斷你檢測到的裂縫是否位于電線桿內部,也是不錯的選擇。
9.模型建議
以下是其他大模型給出的調研報告,截取一部分內容,完整內容請參考請參考文章deep research檢測調研報告
9.1復雜背景、模糊重合解決
- 專注標注: 標注時需要高度集中,仔細區分目標物體與背景。
- 緊密邊界: 確保邊界框緊密貼合目標,排除不相關的背景 。
- 明確指南:標注指南中應包含如何處理模糊邊界(例如陰影、毛發、煙霧等)的規則,明確是應該包含還是排除這些區域 。
- 針對性測試: 在模型評估時,應特別關注其在復雜背景和雜亂環境下的表現
9.2 小目標
可以使用sahi等框架,更精細地去識別小刮擦痕跡、破損等。具體訓練方法可以參考這個文章)。以下模型調研給出的方案也可以:
5. 保持圖像分辨率: 盡可能使用高分辨率的原始圖像進行標注和訓練,避免信息損失 。
6. 圖像切片 (Tiling):對于非常高分辨率的圖像,可以考慮將其切割成多個較小的圖塊(Tiles),然后在每個圖塊上進行標注和檢測,最后再將結果合并 。
7. 精細標注: 標注時利用縮放功能仔細定位小物體的邊界。確保所有小物體都被一致地標注,避免遺漏 。
8. 模型適配:可能需要調整模型架構,例如增加專門用于檢測小物體的特征層或檢測頭 。
9. 數據增強:使用數據增強技術(如旋轉、翻轉、色彩抖動、復制粘貼小物體等)來增加小物體樣本的多樣性和數量 。
10. 測試時放大:在測試階段將輸入圖像放大,有時可以提高小物體檢測性能,即使訓練時沒有專門標注小物體 。
9.3 共性原則
- 利用標注工具提供的縮放(Zoom)功能,以便在像素級別進行精確定位 。
- 仔細調整邊界框的邊緣,使其與物體的輪廓對齊,特別是對于不規則形狀的物體 。
- 盡量減少邊界框內的背景區域。如果確實需要包含少量背景(例如,為了保持一定的上下文或由于工具限制),應在整個數據集中保持一致的填充(Padding)策略**(可以借助代碼實現,參見4。細長目標**),但通常建議最小化填充 。
- 對于圖像中出現的同一類別的多個實例,應為每個實例單獨繪制邊界框,而不是將它們框在一起 。
- 邊界框(Bounding Box)應緊密地包圍目標物體,覆蓋其所有可見部分,同時避免包含過多的背景區域,也不能裁剪掉物體的任何部分 。理想情況下,邊界框的邊緣應緊貼物體最外沿的像素 。
9.4遮擋 (Occlusion):
當一個物體被另一個物體或背景部分阻擋時,就會發生遮擋 。這是現實世界圖像中非常常見且具有挑戰性的問題 。
標注策略: 關于如何標注被遮擋物體,存在不同的實踐方法,因此遵循項目定義的明確、一致的指南至關重要 。
一種常見的做法是,估計并標注出被遮擋物體的完整邊界,即使只有部分可見 。這種方法旨在幫助模型學習即使在部分可見的情況下也能識別整個物體。
另一種做法是,僅緊密標注物體的可見部分 。這種方法側重于提供模型當前可見區域的精確信息。選擇哪種策略取決于模型的預期行為和應用場景。
如果標注工具支持,可以使用特定的標簽或屬性(例如 Pascal VOC 或 CVAT 中的 occluded 標志 或自定義屬性)來明確指示遮擋情況。
對于嚴重遮擋或形狀復雜的物體,可以考慮使用實例分割 或多邊形標注 代替邊界框。在某些場景下,顯式地標注那些容易發生遮擋的邊界情況(例如,體育比賽中球員聚集的區域)可能有助于模型訓練 。通過在包含不同遮擋程度圖像的數據集上進行微調,可以提高模型處理遮擋的魯棒性 。
9.5 截斷
當物體的一部分超出了圖像的邊界時,即為截斷 。
標注策略: 通常的做法是標注物體的可見部分。在支持此功能的格式中(如 Pascal VOC),應使用 truncated 標志(通常為 1)來表明該物體被截斷 。同樣,處理截斷物體的方式應在標注指南中明確規定,并保持一致性 。
處理遮擋和截斷物體時,存在一種內在的張力:是優先保證邊界框對可見部分的緊密貼合 ,還是優先估計物體的完整范圍以保持物體身份的完整性 ?這沒有絕對統一的標準,凸顯了制定清晰、具體的項目標注指南的必要性。選擇的策略將直接影響模型如何學習處理這些部分可見的情況。