Thinking 모드로 화면에서 즉시 식별 가능한 위험 상황을 더 정확하게
EVA v3.0 신규 기능: Thinking 모드로 화면에서 즉시 식별 가능한 위험 상황을 더 정확하게
EVA v3.0에서는 화면에서 즉시 식별 가능한 사고 상황 탐지의 오탐을 줄이기 위해 Thinking 모드를 새롭게 추가했습니다. 핵심은 VLM이 즉시 결론을 내리기 전에 내부 추론을 수행해 오탐 가능성과 논리적 오류를 다각도로 점검한 뒤, 위험 상황 여부를 판단하도록 한 것입니다.
Thinking 모드는 특히 화면에서 즉시 식별 가능한 상황에서 다각도로 오탐 가능성을 검토해야 하는 시나리오에 적합합니다.
또한 VLM은 맥락에 따라 사용자의 쿼리에 긍정적으로 반응하려는 경향이 있으며, 기본 모드에서 오탐 상황을 예외 규칙으로 계속 추가하는 방식은 처리 지연을 키우고 운영 복잡도를 높일 수 있습니다.12
결과적으로 EVA v3.0에서는 모델 자체의 Thinking 모드를 활용해 장면을 빠르게 해석하고, 상식적 사고에 기반해 오탐 가능성을 먼저 검토한 뒤 알람을 발생시키도록 설계하여 탐지 신뢰성을 높였습니다.
1. 왜 Thinking 모드가 필요하며, 어떻게 신뢰도를 높였는가
기존의 단순 질의 기반 방식에서는 "화재가 났는가", "사람이 쓰러졌는가"처럼 화면에서 바로 보이는 상황도 카메라 각도, 반사, 가림, 저조도 등으로 인해 오탐이 발생할 수 있습니다.
여기에 더해, 운영 중 오탐 사례를 발견할 때마다 규칙을 계속 덧붙이는 방식은 다음과 같은 한계를 만듭니다.
- 예외 규칙 증가로 인한 시나리오 관리 복잡도 상승
- 판단 경로 증가로 인한 처리 지연 가능성 확대
- 사용자별 규칙 편차로 인한 운영 일관성 저하
Thinking 모드는 이런 문제를 줄이기 위해, "빠른 단정"보다 "검토 후 판단"을 우선하는 설계를 채택했습니다.
핵심 원칙
- 즉시 식별 가능한 장면에 집중: 한 화면에서 비교적 명확히 판별 가능한 사고 상황에 우선 적용합니다.
- 오탐 가능성 다각도 검토: 내부 추론으로 반례와 논리적 오류를 먼저 점검합니다.
- 최종 알람은 사고 항목 기준: 위험 상황이 확인되면 사용자 시나리오의 사고 항목과 매칭해 알람을 발생시킵니다.
판단 가이드라인
Thinking 모드는 모델이 과도한 추론에 빠지지 않도록, 시스템 프롬프트 차원에서 다음과 같은 운영 정책을 명시합니다.
- 직접 가시 증거 우선: 화면의 주 장면에서 직접 보이는 근거만 사용합니다.
- 활성 사고 항목만 판단: 사용자 입력에서 활성화된 사고 항목만 같은 순서로 판정합니다.
- 애매하면 False: 근거가 약하거나 모호/가림/노이즈가 있으면 False를 반환합니다.
- 사고별 정밀 가드:
- 쓰러짐: 단순 웅크림/무릎/앉음/원근 모호성만으로는 True 금지
- 연기/불꽃: 증기/먼지/반사/블러/광원 아티팩트만으로는 True 금지
- 화재: 실제 화염/연소 단서가 없는 밝은 조명/반사만으로는 True 금지
- 출력 강제 규격화: 사고 항목별 결과를 JSON 스키마로만 반환해 후처리 일관성을 확보합니다.
즉, Thinking 모드는 단순한 감지 기능이 아니라 "근거 중심 판정 + 오탐 억제 가드"를 동시에 적용하는 운영형 판단 모드로 설계되었습니다.
2. 성능 리뷰
Thinking 모드는 단순히 "정답/오답"만 보는 방식이 아니라, 에이전트가 중간 근거를 생성하고 이를 시나리오 규칙과 매칭하는 구조로 동작합니다. 아래 사례에서처럼 먼저 장면 단서를 추론한 뒤, 최종적으로 사용자 시나리오와 비교해 알람 여부를 결정합니다.

출처: 한국지능정보사회진흥원
이 사례는 쓰러짐(Fall/Down) 탐지에 해당하며, Thinking 모드는 다음과 같은 핵심 추론을 거쳐 alert: true를 판단합니다.
- 장면 분석: 산업 현장 바닥 위에 사람이 헬멧과 작업복을 착용한 채 수평으로 누워 있는 상태를 확인
- 자세 판별: 웅크림/앉음/작업 자세가 아니라, upright posture를 잃고 바닥에 쓰러진 자세로 판단
- Fall 가드라인 대조: "직접적으로 바닥에 쓰러진 시각 근거" 조건을 충족하는지 검증
- 모호성 점검: 일시적 자세 변화나 스트레칭 같은 반례 가능성이 낮음을 확인
- 최종 판정: 쓰러짐의 직접 근거가 충분하여
alert: true반환

위 사례와는 반대로, 자동차에서 화재가 발생한 것처럼 보이지만 실제 화재가 아닌 장면에서도 Thinking 모드는 단일 단서로 즉시 판단하지 않고 다각도로 검토합니다.
모델의 중간 추론에서 핵심적으로 확인한 포인트는 다음과 같습니다.
- 장면 맥락 점검: 야간 주차장 환경과 다수 광원(가로등, 헤드라이트)을 먼저 확인
- 의심 단서 재해석: 차량 뒤 붉은 빛을 화염으로 단정하지 않고 반사광/광원 아티팩트 가능성 검토
- 화재 가드라인 적용: 실제 화염 형태, 연소 단서, 연기 동반 여부를 재확인
- 최종 판정: 명확한 화염·연소 증거가 없어
alert: false결론
즉, Thinking 모드는 밝은 붉은 빛처럼 오인하기 쉬운 시각 단서에 대해서도 반례를 함께 검토한 뒤 결론을 내려, 오탐을 줄이고 신뢰성 있는 알람을 제공합니다.
그 결과, Thinking 모드 실험에서는 시나리오별로 다음과 같은 성능이 측정되었습니다.
쓰러짐
| Mode | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|
| Thinking Mode | 0.8967 | 0.5814 | 0.8621 | 0.6944 |
| 기본 모드 | 0.6854 | 0.2841 | 0.8621 | 0.4274 |
연기/불꽃
| Mode | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|
| Thinking Mode | 0.9041 | 1.0000 | 0.8158 | 0.8986 |
| 기본 모드 | 0.7671 | 0.9565 | 0.5789 | 0.7213 |
화재
| Mode | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|
| Thinking Mode | 0.9755 | 0.7627 | 0.9000 | 0.8257 |
| 기본 모드 | 0.9328 | 0.4762 | 0.4000 | 0.4348 |
요약하면, Thinking 모드는 즉시 식별 가능한 쓰러짐, 연기/불꽃, 화재 시나리오에서 성능이 크게 향상되었습니다.
⚠️ Thinking 모드는 다른 시나리오에서도 좋은 성능을 제공할 수 있지만, 사람의 행위나 착용 상태를 면밀히 살펴봐야 하거나 특정 환경 규칙 기반으로 탐지해야 하는 시나리오에서는 추론 시간이 매우 길어질 수 있어 특정 시나리오에 대해서만 추천합니다.
3. 사용성: 시나리오 추가 없이 위험 상황만 수정하여 운영
Thinking 모드는 EVA v3.0에서 별도 시나리오를 매번 새로 만들지 않아도, 위험 상황 항목을 추가/수정하는 방식으로 즉시 식별 가능한 사고 탐지를 확장할 수 있습니다.
## 💡 Thinking 모드로 탐지를 수행합니다.
객체가 탐지되면 설정된 탐지 간격에 따라 에이전트가 오탐 가능성과 논리적 오류를 검토하여
위험 상황 여부를 판단하고, 위험 상황인 경우 알람이 발생합니다.
### 위험 상황(최대 3개까지 상황 지원)
복잡하거나 모호한 상황은 판단에 시간이 오래 걸릴 수 있습니다.
예시를 참고하여 한 화면에서 명확하게 판단 가능한 위험 상황을 작성해주세요.
- 화재 발생
**좋은 예시**
- 화재 발생
- 연기 발생
- 사람이 바닥에 쓰러짐
**권장하지 않는 예시**
- 작업자의 특정 행위 중 위험한 상황 탐지
- 객체의 상태를 복합적으로 판단해야 하는 상황
맺음말
Thinking 모드의 핵심은 "즉시 반응"보다 "내부 추론을 통한 검토 후 판단"에 있습니다. 이를 통해 즉시 식별 가능한 사고 시나리오에서 오탐 가능성을 낮추고, 현장 운영자가 신뢰할 수 있는 알람 품질을 확보할 수 있습니다.
Footnotes
-
Wang et al., "Evaluating Object Hallucination in Large Vision-Language Models" (EMNLP 2023), https://arxiv.org/abs/2305.10355 ↩
-
Anthropic, "Towards Understanding Sycophancy in Language Models" (2023), https://www.anthropic.com/research/towards-understanding-sycophancy-in-language-models ↩




