# Lens Studio

Roboflow에서 학습된 모델이 준비되면, 해당 모델을 SnapML에 배포할 수 있습니다.

## 작업 지원

다음 작업 유형은 호스팅 API에서 지원됩니다:

| 작업 유형            | Lens Studio 지원 |
| ---------------- | -------------- |
| Object Detection | ✅              |
| 분류               |                |
| 인스턴스 세분화         |                |
| 시맨틱 세분화          |                |

*참고: Roboflow Train 3.0으로 학습된 모델만 지원됩니다. 모델과 연결된 Versions 페이지를 확인하면 해당 모델이 Roboflow Train 3.0으로 학습되었는지 확인할 수 있습니다.*

## 모델을 Lens Studio에 배포하기

Roboflow 사이드바에서 “Deploy”를 클릭한 다음, “Use with Snap Lens Studio” 상자가 보일 때까지 아래로 스크롤합니다. “Export to Lens Studio”를 클릭합니다.

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FuDgYj9rvK3qvndktYPVY%2Fimg-1-deploy.png?alt=media&#x26;token=13518512-8709-444b-be19-d5162b7b1dd4" alt=""><figcaption></figcaption></figure>

이 버튼을 클릭하면 모델의 클래스에 대한 정보를 보여주는 팝업이 나타납니다.

이 클래스들은 순서대로 정렬되어 있으며, 다음 단계에서 Lens Studio에서 모델을 구성할 때 사용됩니다. 나중에 사용할 수 있도록 클래스 목록을 메모해 두세요.

또한, 두 개의 파일이 다운로드됩니다:

1. Roboflow Lens Studio 템플릿은 최소한의 설정으로 애플리케이션에서 weights를 사용할 수 있게 해주며,
2. 모델 weights.

Roboflow Lens Studio 템플릿은 100 MB이므로, 인터넷 연결 상태에 따라 템플릿 다운로드에 몇 분이 걸릴 수 있습니다.

템플릿이 준비되었으면, Lens Studio에서 모델 설정을 시작할 수 있습니다.

### Lens Studio에서 모델 구성하기

아직 Lens Studio를 설치하지 않았다면, [Snap AR website](https://ar.snap.com/lens-studio) 로 이동해 최신 버전의 Lens Studio를 다운로드하세요. Lens Studio가 설치되면, 모델 구성을 시작할 준비가 완료됩니다.

이 섹션에서는 Roboflow Lens Studio 템플릿을 사용합니다. 하지만 다음과 함께 어떤 애플리케이션에서든 모델 weights를 사용할 수 있습니다. [MLController component](https://docs.snap.com/lens-studio/references/templates/ml/object-detection).

이전에 다운로드한 Roboflow Lens Studio 템플릿의 압축을 푼 다음, `Roboflow-Lens-Template.Isproj` 파일을 압축 해제된 폴더에서 엽니다.

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FWJLG4RXc16RCLnwsmBGU%2Fconfigure-model-1.png?alt=media&#x26;token=ab109009-39f2-422c-9b0b-27f453e86eb7" alt=""><figcaption></figcaption></figure>

애플리케이션을 열면 다음과 같은 화면이 보일 것입니다:

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FO3NYWxWq0zadkD5IyFP3%2Fconfigure-model-2.png?alt=media&#x26;token=73eeb5b9-13c3-4327-938d-5b73ba7cccaf" alt=""><figcaption></figcaption></figure>

기본적으로 이 템플릿은 동전 개수 세기 모델을 사용합니다. 이 예제에서는 앞서 만든 playing cards 모델을 사용하겠습니다. 이 애플리케이션은 각 prediction 주위에 박스를 그리지만, Lens Studio를 사용해 자신만의 필터와 로직을 추가할 수 있습니다.

Lens Studio 왼쪽 사이드바 상단의 “ML Controller” 상자를 클릭합니다:

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FIWbF0ueatm5q6J8tvkMx%2Fconfigure-model-3.png?alt=media&#x26;token=fa8d6f74-5d25-4d4b-bb8f-8995ed1c0f3c" alt=""><figcaption></figcaption></figure>

그러면 미리보기 창 옆의 애플리케이션에서 사용할 수 있도록 모델을 구성할 수 있는 상자가 열립니다:

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FGiRIs1hAKAJfJkYNW5VX%2Fconfigure-model-4.png?alt=media&#x26;token=5679992c-7b5a-4324-b373-37189d83c5e8" alt=""><figcaption></figcaption></figure>

데모 애플리케이션은 동전 계산 예제에 맞게 구성되어 있습니다. 자신의 모델을 사용하려면 먼저 “ML Model” 상자를 클릭합니다:

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FWPxbUhiIj13OcjlLYIMz%2Fconfigure-model-5.png?alt=media&#x26;token=d61f4ece-38c5-4448-810c-93ff1254d7b6" alt=""><figcaption></figcaption></figure>

그런 다음 Roboflow에서 다운로드한 weights를 팝업 상자 안으로 드래그합니다:

{% embed url="<https://blog.roboflow.com/content/media/2023/06/Screen-Recording-2023-06-21-at-11.02.58.mp4>" %}

weights를 드래그하면 몇 가지 구성 옵션이 표시됩니다. 팝업의 “Inputs” 섹션에서 각 “Scale” 값을 0.0039로 설정하세요. bias 값은 기본값 그대로 두세요.

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2F8oZGI1XaVRrNQJAqujYz%2Fconfigure-model-6.png?alt=media&#x26;token=b9b89b4d-f148-43dd-b0cb-eef0aef3683c" alt=""><figcaption></figcaption></figure>

그런 다음 “Import”를 클릭하여 모델을 가져옵니다.

### Lens Studio에서 클래스 구성하기

이제 모델이 Lens Studio에 로드되었습니다. 한 가지 단계만 더 남았습니다. 모델이 어떤 클래스를 사용하는지 알려줘야 합니다.

이전에 사용한 ML Model 버튼 아래의 “Class Settings” 탭에서 클래스 목록을 볼 수 있습니다. 이는 데모 프로젝트의 동전 계산 예제에 맞게 구성되어 있지만, 자신만의 Lens Studio 프로젝트를 작업 중이라면 이 값들은 비어 있을 것입니다.

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2Feae6lDdvj7kiTo2nkoQG%2Fconfigure-lens-1.png?alt=media&#x26;token=726c62bc-4e51-4faa-a7a7-1198171f9467" alt=""><figcaption></figcaption></figure>

여기서 클래스 이름과 레이블을 설정해야 합니다. 레이블은 Roboflow 대시보드에 표시된 순서와 동일해야 합니다. 다음은 playing card 애플리케이션에서 값 중 하나를 설정하는 예시입니다:

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2Fxw0vXAd3xamV51VMdaAt%2Fconfigure-lens-2.png?alt=media&#x26;token=8f1771f2-0847-422e-9538-590d20cabb52" alt=""><figcaption></figcaption></figure>

모델의 각 클래스에 대해 이 구성을 해야 합니다. Snap이 모델 weights의 정보를 해석할 수 있도록 모델의 모든 클래스를 지정해야 합니다.

이제 애플리케이션을 사용할 준비가 되었습니다! “Preview” 상자를 사용해 컴퓨터에서 애플리케이션을 실행할 수 있고, 또는 다음을 사용해 자신의 기기에서 데모를 진행할 수 있습니다. [Pairing with Snapchat 기능](https://docs.snap.com/lens-studio/references/guides/general/pairing-to-snapchat).
