최근 유투브를 보다가 티쳐블 머신을 활용한 프로젝트를 보다가 아주 감명 깊게 받아서, 이걸 가지고 프로젝트를 한번 해봐야겠다는 생각이 들었습니다.
조코딩 유투브 채널을 보고 한번 만들어 봤어요 ㅎ
■ 관상로또 만들어보기
https://facelotto.site/facelotto/
그럼! 티쳐블 머신에 대해서 알아봅시다.
티쳐블 머신이 무엇인가요?? 구글에서 야침차게 공개한 티쳐블 머신, Version 2입니다.
제작년에 1버전을 사용하고 이번에는 2버전을 런칭 했는데요
Teachable Machine
Train a computer to recognize your own images, sounds, & poses.
A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or coding required.
위에 말 처럼 티쳐블 머신은 빠르게 머신러닝을 할 수 있는 기능입니다.
쉽게 말하면 이미지, 사운드, 포즈를 검사 할 수 있는 아주 혁신적인 머신입니다.
Teachable Machine은 웹 기반 도구로, 누구나 쉽고 빠르게 액세스 할 수있는 기계 학습 모델을 만들 수 있습니다.
(참고 : 2017 년부터 첫 번째 버전의 Teachable Machine을 찾을 수 있습니다.)
어떤 기능이 있을까??
와.. 대박~!
아래 글들은 Teachable Machine에 소개하는 내용을 참조해서 작성해 보았습니다!!
■ 이미지 기능
이미지 사진들을 넣어두면 학습 해주는 최고의 기능!!
파일이나 웹캠을 사용하여 이미지를 분류하는 모델을 생성할 수 있습니다.
Teach a model to classify images using files or your webcam.
■ 오디오(Sounds)
오디오 파일은 안타깝게도 WAV와 MP3만 제공이 된다고 하네요 ~! 아쉽지만, MP3만해도 아주 유용합니다.
여러분의 오디오를 녹음하여 사용하시면 될 것 같습니다.
짧은 소리 샘플을 녹음하여 오디오를 분류하는 모델을 가르치십시오.
(WAV / MP3 / etc 파일 지원은 곧 제공 될 예정입니다.)
■ 행동(Poses)
웹캠에서 파일 또는 눈에 띄는 포즈를 사용하여 신체 위치를 분류하는 모델을 가르칩니다.
웹캠이 나의 동작을 감지하여 각 노드별로의 움직임을 실시간으로 잡아줍니다. 어썸!
그럼, 티쳐블 머신 사용 방법에 대해서 간략히 알아 보도록 하겠습니다.
■ 사용방법
- 이미지 모으기 (Gather)
학습 시키고자 하는 이미지들을 한곳에 모아둡니다. 이때 이미지 별로 그룹핑을 해두는게 좋습니다. 가령 내가 강아지 사진을 학습 시킨다면, 강아지 종별로 그룹핑을 해두면 이미지 학습에 편리하게 사용할 수 있습니다. - 이미지 데이터 업로드 (Image Upload)
티쳐블 머신을 오픈하여 각각의 CLASS에 이미지들을 드래그 앤 드롭으로 넣어 줍니다. 여기서 CLASS의 이름도 변경이 가능하며, 이 클래스이름을 향후에 리턴해줍니다. 그렇기 때문에, 클래스 이름을 잘 정리해두면 아주 유용할것으로 보입니다. - 학습(Train)
이미지 학습 버튼 "Train Model"버튼을 누르게 되면 학습이 완료 되었습니다. 모델을 학습 한 다음 즉시 테스트하여 새 예제를 올바르게 분류 할 수 있는지 확인하십시오. - 내보내기(Export)
이까지 왔다면 아주 잘 하신겁니다. 이제 프로젝트를 내보내기 하여서 자유롭게 사용을 해도 가능합니다. 이때 모델 파일을 다운 받을 수도 있고, 온라인으로 요청하여 데이터를 수신할 수 있습니다. 이때 받은 파일들은 JS파일로 되어 있다는 점 알아두면 좋을 것 같습니다.
예시 ( 티쳐블 머신 블로그 활용)
우선, 티쳐블 머신 블로그에서는 다양한 훈련방법을 알려주고 있는데 , 여기서는 바나나를 활용해서 훈련을 시켜주는 것 같습니다.
클래스 4가지 생성
1) 너무 덜익은 바나나
2) 너무 익을 바나나
3) 익은 바나나
4) 아예 다른 이미지
이 4가지 이미지를 가지고 테스트를 합니다
각각의 이미지를 Hold to Record버튼을 통해서 학습 시켜 줍니다.
마지막으로 없는 이미지는 바나나없이 내 손을 보여주기 때문에 바나나가있는 클래스의 손을 볼뿐만 아니라 익은 / 등으로 분류되는 손을 이미지에 포함시켜야한다는 상관 관계를 맺습니다.
그 후 트레이닝 버튼을 클릭 학습을 시켜서 알아 봅니다.
잘 작동하는 걸 확인 할 수 있습니다.
■ 어떻게 이런게 가능할까요??
컴퓨터에서 이미지는 숫자와 픽셀의 패턴 일뿐입니다. 따라서 여러분은 바나나 가 무엇인지 실제로 가르쳐주지 않았습니다 . 우리는이 배경 (노란색의 노란 모양)이 잘 익은 바나나라고 표시되어 있습니다. 이것은 컴퓨터의 픽셀 일뿐입니다.
즉 흰색 배경에 노란색을 바나나라고 인식을 한것이죠 픽셀을 인식했다고 보시면 좋을 것 같습니다.
자, 그럼 여기서 질문이 있네요
배경색을 바꾸면 인식을 잘 할까요??
머신러닝은 아주 당혹스러움을 표현할수 밖에 없죠. 나는 분명 흰색에 노란색만 학습했는데... 갑자기 빨간색을 어디서 튀어 나온거야...그래서 결과 값이 아주 만족스럽지 못할 수 밖에 없습니다.
그럼 어떻게 해야 할까요???
간단하죠. 똑같이 덜익은 바바나를 빨간배경에서, 파란배경에서, 일반 사무실 배경에서 모두 학습을 시켜주면 되겠죠??
그럼 정말 원하는 결과 값을 얻을 수 있을 것입니다.
다른 배경에서 인식을 하고 테스트를 해보면 아주 더 잘나오는 걸 확인 할 수 있습니다.
그럼, 이제 여러분의 테스트를 해볼 차례 입니다.
바나나 사진을 찍어서 촬영을 한다면???
과연 어떻게 기계가 반응할까요?? 글을 잘 읽으셨다면 쉽게 답을 찾을 수 있을 것이라 생각됩니다.
■ 활용
이제 이걸 활용하는 일만 남았습니다. 트레이닝한 모델을 Export하여서 여러분의 프로젝트에 직접 활용을 하시길 추천드립니다.
다음에는 오디오/사운드 모델을 만드는 방법을 한번 알아 보겠습니다.
혹시 궁금하신 분들이 있다면, Teachable Machine FAQ에서 모델 사용에 대한 자세한 내용을 확인할 수 있습니다.
'프로그래밍 > 머신러닝' 카테고리의 다른 글
#4. 티쳐블머신(Teachable Machine) : 머신러닝은 과연 무엇일까? (0) | 2020.09.16 |
---|---|
#3. 티쳐블머신(Teachable Machine) 포즈, 움직임 학습 (0) | 2020.09.16 |
#2. 티쳐블머신(Teachable Machine) 오디오 학습 (0) | 2020.09.16 |