Custom Vision Service + CoreML로 스시 분류

소개



어떤 콘테스트를 향해 후배 과 스시 판별하는 앱을 만들었습니다.
(후배가 특히 열심히 해주고, 소재 작성은 다른 후배에게 노력해 주었습니다.)

이 앱 실현을 위해 사용한 것의 노하우 「Custom Vision Service를 이용해 coreML용 mlmodel을 작성, iOS에서 추론을 실시해 결과를 출력시킨다」를 정리하고 싶었으므로, 여기에 정리합니다.

학습 데이터 얻기



우리가 소속한 단체의 멤버가 모 대기업 회전 스시 체인점에 간 타이밍에 스시의 사진을 찍어 주었습니다.
개발 멤버 모두 먹으러 가서 찍기도 했습니다.
그것만으로는 물론 부족하기 때문에 웹에서도 이미지를 수집했습니다.
거기엔의 이야기는 본건과 관계가 얇기 때문에 여기에는 쓰지 않습니다만, gg하면 많은 정보가 나옵니다.

Custom Vision Service에서 스시 학습



Custom Vision Service - Microsoft Azure
여기에 액세스하고 시작하기를 눌러 로그인합니다.


그러면 이런 느낌의 화면으로 전환할까 생각합니다.
내 녀석은 이미 프로젝트가 있지만 초기 상태에서는 괜찮다고 생각합니다.
여기에서 "New Project"를 클릭하십시오.


이와 같이 적절한 정보를 넣어 프로젝트를 만듭니다.
이때 Domains 항목은 General(compact)을 선택해 둡니다.


그러면 이러한 화면으로 전환합니다.
후에는 중간의 "Add images"버튼을 눌러 이미지를 추가하는 것입니다.
정말 쉽네요. 놀랍습니다.


예를 들어 참치 잡기를 추가할 때는 이런 식으로 이미지 + 태그를 설정하고 업로드 버튼을 누르면됩니다.


무사히 종료하면 이런 식으로 밥 테러 화면이 완성됩니다.
빨리 이런 음식을 많이 먹을 수 있는 어른이 되고 싶었습니다.

무료 프레임으로 학습할 수 있는 이미지의 매수가 1000장이었으므로, 이번에는 20종류의 스시 재료에 대해 50장씩 이미지를 모았습니다.
(지금 생각하면 적은 생각이 들지만, 거기는 이번에 둡니다.)

모든 이미지를 태그 첨부로 업로드가 가능하면, 후에는 위에 있는 녹색의 「Train」을 누르면 학습이 시작됩니다.

학습이 끝나면 실적을 확인해 봅시다.


재현율이 약간 나쁘지만, 그만큼의 매수로 여기까지의 정밀도가 나왔습니다.
정말 대단하네요.

나중에 이 PERFORMANCE 탭의 "Export"를 누르면


이런 식으로 CoreML의 mlmodel로 학습 모델을 토해낼 수 있습니다.

CoreML에서 추론



이 기사 가 매우 알기 쉽고 참고로 했습니다.
작성한 단계에 따라 모델을로드하고 추론 프로그램을 자신의 앱에 잘 결합하여 콘테스트를 향한 앱을 만들었습니다.
(이 기사를 쉽게 시험한다면 위 기사의 프로그램만으로 움직인다고 생각합니다.)

실행 결과



상기의 기사의 프로그램으로 작성한 모델로부터 무사하게 스시 재료를 추론이 되어 있는지 확인입니다.

잘 할 것 같네요.

요약



고도의 기술 이야기를 몰라도 세상에 있는 것을 사용하는 것만으로 부담없이 적당한 정도의 스시 분류를 할 수 있었습니다.
안에서 무슨 일이 일어나고 있는지 잘 모르는 것은 무서운 것 같아서 제대로 기술적인 공부도 맛있게 하고 싶다고 생각했습니다.

좋은 웹페이지 즐겨찾기