15-431

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

2023 한국소프트웨어종합학술대회 논문집

2차원 격자 데이터를 활용한 유체 시뮬레이션의 포말


보정 기법*
정예은 O 윤상연 신병석

인하대학교 전기컴퓨터공학과
JeongYeEun@inha.edu, sangyeunyoon@inha.edu, bsshin@inha.ac.kr
Splash correction technique for fluid simulation using 2D grid
data
Ye-eun JeongO Sang-yeun Yoon Byeong-seok Shin
Department of Electrical and Computer Engineering, Inha University

요 약
기존의 유체 시뮬레이션에서 포말 보정을 위한 딥러닝 기법은 유체 입자마다 주변 유체 덩어리의 속도
를 계산하여 학습 데이터로 사용하였기 때문에 입자의 개수에 비례하여 학습 속도가 늘어나는 문제가 있
다. 이 논문에서는 이러한 문제를 해결하기 위해 유체 시뮬레이션 도중에 입자의 속도를 갱신하는데 사
용하는 임시 데이터를 추출하고, 이를 학습 데이터로 사용하여 포말 보정을 위한 딥러닝 학습 과정을 최
적화하는 방법을 제안한다. 이러한 임시 데이터는 2차원 격자 형태이므로, 이미지의 특징을 추출하여 보
존하는 U-NET을 사용했다. 이는 간과되었던 포말 현상을 정확하게 보정하여, 현실적인 시각 표현이 중
요한 시뮬레이션에 도움을 줄 수 있다.

1. 서 론 유체 시뮬레이션으로부터 얻은 포말의 속도 변화를 학


습하여, 유체 시뮬레이션에서 놓치기 쉬운 부분까지 예
유체 시뮬레이션은 유체의 움직임으로 인해 발생하는 측한다. 이를 통해 현실적인 포말을 매개변수 조절이나
상호작용을 표현하는 기법이다. 강체와 유체의 상호 작 계산 비용 증가 없이도 생성할 수 있다. MLFLIP은 입자
용으로 나타나는 물결 및 급격한 파장 표현은 현실적인 단위로 속도 데이터를 생성하여 시뮬레이션 계산 시간
시각 효과를 나타내는데 필수적이다. 그러나 이를 정확 간격이 길 때의 입자 속도와 시간 간격이 짧을 때의 입
하게 계산하는 것은 시간이 많이 소요되었고, 딥러닝을 자 속도의 차이를 학습한다. 입자 단위로 학습 데이터를
적용하여 이러한 문제를 해결할 수 있었다. 사용하면서 데이터 양에 의존하였고, 이로 인해 데이터
이 논문에서는 유체 시뮬레이션 도중에 입자의 속도 가 부족할 경우 포말 판별의 정확도가 낮아지거나 너무
를 갱신하기 위해 사용되는 2차원 격자의 임시 데이터 많은 데이터로 인해 처리 속도가 느려지는 문제가 있다.
를 추출하고, 이를 학습 데이터로 사용하여 포말 보정을 따라서 데이터 생성 방법이 중요하다.
위한 딥러닝 학습 과정을 최적화하는 방법을 제안한다.
이러한 학습 데이터를 U-NET에 학습시켜 나온 결과는 2. 관련 연구
유체 시뮬레이션에 적용하여 포말 보정을 수행하였다.
MLFLIP(Machine Learning Fluid Implicit Particle) [1] 입자 기반 유체 시뮬레이션 방법에는 대표적으로 나
은 기계 학습을 활용하여 유체의 움직임과 포말을 판별 비에-스토크스(Navier-Stokes) 방정식으로 유체의 움직
하는 유체 시뮬레이션 기법이다. 이 방법은 FLIP기반의 임을 모델링하는 SPH(Smoothed Particle Hydro-
dynamics)가 있다 [2]. FLIP [3]은 SPH의 입자 기반 접
근 방식과 유체 역학의 연속성을 보장하는 Particle-In-
*
이 논문은 2022 년도 정부(과학기술정보통신부)의 재 grid 방식의 결합을 통해 유체의 포말 현상을 모델링한
원으로 한국연구재단의 지원을 받아 수행된 연구임 다. 일부 복잡한 유체 움직임은 전통적인 물리 기반 모
(No.NRF-2022R1A2B5B01001553). 델로 정확하게 모델링하기 어렵다. 딥러닝은 유체 역학
이 논문은 2022 년도 정부(과학기술정보통신부)의 재원 에서 복잡한 유체 흐름 패턴이나 상호 작용을 잘 표현
으로 정보통신기획평가원의 지원을 받아 수행된 연구임 할 수 있어 최근 많이 활용되고 있다.
(No.RS-2022-00155915, 인공지능융합혁신인재양성(인 U-Net [4]은 이미지 특징 분할을 목적으로 제안된 완
하대학교)). 전 합성 곱 신경망 모델이다. 2차원 데이터를 학습 데이

1270
2023 한국소프트웨어종합학술대회 논문집

터로 직접 처리하며, 인코딩과 디코딩 영역으로 구성된 추출하여 입자의 개수와 비례하여 데이터 크기가 증가
다. 인코딩 단계에서 데이터 차원이 축소되지만, 디코딩 하는 기존의 방식과 달리 입자 개수에 상관없이 고정된
단계에서는 차원을 복원하면서 정보 손실을 최소화한다. 크기를 갖기 때문에 학습 데이터의 크기를 줄일 수 있
이때, 인코딩 단계에서 저장한 결과를 다시 활용함으로 다. 또한, 기존 시뮬레이션에서는 유체 입자의 특성을
써 적은 양의 데이터로도 높은 분류 성능을 제공한다. 추출할 때, 주변 유체 덩어리와의 상대적인 속도 변화를
고려하여 해당 입자가 어느 유체 덩어리에 속하는지 위
3. 포말 보정을 위한 유체 시뮬레이션 치 계산을 했다. 그러나, 2차원 격자 데이터를 사용함으
로써 입자의 위치 계산이 필요 없어 계산 복잡성이 낮
이 논문에서는 입자기반 유체 시뮬레이션에서 쇄파를 아졌다.
통해 발생하는 포말의 현실적인 표현을 위해 2차원 격 3.2 딥러닝 네트워크
자에 저장된 유체 특성을 학습 데이터로 사용한다. 이 포말의 판별과 속도 예측을 위하여 2차원 격자 데이
데이터의 격자 셀의 정보를 보존하며, 분류 정확도를 향 터를 학습할 수 있는 2개의 UNET 모델을 사용하였다.
상시키는 U-NET 네트워크를 적용하여 얻은 포말 판별 두 네트워크는 학습 데이터의 입력 값으로 격자에 저장
과 수정된 속도 값으로 포말 보정 작업을 수행한다. 된 유체의 특징 값을 사용하며, 출력 값으로 각각 격자
의 분류 라벨 값과 격자 내 유체 입자의 속도 변화 값
3.1 2차원 격자 데이터 을 사용한다. 학습된 두 네트워크는 격자 내 유체 입자
들이 포말로 분류될 확률과 유체 입자가 포말일 경우
변화되어야 하는 속도를 출력한다.
격자 셀의 속도를 수정한 후, 해당 격자 셀에 있는 입
자의 속도를 수정한다. 먼저, 각 입자의 위치를 격자 공
간 좌표로 변환하고, 입자의 격자 셀 내에서의 상대적인
위치를 계산한다. 현재 고려되는 격자 셀 주변의 다른
격자 셀에서 입자의 속도 정보를 수집하고, 주변의 격자
셀이 입자에게 주는 영향을 커널 함수로 정의한 가중치
를 사용하여 새로운 속도 및 형태변형 행렬을 계산한다.
이를 입자에 적용하여 새로운 위치로 수정하는데, 이는
(그림 1) 논문에서 제안하는 2차원 격자 데이터 추출 기존 방식에서 간과되었던 포말 현상을 정확하게 감지
과정. 하고 보정한다.

기존의 유체 시뮬레이션은 이전 프레임의 속도로 입 4. 실험 결과


자 부피를 계산하고, 이 부피 값으로 입자 마다 내력을
계산한다. 계산한 입자의 내력과 질량을 격자에 저장하
고, 격자에서 내력에 외력을 합산한다. 이러한 최종적인
힘으로 입자의 속도를 갱신하고, 수정된 속도 값으로 입
자 위치를 갱신하게 된다.
이 논문에서는 그림 1처럼 유체 시뮬레이션 과정 도
중에 입자의 속도를 갱신하는데 사용하는 2차원 격자
데이터를 추출하고 학습 데이터로 사용한다. 격자 데이
터는 너비 x 높이 x 채널로 구성되어 있으며, 각 채널은
격자 셀 내부에 포함되는 모든 입자들의 축 방향 평균 (그림 2) (a) 2차원 격자 데이터 학습시키기 전 결과 장
속도, 질량 값으로 이뤄져 있다. 면, (b) 2차원 격자 데이터 학습시킨 후 결과 장면.
2차원 격자로 유체의 특징 데이터를 구성했다면, 포
말인 격자 셀을 찾아낸다. 해당 격자 셀 주변의 상하좌 실험은 CPU가 12th Gen intel(R) Core(TM) i5-12400F
우 4개의 격자 셀을 탐색해서 격자 셀이 특정 임계 값 이고, GPU는 NVIDIA GeForce RTX 3060이 탑재된 PC
보다 적으면 포말로 격자를 분류하고, 아니면 유체로 분 환경에서 진행되었다. 이 논문의 유체 시뮬레이션은 입
류한다. 또한, 포말의 속도는 시간간격이 길면 부정확하 자 개수 9000개로 구성되었으며, 학습 데이터는 유체의
게 계산되기 때문에 이를 방지하기 위해서 시뮬레이션 초기 위치를 무작위로 정하고 600프레임동안 시뮬레이
의 시간 간격이 길 때와 짧을 때의 포말 격자의 속도 션하는 과정을 10번 반복하여 생성하였다. 우리의 학습
차이를 격자에 저장한다. 데이터는 9000×27개의 실수 값을 저장하는 기존의 방
이러한 데이터 구조는 입자마다 특성을 개별적으로 법과 달리 128×128×3개의 실수 값으로 구성된다.

1271
2023 한국소프트웨어종합학술대회 논문집

U-NET을 통해 2차원 격자인 데이터를 학습했을 때,


포말을 정밀하게 판별할 수 있는지 검증하였다. 그림 2
의 (a)는 제안한 방법으로 학습하기 전 포말의 실제 위
치와 형태를 나타내는 참 값이다. (b)는 U-NET을 통해
학습시킨 후의 포말 판별 결과를 나타낸다. 그림 2에서
파란색 픽셀은 유체 격자를 나타내며 노란색 픽셀은 유
체가 장애물에 충돌하면서 표면에 나타나는 포말을 나
타낸다. (a)와 비교했을 때, 유체의 표면에서 포말의 형
태나 위치를 정확하게 예측하는 모습을 보인다.

(그림 4) 서로 다른 네트워크로 포말의 속도를 수정한


유체 시뮬레이션 장면. (a) FC가 사용된 유체 시뮬레이
션, (b) U-NET을 사용한 유체 시뮬레이션.

5. 결론

이 연구에서는 유체 시뮬레이션 도중에 입자의 속도


를 갱신하기 위해 사용하는 2차원 격자 임시 데이터를
추출하고, 이를 학습 데이터로 사용하여 포말 보정을 위
한 딥러닝 학습 과정을 최적화하였다. 이 방법은 데이터
의 크기를 축소하고, 포말의 위치 계산이 필요 없어 계
산 비용을 절감한다. 또한, 이러한 구조의 데이터를 사
용하기 위해 U-NET을 사용하였다. 실험 결과를 통해
(그림 3) 딥러닝 네트워크 간 포말 판별의 정확도 비교. 제안한 방법이 포말 분류를 정확하게 수행하는 것을 시
각적으로 확인하였으며, 수치에서도 높은 정확도가 나타
기존 방식 [1]에서 제안했던 딥러닝 네트워크인 났다. 유체 시뮬레이션에서는 이 결과에 수정된 속도를
FC(Fully-Connected layer)와 이 연구에서 사용하는 U- 적용하였는데, 기존의 시뮬레이션 보다 현실적인 포말
NET은 최적화 알고리즘으로 Adam(Adaptive Moment 보정이 이루어졌다. 이러한 연구 결과는 유체 시뮬레이
Estimation)을 사용했고, 손실 함수로는 범주형 교차 엔 션뿐만이 아니라 다양한 물성의 시뮬레이션 분야에서
트로피(Categorical Cross-Entropy)를 사용하여 예측 값 활용될 것을 기대한다.
과 라벨 값이 일치하는지를 통해 그림 3과 같이 포말
판별의 정확도를 계산하였다. 초기 학습 단계에서 U-
NET은 FC에 비해 더 높은 정확도를 보였다. 학습을 진 참 고 문 헌
행할수록 U-NET의 정확도는 일정하게 상승하였으나,
FC는 과적합으로 인해 정확도가 떨어지는 모습을 보인 [1] Kiwon Um, Xiangyu Hu, Nils Thuerey, “Liquid Splash
다. 최종 정확도는 U-NET이 0.9697로 0.58421인 FC Modeling with Neural Networks” Computer Graphcis
의 정확도보다 높게 나타났다. 이로써 U-NET이 기존 Forum, Vol. 37, No. 8, pp. 171~182, 2018.
방식보다 정확하게 포말 분류 작업을 수행할 수 있음을 [2] Monaghan, J. J., "Smoothed particle
확인할 수 있다. hydrodynamics" Annual review of astronomy and
유체 시뮬레이션에는 포말 분류 결과에 수정된 속도 astrophysics, Vol. 30, No. 1, pp. 543-574, 1992.
를 적용하였다. 기존 방식보다 정확한 속도 예측이 이뤄 [3] J. U. Brackbill, D. B. Kothe, H. M. Ruppel, “Flip: A
져, 유체 표면에 간과되었던 포말이 나타났다. 그림 4의 low-dissipation, particle-in-cell method for fluid flow”
(a)는 포말의 형태가 크고, 일부 영역에서는 뭉쳐 보이 Computer Physics Communications, Vol. 48, No. 1, pp.
는 반면, (b)에서는 포말이 균일하게 분포되어 있고 흐 25~28, 1988.
름 역시 자연스럽게 나타난다. 이를 통해, 제안한 방법 [4] Ronneberger, O., Fischer, P., & Brox, T., "U-Net:
이 유체 시뮬레이션에서 현실적인 포말 보정을 성공적 Convolutional Networks for Biomedical Image
으로 수행한다는 것을 확인할 수 있다. Segmentation" Medical Image Computing and
Computer-Assisted Intervention, Part III, No. 18, pp.
234~241, 2015.

1272

You might also like