이렇게 추출된 클래스 이름들은 Classes_inDataSet 리스트에 추가됩니다. 후에 중복된 클래스 이름을 제거하고 알파벳순으로 정렬하여 출력합니다. 정리된 클래스 목록은 후에 모델 학습이나 데이터 전처리 등에서 사용될 수 있습니다.
VOC 데이터 세트 전처리
다음은 VOC 데이터 세트에서 이미지에 대한 레이블을 추출하고 전처리하는 코드입니다. 이 함수는 주어진 XML 파일에서 객체의 좌표를 읽어와, 모델이 사용할 수 있는 형식으로 변환합니다.
def get_label_fromImage(xml_file_path, Classes_inDataSet): # ①
def transform_coordinates(coordinates, Image_Width, Image_Height): # ②
x_min, y_min, x_max, y_max = coordinates
x_min, x_max = [(224.0 / Image_Width) * x for x in [x_min, x_max]]
y_min, y_max = [(224.0 / Image_Height) * y for y in [y_min, y_max]]
x, y, w, h = (x_min + x_max) / 2.0, (y_min + y_max) / 2.0, (x_max - x_min) / 224.0, (y_max - y_min) / 224.0 # ③
return x, y, w, h
with open(xml_file_path, 'r') as f:
xml_file = xmltodict.parse(f.read()) # ④