본문 바로가기

AI

Darknet YOLO에서 사용하는 학습(train) 이미지 구하기(YOLO 기본 이미지 변환)

COCO dataset은 머신러닝을 하기 위해 만들어진 수 많은 데이터셋 중에 하나이다.

Darknet YOLO의 경우 파일에 coco.data등의 파일이 있으므로, coco dataset을 사용했다는 것을 알 수 있다.

 

1. COCO dataset은 검색만으로 이미지를 구할  수 있다. ( Train/Val annotations는 .json파일로, 프로그램으로 marking text를 얻을 때 필요하다)

http://cocodataset.org/#download 

 

COCO - Common Objects in Context

 

cocodataset.org

 

2. 말 그대로 COCO dataset이기 때문에 YOLO에서 인식할 수 있는 .txt파일을 생성해 줘야 하는데 자동화 프로그램을 이미 해외에서 제작해서 사용하고 있다. JAVA로 프로그래밍되어 있어서 JAVA를 설치 후 실행시켜 주면 된다.

 

https://bitbucket.org/yymoto/coco-to-yolo/src/master/

 

Bitbucket

 

bitbucket.org

 

3. 명령어 사용법

Usage: java -jar cocotoyolo.jar <COCO annotations file path> <absolute COCO images directory path> <CSV of included category labels> <output directory path>

 

이고 쉽게 풀이하면

 

java -jar cocotoyolo.jar <.json파일> <이미지가 있는 경로> <객체 이름> <저장할 폴더>

 

로 실행 가능하다.

 

소스코드를 분석하지 않아 어떻게 동작하는지는 모르겠지만, 사실 이미지 경로는 왜 필요한지 모르겠다. 이미지 경로를 넣으면 이미지 파일명을 읽어서, 파일명과 맞는 .txt파일을 생성하는 줄 알았는데, 해당 이미지가 없어도 그냥 가져온다.

 

<객체 이름>은 YOLO에서 사용하는 coco.names파일에 있는 객체들 중 원하는 걸 입력하면 된다.

 

* 2017 dataset 기준 객체

"person, bicycle, car, motorbike, aeroplane, bus, train, truck, boat, traffic light, fire hydrant, stop sign, parking meter, 

bench, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella, handbag, tie, suitcase, fribee, skis, snowboard, sports ball, kite, baseball bat, baseball glove, skateboard, surfboard, tennis racket, bottle, 

wine glass, cup, fork, knife, spoon, bowl, banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, 

cake, chair, sofa, pottedplant, bed, diningtable, toilet, tvmonitor, laptop, mouse, remote, keyboard, cell phone, 

microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy bear, hair drier, toothbrush"

 

* 사용한 명령어

java -jar cocotoyolo.jar ./instances_train2017.json ./train2017 "person, bicycle, car, motorbike, aeroplane, bus, train, truck, boat, traffic light, fire hydrant, stop sign, parking meter, bench, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard, sports ball, kite, baseball bat, baseball glove, skateboard, surfboard, tennis racket, bottle, wine glass, cup, fork, knife, spoon, bowl, banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, cake, chair, sofa, pottedplant, bed, diningtable, toilet, tvmonitor, laptop, mouse, remote, keyboard, cell phone, microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy bear, hair drier, toothbrush" ./success

 

< 사용한 폴더 구성 >
< coco dataset 이미지의 극히 일부/이미지파일 경로에 있는 이미지들( ./train2017 ) >
< 생성된 marking text파일 >

 

2017년 dataset 기준 약 117,776개의 이미지를 얻을 수 있으며, marking text파일과 합치면 총 235,552개의 파일이다.