단안 카메라 기반 조류 거리 추정 아이디어 도출 과정
1. 출발점 — 단안 카메라를 이용한 조류 거리 추정
❍ 고정형 단안 카메라에서 탐지된 조류의 영상상 크기와 실제 크기를 이용하면 기하학적으로 거리를 추정할 수 있을 것으로 판단
- 카메라 초점거리, 조류의 실제 크기, 영상에서 관측되는 크기의 관계를 이용
- 조류 종을 분류할 수 있다면 종별 평균 몸길이, 날개폭 등의 실제 크기 정보를 활용 가능
- 초기 아이디어는 종별 실제 크기와 영상에서 측정된 조류 크기를 대응하여 거리를 계산하는 방식
- 는 카메라와 조류 사이 거리
- 는 픽셀 단위 초점거리
- 은 조류의 실제 크기
- 는 영상에서 관측된 조류 크기
❍ 가장 단순한 구조는 다음과 같이 설정 가능
조류 탐지
↓
종 분류
↓
종별 실제 크기
+
영상상 조류 크기
↓
카메라 기하 계산
↓
거리2. 첫 번째 문제 — 조류는 영상에서 일정한 크기로 나타나지 않음
❍ 조류는 자동차나 표지판과 같은 강체 객체가 아니라 비강체 객체이므로 실제 거리가 동일하더라도 행동과 자세에 따라 영상상의 크기가 크게 변화
- 날개를 완전히 펼친 경우 영상상 크기가 크게 증가
- 날개를 접은 경우 영상상 크기가 감소
- 측면 자세와 정면 자세에서 몸체 길이가 다르게 투영
- 비행 방향과 카메라 방향의 관계에 따라 원근 투영 정도가 변화
- 몸을 숙이거나 회전하는 경우에도 apparent scale 변화
- 일부 가림이나 Detection 오류에 의해 순간적으로 크기가 변화할 수 있음
❍ 따라서 영상에서 조류 크기가 작아졌다는 사실만으로 실제 거리가 증가했다고 판단할 수 없음
영상상 크기 감소
↓
실제 거리 증가?
자세 회전?
날개 접힘?
몸의 방향 변화?
가림?
Detection 오류?❍ 결국 해결해야 할 핵심 문제는 다음 두 종류의 scale change를 구별하는 것
Distance-induced scale change
vs.
Pose-induced scale change3. 첫 번째 해결 후보 — Keypoint를 이용한 자세 추정
❍ 조류의 자세 변화 문제를 직접 해결하기 위한 방법으로 anatomical keypoint 검출을 우선 고려
- Beak
- Head
- Body
- Tail
- Wing Root
- Wing Tip 등
❍ Keypoint를 이용하면 단순한 영상상 크기뿐 아니라 조류의 자세와 방향에 대한 추가 정보 획득 가능
Head ─ Body ─ Tail
│
Wing Root❍ 예를 들어 동일한 apparent size 감소라도 keypoint 배치를 통해 다음 상황을 구분할 가능성 존재
실제로 거리가 증가하여 작아진 경우
vs.
조류가 카메라 방향으로 회전하여
투영 길이가 짧아진 경우❍ 실제 생물학적 크기와 대응되는 anatomical length를 정의할 수도 있음
Head ↔ Tail Base
Left Wing Root ↔ Right Wing Root
Left Wing Tip ↔ Right Wing Tip❍ 그러나 Keypoint를 처음부터 반드시 사용해야 하는지에 대한 의문 발생
- 별도의 Keypoint 모델 필요
- Keypoint annotation 필요
- 연산량 증가
- 먼 거리의 작은 조류에서는 keypoint 자체가 몇 픽셀 수준
- 1~2 pixel의 오차가 실제 길이 측정에서 매우 큰 상대오차로 이어질 수 있음
❍ 따라서 자세 문제를 반드시 매 프레임 직접 해결해야 하는지 다시 검토
4. 두 번째 접근 — 매 프레임의 자세를 굳이 해석하지 않아도 되지 않을까
❍ 동일 조류를 여러 프레임 동안 추적하면 날갯짓과 자세 변화로 인해 다양한 apparent scale이 반복적으로 관측될 것이라는 점에 주목
Frame 1 24
Frame 2 27
Frame 3 35
Frame 4 48
Frame 5 55
Frame 6 47
Frame 7 34
Frame 8 25
...❍ 이 경우 각각의 프레임에 대해
왜 24 pixel인가?
왜 55 pixel인가?를 직접 해석하지 않더라도 일정 시간 동안 수집된 크기 분포 자체를 이용할 수 있을 것으로 판단
❍ 즉 접근 방향이 다음과 같이 변화
기존 생각
Pose를 직접 추정
↓
Scale 보정
↓
Distance새로운 생각
여러 Pose가 포함된 Scale Distribution
↓
극단적인 Scale 제거
↓
대표적인 Apparent Scale 추출
↓
Distance5. Multi-frame BBox 기반 아이디어 도출
❍ Object Detection 단계에서 BBox는 기본적으로 생성되므로 추가 모델 없이 바로 사용할 수 있는 가장 간단한 관측치로 우선 검토
❍ 동일한 에 대해 일정 시간 동안 다음 값을 저장
- BBox Width
- BBox Height
- BBox Area
- BBox Diagonal
- Aspect Ratio
❍ 30 FPS 영상 기준으로 시간 Window를 환산하면 다음과 같음
15 Frame = 약 0.5초
30 Frame = 약 1초
60 Frame = 약 2초❍ 일정 시간 동안 동일 Track의 BBox 크기를 축적한 뒤 지나치게 큰 값과 작은 값을 제거하는 방법 검토
최근 N Frame
↓
BBox Scale 수집
↓
Scale 정렬
↓
하위 극단값 제거
상위 극단값 제거
↓
대표 Scale 계산6. 사분위수 기반 극단값 제거 아이디어
❍ 날개를 완전히 펼친 상태와 완전히 접은 상태 등이 Scale Distribution의 양 극단에 나타날 가능성을 고려
❍ 예를 들어 이하와 이상을 제거하고 중앙 50%만 사용하는 방법 검토
전체 Scale Distribution
최소값 최대값
│ │
├──────┬────────────────┬────────┤
Q1 Q3
↑ ↑
하위 25% 상위 25%
제거 제거
중앙 50% 사용❍ 중앙 구간에서 평균을 계산하면 극단적인 자세나 Detection 오류의 영향을 줄일 수 있을 것으로 예상
단,
❍ 해당 방식은 일반적인 평균보다 outlier에 강하고, 중앙값보다 여러 관측값을 함께 이용할 수 있다는 특징 존재
7. 핵심 가설 — Temporal Robust Apparent Scale
❍ 이 과정에서 핵심 연구 가설이 형성됨
동일한 조류 Track에서 일정 시간 동안 관측되는 apparent scale의 분포 중 극단적인 값을 제거하면 자세 변화에 따른 scale noise를 억제하고 실제 거리와 더 강한 관계를 가지는 representative apparent scale을 얻을 수 있는가
❍ 핵심은 조류의 자세를 직접 완벽하게 추정하는 것이 아니라 자세 변화에 의해 발생한 scale variation을 시간축 통계로 완화하는 것
Pose Estimation
↓
Pose Correction이 아니라
Pose Variation 발생
↓
Multi-frame Scale Distribution
↓
Robust Statistics
↓
Representative Apparent Scale방식으로 접근
8. 단순 Smoothing과의 차이
❍ 단순 평균, 이동평균, Kalman Filter는 측정값 자체를 부드럽게 만드는 역할 수행
20
21
50
22
20
↓
평균 또는 Filtering❍ 그러나 현재 아이디어는 지나치게 큰 값이나 작은 값을 자세 변화 또는 Detection 이상치로 보고 representative scale 계산 단계에서 영향력을 감소시키는 방식
20
21
50
22
20
↓
50의 신뢰도를 낮추거나 제거
↓
20, 21, 22, 20 중심으로
Representative Scale 계산❍ 따라서 Kalman Filter와 Robust Temporal Aggregation은 서로 다른 역할을 가짐
Robust Temporal Aggregation
→ 잘못되거나 극단적인 관측값의 영향 감소
Kalman Filter
→ 최종 거리값의 시간적 흔들림 감소9. 어떤 대표값을 사용할 것인지는 아직 결정하지 않음
❍ BBox 또는 다른 apparent scale에서 사용할 대표 통계량은 사전에 고정하지 않고 실험적으로 비교할 필요
Minimum
- 날개를 접은 상태를 나타낼 가능성
- 부분 가림이나 Detection miss에 매우 취약
- 안정적인 대표 크기로 사용하기에는 위험 가능성 존재
Maximum
- 날개 완전 전개 상태를 포착할 가능성
- 실제 wingspan과 연결될 가능성 존재
- 단일 Detection overshoot에도 민감
Mean
- 모든 값을 사용
- 구현이 단순
- 극단적인 자세와 Detection 오류에 영향받음
Median
- Outlier에 강함
- Scale Distribution의 중심을 안정적으로 표현
- 해당 값이 실제 어떤 생물학적 길이와 대응되는지는 불명확
Trimmed Mean
- 상·하위 극단값 제거 가능
- 여러 중간 상태를 함께 활용
- 현재 아이디어에서 주요 비교 후보
Percentile
- 등 비교 가능
- 특정 percentile이 실제 몸통 크기 또는 날개 전개 상태와 가장 강한 관계를 가질 가능성 존재
❍ 따라서 다음과 같은 방식으로 실제 GT 거리와 비교하여 최적 통계량을 선택
Median
vs.
Central 50% Trimmed Mean
vs.
P60
vs.
P75
vs.
P9010. BBox에서 어떤 크기를 사용할지도 결정하지 않음
❍ BBox Width 하나만 이용하면 날개 좌우 전개에 매우 큰 영향을 받을 가능성 존재
❍ BBox Height 역시 자세와 비행 방향에 영향을 받을 수 있음
❍ 이에 따라 여러 apparent scale 후보 비교 필요
❍ 정상적인 원근 투영 상황에서는 선형 크기가 거리의 역수에 대략적으로 비례
따라서
의 관계를 기대할 수 있음
❍ 다만 새의 자세 변화가 있기 때문에 실제 데이터에서 어떤 scale representation이 가장 안정적인지는 실험 필요
11. 60 Frame 전체를 사용하는 것에 대한 문제 제기
❍ 30 FPS에서 60 Frame은 약 2초에 해당
❍ 비행 중인 새는 2초 동안 실제 거리가 크게 변화할 수 있으므로 60 Frame 전체를 하나의 대표값으로 만들 경우 실제 거리 변화까지 평균화할 위험 존재
0초 25m
1초 20m
2초 15m❍ 이 상태에서 2초 전체의 apparent scale을 하나로 만들면 자세 variation은 줄어들지만 실제 접근 운동도 함께 제거될 수 있음
❍ 따라서 고정된 긴 Window보다는 짧은 Sliding Window 방식이 더 적합할 가능성 존재
Frame 1 ~ 30
↓
Representative Scale
Frame 6 ~ 35
↓
Representative Scale
Frame 11 ~ 40
↓
Representative Scale❍ 현재는 15, 30, 60 Frame 중 어느 것이 적절하다고 결정한 상태가 아니며 실험적 비교 대상
12. 여기서 BBox 자체에 대한 의문 발생
❍ Temporal statistics 아이디어를 검토하는 과정에서 BBox를 반드시 사용해야 하는지에 대한 의문 발생
❍ BBox는 실제 조류 외의 빈 공간을 포함
BBox
┌────────────────────┐
│ Wing Wing │
│ Body │
│ │
└────────────────────┘❍ 특히 날개를 펼친 새처럼 형태가 복잡한 경우 BBox Area와 실제 조류 foreground area 사이에 큰 차이가 발생할 수 있음
❍ 거리 추정 정확도 자체만 고려하면 실제 silhouette을 사용하는 Segmentation이 더 적합할 가능성 제기
13. Segmentation으로 사고 확장
❍ 기존의 Temporal BBox 아이디어는 실제로 BBox에 종속된 아이디어가 아니라는 점 확인
❍ Segmentation에서도 각 프레임에서 다양한 geometric scale을 계산할 수 있음
- Mask Area
- Major Axis
- Minor Axis
- Maximum Feret Diameter
- Oriented Bounding Rectangle
- Convex Hull
- Aspect Ratio
- Solidity
❍ 예를 들어 Mask Area를 라고 할 경우 선형 apparent scale 후보로 다음 값을 사용할 수 있음
❍ 동일한 형태의 물체가 단순히 원근에 의해 확대·축소된다고 가정하면 projected area는 대략 다음 관계를 가짐
따라서
관계를 기대할 수 있음
14. Temporal Robust BBox에서 Temporal Robust Apparent Scale로 개념 확장
❍ 초기 아이디어
N-frame BBox
↓
Robust Statistics
↓
Stable BBox Scale❍ 이후 일반화된 아이디어
N-frame Visual Scale
↓
Robust Statistics
↓
Stable Apparent Scale❍ 따라서 입력 representation은 아직 결정되지 않음
BBox Scale
또는
Segmentation Silhouette Scale
또는
Keypoint Anatomical Scale
또는
이들의 조합❍ 현재 핵심은 어떤 representation을 사용하는가보다 Multi-frame information을 통해 pose-induced scale variation을 얼마나 줄일 수 있는지 검증하는 것
15. Segmentation의 장점
❍ BBox보다 실제 조류의 영상상 영역을 정확하게 표현 가능
❍ 조류가 실제로 차지하는 pixel만을 이용하기 때문에 BBox에 포함되는 빈 공간 문제 감소
❍ 단순 Width와 Height 외에 silhouette 자체의 기하 정보를 활용 가능
Mask Area
Major Axis
Minor Axis
Maximum Diameter
Orientation
Shape❍ 서버에서 Bird Detection 이후 Crop 단위로 Segmentation을 수행할 경우 전체 Full-HD 영상에 Segmentation을 수행하는 것보다 연산량을 크게 줄일 수 있음
Full Frame
↓
Bird Detection
↓
Bird Crop
↓
Segmentation❍ 따라서 서버 연산이 가능한 환경에서는 Segmentation의 추가 연산량이 정확도 향상 대비 반드시 큰 Trade-off라고 단정하기 어려움
16. 그러나 Segmentation도 자세 문제를 해결하지는 못함
❍ Segmentation은 새의 경계를 BBox보다 정확하게 표현하지만 3차원 자세를 직접 알아내는 것은 아님
❍ 같은 거리에서도 자세에 따라 Mask가 크게 변화
날개 완전 전개
→ Mask Area 증가
날개 접힘
→ Mask Area 감소
측면 자세
→ Major Axis 증가
정면 자세
→ Major Axis 감소❍ 따라서 Segmentation으로 전환하더라도 Pose-induced Scale Variation 문제는 남아 있음
❍ 이에 따라 Temporal Robust Aggregation 아이디어는 Segmentation에서도 그대로 유효할 가능성 존재
Mask Scale(t-N)
...
Mask Scale(t)
↓
Scale Distribution
↓
Median / Trimmed Mean / Percentile
↓
Representative Mask Scale17. Keypoint의 역할 재정의
❍ 초기에는 Keypoint를 실제 조류 길이를 직접 측정하기 위한 주 관측치로 생각
❍ 이후 논의에서는 Keypoint의 더 중요한 역할을 Pose 및 Orientation 설명 정보로 재정의
Segmentation
→ 얼마나 크게 보이는가
Keypoint
→ 왜 그렇게 보이는가❍ 예를 들어 Mask Scale이 감소했을 때 Keypoint 구조를 이용하여 다음을 판단할 수 있음
실제 거리 증가 가능성
vs.
정면 회전에 따른 투영 길이 감소 가능성❍ 따라서 Keypoint는 Apparent Scale Estimation의 주 관측치가 될 수도 있지만 Segmentation 또는 BBox의 Scale Bias를 보정하는 보조 정보가 될 수도 있음
18. Keypoint가 항상 우월하지는 않을 가능성
❍ 가까운 거리에서는 Keypoint가 매우 유용할 수 있으나 원거리에서는 각 point의 pixel-level localization error가 크게 작용
❍ 예를 들어 조류 전체 크기가 15~25 pixel 수준이라면
BBox
→ 객체 전체 영역은 검출 가능할 수 있음
Segmentation
→ Boundary 1~2 pixel 오차가 크게 작용
Keypoint
→ Anatomical Point 1~2 pixel 오차가 매우 크게 작용❍ 따라서 거리별로 최적 representation이 달라질 가능성 존재
근거리
→ Keypoint가 유리할 가능성
중거리
→ Segmentation이 유리할 가능성
원거리
→ BBox가 상대적으로 안정적일 가능성❍ 현재 단계에서는 해당 관계 역시 가설이며 실제 데이터 검증 필요
19. 현재 BBox, Segmentation, Keypoint 중 어느 것도 최종 선택하지 않음
❍ 현재 세 방법은 최종 결정된 방법이 아니라 비교해야 할 후보 representation
BBox
- 가장 간단
- Detection 결과에서 즉시 획득
- 추가 annotation 필요 없음
- 계산량 매우 작음
- 먼 거리에서 상대적으로 안정적일 가능성
- 실제 foreground보다 조악한 Scale
Segmentation
- 실제 silhouette 이용
- Apparent Scale 측정 정확도 향상 가능
- 다양한 shape feature 활용 가능
- Pose 문제 자체는 해결하지 못함
- 먼 거리에서는 Boundary Error 증가 가능
Keypoint
- Anatomical Correspondence 확보
- Pose와 Orientation 분석 가능
- 실제 신체 길이와 직접 연결 가능
- 별도 annotation과 모델 필요
- 작은 객체에서 Localization Error 증가 가능
❍ 따라서 현재 질문은 다음과 같음
BBox, Segmentation, Keypoint 중 무엇이 가장 좋은가가 아니라 각각의 Visual Representation이 Temporal Robust Scale Estimation에서 어느 정도의 정확도와 안정성을 제공하는가
20. Kalman Filter의 역할
❍ Kalman Filter를 사용하면 시간에 따른 거리값의 흔들림을 줄일 수 있음
❍ 그러나 Kalman Filter는 자세 변화로 발생한 systematic bias를 해결하지 못함
예를 들어 실제 거리가 20m임에도 자세 때문에 다음과 같이 측정된다면
14m
15m
14m
15m
15mKalman Filter는 결과를 20m로 보정하는 것이 아니라 약 15m 부근에서 안정적으로 만들 가능성이 높음
❍ 따라서 처리 순서는 다음과 같이 구성해야 할 가능성이 높음
Raw Visual Observation
↓
Quality Filtering
↓
Pose-induced Outlier 억제
↓
Robust Temporal Aggregation
↓
Representative Apparent Scale
↓
Camera Geometry
↓
Raw Distance
↓
Kalman Filter
↓
Final Distance21. 거리 추정 결과를 반드시 정밀한 Meter로 출력해야 하는가
❍ 시스템의 최종 목적이 조류 퇴치 의사결정이라면 반드시 17.3m와 같은 정밀한 연속값이 필요하지 않을 가능성 존재
❍ 거리 추정 결과를 Zone Classification으로 단순화하는 방법 검토
NEAR
MID
FAR
UNKNOWN❍ 예시
NEAR 0 ~ 10m
MID 10 ~ 20m
FAR 20 ~ 30m❍ 실제 Zone 경계는 균등 거리보다 퇴치 장치의 실제 작동 정책이나 유효 거리 기준으로 설정하는 것이 적절
❍ Metric Distance에서 수 m 수준의 오차가 발생하더라도 Zone Classification은 충분히 안정적일 가능성 존재
22. 고정 카메라 환경에서는 모든 행동을 같은 방식으로 거리 추정할 필요가 없음
❍ 카메라가 고정되어 있으므로 조류의 행동 상태에 따라 서로 다른 거리 추정 방법을 사용할 수 있음
GROUND
❍ 조류가 지면에 있는 경우 Ground Plane 또는 Homography를 이용한 기하 계산이 가장 직접적인 방법
Bird Ground Contact Point
↓
Ground Plane
↓
Real-world Coordinate
↓
DistancePERCHED
❍ 나무, 전봇대, 구조물 등 고정된 Scene Object는 사전에 위치를 측정할 수 있음
Tree A = 약 12m
Tree B = 약 20m
Pole A = 약 8m❍ 조류가 어느 구조물에 앉아 있는지만 판단하면 Scene Geometry를 이용하여 거리를 추정 가능
FLYING
❍ 공중에 있는 조류는 단일 영상 좌표만으로 Depth를 결정할 수 없으므로 가장 어려운 상태
❍ 따라서 Temporal Apparent Scale, Species Prior, Pose Information 등의 활용 필요
23. TAKEOFF와 LANDING을 Depth Anchor로 사용하는 아이디어
❍ 비행 전후의 위치가 고정된 Scene Geometry와 연결될 경우 비행 거리 추정에 강한 초기 조건 제공 가능
Tree A = 21m
PERCHED
↓
TAKEOFF
↓
FLYING❍ 비행 시작 시점의 Depth가 약 21m라는 강한 Prior 확보
❍ 반대로
FLYING
↓
LANDING
↓
Tree B = 12m이면 비행 종료 시점의 Depth를 약 12m로 설정 가능
❍ 따라서 비행 Track 전체를 매 Frame 독립적으로 거리 추정하지 않고 시작과 종료 위치를 활용하여 Temporal Estimation 가능
24. Species Morphology Prior 활용 가능성
❍ 동일한 pixel 크기라도 실제 조류 종에 따라 실제 크기가 다르므로 거리 해석 결과가 달라짐
❍ 종 분류 결과와 종별 morphology 정보를 연결할 필요
Species Classification
↓
Species Morphology Prior
↓
Body Length
Wingspan
Torso Size
Tail Length
↓
Distance Geometry❍ 단일 평균값보다 실제 개체 차이를 고려하여 크기 분포로 관리하는 방법도 고려 가능
❍ 최종적으로는 deterministic distance가 아니라 uncertainty를 포함한 거리 추정으로 확장 가능
25. 선행연구 검토를 통해 확인한 점 — BBox 계열
❍ BBox를 이용해 단안 거리를 계산하는 방법 자체는 이미 다양한 선행연구 존재
❍ 여러 프레임의 BBox 크기 변화를 활용하는 연구 존재
BBox(t-N)
↓
BBox(t)
↓
Temporal Scale Change
↓
Distance❍ Detection Box가 갑자기 커지거나 작아지는 문제를 Multi-frame Tracking, Kalman Filter, Sudden-change Filter 등으로 억제하는 연구도 존재
Detection
↓
Tracking
↓
Multi-frame
↓
Abnormal Jump Suppression
↓
Kalman
↓
Distance❍ 따라서 단순히 BBox에 Multi-frame과 Kalman을 적용한다는 것만으로는 새로운 연구 방향이라고 보기 어려움
26. 선행연구 검토를 통해 확인한 점 — Robust Statistics
❍ 거리 추정에서 이상값을 제거하기 위해 Trimmed Mean이나 Median과 같은 Robust Statistic을 사용하는 연구 존재
❍ 다만 기존 연구 중에는 주로 한 프레임의 Depth Distribution이나 Measurement Outlier를 제거하는 목적으로 사용
❍ 현재 논의에서의 차이점은 동일 조류 Track에서 시간축으로 발생하는 Apparent Scale Distribution 자체에 Robust Statistics를 적용하는 것
기존 예시
한 Frame의 Depth Distribution
↓
Extreme Depth 제거
↓
Representative Depth현재 아이디어
N-frame Apparent Scale Distribution
↓
Pose-induced Extreme 제거
↓
Representative Scale
↓
Distance27. 선행연구 검토를 통해 확인한 점 — Segmentation
❍ Instance Segmentation을 이용하여 실제 객체 Contour를 얻은 뒤 Known Physical Size와 Camera Geometry를 이용해 거리를 계산하는 연구 존재
❍ 열차, 차량, 선박 등 비교적 rigid한 object를 대상으로 수행된 사례 확인
Instance Segmentation
↓
Accurate Object Contour
↓
Known Physical Size
↓
Camera Geometry
↓
Metric Distance❍ 따라서 Segmentation을 사용한다는 사실 자체가 novelty는 아님
❍ 조류에서는 비강체 특성으로 인해 Mask 자체가 시간에 따라 크게 변화한다는 점이 주요 차이
28. 선행연구 검토를 통해 확인한 점 — Keypoint
❍ 사람과 차량 등을 대상으로 Keypoint와 Physical Prior를 이용하여 단안 거리 또는 3차원 위치를 추정하는 연구 존재
Keypoint
↓
Pose / Anatomical Geometry
↓
Physical Prior
↓
Projection Constraint
↓
Distance❍ 따라서 Keypoint를 metric geometry에 이용하는 것 역시 이미 확립된 접근
29. 조류 분야에서도 복합적인 연구가 이미 존재
❍ 조류를 대상으로 BBox, Segmentation, Keypoint를 동시에 이용해 3D Pose 또는 Shape를 복원하는 연구 존재
BBox
+
Segmentation
+
Keypoint
+
Bird Shape Model
↓
3D Bird Reconstruction❍ 또한 조류 영상에서
- Detection
- Tracking
- Segmentation
- Keypoint
- Weighted Median
- Temporal Consistency
- Common Scale Constraint
등을 동시에 사용하는 연구도 존재
❍ 따라서 다음 요소 각각은 이미 선행연구에 존재
BBox
Segmentation
Keypoint
Tracking
Multi-frame
Median Filtering
Temporal Constraint30. 다만 기존 조류 연구와 현재 문제의 차이
❍ 기존 조류 관련 연구는 주로 다음을 목적으로 함
3D Shape Reconstruction
3D Pose Reconstruction
Bird Morphology Modeling❍ 현재 목표는 이와 달리 카메라와 자유 비행 조류 사이의 실제 Metric Depth 또는 Distance Zone을 추정하는 것
Existing Bird Reconstruction
Mask + Keypoint + Temporal
↓
3D Pose / ShapeCurrent Question
Visual Scale + Temporal
+
Species Morphology
+
Camera Geometry
↓
Camera-to-Bird Distance❍ 따라서 동일 구성요소를 사용하더라도 연구 문제 자체는 다르게 정의 가능
31. 대화를 통해 핵심 문제 정의가 변화
❍ 최초 문제 정의
BBox 크기를 이용해 조류 거리를 계산할 수 있는가
❍ 이후 문제 정의
조류의 자세 변화 때문에 BBox 크기가 흔들리는 문제를 어떻게 해결할 것인가
❍ 이후 문제 정의
자세를 직접 추정하지 않고 Multi-frame statistics로 자세 변화의 영향을 제거할 수 있는가
❍ 이후 문제 정의
그런데 왜 BBox여야 하는가, 실제 silhouette인 Segmentation이 더 적합하지 않은가
❍ 현재 문제 정의
비강체인 조류에서 거리 변화와 무관하게 발생하는 apparent-scale variation을 시간축에서 얼마나 제거할 수 있으며, 이를 위해 어떤 visual representation을 사용하는 것이 가장 적합한가
32. 현재 가장 중요한 연구 가설
❍ 동일 조류 Track에서 일정 시간 동안 다양한 자세가 반복적으로 관측될 경우 apparent scale은 하나의 분포를 형성할 것으로 예상
동일 Bird Track
↓
다양한 Wing Pose
다양한 Body Orientation
↓
Apparent Scale Distribution❍ 해당 분포에서 pose-induced extreme value를 robust하게 제거할 경우 실제 거리와 보다 직접적인 관계를 가지는 Representative Scale을 얻을 수 있다는 가설
Apparent Scale Distribution
↓
Robust Temporal Aggregation
↓
Representative Apparent Scale
↓
Species Physical Prior
↓
Camera Geometry
↓
Distance33. 이 가설이 실패할 수 있는 조건
❍ Temporal Robust Statistics가 모든 Pose 문제를 해결할 수 있는 것은 아님
❍ 예를 들어 조류가 일정 시간 동안 계속 정면 자세를 유지할 경우 모든 관측값이 같은 방향으로 편향될 수 있음
정면 자세
정면 자세
정면 자세
정면 자세
정면 자세❍ 이 경우 Median이나 Trimmed Mean을 사용하더라도 잘못된 Scale 중심으로 수렴 가능
❍ 이러한 systematic pose bias가 실제 데이터에서 얼마나 자주 발생하는지가 Keypoint 또는 Pose Model의 필요성을 결정하는 중요한 조건
34. 따라서 Keypoint 필요성도 실험적으로 결정해야 함
❍ Temporal Robust Scale만으로 충분한 경우 Keypoint 모델을 추가할 필요가 크지 않을 수 있음
❍ 반대로 특정 자세가 지속되면서 거리 편향이 발생한다면 Keypoint 또는 Pose Estimation을 이용한 보정 필요
Temporal Scale만 사용
↓
성능 충분
↓
Keypoint 불필요또는
Temporal Scale
↓
Persistent Pose Bias 발생
↓
Keypoint / Pose Cue 추가❍ 따라서 Keypoint는 처음부터 필수 구성요소로 결정된 것이 아니라 실험 결과에 따라 추가 여부를 판단해야 하는 후보
35. 현재 가장 중요한 비교 질문
❍ Single-frame observation보다 Multi-frame observation이 실제로 더 안정적인가
❍ Median, Trimmed Mean, Percentile 중 어떤 Temporal Statistic이 가장 효과적인가
❍ 15, 30, 60 Frame 중 어느 Window 길이가 적절한가
❍ BBox Width, Height, 중 어떤 Scale이 가장 안정적인가
❍ BBox보다 Segmentation 기반 Scale이 실제 거리 정확도를 얼마나 향상시키는가
❍ Segmentation을 사용해도 Persistent Pose Bias가 남는가
❍ Keypoint를 추가하면 해당 Pose Bias를 실제로 줄일 수 있는가
❍ 원거리에서 Segmentation과 Keypoint의 Pixel Error가 얼마나 증가하는가
❍ 특정 거리 이상에서는 오히려 BBox가 더 안정적으로 동작하는가
❍ Metric Distance보다 Zone Classification이 실제 시스템에 더 적합한가
36. 아직 결정되지 않은 부분
❍ 현재 다음 항목들은 모두 미결정 상태
BBox를 최종 사용할 것인가
Segmentation을 최종 사용할 것인가
Keypoint를 최종 사용할 것인가
세 정보를 Fusion할 것인가
15 / 30 / 60 Frame 중 무엇을 사용할 것인가
Median / Trimmed Mean / Percentile 중 무엇을 사용할 것인가
Metric Distance를 사용할 것인가
Distance Zone을 사용할 것인가❍ 따라서 현재 단계는 최종 알고리즘을 정한 단계가 아니라 후보 방법의 가설을 정리하고 실험 설계를 구성하는 단계
37. 현재 연구 방향을 한 단계 추상화한 구조
Monocular Bird Track
↓
Visual Representation
│
┌─────┼─────┐
│ │ │
BBox Mask Keypoint
│ │ │
└─────┼─────┘
↓
Apparent Scale Sequence
↓
Temporal Distribution
↓
Robust Aggregation
↓
Pose-induced Variation 억제
↓
Representative Scale
↓
Species Morphology Prior
↓
Camera Geometry
↓
Metric Distance
↓
Temporal Filtering
↓
Distance / Zone38. 현재 가장 적절한 실험 방향
❍ 하나의 방법을 사전에 선택하기보다 동일한 GT 데이터에서 Visual Representation별 성능을 비교하는 방식이 적절
A. Single-frame BBox
B. Temporal BBox
C. Temporal Segmentation
D. Keypoint Geometry
E. BBox + Segmentation
F. Segmentation + Keypoint
G. BBox + Segmentation + Keypoint❍ 각각에 Temporal Robust Aggregation 적용 여부를 추가 비교
Raw
vs.
Median
vs.
Trimmed Mean
vs.
Percentile❍ 이후 Kalman Filter 적용 전후 비교
Raw Distance
vs.
Temporally Filtered Distance39. 거리별 비교 필요
❍ 동일 방법이라도 대상의 pixel size에 따라 성능이 달라질 가능성이 있으므로 실제 거리별 평가 필요
5m
10m
15m
20m
25m
30m❍ 각 거리에서 다양한 자세와 행동 상태 확보 필요
PERCHED
GROUND
FLYING
├─ 측면
├─ 정면
├─ 후면
├─ 날개 전개
└─ 날개 접힘40. 평가해야 할 항목
❍ Metric Distance를 사용할 경우
- MAE
- RMSE
- Relative Error
- Median Error
- Maximum Error
- Outlier Rate
❍ Temporal Stability 평가
- Frame-to-frame Distance Jitter
- Distance Standard Deviation
- Maximum Distance Jump
- 실제 정지 상태에서의 거리 변동량
❍ Zone Classification 평가
- Accuracy
- Precision
- Recall
- F1-score
- Confusion Matrix
❍ 시스템 효율 평가
- Inference Time
- FPS
- GPU Memory
- 거리별 유효 추정률
- UNKNOWN 비율
41. 현재까지의 핵심 결론
❍ 아직 BBox, Segmentation, Keypoint 중 어느 방법도 최종적으로 선택하지 않음
❍ 현재 핵심 연구 질문은 특정 모델 선택보다 비강체 조류의 Pose-induced Apparent Scale Variation을 Multi-frame Information으로 얼마나 안정적으로 제거할 수 있는지 검증하는 것
❍ Temporal Robust Scale 가설이 유효하다면 조류의 자세를 매 프레임 완벽하게 추정하지 않고도 실용적인 거리 추정이 가능할 수 있음
❍ Temporal Statistics만으로 해결되지 않는 Persistent Pose Bias가 실제로 크게 나타날 경우 Segmentation 또는 Keypoint의 추가 정보가 필요
❍ 따라서 연구 흐름은 다음과 같이 정리 가능
단안 카메라에서
Known Size로 거리 계산 가능
↓
그런데 조류는 자세 때문에
Apparent Scale이 크게 변함
↓
Keypoint로 Pose를 직접 풀까?
↓
굳이 매 Frame Pose를 알아야 하나?
↓
Multi-frame Distribution을 쓰면
Pose Noise를 제거할 수 있지 않을까?
↓
BBox를 Temporal하게 사용
↓
그런데 왜 BBox여야 하지?
↓
Segmentation이 실제 Silhouette을
더 정확하게 표현하지 않을까?
↓
하지만 Segmentation도
Pose 문제는 남음
↓
Keypoint는 Pose 설명 정보로
활용할 수 있음
↓
BBox / Segmentation / Keypoint 중
어떤 Representation이 실제로 좋은가?
↓
현재는 결정하지 않고
동일 GT에서 비교 실험 필요최종 문제 정의
❍ 현재까지의 대화를 기준으로 가장 적절한 문제 정의는 다음과 같음
단안 카메라에서 자유롭게 자세가 변화하는 비강체 조류의 거리 추정을 위해, 단일 프레임의 apparent scale을 직접 거리로 변환하지 않고 동일 Track의 Multi-frame visual information을 이용하여 pose-induced scale variation을 robust하게 억제하고, 이를 실제 조류의 morphology와 camera geometry에 연결할 수 있는지를 검증한다.
❍ 여기서 Visual Information은 아직 특정 방식으로 결정하지 않음
BBox
Segmentation
Keypoint
또는 이들의 Fusion❍ 따라서 현재 연구의 첫 번째 핵심 질문은 다음과 같음
Temporal Robust Apparent Scale Estimation이 실제로 비강체 조류의 단안 거리 추정에 유효한가
❍ 두 번째 핵심 질문은 다음과 같음
BBox, Segmentation, Keypoint 중 어떤 Visual Representation이 해당 Temporal Estimation에서 가장 높은 거리 정확도와 안정성을 제공하는가
❍ 세 번째 핵심 질문은 다음과 같음
Temporal Statistics만으로 해결되지 않는 Pose Bias를 Keypoint 또는 다른 Pose Cue가 어느 정도 추가적으로 보정할 수 있는가
아니다 됐고, 아까 조류 단일 영상 기반 문서 정리한거를 html로 만들거야. 땅에 앉아있는 새들에 대해서 거리 추정은 ground homography 이기에 땅의 점과 직선 거리이기에 비교적 쉬운 문제임. 이걸 응용해서 3d인 나무에 있어서 나무_1_hgih, 나무_1_medium 과 같이 영역을 정해놓고 해당 영역과의 거리를 기반으로 거리 추정이 되지 않을까?측우기 처럼 옆에 높이 측정 보조용으로 막대를 일정 간격으로 세우기도 될 것 같고 그러면 앉아 있는 놈들 대상으로는 gt를 만들 수 있을 것 같은데… 앉아 있다라고 판별을 하려면 vlm으로 행동 분석을 하고 해당 데이터에서 앉아있다 판별한 놈에 대해서만 거리추정을 하는 것은 좀 이상한 것 같고
그러면 날아오는 새들은 어떻게 하지?
근데 이제 공중에서 날아다니는 객체에 있어서 단안에서 거리추정을 하려면 실제 크기와 픽셀 크기 혹은 길이를 비교를 해야한다. 근데 이제 자세 추정 문제, 원근 투영 문제가 있어서 bbox를 쓰든 segmentation을 하던, key point를 찍던 같은 문제가 생긴다. 그래서 단일 프레임이 아니라 여러 프레임을 사용하여서 강건성을 높이는데 이 때 이상치가 생길 수 있으니 사분위수, 혹은 극단값들을 제거한 이후에 최대,최소,평균,중앙 값들 중 뭐 하나 잘 골라서 사용해서 최대한 robust한 모델을 만들 수 있지 않을까? 그리고 추가로 칼만 필터를 통해서 더 안정화가 되지 않을까?