설명
SPP_net은 "Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition"이라는 ECCV 2014 논문에 설명된 공간 피라미드 풀링(SPP) 알고리즘을 재구현한 프로젝트입니다. 이 재구현은 객체 탐지에 중점을 두고 있으며, 통계적 분산을 고려하여 원 논문에서 보고된 결과와 비교 가능한 결과를 달성하는 것을 목표로 합니다.
이 프로젝트는 구현에 Caffe 딥러닝 프레임워크를 활용하여, 원본 cuda-convnet 구현에 비해 코드 배포 및 사용이 용이합니다. 코드 배포는 주로 객체 탐지에 초점을 맞추고 있지만, 이미지 분류 학습 및 테스트를 위한 네트워크 구성 파일도 저장소에 포함되어 있습니다. 사용자는 질문이나 지원이 필요한 경우 개발자에게 문의할 수 있습니다.
SPP_net은 비상업적 용도로 사용할 수 있도록 단순 BSD 라이선스 하에 배포됩니다. 설치 과정에는 MATLAB 및 Caffe의 사전 요구 사항이 필요합니다. 저장소는 SPP mex 지원이 포함된 수정된 Caffe 버전과 래퍼에 대한 컴파일된 mex 및 C++ 파일을 제공합니다. 사용자는 Selective Search 코드 및 모델 패키지를 다운로드하도록 안내됩니다. 이 프로젝트는 PASCAL VOC에서 SPP_net 탐지기를 학습하기 위한 기본 파이프라인을 설명하며, 여기에는 특징 추출, 미세 조정, SVM 학습 및 테스트가 포함됩니다. 또한 특징 캐싱에 필요한 상당한 디스크 공간도 언급합니다.
SPP_net의 핵심 기여는 공간 피라미드 풀링의 구현입니다. 이 기법은 컨볼루션 신경망이 고정 크기 입력 레이어를 요구하지 않고도 임의 크기의 입력 이미지를 처리할 수 있도록 합니다. 이는 여러 스케일에서 특징을 풀링하여 입력 이미지 크기에 관계없이 고정 길이 표현을 생성함으로써 달성됩니다. 이러한 유연성은 강력한 객체 탐지 및 인식 작업에 중요합니다.
SPP_net 하이라이트
딥 컨볼루션 네트워크를 위한 공간 피라미드 풀링(SPP)의 재구현.
객체 탐지 및 시각 인식 작업에 중점.
Caffe 딥러닝 프레임워크 활용.
이미지 분류를 위한 네트워크 구성 파일 포함.
ECCV 2014 논문의 결과 재현 목표.
모델 학습 및 미세 조정을 위한 코드 제공.
임의 입력 이미지 크기 처리 지원.
여러 스케일에서 특징 풀링 구현.
비상업적 용도로 단순 BSD 라이선스 하에 배포.
설치를 위해 MATLAB 및 Caffe 사전 요구 사항 필요.
PASCAL VOC에서 탐지기 학습을 위한 파이프라인 제공.
SPP_net 시작하기
저장소 복제: git clone을 사용하여 SPP_net 소스 코드를 가져옵니다.
환경 설정: MATLAB 및 Caffe 사전 요구 사항이 설치되었는지 확인합니다.
빌드 스크립트: `spp_build()`를 실행하여 liblinear, Selective Search, spp_pool, nms와 같은 필요한 구성 요소를 컴파일합니다.
모델 다운로드: `external\fetch_model_data.m`을 실행하여 모델 패키지를 가져옵니다.
특징 추출: 제공된 스크립트를 사용하여 학습을 위해 특징을 디스크로 추출합니다.
모델 미세 조정: 추출된 특징을 사용하여 SPP_net 모델을 학습하거나 미세 조정합니다.
SVM 학습: 객체 탐지를 위한 서포트 벡터 머신을 학습합니다.
탐지기 테스트: 학습된 탐지기의 성능을 평가합니다.
SPP_net의 사용 사례
- 객체 탐지
- 시각 인식
- 이미지 분류
- 특징 추출
- 모델 미세 조정








