물속 이미지 전송을 위한 생성형 압축 기반 시스템: AquaScope

  1. AquaScope 개요 AquaScope는 수중 환경에서의 이미지 통신을 가능하게 하는 혁신적인 시스템으로, 생성형 압축과 물리 계층 신뢰성 강화 기술을 결합하여 스마트폰 등 소형 장비에서도 256×256 해상도의 컬러 이미지를 안정적으로 전송할 수 있도록 설계되었습니다. 이 시스템은 기존 수중 통신의 주요 제약인 대역폭 부족과 높은 오류율 문제를 극복합니다.

주요 성과: 기존 텍스트 중심 전송 방식을 넘어, 최대 20미터 거리에서 256×256 이미지를 전송하며, 평균 인덱스 오류율(IER)은 10.5%로 매우 낮습니다.

전체 프로세스는 다음과 같은 네 단계로 구성됩니다:

  1. 이미지 압축 – 변환기 기반 생성 모델을 이용해 원본 이미지를 64개의 의미적 토큰으로 변환

  2. 채널 인코딩 – 개선된 치르프 확산 기법을 활용한 오류 내성 인코딩

  3. 수중 전송 – 스마트폰 스피커와 마이크를 활용한 음향 전달

  4. 이미지 복원 – 수신 측에서 토큰을 디코딩하고 생성 모델로 이미지를 재구성

  5. 생성형 압축 핵심 기술

2.1 모델 아키텍처 AquaScope는 TiTok 기반의 개선 구조를 사용하며, 세 가지 주요 요소로 구성됩니다:

  • 인코더: 이미지 크기 256×256 입력을 처리하는 ViT 기반 구조로, 초기 256개의 토큰 생성
  • 증류망: 3층의 Transformer로, 256개 토큰을 64개의 핵심 토큰으로 압축
  • 디코더: VQGAN 기반 구조로, 수신된 토큰을 바탕으로 원본 이미지 재현
class AquaScopeModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.encoder = ViT(image_size=256, patch_size=16,
                          dim=512, depth=6, heads=8)
        self.distiller = Transformer(dim=512, depth=3)
        self.decoder = VQGAN(codebook_size=8192, embed_dim=256)

    def forward(self, x):
        tokens = self.encoder(x)           # [batch, 256, 512]
        distilled_tokens = self.distiller(tokens)  # [batch, 64, 512]
        reconstructed_img = self.decoder(distilled_tokens)
        return reconstructed_img

2.2 오류에 강한 학습 전략 전송 과정에서 발생할 수 있는 오류에 대한 내성을 높이기 위해, 다음과 같은 학습 기법을 도입했습니다:

  • 과정 기반 학습(Curriculum Learning): 토큰 왜곡 비율을 점진적으로 증가 (0% → 20%)
  • 다중 손실 함수 조합:
  • LPIPS: 시각적 의미 일관성 유지
  • MSE: 픽셀 수준 정확도 보장
  • CLIP 손실: 고차원 의미 정보 보존

실험 결과, 20%의 인덱스 오류율에서도 이미지 품질이 유지되며, LPIPS 값은 0.4 미만을 기록합니다.

  1. 물리 계층 신뢰성 향상 기술

3.1 개선된 치르프 확산 방식 수중의 다중 경로 간섭 및 시간 변화 특성에 대응하기 위해 기존 CSS(Chirp Spread Spectrum)를 다음과 같이 개선했습니다:

  1. 동적 심볼 길이 조절: 채널 상태에 따라 50~200밀리초 범위에서 자동 조정
  2. 다단계 균형화: 매 5개 데이터 심볼마다 1개의 교육용 심볼 삽입
  3. 시간 지연 보정: 슬라이딩 윈도우 평균 알고리즘을 활용해 지연 변화 보정
% 시간 지연 보정 예제 코드
window_size = 5;
tolerance = 0.2;

for i = 1:length(delay_offsets)
    window = delay_offsets(max(1, i-window_size):i);
    smoothed_val = mean(window);
    if abs(delay_offsets(i) - smoothed_val) > tolerance
        corrected(i) = smoothed_val;
    else
        corrected(i) = delay_offsets(i);
    end
end

3.2 성능 비교 실험 다양한 수중 환경에서 세 가지 방식을 비교했습니다:

방식 5m IER 15m IER 20m IER 이동성 대응
OFDM 2% 46% 100% 낮음
전통적 CSS 3% 31% 85% 중간
AquaScope 0% 8% 22% 우수
  1. 시스템 구현 및 최적화

4.1 모바일 장치 배포 전략 스마트폰에서 실시간 처리를 달성하기 위해 다음 최적화 기법을 적용했습니다:

  • 모델 양자화: 32비트 부동소수점 → 8비트 정수로 전환, 모델 크기 186MB → 48MB 감소
  • 다중 스레드 파이프라인: 이미지 인코딩과 전송을 동시에 수행
  • GPU 가속: Vulkan API 기반 연산 가속

실측 결과, 스냅드래곤 865 기반 플랫폼에서 단일 프레임 처리 시간은 다음과 같습니다:

단계 소요 시간 (ms) 최적화 기법
이미지 인코딩 320 GPU 가속
채널 인코딩 150 NEON 명령어
전송 4500 최적화 불가
디코딩 280 양자화 추론

4.2 전력 소비 관리 연속 작동 시간을 3시간 이상 확보하기 위해 다음과 같은 전력 관리 전략을 사용했습니다:

  • 동적 출력 전력 조절: 거리에 따라 0.1~1W 범위에서 자동 조정
  • 간헐적 동작 모드: 전송 중이 아닌 경우 라디오 전단 비활성화
  • 계산 부하 분산: 고부하 작업을 여러 주기로 나누어 처리
  1. 실측 성능 분석

5.1 이미지 품질 평가 다양한 압축 방법을 다양한 지표로 비교했습니다:

방법 비트 수 LPIPS SSIM CLIP 유사도
원본 이미지 - 0 1.0 1.0
JPEG 14724 0.42 0.81 0.76
PNG 1975 0.38 0.78 0.72
AquaScope 768 0.30 0.75 0.82

5.2 환경 적응성 검증 다양한 수중 조건에서의 성능 변화:

  • 깊이 영향:

  • 표면: IER 5%

  • 2m 깊이: 7%

  • 3m 깊이: 12%

  • 운동 상태 영향:

  • 정지: 3%

  • 천천히 움직임: 8%

  • 빠르게 움직임: 15%

  1. 응용 사례 확장 이 기술은 수중 통신 외에도 다양한 분야에 활용 가능합니다:
  • 수중 장비 모니터링: 로봇 관측기(ROV)의 실시간 영상 전송
  • 해양 연구: 센서 네트워크를 통한 데이터 수집
  • 구조 활동: 수중 구조 작업 시 정보 공유
  • 수산 양식: 생태 환경 원격 모니터링
  1. 실용 팁 및 주의사항
  • 장비 선택 권고:

  • 저주파 응답이 좋은 스피커 탑재 장비 선호

  • 방수 케이스보다 견고한 하드웨어 방수 케이스 사용

  • 마이크 면을 항상 청결하게 유지

  • 환경 최적화 팁:

  • 송수신 장비를 동일한 수심에 위치시키기

  • 강한 수류 지역 피하기

  • 전송 중에는 장비를 가능한 한 정지 상태 유지

  • 문제 해결 가이드:

현상 원인 가능성 해결 방안
연결 실패 거리 초과 10m 이내로 접근
이미지 블록 왜곡 높은 오류율 전송 속도 감소
색상 이상 토큰 오류 핵심 프레임 재전송
지연 증가 계산 부담 백그라운드 앱 종료
  1. 향후 개선 방향
  • 다중 장치 협업: 장비 간 협력으로 전송 거리 확장
  • 동적 토큰 사전: 수중 환경에 맞춰 토큰 집합 자동 조정
  • 영상 전송 확장: 낮은 프레임률 영상 스트리밍 지원
  • 다매체 통신: 수중에서 공중으로의 원활한 전송 연결 구현

태그: 생성형 압축 수중 통신 치르프 확산 ViT VQGAN

6월 11일 19:29에 게시됨