All Lectures
RouteNoticeQ&A

[생활코딩] Teachable machine & WEB(javaScript)

Lecture Introduction
Difficulty
Easy
Category
Programming - Programming Fundamentals
Target Audience
- 이미지, 포즈, 소리를 기계가 인식하게 하고 싶은 분
- 웹 애플리케이션 개발자
- 머신러닝 > 지도학습 > 분류의 사례가 알고 싶은 분

구름EDU 수강자 분들을 위해 생활코딩이 함께 합니다. 항상 좋은 지식을 전해주시는 생활코딩에 감사드립니다.



📝수업 소개


이 수업은 이미지, 소리, 포즈를 학습시켜서 인식할 수 있도록 돕는 인공지능 라이브러리인 Teachable machine으로

웹앱에 인공지능 기능을 추가하는 방법을 다루는 수업입니다.



📝Teachable Mahine으로 머신러닝 시작하기


https://teachablemachine.withgoogle.com/
(최신 브라우저를 사용해주세요. 모바일 환경에서는 동작하지 않을 수 있습니다.)


Get Started로 들어가 봅시다.

아래와 같은 화면이 보일 것입니다.



설명을 듣기 전에 5분 동안 관찰하고 조작해 봅시다.

Image, Audio, Pose는 무엇일까요?


이 서비스를 이용해서
컴퓨터에게 학습시킬 수 있는 데이터들입니다.

현시점에서 Teachable Machine을 이용하면
이미지와 소리 그리고 자세(pose)에 대한
데이터를 컴퓨터에게 학습시킬 수 있습니다.

우리는 손톱을 깨물고 있는 모습을
학습시켜야 하는데요.

그것을 하기 위해서
Image Project로 들어가 봅시다.

아래와 같은 화면이 나옵니다.

설명을 듣기 전에 5분간
이 화면을 관찰하고 조작해 봅시다.

이것은 이미지를 컴퓨터에게 학습시키는 기능이
모여있는 페이지입니다.

우선, Class라는 말의 의미부터 생각해봅시다.
Class는 교실이라는 뜻도 있지만,

여기서는 서로 연관된 사진들을 모아서
그룹핑한 것이라는 의미에서
‘분류'로 해석해주세요.

Class1이라고 적힌 부분에 손톱이라고 적습니다.
손톱이라는 이름의 클래스를 만든 것입니다.


그리고 Webcam 버튼을 누르고, 
Hold to Record 버튼을 눌러서
손톱을 깨물고 있는 장면들을 촬영합니다.



‘손톱’이라는 이름(class)에 해당하는 사진을
손톱 클래스에 모았습니다.

사진이 많을수록 좋고,
부정확한 이미지가 없을수록 좋습니다.

‘손톱’이라는 이름을 만들었으면,
‘정상’이라는 이름(class)을 만들고,
손톱을 깨물지 않고 있는 사진을
정상 클래스에 등록합니다.


지금까지 우리가 한 일에 대해서 생각해봅시다.

우리는 컴퓨터에게
‘손톱'과 ‘정상'에 해당하는 사진을
학습시키기 위해서 자료를 모았습니다.



즉, 컴퓨터가 학습할 교재를 만든 것이라고 할 수 있습니다.

데이터를 충분히 입력했다면,
이제 학습을 시켜봅시다.



Train Model 버튼을 누릅니다.
이것이 기계에게 실제로 학습을 시키는 단계입니다.

기계는 여러 사진을 보고,
어떤 사진이 손톱 class에 속한 사진이고,
정상 class에 속한 사진인지를 열심히 학습하게 됩니다.


학습이 끝났다면 Preview를 살펴봅시다.


카메라를 보면서 손톱을 깨물어보세요.
‘손톱’의 수치가 높아질 것입니다.

손톱을 깨물지 않으면
‘정상’ 쪽의 수치가 높아질 것입니다.

이 수치는 기계가 판단한 확률입니다.

신기하게도 보여준 적이 없는 이미지를 만나도
그것이 손톱을 깨무는 모습인지 
알아맞히는 것을 볼 수 있습니다.

이 단계에서 중요한 것은
기계가 학습을 제대로 했는지 평가하는 것입니다.

평가 결과 수치가 만족스럽지 않을 수 있습니다.
시험으로 치면 불합격을 한 셈입니다.

그럼 보다 많은 이미지를 추가하거나,
부정확한 이미지를 제거한 후에
다시 컴퓨터를 학습시킵니다.



예를 들어 손톱을 깨물고 있지 않은 이미지인데
손톱 class 목록에 그 이미지가 포함되어 있다면
부정확한 이미지라고 할 수 있겠습니다.

이것을 제거한 후에 다시 평가를 합니다.

이런 과정을 거치면 컴퓨터는 손톱과 정상을 점점 정교하게
구분할 수 있는 판단력을 갖게 될 것입니다.

사람이 경험과 공부를 통해서
더욱 정교한 판단력을 갖게 되는 것과 비슷하죠?

사람이 학습하듯이
기계를 학습시켜서
정확한 판단력을 갖게 한다는 점에서

이런 기술을 기계학습,
영어로 Machine Learning이라고 부르는 것입니다.



우리는 손톱을 깨무는지를
구분할 수 있는 모델(model)을 기계로 구현했습니다.

이 모델(model)은 놀랍게도 파일로 만들어서
다운로드할 수 있습니다.


Export Model 버튼을 누르면
다운로드 받을 수 있는 여러가지 방법을 볼 수 있습니다.

Tensorflow.js 탭을 누르고,
Download 라디오 버튼을 누릅니다.
Download my model 버튼을 누르면
tm-my-image-model.zip 와 같은 이름의 파일을 
다운로드 합니다.


이 파일의 압축을 풀어보면 3개의 파일이 있습니다.
파일명은 아래와 같습니다.

  • metadata.json
  • model.json
  • weights.bin



바로 이 3개의 파일이
우리가 학습시킨 모델(model)입니다.

이 파일만 있다면
이 세상의 모든 컴퓨터가
손톱과 정상을 구분할 수 있는
모델(model)을 갖게 됩니다.

이처럼, 강좌를 수강하고나면 Teachable Machine을 이용해서
놀라운 앱을 만들 수 있습니다.



생활코딩 운영자 이고잉입니다 ✔



10만 명 이상으로 구성된 개발 커뮤니티 생활코딩 운영

일반인들에게 프로그래밍을 알려주는 무료 온오프라인 수업 제공
Curriculum
  • 01
    CH01. Teachable machine & WEB
  • LEC01. 수업 소개
    LEC02. 이미지 인식 모델 만들기
    LEC03. 웹 서버 준비하기
    LEC04.01. 코드 분석 1
    LEC04.02. 코드 분석 2
    LEC05. 프로젝트에 이미지 인식 적용
    LEC06. 수업을 마치며
Recent Update|2023. 06. 16
Instructor Introduction
생활코딩의 세계에 오신 것을 환영합니다. 생활코딩은 일반인들에게 프로그래밍을 알려주는 무료 온라인, 오프라인 수업입니다. 어떻게 공부할 것인가를 생각해보기 전에 왜 프로그래밍을 공부하는 이유에 대한 이유를 함께 생각해보면 좋을 것 같습니다.

Lecture Reviews
Free

Average Rating
5.0
Difficulty
Easy
Lecture Period
Unlimited