본문내용 바로가기 주메뉴 바로가기
닫기

유니티 스퀘어

AI 모델의 차세대 기능을 여는 Unity Sentis

관련주제
  • #AI
  • #AR
  • #How-to
  • #머신러닝
  • #Unity Sentis
  • #VR
2024.01.22



Unity는 개발자가 게임과 애플리케이션에 AI 모델을 활용할 수 있도록 지원하기 위해 Unity Sentis를 만들었습니다. 사전 릴리스 오픈 베타 버전으로 출시된 Sentis를 활용하면 오브젝트 식별, 음성 인식, 스마트 NPC와 같은 복합적인 기능을 모든 종류의 프로젝트에 도입할 수 있습니다.

이러한 AI 모델은 ONNX 파일 표준을 통해 임포트한 후 모든 Unity 지원 플랫폼에서 직접 실행할 수 있습니다. 즉, 클라우드 인프라를 갖추지 않아도 사용자 기기의 Unity Runtime에서 대부분의 AI 모델을 직접 실행할 수 있게 되는 것입니다.



Unity Sentis 시작하기

Unity Sentis 패키지 기술 자료는 여기에서 확인할 수 있으며 패키지 관리자를 통해 다운로드할 수 있습니다. 프로젝트에 패키지를 설치했으며 사용하려는 AI 모델이 있다면 쉽게 통합할 수 있습니다.


1단계: 지원되는 AI 모델 찾기

프로젝트에 사용할 모델은 전적으로 개발자가 선택할 수 있습니다. 수행하려는 작업에 따라 모델을 선택해야 합니다. 먼저 Hugging Face, Keras, PyTorch 등의 마켓플레이스에서 관심이 가는 모델을 살펴보세요. 머신 러닝 관련 지식이 있다면 자체 모델을 직접 훈련해도 되고, Unity ML-Agents를 사용해서 심층적인 강화 학습을 진행할 수도 있습니다. 핵심은 모델을 반드시 ONNX 파일 포맷으로 변환해야 한다는 것입니다. 필요하다면 TF2ONNX와 같은 
ONNX 변환기를 사용할 수 있습니다.

Sentis 기술 자료의 모델 임포트 항목에서 관련 코드 샘플을 확인해 보세요.


2단계: Unity에 모델 로드

Unity에 모델을 로드하는 과정은 에셋을 로드하는 과정과 동일합니다. 에디터 내 프로젝트(Project) 창의 Asset 폴더에 모델을 드래그하면 Sentis가 임포트한 모델을 자동으로 최적화합니다. 그런 다음 런타임 모델 오브젝트를 만듭니다.

Sentis 기술 자료의 모델 로드 항목에서 관련 코드 샘플을 확인해 보세요.


3단계: 입력과 인퍼런스 만들기

입력을 만드는 과정은 간단한 편입니다. ONNX 모델 임포트 설정에서 필요한 모델 입력의 형태와 크기를 확인하고, 그런 다음 데이터 소스를 통해 텐서를 만들 수 있습니다. 여러 개의 입력이 필요할 경우 모든 입력을 하나의 딕셔너리에 저장합니다.

Sentis 기술 자료의 모델에 대한 입력 생성 항목에서 관련 코드 샘플을 확인하세요.


4단계: 모델 실행 및 최적화

모델을 실행할 준비를 마쳤다면, 모델을 사용자의 기기(CPU 또는 GPU)에서 실행할 수 있는 작업으로 분할하는 워커를 만들어야 합니다. 워커는 이 코드 샘플을 참고해서 만들 수 있습니다.

워커가 준비되었다면 AI 모델을 실행할 차례입니다. 이 단계에서는 모델의 입력과 출력을 게임 코드와 연결한 다음 프로파일러를 사용해서 예산 준수 여부를 확인합니다. 예산 범위를 초과했다면 모델을 여러 프레임에 걸쳐 분할하거나, Sentis에서 다른 성능 조정 옵션을 살펴볼 수 있습니다.

Sentis 기술 자료의 모델 실행 항목에서 모델 실행, 출력 확보, 출력 최적화와 관련된 상세 정보를 확인하세요.


5단계: 모델 테스트 및 배포

마지막 단계는 게임을 테스트하고 배포하는 것입니다. 그 과정은 다른 Unity Runtime 플랫폼에서와 동일합니다. 모델은 게임 바이너리 내에 몇 가지 방식으로 도입할 수 있습니다. 모델을 빌드에 임베드하거나, 스트리밍 에셋으로 실행하여 필요할 때만 다운로드하게 할 수도 있습니다. 혹은 보안상 이유로 모델을 암호화하는 것도 고려해 볼 수 있습니다.

Sentis 기술 자료의 모델 암호화 항목에서 관련 코드 샘플을 확인하세요.


프로젝트 샘플

AI로 숫자 인식 모델 만들기

이 입문자용 샘플은 잠긴 방에서 문을 열 수 있도록 오브젝트 감지 모델을 실행하여 Sentis의 기본 기능을 신경망과 함께 활용하는 방법을 보여 줍니다. 여기서는 손으로 쓴 숫자를 읽고 그와 일치할 확률이 가장 높은 숫자를 식별하는 AI 모델인 MNIST를 실행합니다.


AI 기반 보드 게임 상대 만들기

이 샘플은 Sentis를 사용해 오델로라는 보드 게임에서 설정한 난이도에 따라 상대 역할을 수행하는 봇을 만듭니다. 게임 규칙을 바탕으로 훈련한 신경망을 실행하며, 돌을 놓을 때마다 게임의 승률을 판단해서 승률을 가장 높일 수 있는 움직임을 예측합니다. 이는 복잡한 휴리스틱과 트리 순회를 사용하는 기존의 방식보다 간단한 솔루션입니다.




AI 기반 뎁스 추정으로 AR 경험 만들기

이 샘플은 Sentis를 AR(증강 현실) 경험에 통합하는 방법을 보여 줍니다. 이는 뎁스 추정 신경망을 사용해서 실제 사물이 게임 씬의 오브젝트를 가릴 수 있게 합니다. 카메라의 동영상 프레임을 처리하여 뎁스를 파악하는 이 방식은 비용이 많이 드는 휴대폰에서만 사용할 수 있는 LiDAR 센서를 활용한 기존의 방식보다 확장성이 뛰어납니다.

이 방식은 카메라가 있는 모바일 기기에서 사용할 수 있으며 LiDAR 센서를 필요로 하지 않습니다.





기타 사용 사례

AI 모델을 활용하면 기존의 코드로는 불가능했거나 개발에 막대한 시간이 소요되었을 유용한 기능을 만들 수 있습니다. 사용 사례는 AI 모델의 모든 범주를 아우르며, 그 활용 방식은 개발자가 구현하고자 하는 모델에 따라 달라집니다. 그래도 개발 과정에서의 Sentis 활용법을 몇 가지 꼽아 보자면 다음과 같습니다.


이미지/에셋 업스케일링

다양한 플랫폼으로 손쉽게 퍼블리싱이 가능하다는 점은 개발자들이 Unity를 선택하는 큰 이유입니다. 하지만 최적화 또한 여전히 중요한 과제입니다. TensorFlow의 Super Resolution과 같은 업스케일링 모델을 활용하면 게임의 저해상도 이미지나 텍스처를 프로덕션 품질로 끌어올리거나, 다양한 기기에서 필요할 때에만 에셋을 최적화할 수 있습니다.


음성 인식

플레이어 상호 작용은 커넥티드 온라인 게임에서 NPC 및 다른 플레이어와 소통하기 위한 핵심 요소입니다. OpenAI의 Whisper와 같은 음성 텍스트 변환 모델을 활용하면 실시간으로 음성을 인게임 텍스트로 변환할 수 있습니다. 또한 AI 모델을 도입해서 매뉴얼 스크립팅의 제한 없이 다이얼로그를 자동화하고 플레이어 및 NPC 간 유의미한 상호 작용을 생성할 수도 있습니다.


그래픽스 최적화

AI는 참신한 기능을 개발하는 데에 주로 활용되고 있지만, 한편으로는 게임 성능 향상 측면에서도 매우 유용하게 쓰일 수 있습니다. 게임 씬의 사전 렌더링된 프레임을 가상화하기 위해 업스케일링 GAN AI 모델을 사용하여 모바일에서의 레이트레이싱을 향상하는 AI 모델이 좋은 예시입니다. 이러한 활용 방식을 통해 개발자는 소규모 프로젝트에서 사용자 기기의 성능에 영향을 미치지 않으면서도 빛 굴절이나 커스틱 면 광원과 같은 패스트레이싱 기능을 구현할 수 있습니다.


AR 및 VR 오브젝트 인식

AR과 VR(가상 현실) 또한 Sentis를 통해 AI 모델을 활용할 수 있는 훌륭한 사용 사례입니다. 예를 들어 Ultralytics YOLO 모델을 사용해 VR에서는 게임 씬의 오브젝트를, AR에서는 기기 카메라 피드의 실제 사물을 감지할 수 있습니다. 이를 통해 사용자는 오직 AI로만 구현할 수 있는 새로운 차원의 시각적 경험을 누릴 수 있습니다.

Unity Sentis는 현재 오픈 베타 버전으로 무료 제공되며, Unity 2021.3 이상을 사용하는 Unity 개발자라면 누구든지 패키지 관리자를 통해 사용할 수 있습니다.







 














Unity Square 로그인
Unity MWU Korea Awards 2021 TOP 36 투표와 관련하여, 본인의 개인정보를 유니티테크놀로지스코리아 유한회사(이하 ‘회사‘)에서 수집 및 이용하는 것에 대해 동의합니다.

- 단, 관계법령의 규정에 의하여 보전할 필요가 있는 경우, 일정 기간 동안 개인정보를 보관할 수 있습니다. 그 밖의 사항은 회사의 개인정보취급방침을 준수합니다.
- 개인정보 수집/이용에 동의하지 않을 수 있으나, 미동의시 이벤트에 참여가 불가능합니다.
개인정보 수집 항목 이름, 휴대폰번호, 이메일
수집 목적 어뷰징 등을 통한 부정 투표 방지 및 이벤트 당첨, 경품 발송
보유기간 투표 종료 후 3개월 이내 파기
본 이벤트의 당첨자 추첨 및 배송, 응모 및 당첨자 경품 배송관련 상담 업무 등은 슈퍼와이 주식회사, 피엠지 아시아에 위탁됩니다.

- 개인정보 수집/이용에 동의하지 않을 수 있으나, 미동의시 이벤트에 참여가 불가능합니다.
위탁업체명 위탁업무
슈퍼와이 주식회사 TOP 36 투표 참여자 정보 처리 및 관리
피엠지 아시아 TOP 36 투표 참여자 문의/답변 대응 및 경품 발송
확인 발표자료 신청하기
닫기