• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Opencv DNN을 이용한 Inference 수행 절차 시 Faster-RCNN 적용 시점

23.06.01 00:01 작성 23.06.01 00:02 수정 조회수 321

0

안녕하세요,

 

OpenCV의 DNN을 이용한 Object Detection 구현 개요 및 관련 실습에서 질문이 있습니다.

 

cv2.dnn.readNetFromTensorflow 라이브러리에서 Faster-RCNN ResNet-50 가중치 모델 파일과 환경 설정 파일을 통해 inference 네트웍 모델을 생성한다고 설명해주셨습니다.

 

또한, cvNet.forward()를 통해 생성한 inference 네트웍 모델에서 output을 추출, 그리고 추출한 output에서 detect 정보를 시각화 합니다.

 

제 질문은, Pretrained된 가중치 모델 파일은 구체적으로 무엇이며, 또한 Faster-RCNN 수업에서 설명해주신 RPN은 언제 수행하는지 궁금합니다.

 

제가 이해하지 못하는 부분은 다음과 같습니다.

  1. 제가 이해하기로는, cvNet.forward를 통해 inference 네트웍에서 output을 추출하여, 추출한 output으로 부터 object detect를 할 수 있는데, 이때 object detect를 할 때 사용되는 알고리즘이 Faster-RCNN이라고 이해하였습니다.

     

  2. 그러나, Pretrained된 가중치 모델 파일은 Faster-RCNN, MobileNet, Mask-RCNN 등의 모델을 지원합니다. 가중치 모델 파일은 pretrained 된 것으로서, 이미 coco 데이터 세트 (80개의 object) 를 모두 학습해 놓은 모델이며, 즉 coco 데이터 세트를 학습할 때 Faster-RCNN 알고리즘으로 수행된 모델이라고 이해하면 될까요?

 

즉, Pretrained된 가중치 모델 파일이 Faster-RCNN을 지원한다는 것이 어떤 의미를 가지는지 궁금합니다.

해당 pretrained된 가중치 모델 파일과 환경 설정을 통해 생성한 inference 네트웍을 통해 object detection 수행 시에 RPN을 기반으로 객체 탐지를 하는 것인지 궁금합니다.

 

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까,

Faster-RCNN으로 Pretrained 된 모델은 COCO Dataset등을 이용하여 이미 Faster-RCNN로 학습이 된 모델을 의미합니다. Pretrained 모델을 활용하는 이유는 크게 두가지가 있습니다.

Pretrained 모델을 활용하는 첫번째 이유는 Faster-RCNN등의 모델로 학습을 하는데 많은 시간이 필요한데, 이걸 대다수의 사람들이 쉽게 적용하기가 어렵기 때문입니다. 더군다나 Coco 등의 대용량 데이터 세트를 이용하려면 1개의 GPU만을 사용하더라도 몇일이 걸릴수 있습니다.

때문에 이미 만들어진 Pretrained 모델을 활용하면 쉽게 Object Detection(즉 Inference)을 할 수가 있습니다. 그런데 단점으로는 Pretrained 모델에 사용된 Object 들만 Detection 할 수 있습니다. 그러니까 Coco dataset을 사용해서 학습된 Pretrained 모델은 80개의 coco object만 Detection 할 수 있습니다. 그래서 Opencv Faster-RCNN 모델은 80개의 COCO Object만 detect 합니다.

두번째 이유는, Custom Dataset로 학습을 할 때 Pretrained 모델을 이용하면 훨씬 더 좋은 성능의 모델을 얻을 수 있기 때문입니다. 추후 강의에서도 말씀 드릴 텐데 이미 학습된 모델의 가중치를 기반으로 Custom Dataset를 Object Detection 학습 시키면 모델 성능이 좀 더 향상 됩니다.

그리고 질문하신 부분에 대한 답변은 아래와 같습니다.

  1. 제가 이해하기로는, cvNet.forward를 통해 inference 네트웍에서 output을 추출하여, 추출한 output으로 부터 object detect를 할 수 있는데, 이때 object detect를 할 때 사용되는 알고리즘이 Faster-RCNN이라고 이해하였습니다.

    => 네 맞습니다. 다만 Opencv 는 여러가지 종류의 Object detection 알고리즘이 있는데, 그중에 Faster-RCNN 모델로 Pretrained 모델을 선택 할 수 있습니다.(다른 알고리즘 모델을 선택할 수도 있습니다)

     

  2. 그러나, Pretrained된 가중치 모델 파일은 Faster-RCNN, MobileNet, Mask-RCNN 등의 모델을 지원합니다. 가중치 모델 파일은 pretrained 된 것으로서, 이미 coco 데이터 세트 (80개의 object) 를 모두 학습해 놓은 모델이며, 즉 coco 데이터 세트를 학습할 때 Faster-RCNN 알고리즘으로 수행된 모델이라고 이해하면 될까요?

    => 네 맞습니다.

  3. 해당 pretrained된 가중치 모델 파일과 환경 설정을 통해 생성한 inference 네트웍을 통해 object detection 수행 시에 RPN을 기반으로 객체 탐지를 하는 것인지 궁금합니다.

    => 네 RPN 기반으로 객체 탐지를 수행합니다.

 

감사합니다.