딥 러닝에서 가장 단순하지만 가장 흥미로운 아이디어 중 하나는 객체 감지입니다. 기본적인 아이디어는 각 항목을 비교 가능한 특성을 나타내는 연속적인 클래스로 나눈 다음 그 주위에 상자를 그리는 것입니다.
이러한 구별되는 특성은 형태나 색상처럼 단순할 수 있으며, 이는 우리가 분류하는 능력을 돕습니다.
의 응용 객체 감지 Computer Vision 및 Image Processing의 상당한 개선 덕분에 의학, 자율 주행, 국방 및 군사, 공공 행정 및 기타 여러 분야에서 널리 사용되고 있습니다.
여기에 Pytorch를 기반으로 구축된 환상적인 오픈 소스 객체 감지 도구 세트인 MMDetection이 있습니다. 이 기사에서 우리는 MMDetection을 자세히 조사하고, 실습하고, 기능에 대해 논의합니다.
MM탐지?
XNUMXD덴탈의 MM탐지 도구 상자는 객체 식별 및 인스턴스 분할과 관련된 문제를 위해 특별히 Python 코드베이스로 만들어졌습니다.
PyTorch 구현이 사용되며 모듈 방식으로 생성됩니다. 객체 인식 및 인스턴스 분할을 위해 광범위하고 효과적인 모델이 다양한 방법론으로 컴파일되었습니다.
효과적인 추론과 신속한 훈련이 가능합니다. 반면에 이 도구 상자에는 200개 이상의 사전 훈련된 네트워크에 대한 가중치가 포함되어 있어 개체 식별 필드에서 빠르게 수정할 수 있습니다.
현재 기술을 적용하거나 사용 가능한 모듈을 사용하여 새로운 감지기를 생성하는 기능으로 MMDetection은 벤치마크 기능을 합니다.
도구 상자의 핵심 기능은 일반 부품의 간단한 모듈식 부품을 포함한다는 것입니다. 물체 감지 고유한 파이프라인 또는 고유한 모델을 만드는 데 사용할 수 있는 프레임워크입니다.
이 툴킷의 벤치마킹 기능을 사용하면 기존 프레임워크 위에 새로운 감지기 프레임워크를 구축하고 성능을 비교할 수 있습니다.
특징
- Faster RCNN, Mask RCNN, RetinaNet 등과 같은 널리 사용되는 최신 탐지 프레임워크는 툴킷에서 직접 지원됩니다.
- 미세 조정(또는 새로 학습)을 위해 360개 이상의 사전 학습된 모델 사용.
- COCO, Cityscapes, LVIS 및 PASCAL VOC를 포함한 잘 알려진 비전 데이터 세트의 경우.
- GPU에서는 모든 기본 bbox 및 마스크 작업이 실행됩니다. Detectron2, maskrcnn-benchmark 및 SimpleDet과 같은 다른 코드베이스는 이것보다 더 빠른 속도로 또는 이와 동등하게 훈련될 수 있습니다.
- 연구원들은 물체 감지 프레임워크를 여러 모듈로 나눈 다음 결합하여 고유한 물체 감지 시스템을 만들 수 있습니다.
MMDetection 아키텍처
MMDetection은 각각 고유한 아키텍처가 있는 미리 빌드된 다양한 모델이 있는 도구 상자이기 때문에 모든 모델에 적용할 수 있는 일반 디자인을 지정합니다. 이 전체 아키텍처를 구성하는 구성 요소는 다음과 같습니다.
- 등뼈: 최종 완전 연결 레이어가 없는 ResNet-50과 같은 백본은 이미지를 피쳐 맵으로 변환하는 구성 요소입니다.
- 목: 목은 척추와 머리를 연결하는 부분입니다. 백본의 원시 기능 맵에서 특정 조정 또는 재구성을 수행합니다. Feature Pyramid Network는 하나의 일러스트레이션(FPN)입니다.
- 덴스헤드 (AnchorHead/AnchorFreeHead): RPNHead, RetinaHead, FCOSHead와 같은 AnchorHead 및 AnchorFreeHead와 같은 기능 맵의 밀집된 영역에서 작동하는 구성 요소입니다.
- RoI추출기: RoIPoling과 유사한 연산자를 사용하여 단일 또는 기능 맵 모음에서 RoIwise 기능을 가져오는 섹션입니다. SingleRoIExtractor 샘플은 기능 피라미드의 일치 수준에서 RoI 기능을 추출합니다.
- 로이헤드 (BBoxHead/MaskHead): RoI 특성을 입력으로 사용하고 경계 상자 분류/회귀 및 마스크 예측과 같은 RoI 기반 작업별 예측을 생성하는 시스템 부분입니다.
XNUMX단 및 XNUMX단 검출기의 구성은 앞서 언급한 개념을 사용하여 설명됩니다. 우리는 몇 가지 새로운 부품을 만들고 일부 기존 부품을 결합하여 간단하게 자체 절차를 개발할 수 있습니다.
MMDetection에 포함된 모델 목록
MMDetection은 잘 알려진 여러 모델 및 작업 지향 모듈에 대한 최고 수준의 코드베이스를 제공합니다. 이전에 만든 모델과 MMDetection 도구 상자와 함께 사용할 수 있는 적용 가능한 방법이 아래에 나열되어 있습니다. 더 많은 모델과 방법이 추가됨에 따라 목록이 계속 늘어납니다.
- 빠른 R-CNN
- 빠른 R-CNN
- 마스크 R-CNN
- 레티 나넷
- DCN
- DCNv2
- 캐스케이드 R-CNN
- M2Det
- GHM
- 스크래치 뎃
- 더블 헤드 R-CNN
- 그리드 R-CNN
- FSAF
- 천칭자리 R-CNN
- 지씨넷
- HRNet
- 마스크 스코어링 R-CNN
- FCOS
- SSD
- R-FCN
- 혼합 정밀 훈련
- 무게 표준화
- 하이브리드 태스크 캐스케이드
- 가이드 앵커링
- 일반 주의
MMDetection을 사용하여 객체 감지 모델 구축
이 튜토리얼에서는 설정 및 사용이 쉽기 때문에 Google 콜라보 노트북이 될 것입니다.
설치
필요한 모든 것을 설치하려면 먼저 필요한 라이브러리를 설치하고 MMdetection GitHub 프로젝트를 복제합니다.
환경 가져오기
이제 우리 프로젝트의 환경을 저장소에서 가져올 것입니다.
라이브러리 가져오기 및 MMDetection
이제 MMdetection과 함께 필요한 라이브러리를 가져올 것입니다.
사전 훈련된 체크포인트 다운로드
이제 추가 조정 및 추론을 위해 MMdetection의 사전 훈련된 모델 체크포인트를 다운로드해야 합니다.
건물 모델
이제 모델을 구성하고 데이터 세트에 체크포인트를 적용합니다.
추론 검출기
이제 모델이 제대로 구성되고 로드되었으므로 얼마나 우수한지 확인해 보겠습니다. MMDetection의 고급 API 추론 감지기를 활용합니다. 이 API는 추론 프로세스를 더 쉽게 하기 위해 설계되었습니다.
결과
결과를 살펴보겠습니다.
결론
결론적으로 MMDetection 도구 상자는 SimpleDet, Detectron 및 Maskrcnn-benchmark와 같은 최근에 출시된 코드베이스보다 성능이 뛰어납니다. 대규모 모델 컬렉션으로,
MMDetection은 이제 최첨단 기술입니다. MMDetection은 효율성과 성능 면에서 다른 모든 코드베이스를 능가합니다.
MMdetection의 가장 좋은 점 중 하나는 이제 다른 구성 파일을 가리키고, 다른 체크포인트를 다운로드하고, 모델을 변경하려는 경우 동일한 코드를 실행할 수 있다는 것입니다.
나는 그들의 명령 단계 중 하나에 문제가 발생하거나 일부 단계를 다르게 수행하려는 경우.
댓글을 남겨주세요.