• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

yolov5 관련하여 질문이 있습니다.

21.10.10 23:29 작성 조회수 663

0

1. yolov5를 이용해서 키보드 입력이 되면 다른 화면이 보여지게 하고싶습니다.

예들들어 key = cv2.waitKey(1) & 0xFF

if key == ord('a'):

    블라블라

이렇게 하고 싶은데, yolov5의 경우 키보드 입력값(어떤 값이든) 이 들어가면 프로그램이 종료되버립니다.

 

2. 80 클래스를 가진 coco dataset에 제가 추가적으로 class를 추가하여 pt파일을 만들고 싶습니다.

찾아보니까 전이학습을 하면 된다고 하는데, 하는방법을 모르겠습니다. ㅠㅠ

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

1. 이게 yolo의 이슈가 아닌것 같습니다. 

key = cv2.waitKey(1) 는 opencv에서 keyboard 입력을 기다리는 API인데, cv2.waitKey()를 적용하려면 Local Computer에서 User Interface 기반, 즉 Frame UI 상에서 keyboard 입력을 받을 수 있어야 합니다. 

하지만 실습 예제는 google colab상에서 구동되므로 Frame UI를 가질 수 없으며 따라서 cv2.waitKey() 호출을 할 수가 없습니다. 

2. 이미 80개의 class로 학습이 완료된 모델에 전이 학습을 이용해서 2개의 추가된 class로만 된 학습 데이터를 가지고 총 82개의 class를 detect하는 모델을 만들 수는 없습니다. 

전이 학습은 2개의 class로 된 새로운 모델을 만들시 기존에 80개의 class로 학습된 모델의 주요 weight, feature map값을 새로운 모델로 전이시켜서 새로운 모델의 학습 데이터가 작을지라도 이미 잘 학습된 80개의 class의 특성(weight, feature map값)을 학습 시에 활용하겠다는 학습 방법입니다. 

이미 학습이 완료된 80개의 class의 모델만 이용하고 2개 class용 학습 데이터만 집어 넣어서 82개 class용 모델로 만들수 있는 방법이 현재는 없습니다. 2개 class용 학습 데이터를 이용하면 80개의 class의 모델을 이용하더라도 2개 class용 모델만 만들수 있습니다.  다만 2개 class의 학습 데이터가 적어도 80개 모델에서 학습된 feature map, weight가 있으므로 80개 모델로 pretrained된 전이 학습을 사용하지 않을 때 보다 좋은 모델 성능을 기대해 볼수 있습니다. 

감사합니다.