• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

SSD 딥러닝 모델 질문

22.09.13 10:54 작성 조회수 188

0

안녕하세요, 딥러닝 공부 이제 막 시작한 학생입니다!
강의 열심히 들으려 하고있는데, 궁금한 점이 있어 질문 드립니다.

아직 지식이 부족한 터라, 질문 자체에 오류가 있을지도 모르겠습니다..

Object Detection에 관심이 많습니다!
[질문]

  1. 영상에서의 물체인식에서 속도와 정확도 면에서 가장 우수한 모델이 yolo라고 평가할 수 있나요?

  2. 제가 SSD 딥러닝 모델을 사용한다면, ms coco 데이터 적용 시 Confidence값을 수정하면서 재현율과 정밀도를 평가할 수 있나요?

  3. SSD모델의 인지도가 많이 낮나요? 어떤 부분에서 강점을 가지는 지 궁금해요!(yolo가 급부상 해서..)

  4. 딥러닝 모델이 특정 물체만 인식하게 한다면, 정확도가 향상될 수 있나요?(예를 들어, 화면상에서 사람과 자동차 중, 사람만 감지하도록 설정하고 싶은데.. 어떤 식으로 할 수 있는지, 사용하는 함수가 무엇이 있는 지 궁금해요)

  5. 저장된 이미지와 다른 이미지에 대한 반응을 한다--> 어떤 딥러닝 모델에 적합한 설명일까요?

 

[논외 질문]

  1. 딥러닝 모델을 제대로 사용해봤다! 하려면 어떤 부분까지 고려해봐야 하는 지 궁금해요!

  2. DNN기반, face_recognition 을 이용해서 얼굴 특성을 추출해서 pickle파일에 저장한다고 했을 때, 어떤 특성들이 추출되는 지 혹시 아시는 지 궁금해요....
    인터넷마다 말하는 게 달라서요..ㅠㅠ (강의와는 관련이 없어서 논외 질문은 답변 안 해주셔도 받아들일 수 있습니다...!)

 

질문의 수준이 너무 낮아 놀라실 수 있겠지만... 앞으로 열심히 공부하겠습니다!

답변 2

·

답변을 작성해보세요.

0

너나님의 프로필

너나

질문자

2022.09.14

우선, 답글 달아주셔서 정말 감사드려요!!
많은 부분이 해결 되었는데, 제가 애매하게 질문한 것들이 많았네요..

1. 딥러닝 모델이 특정 물체만 인식하게 한다면, 정확도가 향상될 수 있나요?(예를 들어, 화면상에서 사람과 자동차 중, 사람만 감지하도록 설정하고 싶은데.. 어떤 식으로 할 수 있는지, 사용하는 함수가 무엇이 있는 지 궁금해요)

=> 딥러닝 모델이 특정 물체만 인식하게 한다면, 정확도가 향상된다는 의미를 잘 이해하지 못했습니다. 사람과 자동차중 사람만 감지하고자 한다면 모델에서 사람만 학습하면 됩니다.
--> 여러 물체를 학습한 모델과, 사람만 학습한 모델 중 정확도가 뭐가 더 우수할 지 궁금해요

 

  1. 저장된 이미지와 다른 이미지에 대한 반응을 한다--> 어떤 딥러닝 모델에 적합한 설명일까요?

    => 이것 역시 제대로 질문을 이해하지는 못했지만, 질문에 숨겨진 다른 의도가 없으시다면 이건 학습이 잘못되었거나 모델이 성능이 떨어지기 때문입니다.
    --> 모델의 기능에서, 이미지 분류에 가장 적합한 모델(속도와 정확도 측면)이 무엇인 지 질문한 거였는데, 모델의 성능을 부정해버린 느낌으로 작성 되었군요.. ㅎㅎㅎ

    [논외 질문]

    1. 딥러닝 모델을 제대로 사용해봤다! 하려면 어떤 부분까지 고려해봐야 하는 지 궁금해요!

      => 질문이 너무 포괄적이라 어떻게 답변을 드려야 할지 모르겠군요. 제대로 사용해봤다라고 생각하는 구체적인 사례를 적어주셨으면 합니다.
      --> 제가 고등학생인데요! 이미지 처리에 관심이 있어서 딥러닝을 공부하고 있어서요!
      딥러닝 모델을 통해서 이미지 상에서 물체를 판별하는 실험을 하고 싶은데, 정밀도와 재현율에 관련해서 Confidence값을 조절하면서 기능을 최적화 해 본다던지, 아니면 함수를 사용해서 딥러닝 모델의 성능을 최적화 해 본다던지....
      이런 여러가지 실험을 해보고 싶은데, 단순한 이미지 판별에서 나아가서 성능을 고려해보려면 어떤 부분(함수 등)을 공부하고 실습하는 게 적절한지 궁금해요

오우, 고등학생이 이 강의를 듣다니 깜짝 놀랐습니다. 대단하군요.

  1. 여러 물체를 학습한 모델과, 사람만 학습한 모델 중 정확도가 뭐가 더 우수할 지 궁금해요

    => 일반적으로는 사람만 학습한 모델이 성능이 더 좋습니다. 이유로는 상대적으로 학습 이미지량도 많고, 여러 물체들간 헷갈리는 부분도 줄어들기 때문입니다. 사람만 학습하면 사람 vs 배경만 판별하면 됩니다만 여러 물체들일 경우 개별 물체들의 특징들이 비슷할 경우 모델 성능이 상대적으로 떨어지게 됩니다. 완전히 다른 형태들로 구성된 물체들이라면 성능 차이는 줄어들 수 있습니다.

  2. 모델의 기능에서, 이미지 분류에 가장 적합한 모델(속도와 정확도 측면)이 무엇인 지 질문한 거였는데, 모델의 성능을 부정해버린 느낌으로 작성 되었군요.. ㅎㅎㅎ

    => 이건 어떤 분야에 활용되느냐에 따라서 정확도 또는 속도가 더 중요한 상황이 될 수 있습니다.

    가령 이미지 한장을 object detect해야 되는데 0.1초 정도만 되어도 충분하다가 한다면 속도보다는 정확도가 더 강한 모델을 적용하는 것이 좋습니다. 하지만 실시간으로 object detection을 해야하는 경우는 정확도를 좀 희생하더라도 속도를 중시할 수도 있습니다.

    물론 자율주행 차의 경우라면 속도, 정확도 다 놓칠 수 없습니다. 빠르게 처리함과 정확도도 높아야 합니다. 한번 실수하면 큰 대형 사고로 이어질 수 있기 때문입니다.

     

  3. 이런 여러가지 실험을 해보고 싶은데, 단순한 이미지 판별에서 나아가서 성능을 고려해보려면 어떤 부분(함수 등)을 공부하고 실습하는 게 적절한지 궁금해요

    => 먼저 여러가지 이미지를 가지고 모델을 학습하고 성능을 평가하는 실습을 여러번 해보십시요. 이때 이미지의 양을 줄인다거나, 이미지의 augmentation 기법을 적용한다거나, 학습시 batch size를 줄여 본다던가, 강의에서 실습을 통해 말씀드리는 내용을 좀 더 다양한 이미지 데이터에 실습해보면서 스스로 여러 변경을 적용해 보십시요.

     

    두번째로 모델 구조를 상세하게 이해할 필요가 있습니다. 예를 들어 yolo v3 라고 한다면 backbone과 neck, head의 구조가 어떻게 만들어지는지 이를 구현한 오픈 소스 github등을 참조해서 파악해 보는것이 좋습니다. 그러면서 backbone이나 neck을 다른 모델로 변경해 가면서 성능등의 변화를 파악해 보는 실험을 해보면 좋습니다.

두번째 수준만 해도 웬만한 대학생/대학원생 수준이 됩니다. 조금만 더 밀어붙여 보고 싶다면 직접 object detection 모델을 구현해 보십시요. 구현 오픈 소스 github들이 많이 있으니 도전해 보는것은 어렵지 않습니다. 다만 실제 구현은 CNN, 파이썬 코딩, tensorflow/pytorch 프레임워크에 대한 이해가 상당 수준 도달해야 합니다. 차근차근 경험치를 쌓다보면 어느 순간에 도전해 보고 싶을 때가 생길 겁니다. 그때까지 꾸준히 노력하시면 원하시는 바를 성취하실 수 있을 것입니다.

너나님의 프로필

너나

질문자

2022.09.14

명쾌한 답변 감사드립니다!! 제가 가렵던 부분을 딱 찾아주신 느낌이에요

제가 Object Detection을 처음 실행해보고 흥미를 느낀 데부터 여기까지 오게 되었는데, 강사님께서 인용하신 아이언맨 자비스의 명언이 제 상황 같아 딱 꽂혔어요!

답변 해주신대로 차근차근 경험치를 쌓아서 모델 구현까지 ! 최선을 다하겠습니다.
고등학생도 재미있게 들을 수 있는 강의! 정말 감사합니다 :)

0

안녕하십니까,

[질문]

  1. 영상에서의 물체인식에서 속도와 정확도 면에서 가장 우수한 모델이 yolo라고 평가할 수 있나요?

    => 속도와 정확도를 함께 측정하여 평가하는 지표가 없어서 가장 우수한 모델이 뭘 기준으로 해야 할지는 모르겠습니다만,

    속도와 정확도 면에서 개별적으로는 yolo 보다 우수한 모델이 있습니다. 다만 속도와 정확도를 함께 고려해보면 yolo는 매우 우수한 모델입니다.

  2. 제가 SSD 딥러닝 모델을 사용한다면, ms coco 데이터 적용 시 Confidence값을 수정하면서 재현율과 정밀도를 평가할 수 있나요?

    => mmdetection을 사용하시면 mAP를 평가하실수는 있습니다만, mmdetection의 SSD 모델은 그렇게 성능이 좋지 않습니다. 다른 오픈 소스 계열의 SSD용 패키지를 사용하신다면 해당 패키지에서 mAP와 같은 성능 지표를 제공하는지 먼저 확인해 보셔야 합니다.

     

  3. SSD모델의 인지도가 많이 낮나요? 어떤 부분에서 강점을 가지는 지 궁금해요!(yolo가 급부상 해서..)

    => 원래 YOLO 이전에는 SSD가 가장 속도와 성능면에서 좋았습니다. 지금은 CPU기반의 Inference시에는 SSD가 YOLO 보다 더 빠릅니다. 하지만 성능이 YOLO보다는 느립니다. 때문에 GPU가 아닌 저사양의 CPU기반이나 Edge 디바이스에서 SSD가 활용됩니다.

     

  4. 딥러닝 모델이 특정 물체만 인식하게 한다면, 정확도가 향상될 수 있나요?(예를 들어, 화면상에서 사람과 자동차 중, 사람만 감지하도록 설정하고 싶은데.. 어떤 식으로 할 수 있는지, 사용하는 함수가 무엇이 있는 지 궁금해요)

    => 딥러닝 모델이 특정 물체만 인식하게 한다면, 정확도가 향상된다는 의미를 잘 이해하지 못했습니다. 사람과 자동차중 사람만 감지하고자 한다면 모델에서 사람만 학습하면 됩니다.

     

  5. 저장된 이미지와 다른 이미지에 대한 반응을 한다--> 어떤 딥러닝 모델에 적합한 설명일까요?

    => 이것 역시 제대로 질문을 이해하지는 못했지만, 질문에 숨겨진 다른 의도가 없으시다면 이건 학습이 잘못되었거나 모델이 성능이 떨어지기 때문입니다.

    [논외 질문]

    1. 딥러닝 모델을 제대로 사용해봤다! 하려면 어떤 부분까지 고려해봐야 하는 지 궁금해요!

      => 질문이 너무 포괄적이라 어떻게 답변을 드려야 할지 모르겠군요. 제대로 사용해봤다라고 생각하는 구체적인 사례를 적어주셨으면 합니다.

       

    2. DNN기반, face_recognition 을 이용해서 얼굴 특성을 추출해서 pickle파일에 저장한다고 했을 때, 어떤 특성들이 추출되는 지 혹시 아시는 지 궁금해요....
      인터넷마다 말하는 게 달라서요..ㅠㅠ (강의와는 관련이 없어서 논외 질문은 답변 안 해주셔도 받아들일 수 있습니다...!)

      => dnn기반 face_recognition이 opencv dnn face recognition을 의미하는 건지요?

      dnn기반 face_recognition에서 얼굴의 어떤 특성을 추출하는지는 알수 없습니다. 딥러닝 기반의 모델은 어떤 피처를 추출하는지 명확히 알 수 없습니다.

       

      왜냐하면 학습 이미지를 기반으로 얼굴을 결정하는 피처들을 스스로 학습을 통해 찾아내기 때문입니다. 물론 전통적으로 알고리즘 기반과 마찬가지로 얼굴의 윤곽선, 배경과의 대비, 색감, 눈/코/입의 비율과 대칭등이 중요 피처가 될것이지만, 이들 피처들이 어떻게 얼마만큼의 가중치를 가지고 얼굴을 판별하는지는 학습 이미지를 기반으로 자동으로 학습하면서 얻어지기 때문에 dnn기반 face_recognition이 정확이 얼굴의 어떤 특성을 추출하는지 알수 없습니다.

       

      감사합니다.