语义分割VOC2012标签处理
生活随笔
收集整理的這篇文章主要介紹了
语义分割VOC2012标签处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
語義分割VOC2012標簽處理
- 準備操作
- 標簽處理
- 運行網絡
- 結語
準備操作
PASCAL-VOC2012數據集介紹官網: 點擊
VOC2012數據集分為20類,包括背景為21類,分別如下:
- Person: person
- Animal: bird, cat, cow, dog, horse, sheep
- Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train
- Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor
下載后得到的文件:
進行解壓,得到下列文件夾:
JPEGImage 文件夾中存放的是原始圖像
SegmentationClass 文件夾中存放的是label可視化的彩色圖,如:
我們需要對 SegmentationClass 文件夾下的標簽進行處理,得到灰度圖
標簽處理
我們寫一個Python腳本:
from tqdm import tqdm import numpy as np import cv2 import os# 標簽中每個RGB顏色的值 VOC_COLORMAP = np.array([[0, 0, 0], [128, 0, 0], [0, 128, 0], [128, 128, 0],[0, 0, 128], [128, 0, 128], [0, 128, 128], [128, 128, 128],[64, 0, 0], [192, 0, 0], [64, 128, 0], [192, 128, 0],[64, 0, 128], [192, 0, 128], [64, 128, 128], [192, 128, 128],[0, 64, 0], [128, 64, 0], [0, 192, 0], [128, 192, 0],[0, 64, 128]]) # 標簽其標注的類別 VOC_CLASSES = ['background', 'aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair', 'cow','diningtable', 'dog', 'horse', 'motorbike', 'person','potted plant', 'sheep', 'sofa', 'train', 'tv/monitor']# 處理txt中的對應圖像 txt_path = '/home/DATA/database/VOC2012/VOCdevkit/VOC2012/ImageSets/Segmentation/trainval.txt' # 標簽所在的文件夾 label_file_path = '/home/DATA/database/VOC2012/VOCdevkit/VOC2012/SegmentationClass' # 處理后的標簽保存的地址 gray_save_path = '/home/DATA/database/Voc2012/new_label/'with open(txt_path, 'r') as f:file_names = f.readlines()for name in tqdm(file_names):name = name.strip('\n') # 去掉換行符label_name = name + '.png' # label文件名label_url = os.path.join(label_file_path, label_name)mask = cv2.imread(label_url)mask = cv2.cvtColor(mask, cv2.COLOR_BGR2RGB) # 通道轉換mask = mask.astype(int) label_mask = np.zeros((mask.shape[0], mask.shape[1]), dtype=np.int16)# 標簽處理for ii, label in enumerate(VOC_COLORMAP):locations = np.all(mask == label, axis=-1)label_mask[locations] = ii# 標簽保存cv2.imwrite(gray_save_path+label_name, label_mask)腳本運行完成后,即可在對應的路徑下得到處理完成的標簽
處理前:
處理后:
運行網絡
我們隨便找一個網絡簡單的測試一下
較少迭代次數:
emmmmm,再多跑跑…
較多迭代次數:
這回看著還行
結語
很多數據集的標簽都需要我們手動處理一下,以上只是一個小例子。
總結
以上是生活随笔為你收集整理的语义分割VOC2012标签处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Github - 第一篇:Github安
- 下一篇: 群晖服务器白群晖有哪些型号,白群晖和黑群