-
카테고리
-
세부 분야
컴퓨터 비전
-
해결 여부
미해결
CRAFT Fine-Tuning 질문
22.01.07 13:50 작성 조회수 476
0
keras_ocr로 license plate dataset에 맞게 fine tuning을 할 때 어디까지(classifier나 conv layer)를 학습대상으로 삼을지 결정하는 부분은 어디에 있는 건가요?? 3강 VGGNet으로 개와 고양이 분류 문제에서는 명확하게 어디까지 학습대상을 삼을지 결정하고 learning rate를 조정하고 이미지넷 pre-trained weight를 잡는 과정들을 알 수 있었는데 이번 수업에서 이러한 fine tuning 과정들이 어디서 진행되는지 잘 모르겠습니다! keras_ocr 에서 특정 함수가 알아서 해주는 건가요??
그리고 custom data셋에 맞게 get_licenseplate_detector_dataset와 같은 함수를 새로 작성하는 것도 fine-tuning에 해당하나요? 수업에서 "License Plate Detection 데이터에 맞게 Fine-Tuning" 코드 부분이 왜 fine tuning 이 진행되는 부분인지 잘 모르겠습니다! 단지 license plate detection 데이터로 학습을 진행해서 그런건가요?
fine tuning을 진행할 때 기존의 데이터셋과 모델을 학습시키고 난 후에 커스텀 데이터에 맞게 돌려야 하나요? 아니면 모델을 가져와서 바로 커스텀 데이터에 맞게 돌려도 되나요? 수업에서 진행한 실습은 기존 모델의 사전 학습 없이 바로 커스텀 데이터에 맞게 돌린 것에 해당하나요?
차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
Custom Dataset 실전 프로젝트 실습 1 - CRAFT를 이용한 License Plate Detection 모델(Custom Dataset) 학습 Solution
강의실 바로가기
답변을 작성해보세요.
0
AISchool
지식공유자2022.01.10
안녕하세요~. 반갑습니다.
keras_ocr로 license plate dataset에 맞게 fine tuning을 할 때 어디까지(classifier나 conv layer)를 학습대상으로 삼을지 결정하는 부분은 어디에 있는 건가요?? 3강 VGGNet으로 개와 고양이 분류 문제에서는 명확하게 어디까지 학습대상을 삼을지 결정하고 learning rate를 조정하고 이미지넷 pre-trained weight를 잡는 과정들을 알 수 있었는데 이번 수업에서 이러한 fine tuning 과정들이 어디서 진행되는지 잘 모르겠습니다! keras_ocr 에서 특정 함수가 알아서 해주는 건가요??
-> 말씀해주신대로 keras-ocr의 경우, keras-ocr 모듈이 알아서 해당 과정을 진행해줍니다. 기본적으로는 전체 Detector 모듈을 학습대상으로 삼는 형태이고 사전에 MLT 데이터셋(Multi-lingual scene text detection)에 학습시킨 모듈을 불러와서 fine-tuning하는 형태입니다. 좀더 구체적인 내용은 keras-ocr의 Detector 구현 코드에서 찾아보실 수 있습니다.
https://github.com/faustomorales/keras-ocr/blob/master/keras_ocr/detection.py#L662
그리고 custom data셋에 맞게 get_licenseplate_detector_dataset와 같은 함수를 새로 작성하는 것도 fine-tuning에 해당하나요? 수업에서 "License Plate Detection 데이터에 맞게 Fine-Tuning" 코드 부분이 왜 fine tuning 이 진행되는 부분인지 잘 모르겠습니다! 단지 license plate detection 데이터로 학습을 진행해서 그런건가요?
-> 위에서 말씀드린대로 keras-ocr 데이터셋의 경우 기본적으로 MLT 데이터셋(Multi-lingual scene text detection) 데이터셋에 학습시킨 파라미터를 기본으로 불러와서 초기 파라미터로 설정하도록 되어 있습니다. (https://github.com/faustomorales/keras-ocr/blob/master/keras_ocr/detection.py#L650 ) 따라서 MLT 데이터셋에 학습된 파라미터를 License Plate Module에 Fine-Tuning하는 형태라고 생각하시면 될 것 같습니다.
fine tuning을 진행할 때 기존의 데이터셋과 모델을 학습시키고 난 후에 커스텀 데이터에 맞게 돌려야 하나요? 아니면 모델을 가져와서 바로 커스텀 데이터에 맞게 돌려도 되나요? 수업에서 진행한 실습은 기존 모델의 사전 학습 없이 바로 커스텀 데이터에 맞게 돌린 것에 해당하나요?
-> fine-tuning을 진행할때는 기존의 데이터셋에 모델을 학습시키고 커스텀 데이터셋에 다시 학습시킬수도 있고, 바로 커스텀 데이터셋에 학습시킬 수도 있습니다. (즉, 두가지 방식 모두 다 가능합니다.) 어떤 방법이 더 좋느냐는 상황에 따라 다를 수 있지만 일반적으로 커스텀 데이터셋이 사전 학습 데이터셋과 비슷한 형상의 데이터셋이라면 사전 학습된 파라미터를 이용하는 것이 더 괜찮을 가능성이 있습니다. 수업에서 진행한 실습으 MLT 데이터셋에 학습된 파라미터를 License Plate Module에 Fine-Tuning하는 형태라고 생각하시면 될 것 같습니다.
좋은 하루되세요~.
감사합니다.
답변 1