VOC 포맷 데이터 정리하기 (2)

bigjoon·2021년 1월 13일
4
post-thumbnail

해결방법에 대한 내용을 여러분과 공유하기로 했었죠?
시작해볼게요.

VOC 데이터 정리하기

해결 방법이 크게 두가지 과정이였죠.

  • Image와 Annotation을 리사이즈 하는 거지요. 이왕 리사이즈 할건데 학습 할 딥러닝 네트워크 모델의 입력(input) 사이즈와 통일 시키는게 좋겠죠?
  • 전체 데이터(Full Data)에 대해서 리사이징이 끝났다면 이젠 불필요한 객체에 대한 태그들을 지워주는 작업을 하면 되는 거에요.

먼저 첫번째 Image와 Annotation리사이징 하는 것부터 해볼게요. 이 작업을 할 때 전 상당한 독촉을 받고 있는 상태였답니다. 그래서 직접 작성하기 보단 기존에 저와 같은 문제를 가진 사람이 작성해 놓은 코드가 있는지 Googling으로 찾아보았답니다. 찾아본 결과!
Pascal VOC dataset resize 라는 repo를 깃허브에서 찾을 수 있었어요. 해당 repo의 사용법은 Readme를 보시면 이해가 갈거에요. 하지만 간단하게 설명해드릴게요. 먼저 Annotation파일과 Image 파일들을 하나의 폴더에 넣어줍니다. 그리고 위의 하이퍼링크를 걸어놓은 Pascal VOC dataset resize 를 다운로드 받아주세요.
그리고

pip install -r requirements.txt

pip을 사용하여 필요한 라이브러리들을 설치해주세요.

python3 main.py -p <IMAGES_&_XML_PATH> --output <IMAGES_&_XML> --new_x <NEW_X_SIZE> --new_y <NEW_X_SIZE> --save_box_images <FLAG>"

이 명령어를 사용하여 변환하여 주시면 됩니다.
예시는 다음과 같아요.

python3 main.py -p /home/italojs/Pictures/dataset --output ./output --new_x 150 --new_y 150 --save_box_images 1

그러면 output 옵션을 주고 만들었던 output 디렉토리에 리사이즈된 Image와 Annotation파일들이 모두 담기게 된답니다. 아직 끝난게 아니에요!!

저희가 만들었던 Pascal VOC구조의 폴더 안으로 다시 옮겨야 해요. 기존의 원본 파일들이 필요하신분은 남겨두시고 아니라면 새로 VOC포맷의 폴더구조를 만들어주세요. 그게 아니라면 원본 폴더의 내용들을 지워주세요. 파일이 일정 갯수가 넘어가게 된다면 단순하게 rm이란 명령어가 동작하지 않을거에요.
그럴 땐 천천히 아래를 따라해보세요. 아래 간단한 명령어가 있어요.
아래는 원본 폴더에 있는 image와 annotations들을 지울 때 사용할 수 있는 명령어에요.
Annotation이 있는 폴더로 이동합니다. 그리고~

find . -name "*.xml" -exec rm {} \;

그리고 JPEGImages폴더로 이동하세요. 그리고~

find . -name "*.jpg" -exec rm {} \;

그러면 이제 Resize한 파일들을 VOC 폴더 구조에 맞게 옮겨야겠죠?
mv 명령어 역시 파일 갯수가 많을 때 동작하지 않는답니다.


우선 저희가 Resize한 폴더로 이동해주세요. Annotation 파일들부터 옮겨볼게요.

find . -type f -name "*.xml" -exec mv {} /목적경로 \;

예시

find . -type f -name "*.xml" -exec mv {} /hdd/VOCdevkit/VOC2007/Annotations \;

다음은 이미지 파일들도 옮겨줘야겠죠?

find . -type f -name "*.jpg" -exec mv {} /목적경로 \;

예시

find . -type f -name "*.jpg" -exec mv {} /hdd/VOCdevkit/VOC2007/JPEGImages \;

여기까지 했으면 이제 얼마 안 남았어요! 힘내세욧!
VOC 포맷 데이터 정리하기 (3) 에서 불필요한 객체들에 대한 태그를 지워주는 작업을 계속할게요.

profile
Develop Things. Step_by_Step

1개의 댓글

comment-user-thumbnail
2021년 1월 14일

우와 대박 ~~

답글 달기