작성
·
518
0
안녕하세요 선생님. 강의에서 나오는 오픈소스를 분석하는 방법에 대해서 질문드립니다.
제가 yolo모델에 관심이 많아 소스코드를 분석해보고 싶지만, 아직 오픈소스를 제대로 분석해본적이 한번도 없습니다.
일단 선생님의 강의를 통하여 큰 숲은 본것같은데, 막상 코드를 한줄한줄 분석하다보면 막히는 부분이 너무나 많습니다.
물론 소스를 분석하는 것이 차근히 하나하나 하는것 밖에는 방도가 없겠지만, 분석을 하는 방법에 대한 팁(조언)을 받고싶습니다.
가령 https://github.com/qqwweee/keras-yolo3에 대한 소스를 분석하고 싶은데, 선생님께서 이러한 오픈소스 분석을 처음부터 하시게 된다면 어떠한 순서와 방법으로 분석을 하시는지 궁금합니다.
답변 1
1
안녕하십니까,
훌륭한 생각을 가지고 계시는 군요.
근데 저도 어떠한 순서와 방법으로 분석을 하는지, 정해놓고 하지는 않습니다.
다만, backend network을 어떻게 만드느냐(Feature Extractor), 논문에서 언급된 Layer들은 customized 된 layer를 사용해야 할텐데, 이를 어떻게 구성했느냐, 그리고 loss함수는 어떻게 작성했는지, 그리고 multi task한 loss즉 regression과 classification loss을 어떻게 같이 적용했느냐, 그리고 가장 중요한 Anchor는 어떻게 설계하고 이를 loss와 어떻게 매핑하였는가 등에 초점을 맞춰서 소스코드를 찾아봅니다.
그리고 yolo3 를 분석하시려면 qqwwee 보다는 아래가 더 분석하기 쉬울 수 있습니다. qqwwee 는 매우 안정된 패키지로 이미 검증이 되었지만 소스코드는 그렇게 편하게 볼수 있는 패키지는 아닙니다. 아래 패키지를 원래 강의에 수록하려 했는데, 당시에 tensorflow 2 가 너무 버그가 많아서 해당 패키지를 신뢰할 수 없었습니다. 하지만 이제는 어느정도 검증이 된것 같아서, 나중에 강의를 tensorflow 2로 upgrade할 때 아래 패키지로 대체할 예정입니다.
https://github.com/zzh8829/yolov3-tf2
감사합니다.