수영장 물속/물밖 신체를 탐지하기위한 AI 방법론 질문드립니다.

사진처럼 수영장안에있는 사람을 찾고, 신체의 일부가 수영장 물 표면 안에있는지 밖에있는지에 대한 마스크 값을 얻고 싶습니다.

목표는 익수자를 판단하는 로직을 만드는 것인데.

어떤 데이터를 수집하고 학습해야하며, 어떤 모델을 사용해야하는지 초보자라 감이 잡히지않습니다.

기본 YOLO모델을 사용했을때에는 찾지 못할것이기때문에 파인튜닝은 불가피할것으로 생각하고 있구,

사람을 찾더라도 물속인지 물밖인지는 U-Net등을 사용하면 될거같기는 한데 아직 도전해보지 못해서 고수님들의 의견을 듣고 싶습니다.

MASK R-CNN 도 고려중입니다.

3개의 답변이 있어요!

  • 안녕하세요. 감병주 전문가입니다.

    말씀하신 것 처럼 U-Net와 MASK R-CNN를 추가적으로 사용하시는걸 추천드립니다.

    수영장 익수 감지 AI는 단순 사람 검출보다 사람 위치, 자세, 물과의 관계를 함께 분석하는 것이 중요합니다.

    1. YOLO 계열 모델로 사람을 검출하고, YOLO-Seg나 Mask R-CNN으로 사람의 윤곽을 분할합니다.

    2. U-Net 등의 모델을 이용해 수면 영역을 분할하여 물속과 물밖을 구분합니다.

    3. 이후 사람 마스크와 물 마스크의 겹치는 정도를 분석해 익수 위험을 판단합니다. 정확도를 높이려면 정상 수영, 잠수, 휴식, 익수 상황 등의 다양한 학습 데이터가 필요합니다.
    실제 익수 감지 시스템은 객체 검출, 세그멘테이션, 사람 추적(Tracking)을 함께 사용하는 경우가 많습니다.

  • 안녕하세요. 서종현 전문가입니다.

    수영장 안에서 사람을 탐지하고 신체가 물속인지 물밖인지 구분하려면, 기본적으로 2단계 접근법이 효과적입니다.

    • 데이터 수집

      • 다양한 수영장 환경에서 물속과 물밖 신체가 함께 보이는 이미지와 비디오를 충분히 수집하세요

      • 특히 물 표면의 반사, 굴절 효과, 물 흐름에 따른왜곡 등이 포함된 데이터가 중요합니다.

      • 익수자 상황(부분적으로 물에 잠긴 상태 등)도 다양하게 확보하면 좋습니다.

    • 모델 선택과 학습법

      • 사람 탐지는 YOLO 혹은 SSD 같은 객체 탐지 모델로 시작하고, 수영장 환경에 맞춰 파인튜닝이 필요합니다.

      • 물속과 물밖 신체 영역 분리는 세밀한 픽셀 단위 분할이 필요하므로, Mask R-CNN이 좋은 선택입니다.이 모델은 객체 탐지와 동시에 픽셀별 마스크까지 생성해 줍니다.

      • U-net 같은 세그멘테이션 모델도 물과 사람, 물속/물밖 경계를 세밀하게 구분할때 효과적입니다.

      • 물 표면 경계 인식을 위해 추가적으로 투명체나 반사 특성을 반영하는 전처리 기술, 또는 후처리 알고리즘을 개발하는 것도 도움이 됩니다.

    • 익수자 판단 로직

      • Mask R-CNN이나 U-Net으로 사람 신체 각 부위의 물속/물밖 마스크를 얻고, 마스크의 비율이나 위치 정보를 분석해 익수위험을 평가하는 알고리즘을 설계하세요

      • 영상 시간 흐름에 따른 신체 움직임과 물속 침수 정도 변화를 분석하는 것도 중요합니다.

    처음엔 공개된 수영장 및 수중 세그멘테이션 데이터셋을 참고하고, 수집한 데이터로 점진적 학습을 반복해 보세요

  • 안녕하세요. 고한석 전문가입니다.

    이미지가 첨부된 것처럼 말씀하셨는데 실제로는 보이지 않네요. 텍스트만으로 답변드리겠습니다.

    전체 파이프라인 구조는 단일 모델로 끝내기보다 2단계가 현실적입니다. ① 사람 탐지/세그멘테이션: YOLO(v8/v9 인스턴스 세그멘테이션 버전)나 Mask R-CNN으로 사람 전체 바운딩박스+마스크를 얻고, ② 수면선 분할: 별도의 의미론적 분할 모델(U-Net, DeepLabV3+, 또는 Segformer)로 "수면 위/아래" 두 클래스 영역 마스크를 만든 뒤, 두 마스크를 픽셀 단위로 교차 연산해서 "사람 마스크 중 몇 %가 수면 아래 영역에 들어가는지" 비율을 계산하는 방식이 가장 직관적이고 검증된 접근입니다.

    데이터 수집·라벨링이 가장 큰 난관인데, 실제 수영장 CCTV 영상에서 사람 마스크(폴리곤)와 수면선(직선이 아니라 파도·반사로 인해 굴곡진 곡선) 두 가지를 모두 라벨링해야 하며, 공개 데이터셋이 거의 없어 직접 촬영+라벨링이 불가피하고, 특히 수중 굴절(물속 신체가 빛 굴절로 위치가 휘어 보이는 현상)까지 고려하려면 적외선·열화상 카메라 데이터를 함께 모으는 것도 정확도에 큰 도움이 됩니다.

    파인튜닝 전략은 YOLO-seg나 Mask R-CNN을 COCO 사전학습 가중치에서 시작해 "사람" 클래스만 수영장 환경 이미지로 전이학습시키고, 수면선 분할은 별도 경량 U-Net을 처음부터 학습시키는 게 합리적이며, 익수자 판단 로직 자체는 단순 마스크 비율뿐 아니라 시간에 따른 움직임 패턴(정상 수영 vs 정지/허우적거림)까지 함께 분석하는 시계열 LSTM/Transformer를 추가하면 오탐을 크게 줄일 수 있습니다.