유니티에서 Barracuda(바라쿠다)는 Unity에서 딥러닝 모델을 실행할 수 있는 라이브러리입니다. 주로 ONNX(Open Neural Network Exchange) 포맷의 모델을 Unity 프로젝트에 통합하여 실행하는 데 사용됩니다. 이를 통해 게임, AR/VR 애플리케이션 등 다양한 Unity 프로젝트에서 AI 모델을 활용할 수 있습니다.
유니티 Barraucda 셋팅
Barracuda 설정
Unity 프로젝트에 Barracuda 패키지 추가:
- Unity Editor에서 Window > Package Manager로 이동합니다.
- 상단에서 + 버튼을 클릭하고 Add Package by Name을 선택합니다.
- com.unity.barracuda를 입력하고 Enter를 누릅니다.
https://github.com/Unity-Technologies/barracuda-release.git
스크립트 생성하기
BarracudaExample.sc 파일을 생성해주고 Barracuda 를 사용하기위해서 선언 해줍니다
using Unity.Barracuda;
Unity Editor 에서 모델을 연결 하기 위해서 NNModel 클래스를 선언해준다
Model m_RuntimeModel; 런타임 모델(유형)로 로드하고 컴파일합니다
public NNModel modelAsset;
private Model m_RuntimeModel;
void Start()
{
//신경망의 객체 지향 표현(일명: '모델')을 'NNModel' 유형의 이진 표현에서 반환
m_RuntimeModel = ModelLoader.Load(modelAsset);
}
Barracuda로 모델 실행
Barracuda를 사용하여 모델을 실행하려면 Worker를 사용합니다.
private void Start()
{
//모델 준비
var model = ModelLoader.Load(modelAsset);
_worker = WorkerFactory.CreateWorker(WorkerFactory.Type.CSharp, model);
}
using UnityEngine;
using Unity.Barracuda;
public class BarracudaExample : MonoBehaviour
{
public NNModel modelAsset; // Unity Editor에서 모델을 연결
private IWorker worker;
void Start()
{
// 모델 준비
var model = ModelLoader.Load(modelAsset);
worker = WorkerFactory.CreateWorker(WorkerFactory.Type.ComputePrecompiled, model);
// 입력 데이터 생성 (예: 224x224 이미지)
Tensor input = new Tensor(1, 224, 224, 3); // 1xHeightxWidthxChannels
// 결과 추론
worker.Execute(input);
Tensor output = worker.PeekOutput();
// 결과 처리
Debug.Log($"Output: {output[0]}");
// 리소스 해제
input.Dispose();
output.Dispose();
}
void OnDestroy()
{
worker?.Dispose();
}
}
처리 결과 확인하기
https://github.com/Third-Aurora/Barracuda-Image-Classification/tree/main