앱개발

학습된 모델로 실시간 추론하는 아이폰 앱 만들기

제갈티 2024. 9. 11. 08:56

 

지난번 게시물에선 맥오스에 내장된 CreateML로 이미지 데이타셋을 학습시켜서 mlmodel 모델파일을 만드는걸 따라해 보았다.

 

이번엔 그렇게 만들어진 모델파일로 아이폰 앱을 만드는 과정을 살펴보겠습니다.

 

CreateML의 학습된 모델 내보내기 창

 

- 지난번 게시물의 마지막에 보였던 학습한 모델 내보내기 창입니다.
저 창에서 우측 상단의 Get 버튼을 누르면 MyImageClassifier1.mlmodel 이라는 파일이 프로젝트 폴더에 저장됩니다.

 

맥에 저장된 mlmodel 의 예시입니다.

 

- 용량이 매우 작죠.  겨우 몇 KB에서 커봐야 몇백 KB 수준입니다.

 

 

이미지분류앱 예제 프로젝트 다운로드 사이트

 

- 아래 사이트에서 swift로 만들어진 image 분류앱  예제파일 다운로드 합니다.
https://developer.apple.com/documentation/coreml/model_integration_samples/classifying_images_with_vision_and_core_ml

- swift 는 아이폰 앱개발을 하는 애플이 독자적으로 만든 개발언어입니다.

 

 

XCode에서 연 이미지분류 예제 프로젝트


- 다운받은 프로젝파일의 압축을 풀면 확장명이 *.xcodeproj 인 파일이 하나있는게 그걸 더블클릭하여 

XCode에서 프로젝트 파일을 로딩합니다.
- 그러면 그림처럼 뜨는데, 좌측의 프로젝트 구조뷰에서 Model 폴더를 선텍후 오런쪽 마우스 팝업메뉴에서 Add to 폴더기능으로 준비한 mlmodel 파일을 그림처럼 추가합니다.

 

 

추가된 모델파일명으로 예제코드를 변경해주는 장면

 

- 그림처럼 Image Predictor 코드에서 삽입한 모델파일명으로 기존의 코드를 수정해줍니다.
- 이미지 분류앱에서 코드 수정은 이거 한줄만 변경해주면 끝입니다. 간단하죠?

 

 

아이폰 시뮬레이터 설치모습


- 완성된 코드를 실행하는 방법은 두가지 입니다.
- 맥에서 시뮬레이터로 실행해보는 방법이 첫번째고 연결한 아이폰에 직접 디바이스 컴파일하여 아이폰에서 돌려보는 방법이 두번째 입니다.
- 맥에서 시뮬레이터로 앱을 실행하려면 그림처럼 먼저 시뮬레이터를 설치해야 합니다.

 

시뮬레이터 모습

 

- 아이폰 시뮬레이터는  저렇게 생겼습니다. 아이폰 버전별로 다르게 보이며 실제 아이폰화면과 거의 동일하게 작동합니다.

 

- 하지만 우리는 디바이스 컴파일로 실행해야겠죠~?

 

 

개발자 모드 설정하기


- 디바이스 컴파일을 하려면 아이폰 설정에서 개발자모드를 켜주어야 합니다.

- 개발자 모드는 개인정보보호 메뉴안에 있습니다.


디바이스 컴파일을 하는 모습입니다.


- 아이폰의 맥에 연결되어 있어야 하며, 화면락이 풀린 상태여야 합니다.

- 그 밖에도 초기 디바이스 컴파일은 시간이 좀 걸리며 물어보는게 좀 있는데, 시키는대로 하면 됩니다.

 

 

아이폰에 디바이스 컴파일된 모습

 

- 격자무늬의 낯선 아이콘이 보이죠?

- 최신 iOS에서 제공하는 화면 편집기능으로 앱아이콘을 키우고 글자를 안보이게 변경해서 저렇게 보이는 것일뿐, 아이폰 화면 맞습니다. ^^ 

- 옛날에는 디바이스 컴파일을 하는데도 년 10만원 정도를 요구했었는데 요즘은 디바이스 컴파일은 무료입니다. 

- 디바이스 컴파일도 성공한 앱은 이제 앱스토어에 올려서 판매도 가능하죠. 물론 애플 앱스토어가 요구하는 앱의 필요충분 조건을 만족해야 하지만 말입니다~.