Comment :
AIHub 안심존 치과질환 데이터의 Annotation Box 좌표값 검증 중에 그냥 떠오른 생각보통 Raw 이미지 데이터의 사이즈는 다 다를 것이다 (Un-uniform)
그래서torchvision.transforms.Resize()
,torchvision.transforms.CenterCrop()
등을 이용하여서 모두 동일한 사이즈로 맞추는데...
JSON 파일에 있는Annotation Box의 좌표는?
좌표값을 바꿔주지 않으면 쌩판 다른 곳에 좌표가 찍힐것이다
아래와 같이 상대좌표값을 만들어서 가지고 있으면 이미지 사이즈가 어떻게 변경되더라도 동일한 위치에 박스가 그려질 수 있다!
[!] 절대좌표와 상대좌표를 생각해보자 (단순히 수학적으로!)
ex)
원본 이미지 사이즈 :100x100
원본 이미지 속 박스의 절대좌표 :(50, 50)
원본 이미지 속 박스의 상대좌표 :(0.5, 0.5)
변경된 이미지 사이즈 :
10x10
변경된 이미지 속 박스의 좌표여야할 값 :(5,5)
변경된 이미지 사이즈 * 상대좌표값 =
(10 x 0.5, 10 x 0.5)
=(5,5)
참고 : How to resize coordinates of bounding box in torchvision datasets?