yongyong-e

[Tensorflow Object Detection API] 2. Training your own dataset 본문

머신러닝/Tensorflow - Models

[Tensorflow Object Detection API] 2. Training your own dataset

Yonghan Kim 2017. 8. 30. 17:13

1) Using pre-trained models

사전 훈련 된 모델 다운로드 후, 압축풀기

wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_11_06_2017.tar.gz

다운로드 받은 모델은 Object-Detection에 위치하면 된다.


구성파일 다운로드

wget https://raw.githubusercontent.com/tensorflow/models/master/object_detection/samples/configs/ssd_mobilenet_v1_pets.config

다운로드받은 구성 파일은 Object-Detection/training/ 디렉토리에 위치하면 된다.

또한 구성 파일을 다음과 같이 수정해주면 된다.

num_classes : 1


batch_size : 16  (default값으로 24지만 그래픽카드사양에 따라 조절 해주도록 한다.)


fine_tune_checkpoint : "ssd_mobilenet_v1_coco_11_06_2017/model.ckpt"


train_input_reader: {

  tf_record_input_reader {

    input_path: "data/train.record"

  }

  label_map_path: "data/object-detection.pbtxt"

}


eval_input_reader: {

  tf_record_input_reader {

    input_path: "data/test.record"

  }

  label_map_path: "data/object-detection.pbtxt"

  shuffle: false

  num_readers: 1

}


이제 다음과 같이 Object-Detection 디렉토리의 파일들을 models/object_detection으로 옮기도록 하자.



마지막으로 data디렉토리안에 object-detection.pbtxt파일을 추가해주면 training할 준비가 완료된다.

item {

  id: 1

  name: 'fish'

}


2) Training

다음과 같은 경로에서 스크립트를 실행 하도록 하자.

$ cd models/object_detection

$ python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

스크립트 실행 후, 오류가 없다면 위와 같은 출력을 볼 수 있게된다.


또한, tensorboard를 통해 loss값을 확인 할 수 있다. loss값이 어느정도 0에 가깝게 수렴하게 된다면 training을 종료하자.

$ cd models/object_detection

$ tensorboard --logdir=./training


Comments