제목이 곧 내용입니다!
이전 포스팅에서 쉽게 라벨링 하는 방법에 대해서 설명했었는데요, 이게 학습마다 라벨링 하는 방법이 다르더라구요!
그래서!
이번 포스팅에서는 XML이나 Json으로 라벨링한 파일을 YOLO형식 txt파일로 변환해주는 사이트를 소개시켜드리려고 합니다.
심지어!! 이미지 Augmentation기능까지 있어요!! 바보짓을 해서 오히려 좋아. 이렇게 좋은 사이트가 있었다니~~
1. YOLO에서 요구하는 라벨링 파일 형식은?
YOLO학습에서는 txt형식의 네모난 라벨링을 요구합니다.
지난 포스팅에서 들었던 예를 들겠습니다.
우리는 킥보드 사용자가 헬멧을 썼는지 여부를 체크하는 프로그램을 만들고 있습니다!
으음 Augmentation을 원본까지 해버려서 제일 깔끔한게 이것이네요. 그냥 이렇게 헬멧 착용자와 미착용자가 있다고 생각해주시면 되겠습니다.
이 사진 파일의 이름을 00018.jpg라고 한다면,
이 사진의 YOLO학습을 위한 라벨은 00018.txt여야만 합니다.
사진과 동일한 폴더 내부에 위치해 있어야하구요.
그래서 txt의 형식은요,
0 0.41346153846153844 0.49038461538461536 0.3850661057692308 0.9323918269230769
1 0.7451923076923077 0.4387019230769231 0.18757512019230768 0.6422025240384616
이렇게 됩니다. 우리는 두가지의 Class를 부여했어요.
하나는 헬멧을 착용한 kb_with_helmet이고, 다른 하나는 미착용한 kb_without_helmet입니다.
00018.txt의 내용에서 빨간색과 파란 색을 칠한 부분은 각각 class를 의미하고, 뒤에 있는 숫자들은 상대좌표를 의미합니다.
그러니까,
kb_with_helmet 클래스는 0번 클래스이고, 좌표 {0.41346153846153844 0.49038461538461536 0.3850661057692308 0.9323918269230769}에 위치하고 있으며
kb_without_helmet 클래스는 1번 클래스이고, 좌표 {0.7451923076923077 0.4387019230769231 0.18757512019230768 0.6422025240384616}에 위치하고 있다고 할 수 있습니다.
2. xml, json등 잘못된 형식으로 라벨링 한 파일을 YOLO의 txt파일 형식으로 바꾸자!
하지만 불행하게도.,. 신나게 350여장의 이미지를 xml로 라벨링한 저는 라벨링이 끝나고 YOLO v4옵션이 있다는 것을 깨닫게 되었습니다.
하지만 괜찮습니다!!
RoboFlow라는 아주 천사같은 사이트가 있습니다!
RoboFlow의 사용법을 천천히 살펴보겠습니다.
우선 회원가입을 하고,
Create New Project를 클릭해주세요.
뭐 프로젝트 명이니, 설명이니, 뭐를 Detection하는거니~~ 막 물어보는데 대충 작성해주세요!
저는 KickBoard Detection프로젝트를 만들었습니다.
그 다음!
생성하신 Workspace에 들어가시면 다음과 같은 화면이 뜹니다.
체크한 곳에, 파일 변환 및 Augment진행하실 이미지와 라벨 파일을 드래그 엔 드롭으로 넣어주세요.
저는 xml파일과 이미지를 10장 넣었습니다.
그러면.. 이렇게!
우리의 이미지와 우리가 라벨링한 정보가 합쳐져서 컨텐츠로 보여지게 됩니다.
체크표시한 Finish Uploading을 클릭해주세요.
그러면 이런 질문을 하는데요,
이것을 클릭해주면 Train과 Valid, Test폴더를 각각 생성하고 알아서 비율대로 분류해줍니다.
음 저는 나중에 각각 위치를 지정해줄것이기 때문에, 한 폴더에 몰아넣는 옵션을 선택했습니다.
이미지 로딩이 끝나면요,
이렇게 Preprocessing을 진행해준다고 합니다.
개이득. Continue를 눌러줍니다.
다음 단계는 Augmentation인데요, 원하는 옵션을 추가추가할 수 있습니다.
입맛에 맞는 옵션을 선택해주세요. 그 다음 Continue!
그 다음은 Generate단계입니다.
요 Select Box를 클릭하면 얼마까지 이미지를 Augmentation해줄것인지 물어보는데요,
무료 버전에서는 3배까지 되네요!
항상 3배인 것은 아니고, 얼마간의 선이 있는 것 같습니다.
어제 약 350장을 시도했을 때의 최대 선은 830여장이었습니다.
그럼 이제 Generate!
로딩이 완료되면 다음과 같은 창이 뜹니다.
1번 부분에서 이름을 설정해주시고,
2번 부분의 Export를 클릭해주세요.
이곳에서 형식을 저장하여 적합한 라벨링을 구할 수 있습니다!
우리는 Darknet으로 학습을 진행할 것이기 때문에 YOLO Darknet으로 지정하였습니다.
. . .
자! 그럼 이제 우리는 YOLO Darknet형식의 txt라벨링 파일을 얻게되었고!
이미지 갯수를 뻥튀기까지 하게 되었습니다!
라벨링 파일 형식 변환하기. 참 쉽죠???
'머신러닝 > JetsonNANO와 YOLO!' 카테고리의 다른 글
(중) Colab과 Darknet으로 YOLO를 학습시켜보자! (1) | 2021.11.17 |
---|---|
(상) Colab과 Darknet으로 YOLO를 학습시켜보자! (8) | 2021.10.05 |
이미지 라벨링 쉽게하기! Labelme (0) | 2021.10.03 |
[YOLO 논문 리뷰] 그래서 YOLO가 뭔데??? (0) | 2021.10.03 |
Jetson NANO야, 반갑다~ (0) | 2021.10.02 |