- AquaScope 개요 AquaScope는 수중 환경에서의 이미지 통신을 가능하게 하는 혁신적인 시스템으로, 생성형 압축과 물리 계층 신뢰성 강화 기술을 결합하여 스마트폰 등 소형 장비에서도 256×256 해상도의 컬러 이미지를 안정적으로 전송할 수 있도록 설계되었습니다. 이 시스템은 기존 수중 통신의 주요 제약인 대역폭 부족과 높은 오류율 문제를 극복합니다.
주요 성과: 기존 텍스트 중심 전송 방식을 넘어, 최대 20미터 거리에서 256×256 이미지를 전송하며, 평균 인덱스 오류율(IER)은 10.5%로 매우 낮습니다.
전체 프로세스는 다음과 같은 네 단계로 구성됩니다:
-
이미지 압축 – 변환기 기반 생성 모델을 이용해 원본 이미지를 64개의 의미적 토큰으로 변환
-
채널 인코딩 – 개선된 치르프 확산 기법을 활용한 오류 내성 인코딩
-
수중 전송 – 스마트폰 스피커와 마이크를 활용한 음향 전달
-
이미지 복원 – 수신 측에서 토큰을 디코딩하고 생성 모델로 이미지를 재구성
-
생성형 압축 핵심 기술
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 미만을 기록합니다.
- 물리 계층 신뢰성 향상 기술
3.1 개선된 치르프 확산 방식 수중의 다중 경로 간섭 및 시간 변화 특성에 대응하기 위해 기존 CSS(Chirp Spread Spectrum)를 다음과 같이 개선했습니다:
- 동적 심볼 길이 조절: 채널 상태에 따라 50~200밀리초 범위에서 자동 조정
- 다단계 균형화: 매 5개 데이터 심볼마다 1개의 교육용 심볼 삽입
- 시간 지연 보정: 슬라이딩 윈도우 평균 알고리즘을 활용해 지연 변화 보정
% 시간 지연 보정 예제 코드
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% | 우수 |
- 시스템 구현 및 최적화
4.1 모바일 장치 배포 전략 스마트폰에서 실시간 처리를 달성하기 위해 다음 최적화 기법을 적용했습니다:
- 모델 양자화: 32비트 부동소수점 → 8비트 정수로 전환, 모델 크기 186MB → 48MB 감소
- 다중 스레드 파이프라인: 이미지 인코딩과 전송을 동시에 수행
- GPU 가속: Vulkan API 기반 연산 가속
실측 결과, 스냅드래곤 865 기반 플랫폼에서 단일 프레임 처리 시간은 다음과 같습니다:
| 단계 | 소요 시간 (ms) | 최적화 기법 |
|---|---|---|
| 이미지 인코딩 | 320 | GPU 가속 |
| 채널 인코딩 | 150 | NEON 명령어 |
| 전송 | 4500 | 최적화 불가 |
| 디코딩 | 280 | 양자화 추론 |
4.2 전력 소비 관리 연속 작동 시간을 3시간 이상 확보하기 위해 다음과 같은 전력 관리 전략을 사용했습니다:
- 동적 출력 전력 조절: 거리에 따라 0.1~1W 범위에서 자동 조정
- 간헐적 동작 모드: 전송 중이 아닌 경우 라디오 전단 비활성화
- 계산 부하 분산: 고부하 작업을 여러 주기로 나누어 처리
- 실측 성능 분석
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%
- 응용 사례 확장 이 기술은 수중 통신 외에도 다양한 분야에 활용 가능합니다:
- 수중 장비 모니터링: 로봇 관측기(ROV)의 실시간 영상 전송
- 해양 연구: 센서 네트워크를 통한 데이터 수집
- 구조 활동: 수중 구조 작업 시 정보 공유
- 수산 양식: 생태 환경 원격 모니터링
- 실용 팁 및 주의사항
-
장비 선택 권고:
-
저주파 응답이 좋은 스피커 탑재 장비 선호
-
방수 케이스보다 견고한 하드웨어 방수 케이스 사용
-
마이크 면을 항상 청결하게 유지
-
환경 최적화 팁:
-
송수신 장비를 동일한 수심에 위치시키기
-
강한 수류 지역 피하기
-
전송 중에는 장비를 가능한 한 정지 상태 유지
-
문제 해결 가이드:
| 현상 | 원인 가능성 | 해결 방안 |
|---|---|---|
| 연결 실패 | 거리 초과 | 10m 이내로 접근 |
| 이미지 블록 왜곡 | 높은 오류율 | 전송 속도 감소 |
| 색상 이상 | 토큰 오류 | 핵심 프레임 재전송 |
| 지연 증가 | 계산 부담 | 백그라운드 앱 종료 |
- 향후 개선 방향
- 다중 장치 협업: 장비 간 협력으로 전송 거리 확장
- 동적 토큰 사전: 수중 환경에 맞춰 토큰 집합 자동 조정
- 영상 전송 확장: 낮은 프레임률 영상 스트리밍 지원
- 다매체 통신: 수중에서 공중으로의 원활한 전송 연결 구현