프로그래밍

구글 Teachable Machine 사용법

개발독학 2021. 5. 2. 09:37

초보자도 쉽게 인공지능을 사용할 수 있는 사이트를 소개해드리겠습니다.

teachable machine 홈페이지

구글에서 만든 인공지능 학습 사이트인 "teachable machine"의 화면입니다.(https://teachablemachine.withgoogle.com/train)
2021년 5월 기준, 이 사이트에서는 세가지의 모델을 제공하고 있습니다. 이미지 분류, 소리 분류, 신체 추정(pose estimation)이 있습니다. 이미지 분류 또는 소리 분류의 경우, 위의 사진처럼 분류하고 싶은 것들의 이름을 지정한 뒤(ex. 개, 고양이), 해당 이름에 맞는 이미지나 소리를 업로드 해주면 됩니다. 그리고 "Train Model"을 클릭하면 잠시 후에 학습이 완료되어 내가 원하는 분류 모델을 가질 수 있죠. 이 모델이 있으면 어떤 사진이 들어왔을 때 이 사진이 개인지 고양이인지 자동으로 알아낼 수가 있다는 것입니다. (물론 분류명이나 분류할 카테고리 수는 조정이 가능합니다.) 이렇게 학습이 완료된 모델은 "export" 기능을 통해 javascript에서 사용할 수 있게 됩니다. 구글에 모델이 업로드되기 때문에 frontend 개발만 하더라도 쉽게 사용할 수 있다는 게 큰 장점입니다.

그리고 신체 추정은 이미지 안에 존재하는 사람의 발목, 손목, 어깨, 허리, 가슴 등의 상세 위치를 추정할 수 있습니다. 이를 잘 활용하면 자동으로 동작을 인식해주는 일도 가능할 것입니다. 직접 실행해보니 분류 모델보다는 신체 추정 모델의 학습 시간이 더 오래 걸립니다.

teachable machine 홈페이지(2)

이미지 분류를 위해 "Image Project"를 선택합니다.

위의 이미지에서는 예를 들기 위해 개, 고양이 모두 한 개의 이미지만 업로드했습니다. 하지만 실제로 진행할 때는 한 분류당 최소 100개 이상의 이미지를 사용하는 걸 추천드립니다. 인공지능 모델 학습에 사용되는 이미지들은 그 모델이 알게 되는 전부입니다. 1장의 개 사진만 보고 배운 모델과 1000장의 개 사진을 보고 배운 모델의 정확도가 다를 수 밖에 없는 이유입니다. 사람의 눈과 달리 컴퓨터는 이미지 그 자체를 어떠한 값으로 보기 때문에 회전, 밝기, 촬영한 위치 등에 굉장히 민감합니다. 만약 개의 옆모습만 찍은 사진들로 학습한 뒤에 개의 앞모습을 보고 무엇인지 맞춰보라고 한다면, 정확한 결과가 나오기 어렵습니다. 그래서 실제로 사용할 때는 많은 수의 다양한 사진을 사용하는 것이 좋습니다. 이는 꼭 분류 뿐만 아니라 신체 추정 등의 다른 모델에서도 마찬가지입니다. 


이미지 데이터가 없을 때는 크롤링을 통해 구할 수 있습니다. 관련 포스트는 하단에 추가했습니다!

teachable machine 홈페이지(3)

위에서 간단히 설명해드렸지만 이 사이트에서 학습된 모델은 javascript 에서 사용할 수 있도록 배포됩니다. github pages와 같은 무료 기능을 통해서 간단한 웹 사이트를 만들고 인공지능 모델을 돌리는 것도 가능합니다. 만약 취업을 준비하는 사람이라면 이런 사이트들을 몇 개 만들어 놓는 것도 도움이 될 거라고 생각합니다. 저는 경험이 제일 중요하다고 생각합니다. 그래서 데이콘과 같은 대회에 참여하거나 이런 간단한 인공지능 모델 학습을 해보고 사이트를 만드는 것도 좋은 일이라고 생각합니다. 너무 부담가지지 마시고 가벼운 마음으로 재밌게 인공지능을 배워보셨으면 좋겠습니다. 좀 더 복잡한 모델을 사용해보고 싶다면 "google colab"을 사용해도 됩니다. GPU를 쓸 수 있는 클라우드형의 편집기라고 봐도 됩니다. 무료로 사용할 경우는 하루 12시간 이후 세션이 종료됩니다. 하지만 공개된 좋은 소스가 많은 만큼, 환경 설정이 매우 쉬워서 빠른 진행을 할 수 있다는 장점이 있습니다.

 

모델을 js 처리하는걸 배우기 좋은 유튜브 영상 링크 공유드리고 마치겠습니다.
글 읽어주셔서 감사합니다.


개발독학의 추천 포스트

2021.05.13 - [분류 전체보기] - 네이버/구글 이미지 자동 크롤링 프로그램 사용법 정리