메인 화면 양쪽 상단에 구조 요청을 보내기 위한 SOS 버튼이 있습니다. 구조 요청은 두개의 SOS 버튼 중 하나를 3초 동안 응시하거나 터치하여 활성화할 수 있습니다.
사용자가 SOS 버튼 및 버튼을 활성화하고 있다고 인지시키기 위해 세가지 피드백을 제공하였습니다.
최대 게이지 표시: 버튼 크기의 2배인 빨간색 원이 SOS 버튼 뒤에 나타납니다.
버튼 사이즈 변화: SOS 버튼이 점차 커집니다. 버튼의 크기는 3초 동안 첫 번째 효과로 생성된 원의 크기만큼 증가합니다.
원형 타이머 생성: 작업자가 바라보고 있는 지점에 원형 타이머가 생성되며 긴급 요청이 실행될 때까지 남은 시간이 숫자로 표시되고 게이지바가 채워지게 됩니다.
SOS 버튼이 활성화 되면 배경이 빨간색으로 바뀌고 사용자는 재확인 창을 제외한 다른 구성 요소와 상호 작용할 수 없게 됩니다.
"예" 버튼과 "아니오" 버튼은 시선을 통한 상호작용의 오차를 최대한 방지하기 위해 양쪽 끝에 배치하였습니다.
SOS 버튼 및 모든 버튼들은 시선과 터치를 통해 상호작용이 가능합니다.
구조 요청 완료 및 수신
(1) 구조 요청자 시점
구조 요청이 완료된 후 '요청 완료' 팝업창이 생성되며 3초 후 메인 화면으로 돌아가게 됩니다.
(2) 작업 팀장 시점
구조 요청이 발생하면 작업 팀장에게 요청자의 캡처된 시야 정보가 전달되며 작업 팀장은 받은 정보를 통해 119 신고와 동시에 빠른 대응을 취할 수 있습니다.
자동 구조 요청
가상 스턴트맨 설정
충돌 및 추락 상황을 연출하기 위해서 유니티 게임엔진의 Ragdoll physics 기능을 사용하였습니다.
기본(Idle) 상태의 에이전트에 충돌을 감지하는 콜라이더를 설정하여 콜라이더에 충돌 객체가 감지될 경우 기본 상태 에이전트의 각 관절의 위치와 회전 값을 ragdoll physics가 적용된 에이전트에 동일하게 적용한 후 교체시켰습니다.
시뮬레이션 구현
자재 충돌 사고 : 벽돌
자재 충돌 사고 : 파이프
자재 충돌 사고 : 철 기둥
자재 충돌 사고 : 철망 펜스
추락 사고 : 사다리
추락 사고 : 임시 발판
본 프로젝트에서는 자재 낙하로 인한 충돌 사고와 고층 높이에서 떨어지는 추락 사고를 구현하였습니다.
충돌 사고를 재현하기 위해 충돌 객체: 벽돌(brick), 파이프(pipe), 철 기둥(steel pillar), 철망 펜스(wire fence) 4 가지를 캐릭터의 일정 높이 위에서 낙하 시켰습니다. 각각의 초기 무개는 5kg, 40kg, 60kg, 15kg로 설정하였습니다.
추락 사고를 재현하기 위해 에이전트를 임시 발판과 사다리 위에 위치시킨 후, AddForce() 함수를 사용해 흉부 쪽으로 힘을 가해 밀쳐내는 방식을 사용했습니다. 이때 힘은 'impulse' 모드로 적용했습니다.
일반 상황의 경우 30개의 일상 생활 관련 모션 에니메이션 클립을 사용하였습니다.
데이터 생성
학습 데이터를 생성하기 위해 매 시뮬레이션에서 특정 매개변수를 무작위로 설정하여 여러 시나리오 진행하였습니다.
충돌 객체: 충돌 객체의 높이와 무게는 기존 값에 1.0에서 2.0 사이의 무작위 값을 곱하였습니다. scale은 무게와 동일 값을 곱해주었습니다.
에이전트: 충돌, 추락, 일반 상황 모두에서 에이전트를 y축을 기준으로 무작위로 회전시켰습니다.
일반 상황 애니메이션: 애니메이션의 재생 속도를 0.5 ~ 1.5 사이의 무작위로 설정하였습니다.
머리 움직임 데이터는 60fps로 고정한 후 매 프레임마다 에이전트 머리의 position, rotation, velocity, angular velocity 값을 수집했습니다.
충돌 객체 및 낙하 유형 별로 각 100회씩 총 600회의 시뮬레이션을 진행하였고 그 중 연속된 30 프레임을 무작위로 1000개 추출하였습니다.
일반 상황 데이터 또한 각 에니메이션 클립 별로 10회씩 총 300회 시뮬레이션을 진행한 후 연속된 30 프레임 1000개를 추출했습니다.
네트워크
사고 감지 모델의 입력은 연속된 30프레임으로 구성되며, 각 프레임은 정규화 되어 13 차원으로 이루어져 있습니다. 머리 움직임 데이터의 순차적 특성을 고려하여, conv1d-LSTM 구조의 신경망을 채택하였습니다.
최종적으로 SoftMax 함수를 사용하여 위험 상황과 일반 상황의 두 가지 클래스에 대한 확률 값을 추출했습니다.
활성화 함수로는 ReLU를 사용했으며, 손실 함수와 최적화 알고리즘으로는 각각 Cross-Entropy와 Adam을 사용했습니다.
실험 및 결과
일반 상황 데이터 1000개, 사고 상황 데이터 1000개를 가지고 아래와 같이 하이퍼파라미터를 설정한 후 학습을 진행한 결과 테스트 데이터셋 정확도 94.95%를 얻었습니다.
데이터셋 비율: Test 20%, Validation 16%, Train 64%
Learning rate: 0.001
Epochs: 20
Batch size: 64
개발된 시스템의 실제 성능을 검증하기 위해 유니티 엔진의 신경망 추론 라이브러리인 Barracuda를 활용하여 학습된 LSTM 모델을 통합하였습니다.
테스트 결과, 구현된 시뮬레이션 상에서 충돌 사고와 추락 사고를 성공적으로 식별해내는 것을 확인했습니다.
DentureAR
프로젝트 개요
임플란트나 틀니 등의 치아 보철물 시술이 필요한 환자들이 가상으로 보철물을 적용한 후의 모습을 실시간으로 확인할 수 있도록 하는 프레임워크를 개발했습니다.
이 프레임워크는 환자에게 시술 후의 결과를 미리 시각적으로 보여줌으로써 의사와의 의사소통을 향상시키고, 불안을 줄이고, 더 나은 치료 결정을 지원하기 위해 제안되었습니다.
The Impact of an Interactive Virtual Pet during Exercise in Augmented Reality on User Experience and Social Presence
국제 학회
2025
AR Fitness Dog: Effects of a User-Mimicking Interactive Virtual Pet on User Experience and Social Presence in Physical Exercise
IEEE TVCG1저자OralBest Paper-HM
2024
Watch Buddy: Evaluating the Impact of an Expressive Virtual Agent on Video Consumption Experience in Augmented Reality
IEEE ISMAR2저자Oral
Developing a Multimodal Clinical Nursing Simulation with a Virtual Preceptor in AR
IEEE VRW2저자Poster
Developing Emotionally Responsive Virtual Pets in Mixed Reality
IW-FCV1저자Poster
2023
Virtual Agent Simulation for Head Motion-Based Accident Detection Model on Construction Site
3DSA1저자Oral우수논문상
A Framework for Emergency Rescue Request on Construction Site in XR
HCII1저자Oral
국내 학회
2023
시뮬레이션을 이용한 건설현장에서의 머리 모션 기반 위험상황 감지 모델
IPIU1저자Poster