엔트리와 함께하는 인공지능 교실 > Chapter 11. 피지컬 활용 인공지능 모델(햄스터)

[Session 03] 빨래 자동 분류하기 (이미지 분류)

 빨래 자동 분류하기 (이미지 분류)

빨래는 우리가 매일 일상적으로 하는 가사 노동 중 하나이다. 세탁기가 발명된 이후로 세탁과정 자체는 기계가 하지만, 빨래를 분류하거나 정리하는 작업은 자동화하기가 어렵기 때문에 아직 사람이 직접 하는 경우가 많다. 만약 빨래를 자동으로 분류할 수 있다면 세탁을 하거나 옷을 갤 때 매우 편리할 것이다. 엔트리의 이미지 인식 기능을 이용해 다양한 빨래의 종류를 인공지능을 통해 학습시키면 빨래를 자동으로 인식해서 분류하는 햄스터봇을 만들 수 있다. 엔트리의 이미지 분류 모델 인공지능 학습 기능을 활용해서 티셔츠, 치마, 바지와 같은 옷의 종류를 자동으로 인식하고 분류하는 햄스터봇을 만들어 보자.


학습 목표 

빨래를 자동으로 인식해서 분류하는 이미지 분류 모델을 엔트리로 구현하고 이를 햄스터봇과 연동하여 자동으로 빨래를 분류하는 햄스터봇을 만들 수 있다.

학습 준비물

햄스터봇 (햄스터봇S로도 실습가능), 옷 사진

데이터 수집 아이디어 


▲ #빨래 분류, #이미지 인식, #지도학습, #일하는 햄스터봇, #의류 분류



 3-1 엔트리로 인공지능 이미지 모델 학습하기

빨래를 자동으로 분류하는 햄스터봇을 만들기 위해서는 이미지(사진)에서 빨래의 종류를 인식할 수 있어야 한다. 이를 위해서 엔트리의 인공지능 이미지 분류 모델 학습 기능을 이용해서 빨래의 종류를 학습할 것이다. 사용자가 이미지(그림, 사진 파일) 형식으로 빨래의 종류를 입력하면 인공지능 모델에서 티셔츠, 치마, 바지를 인식하고 이를 바탕으로 햄스터봇이 빨래를 분류하도록 제작하였다.


1) 엔트리 홈페이지(https://playentry.org)에서 “작품 만들기”를 선택하거나 엔트리 오프라인 프로그램을 실행한다. “교과형 만들기”를 선택하면 인공지능 블록이 나타나지 않으므로, 반드시 “작품 만들기”를 선택하도록 한다.


2) 블록 모음을 선택하고, 를 선택한다. 모델 학습을 하려면 반드시 엔트리에 로그인을 해야 한다.

 ※Tip 

만약 회원이 아니라면 엔트리 화면 위쪽 회원가입을 눌러 가입한다.

  




3) 학습할 모델 선택하기 화면이 나타나면 ‘분류:이미지’를 선택한 후 를 누르면 ‘이미지 모델 학습하기’ 화면이 나타난다. 이미지 모델 학습은 데이터 입력 → 학습 → 결과 활용의 3단계를 거쳐 이루어진다.

 

4) ‘이미지 모델 학습화기 화면’에서 ‘①모델 이름’은 ‘빨래 분류’로 입력한다. 모델 학습을 통해 우리가 학습시키려 하는 개별 개념을 ‘②클래스’라고 한다. 기본적으로 2개의 클래스가 있는데 를 눌러서 총 3개의 클래스를 만든다. 그 다음 각각의 클래스 이름에 ‘티셔츠’, ‘치마’, ‘바지’를 각각 입력한다.


 

5) ‘티셔츠’, ‘치마’, ‘바지’의 이미지 자료를 인터넷으로 검색한다. 구글 등의 검색 엔진을 이용해서 그림을 누른 후에 마우스 오른쪽 - ‘다른 이름으로 이미지 저장’을 선택해서 그림 파일을 모은다. 개념 학습을 위해서는 최소 5개의 자료가 필요하다. 정확한 개념 학습을 위해 넉넉하게 10개 이상의 그림 파일을 충분히 검색해서 수집한다.


 

6) 각각의 클래스에 학습시키려 하는 자료(데이터)를 입력한다. 이미지 모델 학습은 사진 파일을 업로드하거나 직접 사진을 촬영하는 방법 중 하나를 선택할 수 있다. 예를 들어 ‘티셔츠’라는 이미지 개념을 학습시키기 위해서는 여러 가지 종류의 티셔츠 사진 파일을 올리거나, 카메라나 웹캠 등을 이용해 옷 사진을 촬영해서 학습이 가능하다. 본 교재에서는 실습의 편의성을 위해 ‘파일 올리기’로 학습시켰다. ‘티셔츠’, ‘치마’, ‘바지’에 각각 자료를 입력한다.

  

  

 ▲ 사진 파일 올리기를 이용한 학습

 ▲ 카메라나 웹캠 활영을 이용한 학습


 

7) 를 누르면 지금까지 입력한 자료를 기반으로 인공지능 모델을 학습한다. 학습이 끝나면 아래에 ‘학습을 완료했습니다’라는 글이 나타난다.


 

8) 결과 화면에서 사진 파일을 올리거나 카메라나 웹캠으로 촬영하면 학습 결과를 확인할 수 있다. 아래의 2가지 그림으로 확인한 결과 바지는 96.77%, 티셔츠는 57.26%의 확률로 제대로 인식하는 것을 알 수 있다.


 

9) 모델 학습이 끝나면 화면 아래쪽 를 누른다. 성공적으로 학습이 되었다면 블록 모음의 에 오른쪽 그림과 같은 ‘분류:이미지 모델’ 블록이 만들어진다.


10) 간혹 인식 결과가 실제와 다르게 나올 때가 있다. 그럴 때는 인식에 실패한 자료를 올바른 클래스에 추가한 후 다시 모델 학습을 하면 된다. 자료를 추가한 후에는 올바르게 인식한다.



 3-2 엔트리로 인공지능 빨래 인식하기

인공지능 모델 학습이 끝나면 이 모델의 명령 블록을 이용해서 엔트리에서 감정 인식을 할 수 있도록 명령 블록을 조립해 프로그래밍을 한다.

 

1) 기본 엔트리봇 오브젝트를 버튼을 눌러 지운다. 


 

2) 버튼을 눌러 오브젝트 추가화면이 나오면 검색창에 ‘로봇’을 입력한다. 검색 결과 중에서 ‘꼬마 로봇’을 선택하고 ‘추가’를 누른다.

 ※Tip 

본인이 원하는 창의적인 다른 오브젝트를 추가해도 되고, 기본 엔트리봇 오브젝트에서 작업해도 관계없다.



 

3)  블록을 가져온다. 

 블록을 조립해서 아래에 붙인다.


 

4) 에서  블록을 3개 조립해서 붙인다. 각각 ‘티셔츠’, ‘치마’, ‘바지’를 인식한 상황을 만든다.



 

 5)  블록모음에서  블록을 위쪽부터 차례로  위치에 조립한다.

 


※Tip 

조립을 할 때 왼쪽 블록 끝 부분을 기준으로 맞춘다.


 

 6)  블록모음에서  블록을 가져와서 ‘티셔츠’, ‘치마’, ‘바지’ 분류결과 블록에 넣는다. 각각의 인식 결과에 맞는 내용을 입력한다.


7) 왼쪽 위  (시작하기)를 눌러서 실행하면 데이터 입력 창이 나타난다. 사진 파일을 업로드하거나 촬영을 해서 결과를 확인한다. 내가 입력한 빨래 이미지의 종류를 인공지능이 제대로 인식하고 표현하는지 확인한다.

 

 ※Tip 

여기까지는 햄스터봇 없이도 이미지 모델 학습을 수행할 수 있다.



 3-3 햄스터봇으로 빨래 자동 분류하기

엔트리에서 인공지능 이미지 인식을 통해 빨래를 인식할 수 있게 되었다. 이제 햄스터봇을 이용해서 인식한 빨래를 자동으로 분류하도록 만들어 보자. 햄스터봇은 2개의 적외선 센서를 이용해서 바닥면을 인식하고 길을 따라가는 기능이 있다. 이 기능을 활용해서 햄스터봇이 빨래 사진을 얹고 길을 따라가서 분류 장소로 자동으로 이동한다. 만약 집게가 있다면 집게 열기/닫기 명령을 이용해서 종이컵에 담아 옮기는 것도 만들 수 있다. 2초 대기한 후 햄스터봇은 제자리로 다시 돌아간다.

 

1) 햄스터의 바닥면 인식 기능을 활용하기 위해 출발점과 빨래의 분류 구간을 선으로 표시해서 분류판을 제작한다.


2)  - 를 눌러 햄스터봇과 연결한다.

 ※Tip 

연결에 문제가 있다면 앞장의 '엔트리 하드웨어 연결 설피하기'를 참조한다.


3) 햄스터봇을 제어할 수 있는 명령 블록이 나온다. 이 중에서 빨래 자동 분류 위해 사용할 블록을 정한다. 이번 예제에서는 햄스터봇이 말판을 따라 이동하거나 회전하는 기능, 센서의 손 인식 기능을 종합적으로 활용해서 햄스터봇이 분류한 빨래를 자동으로 분류지점까지 이동할 수 있도록 하였다. 집게가 있다면 집게 명령까지 활용해서 더 자세하게 다양하게 표현할 수 있다.



4) 티셔츠, 치마, 바지를 분류하는 햄스터봇의 이동 경로를 논리적으로 표현해 본다. ‘한 칸 이동’, ‘오른쪽 돌기’, ‘왼쪽 돌기’ 명령을 조합해서 위 그림처럼 표현할 수 있다. 이동 경로를 정리하면 아래 표와 같다.


 

 5) 햄스터봇에서 사진을 인식한 후 출발 신호를 주기 위해서   기능을 활용한다.

명령을 사용하면 오른쪽 사진처럼 손으로 햄스터봇의 앞을 가릴 때까지 기다린 후 다음 명령을 실행한다.

 


 

 6)  - , 

   명령으로 도착을 알리고 사용자가 빨래를 햄스터봇에서 내릴 수 있도록 기다린다.



 

 ※Tip 

만약 집게가 있다면 집게 열기-닫기 명령을 활용한다.



7) 지금까지 분석한 내용을 바탕으로 분류 결과에 따른 햄스터봇의 이동 경로를 프로그래밍한다.

 ※Tip 

치마, 바지는 위쪽 경로 분석 그림과 표를 바탕으로 직접 프로그래밍 해본다.



 

8) 최종 프로그램 결과이다. 복잡해 보이지만 이동 경로를 표현 한 명령이 대부분이므로 어렵지 않게 프로그래밍을 할 수 있다. 앞서 분석한 경로 그림과 표를 참조해서 명령 블록을 조립한다.


9)  (시작하기)를 눌러 프로그램을 실행해서 엔트리봇이 빨래를 자동으로 인식하고 분류하는지 확인한다.


 

10) 프로그램을 처음 실행하면 데이터 입력창이 나타난다. 파일 업로드로 사진을 올리거나, 카메라나 웹캠을 이용해서 빨래 사진을 직접 촬영할 수 있다. 를 누르면 인공지능 모델을 이용해 자동으로 빨래를 분류한다.


11) 햄스터봇이 명령 대기 상태로 기다린다. 빨래 사진을 얹고 오른쪽 사진처럼 햄스터봇의 앞쪽을 손으로 가려주면  명령을 인식한 햄스터봇이 출발한다.


 


12) 햄스터봇이 자동으로 빨래를 목적지로 옮겨서 분류한다. 목적지에 도착 후 빨래를 사용자가 내려놓으면 2초 후 햄스터봇이 원위치로 복귀한다.


 


<햄스터봇 빨래 분류하기 인식용 샘플사진>


 


<햄스터봇 빨래 인식용 말판>