-
Detectron2<OpenCV>/[model] 2022. 6. 6. 16:41728x90
탐지 : Box, Mask, Keypoint, Densepose, Semantic segmentation
Facebook AI Research Team에서 발표한 Model로, 기존의 Detectron1 Model의 다음 모델이다.
IEEE 2015에 나온 Faster R-CNN을 기반의 Detectron1 모델 발표
이후 Mask R-CNN Model 기반의 Detectron2 모델 발표
PyTorch 기반
페이스북이 딥러닝 프레임워크 카페(Caffe)의 새로운 포크인 카페2(Caffe2)
카페의 학습 스타일을 pytorch로 짠 것Detectron2가 다른 오픈 소스들에 비해 빠른이유는 python 최적화가 잘되어있기도 합니다만, 그 외에 연산량이 많이 드는 부분(box iou를 계산, defromable conv)을 python이 아닌 CUDA와 C로 구현했기에 보다 좋은 성능을 냈습니다.
여기서 layers 폴더를 열어보면 C와 CUDA로 된 파일들이 나오는데, 이는 python으로 구현시 연산량을 많이 잡아먹는 부분을 빠르게 계산하기 위해 구현했습니다.
1. config 폴더는 detectron2 사용시 필요한 하이퍼파라미터들이 정의되어 있고 이를 변경하여 사용하면 됩니다.
2. Engine은 FAIR에서 caffe 스타일의 training loop를 가져와 pytorch로 구현한 부분입니다. 이를 통해 학습 과정을 추상화시킬 수 있습니다.
3. model zoo는 FAIR에서 학습한 모델들이 관리되는 폴더입니다.
먼저 tools 폴더를 보면, 학습에는 2가지가 존재하며 plain_train_net.py 파일과 train_net.py 입니다.
plain_train_net.py 파일은 추상화가 덜 되있어 구조 파악이 쉽지만, SGD-momentum을 이용한 학습만 지원하고 나머지 기능들은 지원하지 않는다고 적혀있습니다.
train_net.py 파일은 training loop가 추상화가 되있어 실제 training loop가 어떻게 도는지 파악이 힘듭니다. Engine이라는 것을 사용해 학습을 하며, learning rate warmup과 같은 기능들을 사용해 학습을 진행합니다. 즉 이 engine을 이용하면 사용자는 학습과정은 신경쓰지 않고 오로지 모델과 loss만 신경쓰면 되는 구조입니다.
Detectron1보다 빠른속도, 높아진 Accuracy, Modular 등 여러가지 장점들이 추가되었다곤 한다.Semantic Segmentation은 이미지의 모든 픽셀에 레이블을 할당하는 프로세스입니다. 이는 전체 그림에 단일 레이블이 할당되는 분류와 극명한 대조를 이룹니다.
728x90'<OpenCV> > [model]' 카테고리의 다른 글
SPP (0) 2022.06.07 칼만 필터 (0) 2022.06.07 CSPNet (0) 2022.06.07 R-CNN, Fast R-CNN, Faster R-CNN (0) 2022.06.07 Detectron2 vs YOLOv5 (0) 2022.06.06