수업:
SSD(Single Shot Detection):
SSD Network 구조
Anchor Box의 크기는 고정하되, Feature map의 크기를 줄여나간다 => MaxPooling과 같은 효과
SSD 주요 구성 요소
Multi Scale Feature LAyer
Default (Anchor) Box
AnchorBox 덕분에 Selective Search보다 계산량이 적음 => 훈련할떈 모르겠으나 사용할떈 빠름
SSD Node 수
- 4개의 Anchor Box
- Classifier: 3 * 3 * (4 * (classes + 4))
- 4: 4개의 Anchor box
- 4: 좌표
- 2~4번째 Conv 레이어에서는 Anchor Box 의 개수가 6개로 바뀜
Yolo(You Only Look Once)
mAP:
Precision과 Recall:
- Precision: 정확하게 감지된 객체의 비율을 나타냅니다. 즉, 실제로 얼마나 많은 예측이 정확했는가를 나타냅니다.
- Recall: 실제 객체 중 감지된 객체의 비율을 나타냅니다. 즉, 실제 객체 중 얼마나 많이 감지되었는가를 나타냅니다.
각 클래스 별 AP (Average Precision) 계산:
- 각 클래스에 대해 Precision-Recall 곡선을 그립니다.
- 이 곡선 아래 영역의 면적을 계산하여 각 클래스에 대한 AP를 산출합니다.
- Precision-Recall 곡선은 다양한 임계값(Threshold)에 대한 Precision과 Recall 값을 연결한 것입니다.
mAP 계산:
- 모든 클래스에 대한 AP의 평균을 취합니다.
- 이는 모든 클래스에 걸친 성능의 평균을 나타냅니다.
YOLO v1
- 입력 이미지를 S X S Grid로 나누고 각 Grid의 Cell이 하나의 Object에 대한 Detection 수행
- 각 Grid Cell 이 2개의 Bounding Box 후보를 기반으로 Object의 Bounding Box를 예측
특징:
- 7X7 Grid가 기준 (SSD는 픽셀이 기준)
Convolutional Layers (CONV) with Max Pooling:
- CONV 1-4: 입력 이미지로부터 저수준 특징을 추출
- 예를 들어, 에지나 질감과 같은 기본적인 시각적 요소들이다. 이 레이어들 사이에는 일반적으로 맥스 풀링(Max Pooling) 레이어가 있어서 특징 맵의 차원을 줄이고, 과적합을 방지하는 동시에 모델의 공간적 허용오차를 증가시킨다
- CONV 5-8: 더 복잡한 특징을 추출하며, 이러한 특징들은 객체의 부분이나 특정 패턴을 나타냄
- 풀링 레이어는 이 과정에서도 특징 맵의 크기를 줄이는 데 사용됨
- CONV 1-4: 입력 이미지로부터 저수준 특징을 추출
Fully Connected Layers (FC):
- FC 1-2: 특징 맵을 일렬로 펼친 후, 고차원 특징들을 결합하여 감지하고자 하는 객체와 관련된 고수준 특징을 학습
- 이 층들은 이미지 내의 객체의 복잡한 관계들을 인코딩하는 역할
- FC 1-2: 특징 맵을 일렬로 펼친 후, 고차원 특징들을 결합하여 감지하고자 하는 객체와 관련된 고수준 특징을 학습
Output Layer:
- FC 3 (Detection Layer): 마지막 풀리 커넥티드 레이어는 신경망의 최종 출력층으로, 각 그리드 셀에 대해 여러 개의 바운딩 박스를 예측하고, 각 박스에 대한 신뢰도 점수(해당 박스가 객체를 포함하고 있을 확률과 그 박스가 객체를 얼마나 잘 포함하고 있는지를 나타내는 IOU)와 클래스 확률을 출력
- 이 레이어의 출력은 실제 객체 감지에 필요한 모든 정보를 포함한다
- FC 3 (Detection Layer): 마지막 풀리 커넥티드 레이어는 신경망의 최종 출력층으로, 각 그리드 셀에 대해 여러 개의 바운딩 박스를 예측하고, 각 박스에 대한 신뢰도 점수(해당 박스가 객체를 포함하고 있을 확률과 그 박스가 객체를 얼마나 잘 포함하고 있는지를 나타내는 IOU)와 클래스 확률을 출력
YOLO의 좌표
- Center 좌표값 2개
- Width
- Height
Loss Function
NMS 작업
YOLO v2
- SSD와 마찬가지로 1개의 Cell에서 여러 개의 Anchor를 통해 개별 Cell에서 여러 개 Object Detection RKSMD
- K-Means Clustering을 통해 데이터 세트의 이미지 크기와 Shape Ratio 따른 5개의 군집화 분류를 하여 Anchor Box 계산
특징:
- Anchor Box 5개
- 입력 이미지를 13 X 13 Grid로 늘림
YOLO v3
- Anchor Box 3개
정리:
Single-Shot Detection (SSD) vs Two-Shot Detection
Single-Shot Detection (SSD)
- 추론 횟수: 한 번의 추론(Inference)으로 객체의 위치와 분류를 수행.
- 속도: 매우 빠름, 단일 추론 과정 덕분.
- 정확도: 상대적으로 높지만, 복잡한 장면에서는 Two-stage 방식보다 낮을 수 있음.
- 특징: 다양한 크기의 특징 맵(Feature Maps)을 사용하여 다양한 크기의 객체 감지.
- 예시: SSD (Single Shot MultiBox Detector).
Two-Shot Detection
- 추론 횟수: 두 번의 추론 과정을 거침 - 첫째, 객체 위치 식별; 둘째, 객체 분류.
- 속도: Single-Shot에 비해 느림, 여러 단계를 거치기 때문.
- 정확도: 일반적으로 높은 정확도 제공, 복잡한 장면에서도 효과적.
- 특징: 첫 번째 단계에서 영역 제안(Region Proposal)을 생성하고, 두 번째 단계에서 이들 영역을 분류.
- 예시: Two-stage Detection 방식, 예를 들어 R-CNN 계열의 알고리즘.
Sliding Window 와 Anchor Boxes의 차이점
Sliding Window
- 스캔 방식: 이미지 전체를 고정된 크기의 윈도우로 순차적으로 스캔
- 특징 추출: 이동하면서 각 위치에서 특징을 추출하고 객체의 유무를 판단
- 크기 한계: 고정된 윈도우는 다양한 크기에 대응하기 어려움
- 계산 부담: 모든 위치에 대해 개별적인 분류 작업이 필요해 처리 시간이 길어짐
- 적용 분야: 전통적인 컴퓨터 비전과 머신 러닝에서 감지 및 분류 작업에 사용
Anchor Boxes
- 다중 상자 적용: 각 위치에 다양한 크기와 비율로 미리 정의된 상자들을 적용
- 유연한 감지: 여러 형태의 객체를 한 위치에서 동시에 감지할 수 있는 능력
- 효율성: 특징 맵을 기반으로 한 번의 계산으로 위치와 클래스를 예측
- 적용 분야: Faster R-CNN, YOLO와 같은 최신 딥러닝 기반 객체 검출 모델
차이점
- 크기 적응성: Sliding Window는 한 크기에 국한되나, Anchor Boxes는 다양한 크기와 형태를 커버
- 계산 효율성: Sliding Window는 위치마다 반복 계산이 필요하나, Anchor Boxes는 전체 이미지에 대해 효율적으로 계산
- 검출 방식: Sliding Window는 전통적 접근 방식, Anchor Boxes는 현대적 딥러닝 접근 방식
딥러닝 모델의 속도 두가지
- raining 속도
- inference 속도
Continual Learning: GEN(Gradient Eposodic Memory): https://arxiv.org/abs/1706.08840, https://arxiv.org/pdf/1706.08840.pdf
Feature Pyramid Networks (FPN)과 SSD 비교
- Feature Pyramid Networks (FPN)는 객체 감지에 있어서 피라미드 구조를 사용하는 기술로, 이미지의 다양한 해상도에서 특징을 추출하여 객체를 감지
- 반면, SSD는 다양한 크기의 특징 맵에서 직접 객체 감지를 수행
FPN (Feature Pyramid Networks)
- 피라미드 구조: 다양한 해상도의 특징 맵을 생성하여 작은 객체부터 큰 객체까지 감지
- 계층적 처리: 고해상도에서 저해상도로 정보를 전달하며 특징을 향상시킴
- 속도: 상대적으로 느린 편이지만 높은 정확도를 제공, 특히 작은 객체 감지에 유리
SSD (Single Shot MultiBox Detector)
- 고정된 그리드: 이미지 전체에 걸쳐 고정된 그리드 상에서 다양한 크기의 객체를 한 번에 감지
- 단일 추론: 객체의 클래스와 경계 상자를 단일 네트워크 패스로 예측
- 속도: 빠른 추론 속도, 복잡한 피라미드 구조보다 단순한 아키텍처
SSD가 더 빠른 이유
- SSD는 객체 감지를 위해 단일 네트워크 패스만을 사용합니다. 이는 여러 스케일에서 각각의 특징을 추출하고 처리하는 것보다 계산적으로 효율적입니다.
- SSD는 다양한 크기의 특징 맵에서 직접 감지를 수행하므로 복잡한 상향 및 하향 샘플링 과정이 필요 없습니다.
- FPN이 특징 맵을 여러 스케일에서 통합하여 정확도를 높이는 반면, SSD는 간결함을 유지하며 빠른 속도로 추론합니다.
Word Embedding vs One-Hot Encoding
One-Hot Encoding
- Word Embedding: