• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

선생님께 질문이 있습니다.

21.10.31 20:42 작성 조회수 278

0

안녕하세요 선생님

저는 현재 구조물 유지관리 분야에서 박사를 준비준인 학생입니다.

선생님의 강의를 접하기전에 독학으로

Tensorflow2와

Tensorflow 2 Detection model Zoo

(https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md)

에 있는 EfficientDetd-0를 활용해서

제가 사용하고 있는 레이저스캐닝 데이터를 학습데이터로 사용해서 CNN학습을 진행해 보았습니다.

 

이 내용으로 적은 SCI는 아래 링크에 있습니다.

 https://doi.org/10.3390/s21217105

 

다름이 아니오라 선생님의 강의를 듣고 저의 방식에 대해 혼란이 왔습니다. 제 학습방식은

efficientdet_d0_coco17_tpu-32의 pipeline.config 에서 클래스의 수와 Labelmap / train,test tfrecode / 배치사이즈 / 스텝 / Epoch 를 변경하여 Tensorflow에서 제공하는 

model_main_tf2.py 파일을 실행해서 학습을 진행했습니다.

(https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html)

학습후 eval 폴더를 Tensorboard를 활용해서 결과를 보았구요

의문점은 다음과 같습니다.

1. 강의에서는 Train / Validation / Test 데이터셋을 나누는데 C:\Tensorlfow\models\research\object_detection에 서 제공하는 EfficientDet config파일에는 Train과 Test만 있는데 Validation은 Train에 포함되어 있는건가요?

2. 학습을 아래와 같은 명령어로 진행후

(python model_main_tf2.py --model_dir=models/my_efficientdet_d0 --pipeline_config_path=models/my_efficientdet_d0/pipeline.config)  

--checkpoint_dir=models/my_efficientdet_d0 이 명령어를 통해 mAP결과가 보입니다. 

저는 이 결과를 가지고 논문을 썼는데 선생님의 강의를 듣고나서 이건 학습에 대한 결과일뿐 모델 테스트에 대한 결과가 아닌것 같다는 생각이 들었습니다.  강의에 나오는 1장에 대한 결과가 아닌 Test data 폴더안에 모든 이미지를 대상으로 테스트해서 mAP를 보는 방법이 따로 있는지 궁급합니다.

 

딥러닝을 독학으로 공부한지 얼마안되서 단어의 선택이나 질문의 방식이 어떻게 보일지 잘모르겠습니다. 실례가 될 수 있는 질문인거 같지만 그 어디에서도 찾아보기 힘들고 물어볼곳이 없어서 선생님께 질문드립니다.

 

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

pipeline config를 어떻게 작성하셨는지 제가 잘 모르겠습니다만, default pipeline config를 거의 수정하지 않으셨다면, 큰 문제가 없어 보입니다. 

1. Tensorflow Object Detection API는 별도의 Validation 데이터 셋을 필요로 하지 않습니다. (이게 train에서 분할해서 validation을 하는지 아님 아예 train만 활용하는지는 제가 더 이상 Tensorflow object detection API를 사용하지 않아서 잘 기억나지는 않습니다만)

2. Tensorflow Object Detection API는 아래와 같이 eval_input_reader에서 테스트 데이터 세트를 입력해 주면 됩니다. 

eval_config {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
}
eval_input_reader {
label_map_path: "annotations/label_map.pbtxt" # Path to label map file
shuffle: false
num_epochs: 1
tf_record_input_reader {
input_path: "annotations/test.record" # Path to testing TFRecord

이후에 적어주신 명령어를 수행하시면 eval_input_reader로 설정된 테스트 데이터 세트로 evaluation합니다. 

python model_main_tf2.py --model_dir=models/my_efficientdet_d0 --pipeline_config_path=models/my_efficientdet_d0/pipeline.config)  

--checkpoint_dir=models/my_efficientdet_d0

강의에 나오는 1장에 대한 결과가 아닌 Test data 폴더안에 모든 이미지를 대상으로 테스트해서 mAP를 보는 방법은 좀 더 강의를 들으시면 나올 것입니다. 

감사합니다. 

mysinmu123님의 프로필

mysinmu123

질문자

2021.10.31

빠른 답변 감사합니다. 좀더 강의를 수강해보고 저만의 data set을 활용한 학습을 진행해보겠습니다!