Detectron2 사용후기

장준영·2021년 5월 24일
2

프로젝트

목록 보기
2/2
post-thumbnail

안그래도 최근 Mask R-CNN에 관해서 논문을 읽어보고 관련하여 PPT로 만들며 자료제작중이였는데, Detectron2에 관해서도 접하게 되어 '오? 이건 뭐지?' 라는 생각으로 자료를 미친듯이 긁어모아보며 돌려보게 되었다.

(Detectron2를 이용한 Result Data 예제들)

Detectron2?

Facebook AI Research Team에서 발표한 Model로, 기존의 Detectron1 Model에서 발전된 모델이다.
발전이라는 표현이 맞는진 모르겠으나 IEEE 2015에 나온 Faster R-CNN을 기반으로 2018년 1월 Detectron1의 모델이 발표되었었다. 이후 2018년 10월 새롭게 Mask R-CNN Model이 나오면서 이를 벤치마크하여 2019년 10월 Detectron2 모델이 발표되었다. 참고로 PyTorch 기반이다!
기존의 Detectron1보다 빠른속도, 높아진 Accuracy, Modular 등 여러가지 장점들이 추가되었다곤 한다. 그런데 직관적으로 생각해도 Faster R-CNN 벤치마크된 Detectron1보단, Mask R-CNN을 벤치마크한 2의 모델이 여러 기능적으로도 더 좋을수밖에 없지 않을까...?

Detectron2의 기능?

위 사진과같이 여러 기능들을 제공을한다.
우선 예상했던건 Mask R-CNN을 벤치마크 하였기에, B-BOX 및 Segmentation 기능들은 같이 제공이 된다. KeyPoint 이 기능도, 기존의 MASK R-CNN또한 pose estimation쪽에서 쓰이던 기능들이 있기에 사용한 것 또한 예상 안쪽이였다.
Dense Pose의 기능을 제외하면 기존의 Mask R-CNN Model에서 크게 벗어나지는 않는 느낌이다.

Detectron2의 성능지표?

뭐 복잡하게 해석할 필요 없이. 한마디로 "우리 기존모델보다 더 좋아" 이런 느낌이다.
Training Speed나 Accuracy가 기존의 Mask R-CNN과 Detectron1버전보다 월등히 좋다는 지표를 제시하고 있다.
(스포 살짝하자면 돌려본결과 체감이 그닥... 여전히 느린것 같은데..)

Detectron2 어디서 봐??

Detectron2 Github

위에 Detectron2 Github 주소로 가면, 친절하게 Install부터 동작과정까지.. 그리고 Model Zoo를 통해 Training Model 몇몇개도 써볼수 있다!
근데 여기서 잠깐 알아야 할 것은 Ubuntu 환경에서 동작이 가능하다!
그럼 윈도우 쓰는 사람들 다 포기하고 가야하느냐? 그건아니다

Detectron2 with Window!
위의 링크를 확인하면 Github에 친절히 Window를 통해서 Detectron2를 설치하는 방법이 나와있다. 본인에게 Ubuntu환경이 없는데 한번 돌려보고 싶다?! 그럼 위의 github 문서를 참고하자

Detectron2 예시로 돌려보았다?

궁금한건 못참고 지나가니까, 돌려보았다!
우선!

Detectron2 구동

위의 링크로 들어가면 자세한 설명들이 첨부되어있다!
진짜진짜 친절하게 하나하나 설명이 세세하게 잘되어있으니 꼭 꼭 보길!
아무래도 잘 모르겠다면, 자세한 설명이 있으니 한 번 참고하여 자신만의 Training Model을 만들어보는것도 좋을것 같다!

여튼 만들어 보기전에, DataSet은 귀여운 '쿼카' Img 10~20장정도의 소수의 Data로 만들어 보았다.
'labelme'를 사용하여 Object의 label을 하나하나 따주며,,, json파일로 각각 저장해주었다.....

labelme를 이용하여서 각 img별 label추출 후 json 저장..

(labelme 사용할때마다 느끼는데.. 진짜 labeling 하는 과정 너무싫다.... 지루해..)

위의 과정들로 DataSet들을 뽑아서 Colab에서 한번 Segmentation 및 B-BOX가 잘 나오는지 확인해 보았다!

labelme로 열심히 뽑아낸 label들이 잘 살아숨쉰다.. 감격하면서 데이터의 문제가 없음을 체크하고 임의의 Model을 Training시켰다. 이후 Model weights 값을 추출한 뒤 저장하여 주었다.
솔직히 10~20장정도의 Training Data로 실험을 한다는게 말이 안되긴 하는데... 그냥 잘 동작하는지만 보고 싶었으니까..!
(근데 이정도도 진짜 시간 오래걸리더라... cpu로 돌렸다면..?! 상상도 하기 싫다..)

이후 추출한 Weights 값들을 이용하여 기존 Dataset에 없던 새로운 쿼카사진을 넣어보았다...!
역시 Training Data가 적었던 탓일까? 쿼카의 머리랑 몸통을 각각 다른 B-BOX를 두어서 인식한다.. 그래도 머리는 100%의 Accuracy, 몸통은 93%.... 그래도 꽤나 잘 동작한다고 생각한다
한번 여유가 생길때 여러 DataSet들을 이용하여 다시 Weights값을 추출해서 해봐야겠다고 다짐했다...

여튼 Window에서도 Detectron2 동작 잘된다!

이만 노예는 다시 또 PPT만들러... 총총총...

profile
zZ.. zZ.. 🧑‍💻

0개의 댓글