图片打标
在物體檢測問題中,第一個需要解決的就是給訓練集中的圖片打標,所謂打標,就是用一個文件來描述圖中物體的位置框坐標(xmin,ymin,xmax,ymax),以定位物體的位置。
一個比較好的打標工具是LabelImg (推薦用windows版本,安裝比較方便,https://pan.baidu.com/s/1d27UMi )。編譯好后只要要在圖片上輕點鼠標就可以得到PASCAL VOC格式的XML文件(PASCAL VOC為圖像識別和分類提供了一整套標準化的優秀的數據集,從2005年到2012年每年都會舉行一場圖像識別challenge,這種XML就是他們定義的一種圖像標注文件的格式),再利用一個腳本就可以轉換成Tensorflow需要的TFRecord格式了;有時候在Mac上打開jpeg圖像會出現問題,需要將其轉換為png來解決;
上圖存在不規范的標注問題,猜猜是哪里?詳見下文。
使用步驟
你可以使用如下的快捷鍵來加速標注的過程:
?
快捷鍵
| Ctrl + u | 加載一個目錄的所有圖片文件,相當于Open Dir按鈕 |
| Ctrl + r | 更改標注文件默認的存儲位置,相當于Change Save Dir 按鈕 |
| Ctrl + s | 保存當前標圖片標注 |
| Ctrl + d | 將當前的矩形框復制一份 |
| Space | 標記當前圖像標注信息為已核驗,通常在多人協作時才會用到 |
| w | 創建一個矩形框,最為常用的按鈕 |
| d | 下一張圖片,最為常用 |
| a | 上一張圖片 |
| del | 刪除矩形框 |
| Ctrl++ | 放大 |
| Ctrl-- | 縮小 |
| ↑→↓← | 移動矩形框 |
圖像標注的原則
| 標注什么 | 預定義的所有類別的所有對象實例(就是說,如果圖片里面有3只浣熊,就要分別標注3只浣熊), 除非:
如果圖片中的對象肉眼都難以識別,就丟掉這張圖片 |
| 難以識別 difficult | 若肉眼雖然可以大致識別,但確信度不是很高,則勾選difficult復選框,表示這個對象不是很好識別。 |
| 矩形框 | 用矩形框標注對象的可見區域, 不可見的區域不要標注. 非對象的區域不要標注 矩形框應該要且僅包括對象的所有可見的像素點, 除非為了包括很小一部分的對象部件,需要擴大很大一個矩形框面積,比如,小轎車的天線可以不用框進來,因為他太小了,且天線對于汽車來說無關緊要,并非主要特征。 ? 上面的截圖的標注就不是很規范,不要學他喲。 |
| 截斷Truncated | 如果對象超過 15-20% 的部分不在矩形框內,則將對象標記為Truncated. 這個標記意味著矩形框內沒有包含完成的對象實例。這個屬性在LabelImg中無法直接勾選,需要手工編輯XML文件里的對應標簽。 |
| 遮擋Occlusion | 如果矩形框內,對象有超過 5% 的部分被遮擋, 標記為 Occluded. 這個標記指示矩形框內的圖像存在被遮擋的情況。這個屬性在LabelImg中無法直接勾選,需要手工編輯XML文件里的對應標簽。 |
| ? | ? |
| 衣服、雪、泥etc. | 如果遮擋物是跟對象強相關的,則不用標記為遮擋,比如 人身上的衣服,應視為人的一部分。 |
| 透明 | 透過玻璃看到的對象也應該被標記, 但是若玻璃是有點反光的,則玻璃上的映像,應被標記為遮擋 occlusion. |
| 鏡子 | 鏡子里的對象也應該被標記。 |
| 海報 | 圖片里面的海報、雜志等上面的對象也應該被標記,除非是一些很浮夸的卡通畫 |
總結
- 上一篇: JupyterHub on Kubern
- 下一篇: 解决VM 与 Device/Creden