메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

텐서플로 라이트를 활용한 안드로이드 딥러닝

더 작고, 더 가벼운, 모바일, 에지 기기용 머신러닝

한빛미디어

집필서

판매중

  • 저자 : 임태규
  • 출간 : 2021-08-01
  • 페이지 : 368 쪽
  • ISBN : 9791162244593
  • 물류코드 :10459
  • 초급 초중급 중급 중고급 고급
4.7점 (50명)
좋아요 : 2


 

 


이제는 On-Device AI, 모바일 딥러닝을 준비해야 한다!

 

안드로이드 앱에서 딥러닝 모델을 활용하는 방법을 최대한 입문자의 시선에 맞추어 풀어낸 책이다. 모델의 추론 성능을 측정하고 최적화하는 방법까지 다룬다. 또한 입문자의 진입장벽을 낮추기 위해 각 코드의 의미를 한 줄 한 줄 상세히 설명했다. 앱 개발 경험이 있는 안드로이드 개발자라면 이 책을 통해 직접 만든 앱에 딥러닝 모델을 배포하여 활용하는 방법을 빠르게 익힐 수 있다. 딥러닝 모델 개발 경험이 있는 AI 엔지니어라면 직접 개발한 모델을 안드로이드 환경에서 서비스하는 방법도 찾을 수 있다. 

On-Device AI, 모바일 딥러닝에 가장 빠르게 입문하고 싶다면, 이 책으로 시작하자!

 

상세이미지_텐서플로 라이트를 활용한 안드로이드 딥러닝_700.jpg

 

임태규 저자

임태규

삼성전자에서 9년 동안 안드로이드 기반 서비스를 개발했고, 현재 쿠팡에서 플러터를 이용하여 모바일 앱을 개발하고 있다. 정보관리기술사로, IT 기술 전반에 관심이 많으며, 최근에는 인공지능 기술에 주목하고 있다. 모바일 개발자로서 모바일과 인공지능 기술의 융합에 기여하고자 한다.

1장. 안드로이드와 텐서플로 라이트 입문

1.1 안드로이드와 텐서플로 라이트를 이용한 앱 개발 워크플로 

1.2 안드로이드 입문 

1.3 안드로이드 개발 환경 구축

1.4 텐서플로 라이트 입문 

1.5 텐서플로 라이트 개발 환경 구축 

1.6 마무리

 

2장. 처음 만드는 안드로이드 앱 

2.1 안드로이드 프로젝트 생성 

2.2 안드로이드 프로젝트의 구조 및 기본 코드 분석 

2.3 안드로이드 개발 언어 

2.4 Gradle 

2.5 안드로이드 기기 테스트 

2.6 마무리 

 

3장. 안드로이드 앱 UI 구성

3.1 레이아웃

3.2 위젯 

3.3 액티비티 

3.4 액티비티와 UI 연결 

3.5 외부 컴포넌트 불러오기 

3.6 마무리 

 

4장. 텐서플로 라이트 모델 개발

4.1 텐서플로 라이트 모델 개발 워크플로 

4.2 모델 선택 

4.3 모델 개발

4.4 모델 변환 

4.5 기기 배포  

4.6 마무리  

 

5장. 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발

5.1 텐서플로 라이트 모델을 이용한 앱 개발 프로세스 

5.2 입력 데이터 생성 앱 개발 

5.3 TFLite 모델 로드 

5.4 입력 이미지 전처리

5.5 추론 및 결과 해석 

5.6 마무리 

 

6장. 프레임워크를 활용한 이미지 분류 앱 개발

6.1 ImageNet 데이터 

6.2 텐서플로 라이트 서포트 라이브러리 

6.3 기기에 저장된 이미지 처리 

6.4 카메라 이미지 처리 

6.5 마무리  

 

7장. 실시간 이미지 처리

7.1 Camera2 API의 개요 

7.2 실시간 이미지 처리 앱의 개요 

7.3 레이아웃 개발  

7.4 카메라 사용 로직 구현 

7.5 기기에서의 추론 

7.6 마무리 

 

8장. 텐서플로 라이트 모델의 성능 개선

8.1 추론 성능 측정 

8.2 추론 성능 개선 

8.3 마무리 

 

9장. 텐서플로 라이트 모델 최적화

9.1 최적화의 개요 

9.2 학습 후 양자화 

9.3 양자화 인식 학습 

9.4 마무리

이 책의 구성

이 책은 총 9개 장으로 구성되어 있습니다. 먼저 안드로이드 앱을 개발하는 방법과 딥러닝 모델을 개발하는 방법을 살펴본 다음 딥러닝 모델을 활용한 안드로이드 앱을 개발하는 방법을 설명합니다. 그리고 모델의 추론 성능을 측정하고 이를 최적화하는 방법도 다룹니다.

 

1장: 개요 및 개발 환경 구축

안드로이드와 텐서플로 라이트 프레임워크를 소개하고, 개발 환경을 구축합니다.

 

2장, 3장: 안드로이드 앱 개발

2장에서는 안드로이드 프로젝트를 생성하고 프로젝트 구조와 구성 요소를 알아봅니다.

3장에서는 안드로이드 앱의 UI를 구성할 수 있도록 레이아웃과 위젯에 대해 살펴보고, 외부 컴포넌트를 사용하는 방법을 알아봅니다.

 

4장: 딥러닝 모델 개발

텐서플로 라이트 모델 개발 워크플로를 알아보고, 각 프로세스에 따라 모델을 개발하여 안드로이드 프로젝트에 배포합니다.

 

5장, 6장, 7장: 딥러닝 모델을 이용한 안드로이드 앱 개발

5장에서는 4장에서 개발한 딥러닝 모델을 활용하여 안드로이드 앱을 개발합니다. 앱에서 모델에 입력할 데이터를 만들고, 이를 모델에 입력하여 추론하고 그 결과를 표현하는 방법을 알아봅니다. 

6장에서는 프레임워크를 이용하여 다양한 방법으로 기기에서 이미지를 얻고 이를 분석하는 앱을 개발합니다. 

7장에서는 기기의 카메라에 입력되는 데이터를 실시간으로 처리하는 앱을 개발합니다. 이미지 크기 최적화와 비동기 처리 등 실시간 데이터 처리를 위한 기법을 알아봅니다.

 

8장, 9장: 성능 향상 및 최적화 

8장에서는 기기에서 모델의 추론 성능을 측정하고, 이를 향상시키는 방법을 알아봅니다. 9장에서는 제한된 환경에서 최고의 성능을 낼 수 있도록 모델을 최적화하는 방법을 알아봅니다.

 

인공지능을 조금이라도 공부해 본 사람이라면, 머신러닝, 딥러닝 같은 인공지능을 활용할 곳이 무궁무진하다는 것을 잘 알고 있을 것이다. 법률, 금융, 복지, 국방, 방송뿐만 아니라, 각종 가전이며, 자동차, 산업 기기, 인터넷 등 일일이 나열이 불가능할 정도다. 

 

이런 많은 활용처 중, 스마트폰, 태블릿 같은 모바일 기기들 경우, 사람들이 한 시도 손에서 놓지 않을 정도로 쓰고 있는 도구다 보니, 인공지능 기술이 제대로 접목된다면, 스마트폰이 등장했을 때 이상으로 다시 한번 라이프 스타일에 혁신을 가져다줄 수도 있을 것이다. 

 

더군다나 모바일 기기는 카메라와 각종 센서들이 기본적으로 들어가 있고, CPU와 그래픽 성능이 나날이 좋아지고 있다. 게다가 인터넷, 블루투스, LTE 같은 통신망으로 연결되어 있어, 인공지능 기술을 쓰기에 이만큼 최적의 도구이다. 이는 이미 오래전에 레드오션이 된 앱 시장에도 인공지능이 새로운 기회를 줄 수 있다는 얘기다.


 

 

기회는 준비된 사람만이 잡을 수 있다고 한다. 이 좋은 기회를 놓치고 싶지 않은 개발자에게 직접적으로 도움이 되는 책이 바로 임태규 저자의 '텐서플로 라이트를 활용한 안드로이드 딥러닝'일 것이다. 

 

이 책은 현재 모바일 운영체계에 약 73%를 차지하고 있는 안드로이드에 인공지능을 조금이라도 공부해 본 사람이라면, 자주 들어 본 오픈소스 머신러닝 플랫폼인 텐서플로 중 텐서플로 라이트 기술을 활용한 책이다. 현재 주류에 해당되는 안드로이드와 텐서플로 라이트 기술을 중심으로 딥러닝 앱 개발하는 방법을 설명하고 있는 것이다.

 

안드로이드 또는 텐서플로를 공부하신 분을 잘 알겠지만, 하나하나가 엄청난 분량의 지식이 필요하다. 그런데 '텐서플로 라이트를 활용한 안드로이드 딥러닝'은 400쪽이 안되는 분량이다. 즉 핸드북 스타일로 짧은 시간에 안드로이드와 텐서플로 라이트를 활용 위주로 훑어보는 책이란 소리다. 자세한 안드로이드 앱 개발법이나 인공지능 이론 같은 것은 다루지 않는다. 개발에 사용되는 파이썬이나 자바 같은 프로그래밍 언어에 대한 설명도 나오지 않는다. 하지만 이런 복합적인 주제를 다루는 책은 전체적으로 그 주제를 빠르게 살펴볼 수 있다는 장점을 가지고 있다. 그리고 내가 부족한 부분이 어디인지도 쉽게 드러나므로 무엇을 더 공부하면 좋을지 잘 알 수 있어서 좋다.

 

어쨌든 이 책을 제대로 빠르게 보기 위해선, 적어도 자바는 필수다. 그렇다고 너무 부담 가질 필요는 없다. 전반적인 책 내용은 입문 수준이다. 다층 퍼셉트론, 합성곱 신경망, 인공지능에 대한 기본 지식도 필요하긴 하지만, 모르면 좀 답답하긴 해도, 딥러닝 앱 개발을 어떻게 하는지 이해하는 데는 별 어려움이 없을 것이다.  그리고 중간에 파이썬 코드도 나오긴 하는데, 간단한 것들이라 크게 걸림돌이 되지는 않는다.

 

 

 

개발에 필요한 안드로이드 스튜디오, 텐서플로 라이트 및 파이썬, 아나콘다, 주피터 노트북, 쿠다 툴킷, 비주얼 스튜디오 코드 등 여러 가지 도구들 설치법이 주요 캡처 화면과 함께 저자의 추천 설명도 함께 자세히 나와 있어서, 초반부터 알기 쉽게 되어 있다. 안드로이드와 인공지능을 함께 다루므로 사용되는 도구도 많은 편이라, 제대로 설치하는 것은 무척 중요하다.



 

'텐서플로 라이트를 활용한 안드로이드 딥러닝' 초반 3장까지는 주로 안드로이드 개발에 필요한 지식들을 다룬다. 안드로이드를 처음 공부하는 분에게 조언하고 싶은 것이 있다면, 책 곳곳에 나오는 그림 도표를 그냥 지나치지 말라는 것이다. 그림 1-8에 나오는 안드로이드 액티비티 생명주기 같은 것은 앱 개발 필수 지식이다. 텐서플로 라이트 구성이나 모델추론 단계, 카메라2 API 호출 프로세스 등 많은 구조도로 표현된 그림들은 프로그램 흐름을 명확히 이해하는데 큰 도움이 된다. 

 

본격적인 텐서플로 라이트를 활용한 딥러닝 부분은 4장부터 시작된다. 텐서플로와 텐서플로 라이트의 차이와 개발 과정과 방법, 한계점에 대해 설명하고 있고, 케라스에 대한 설명도 같이 하고 있다. 

 

 

 

책에서는 손으로 쓴 숫자 인식, 사진을 보고 이것이 무엇인지 알아내는 이미지 추론 이렇게 두 가지 앱을 만들어 본다. 이것을 기본으로 하고, 뒤에 추가해서 실시간 이미지 처리도 해보고, 성능 개선, 최적화 기술도 다루게 된다. 모바일에서 텐서플로 라이트 응용하는 방법을 전반적으로 다 다뤄 보는 것이다. 물론 좀 더 복잡한 인공지능 기술이 들어간 앱을 기대했을 분도 있을 것이다. 그래도 일단 이 책으로 물고기 잡는 방법을 배운 것만으로 만족하자. 나중에 저자가 그런 것들만 다룬 책도 써 주길 기대해 보자.

 

그리고 보기에 따라서는 안드로이드 관련 설명이 텐서플로 보다 더 많게 느껴질 수 있다. 사실 안드로이드 앱 개발을 해보면 알겠지만, 간단한 프로그램은 메인 알고리즘보다 주변 설정하는 코드들이 훨씬 더 많다. 마찬가지로 텐서플로에 필요한 코드는 그리 길지 않다 보니, 그렇게 보일 수밖에 없다. 그렇지만 이것도 눈여겨보는 것이 좋다. 코드 한 줄 잘못 써서, 프로그램 작동 안 되고, 몇 시간 또는 몇 날을 헛짖 거리하는 낭비하는 경험을 해본 분은 그 이유를 잘 알 것이다. 

 

현재 인공지능 기술이 허접하다는 분도 많다. 아직 세련되지 않은 면도 있고, 미흡한 부분도 많기는 하다. 그렇지만, 그 때문에 인공지능 배우기를 미룬다면, 어느 순간 내가 비집고 들어갈 틈이 없을 수도 있다. 인공지능 배우는데 적기가 따로 있는 것은 아니지만, 그래도 지금부터 '텐서플로 라이트를 활용한 안드로이드 딥러닝'로 인공지능 앱 개발에 입문하고, 아이디어를 더해 고가치의 프로그램을 개발하다 보면, 좋은 기회가 많이 생길 것이라 생각한다. 다시 말하지만, 준비된 자만이 기회를 잡는 것이다. 

 

 

이 책은 일단 코딩을 처음하는 사람들에게 추천할만한 책은 아니다.
책 초반에도 나와있듯 자바와 파이썬에 대한 기초지식이 있고 난 후 읽는 것을 권장하는 책으로 보통 안드로이드 앱 개발은 코틀린과 자바 2가지 중 하나로 개발하는 거로 알고 있는데 이 책에서는 자바를 통한 앱 구현을 소개하고 파이썬을 활용하는 딥러닝 방법을 소개한다.

책의 처음에는 안드로이드 및 파이썬 개발을 위한 환경 세팅 방법이 자세하게 나와있고, 그 뒤부터 본격적인 안드로이드 개발을 위한 개념 설명과 ui를 어떻게 설정하고 반영이 어떻게 되는지 그림으로 자세하게 설명을 해주고 딥러닝 부분도 시각적으로 어떤 방식을 사용하는지 잘 설명해주는 책이었다.

흥미로웠던 부분은 컴퓨터가 자동적으로 해당 데이터를 보고 오렌지면 오렌지 컴퓨터면 컴퓨터라고 결과값을 알려주는 부분이었다. 솔직히 아직 잘 모르지만 책에 나와있는대로 하나씩 따라하다보면 딥러닝이라는 게 정말 초보자 수준인 나도 구현을 할 수 있구나라고 느끼게 되는 계기가 되었다. 

 

 


다만 나같이 개발을 본격적으로 공부하지 않은 사람 혹은 딥러닝에 대한 개념이 부족한 사람이 보기에는 적절하지 않는 책임은 확실한 것 같다. 책의 구성은 알차게 잘 되어있지만 기본적으로 모르는 개념? 원리들이 있어서 책을 보면서 하나씩 구글링 하거나 어느 순간 탁 멈추게 되는 지점들이 간혹 있기에 정말 어느 정도 준비된 사람이 읽으면 많은 도움이 될 것 같은 책이다. 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

- 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

 

책제목에서도 충분히 예상 가능하겠지만

 

이 책은 기존의 텐서플로 책들과 다르게 (물론 제목에 '라이트'가 붙었다) 

 

머신 러닝과 딥러닝에 대한 이론적인 내용이나 

 

텐서플로를 이해하고 활용하는 방법을 알려주는 책과는 다르다. 

 

 

 

실제로 학습한 모델을 어떻게 활용(사용) 할 것 인지에 조금 더 무게가 잡혀 있다.

 

실제 안드로이드 어플리케이션을 작성하며 이 어플리케이션에서 

 

어떻게 텐서플로 라이트를 통합할 것 인지를 설명해주고 있다.

 

 

 

실무적이고 실용(?) 적이다. 

 

일단 따라해보기에 좋다. 

 

딥러닝에 대한 이론적 이해가 막히더라도 일단 따라서 책의 내용을 따라 코드를 작성하고 동작하는 것을 보는 것이 

 

학습의 중요한 동기가 되기도 한다.

 

 

 

당연하겠지만 이 책 하나만으로는 부족하다.

 

이 책은 만든 모델을 어떻게 사용하느냐에 포인트가 있고

 

딥러닝의 이론에 대해서도 이해가 필요함으로 별도의 

 

딥러닝 or 텐서플로를 이해하기 위한 도서는 필요하다.

 

 

 

그럼에도 불구하고 이렇게 활용에 포인트를 준 책이 나와줘서 감사합니다.

 

앞서 말했듯이 학습의 동기가 되고 활용의 큰 도움이 된다.

 

 

IMG_1248.jpg

 

IMG_1249.jpg

 

평 및 발제

머신러닝, 딥러닝, AI 헬스케어를 위한 비전인식 등 올해 여러가지 IT 분야의 기초?에 대해 배웠다. 그러다보니 다양한 분야에 응용이 되는 부분까지 관심이 생겨서 앱에서 어떻게 구동이 되는지 이해하고자 책을 살펴보았다.

 

나의 이해도 안에서 앱 개발을 하는것은 무리지만 전체적인 아키텍쳐를 보고, 향후 필요시에 약간의 개발을 해보거나 이해하는데 있어서 매우 유용한 책이었다. 연구기획을 업으로 하는 자로서 과제를 기획할때에 사용자 친화적으로 안드로이드 앱을 기획하거나 딥러닝을 활용할때 구체적으로 볼수 있겠다.

 

이 책이 2021년 마지막 한빛출판사 마지막 서평이 되겠다.

 

차례 및 요약

1장. 안드로이드와 텐서플로 라이트 입문

2장. 처음 만드는 안드로이드 앱

3장. 안드로이드 앱 UI 구성

4장. 텐서플로 라이트 모델 개발

5장. 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발

6장. 프레임워크를 활용한 이미지 분류 앱 개발

7장. 실시간 이미지 처리

8장. 텐서플로 라이트 모델의 성능 개선

9장. 텐서플로 라이트 모델 최적화

 

 

1장에 포함되는 상세 내용 아래 첨부한 책장의 차례를 자세히 살펴보면 된다. 

 

 

안드로이드 플랫폼 아키텍쳐

플랫폼을 이해하려면 최소한 이런 아키텍쳐를 기본적으로 설명을 해줘야 잘 알 수 있다.

크게 커널, 하드웨어 추상화 계층, 안드로이드 런타임, 네이티브 C/C++ 라이브러리, 자바 API프레임워크, 시스템 앱으로 구성된것을 알 수 있다. 

 

액티비티

액티비티는 안드로이드에서 가장 중요한 구성 요소로, 사용자에게 보이는 화면을 담당한다. 모든 안드로이드 앱은 적어도 하나의 액ㅂ=티비티를 가지고 있으며, 앱을 실행하면 지정된 액티비티의 코드가 생명주기에 맞추어 호출된다. 아래 그림은 액티비티의 생명주기 이다.

 

2장. 처음 만드는 안드로이드 앱

 

안드로이드 빌드 프로세스

안드로이드의 소스가 APK로 빌드되는 과정은 아래 그립과 같다. 먼저 컴파일러 app 모듈에서 작성된 소스코드를 바이트 코드인 DEX 파일로 컴파일하고 리소스도 컴파일한다. APK packaget는 DEX 파일과 컴파일된 리소스를 하나로 묶어 APK를 만드는데 Key Store를 이용하여 APK를 서명한다. Gadle 빌드 프로세스는 아래와 같다.

 

 

엡 서명

앱 서명은 배포된 앱의 실행 파일이 정단한 제작자에 의해 제작되고 위/변조 되지 않았음을 확인하여 무결성을 보장하는 기술이다. 앱 서명을 이용하면 정당한 제작자가 서명한 앱이 위/변조되지 않았는지 설치 과정에서 검증을 통해 확인할 수 있다. 앱 서명의 원리는 아래 그림과 같다.

 

 

텐서플로 라이트 모델 추론 결과

책에서 수록된 코드를 안드로이드 기기에서 직접 테스트를 해보기 위해 Run app을 클릭하여 시시에서 앱을 실행하고 숫자 0~9까지 손글씨로 쓰고 Classify를 클릭하면 아래와 같은 추론 결과를 얻을 수 있다.

신기한 부분이라고 생각된다. 손글씨를 추출할 수 있다니~~

실습이 가능한 다양한 코드와 앱 메뉴를 활용하여 결과를 바로 송출하여 보여 줄 수 있어서 딥러닝이 앱 개발에 활용되는 사례에 대한 이론과 실습을 동시에 배울 수 있는 실용적인 책이다.

 


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 

다운로드.jpg

텐서플로 라이트를 활용한 안드로이드 딥러닝 책이다. 안드로이드에서 딥러닝을 활용하는 방법을 소개하는 책인데, 처음부터 말하자면 아쉬움이 많이 남는 책이다. 이 책은 딥러닝에서 대표적인 텐서플로를 활용하여 안드로이드 앱을 제작 하는 방법을 소개하는데 책의 내용이 텐서플로보다는 안드로이드 앱 제작에 대한 내용이 상당히 많다. 물론 초심자가 보기에는 당연, 안드로이드 개발자가 아니고 딥러닝 개발자 라면 안드로이드 플랫폼에 대해 어색할 수도있다. 그도 그럴 것이 딥러닝은 대게 파이썬으로 구현하여 사용하기에, Kotlin, Java와 같은 언어의 플랫폼에서 활용 하는 것과는 다르기 때문이다. 그렇다고 해서 모델을 자바로 개발하는 것은 아니기에, 어떻게 해서 텐서플로가 안드로이드 플랫폼에서 돌아가고, 어떻게해서 딥러닝을 적용하여 앱을 개발 할 수 있는지에 설명은 충분하다고 볼 수 있다. 이 책은 정말 초심자가 보기에는 가장 좋은 에피타이저 같은 책이다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

공유

 

이 책은 안드로이드 + 텐서플로에 대한 책이다. 전체 내용상으로 358페이지 중 50페이지정도만 텐서플로를 소개하고 있다. 즉 안드로이드 비중이 85%이고 텐서플로 비중이 나머지일정도로 안드로이드에 치중한 책이다. 하지만 기존에 텐서플로 책들이 워낙에 많기 때문(물론 안드로이드도 마찬가지지만) 텐서플로의 부족한 부분은 다른 책에서 커버가 가능하다.

안드로이드를 전혀 모르는 사람도 따라할 수 있도록 기초부터 소개하려고 노력한 흔적들이 보인다. 일반적으로 자바 소스코드는 평균적으로 파이썬보다 소스코드 분량이 많기 때문에 전부 다 코드를 싫지는 않았다. 내용이 워낙 기초라 소스만 봐도 어느정도 이해가 되고, 나머지 중에 일부는 안드로이드 스튜디오에서 자동생성되는 코드이거나 stub코드를 많이 구할 수 있으므로 충분하다고 생각한다.

연말이라서 책이 배송되는 데 문제가 좀 있어서 한참 늦게 오늘에서야 받은 관계로 코드를 전부 실행해보지는 못했다. 오타등은 확인하지 못하고 내용만 쭉 흝어보았는데 군더더기 없이 깔끔해보인다.

이 책을 통해 본인만의 딥러닝 어플을 만드는 데 도움을 받으실거라고 생각한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

3100.jpg

 

안드로이드에서 딥러닝 모델을 활용할 수 있는 방법은 제한된 컴퓨팅 자원으로 인해 한계가 있었는데, 텐서플로 라이트의 등장으로 인해 이것이 가능해졌다. '텐서플로 라이트를 활용한 안드로이드 딥러닝'에서는 안드로이드 기초와 함께 텐서플로 라이트 모델을 학습하고, 이를 활용한 안드로이드 앱 개발을 다룬다. 이 책의 대상독자는 안드로이드 개발자 또는 AI 엔지니어가 대상이고, 안드로이드 입문자도 간단하게 학습 후 읽을 수 있도록 구성이 되어있다.

 

책의 구성은 총 9장으로 되어있는데, 먼저 안드로이드 앱을 개발하는 방법과 딥러닝 모델을 개발하는 방법을 살펴본다. 그런 다음 딥러닝 모델을 활용한 안드로이드 앱 개발 및 모델의 추론 성능을 측정하고 최적화하는 방법까지 학습할 수 있다.

 

3101.jpg

 

이 책에 사용된 개발환경은 파이썬 3.8, 텐서플로 버전 2.4.1, 텐서플로 라이트 버전 2.4.0, IDE는 Android Studio와 Visual Studio Code, 그리고 테스트 기기는 구글 픽셀3와 삼성 갤럭시S20 이 사용되었다.

 

​https://github.com/dualcoder-pe/android_tflite 에서 다운로드받아 확인할 수 있다. 안드로이드와 텐서플로에 대한 사전 지식이 있다면 5,6,7장의 딥러닝 모델을 활용한 안드로이드 앱 개발과 8,9장의 모넬 추런 성능 측정 및 향상, 최적화를 보면 더욱 좋을 것 같다.

 

3102.jpg

 

​책 전반적으로 입문자에게 초점이 맞춰져서 가볍게 읽을 수 있다. 다만 안드로이드 개발과 딥러닝 개발을 모두 언급하다보니 깊이있는 설명이 조금 아쉬웠다. 그리고 프로그램의 설치에 대한 페이지 할당과, 전체 소스코드에 대한 페이지 할당도 조금 아쉬웠다. 하지만 텐서플로 라이트에 대한 학습과 실습을 충분히 할 수 있는 좋은 학습서이다. 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

#텐서플로라이트를활용한안드로이드딥러닝 #딥러닝 #텐서플로 #텐서플로라이트 #안드로이드 #안드로이드딥러닝

딥러닝을 배우기 시작한 후에, 안드로이드를 다뤄보기 시작한 후에 생긴 궁금증은 딥러닝 모델을 앱에서 직접 불러와 다루는 방법이 무엇일까였다. 서버 없이도 기기 자체에서 딥러닝 모델을 수행하는 On-Device AI 기술이 바로 그것이었다.

이 책은 안드로이드 앱에서 딥러닝 모델을 활용하는 방법을 다루고 있다. 이 책을 읽으려면 자바와 파이썬 언어에 대한 기본적인 지식이 필요하다.(자바 -> 앱 개발, 파이썬 -> 딥러닝) 즉, 앱 개발 경험이 있는 안드로이드 개발자라면 이 책을 통해 스스로 만든 앱에 딥러닝 모델을 배포하여 활용하는 방법을 익힐 수 있고, 딥러닝 모델 개발 경험이 있는 AI 엔지니어라면 직접 개발한 모델을 안드로이드 환경에서 서비스하는 방법을 배울 수 있다.

안드로이드와 텐서플로 라이트를 이용하여 앱을 개발하는 전체 프로세스는 [딥러닝 모델 개발]과 [안드로이드 앱 개발]로 나뉜다.

[딥러닝 모델 개발] : python, tensorflow -> 텐서플로 라이트 = tflite

[안드로이드 앱 개발] : 안드로이드 앱 UI와 비즈니스 로직 개발 = apk

이 책을 차근차근 따라가면 텐서플로 라이트를 이용해서 앱 개발에 적용하는 단계까지 예제를 통해 학습할 수 있을 것이다. 자세하게 안내해주는 코드들은 좀 더 학습이 쉽게 도와준다. 다만 기존에 딥러닝이나 안드로이드 앱 개발 둘 중 하나라도(가급적 둘 다) 다뤄본 후에 이 책을 읽으면 더 유용한 도움을 받을 수 있을 것이다.

 

* 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

인공지능이 최신기술로 화두가 된 지금 사회에서는 인공지능을 만들줄 아는 인재들을 구하고자 많은 노력을 기울이고 있고, 이러한 수요에 맞춰 관련 교육이나 기술 서적들의 발매도 꾸준히 증가하고 있는 상황이다. 한때는 기초적인 인공지능 기술을 배우고 전반적인 데이터 분석에 대한 프로세스에 집중을 했다면 최근에는 이러한 인공지능을 여러 분야에 응용하여 실제 프로젝트로 접목시키려는 시각과 관련된 책들이 많이 나오기 시작하는 상황이다. 그런 흐름을 따라 보여주는 책 중 하나가 이번에 읽은 도서가 아닐까 싶다.

 

 

이번에 읽은 책은 모바일 환경에서 딥러닝을 할 수 있는 방법을 알려주는 내용을 담은 책이다. 안드로이드 환경에서 TFLITE를 이용해 딥러닝이 탑재된 애플리케이션을 만드는 방법을 알려주고 있는데, 앱 개발과 딥러닝 모두 다 방대한 분야여서 과연 한 권안에 다 들어갈 수 있을까 한편으로는 걱정이 들기도 하였다.

 

 

책의 전체적인 부분을 본다면 3분의 1정도 안드로이드 개발 관련 내용을 담고 있고, 3분의 1가량으로 TFLITE를 써서 모바일에 최적화된 딥러닝 개발을 만드는 방법, 그리고 남은 3분의 1은 간단한 앱을 실제로 만들어보면서 응용하는 프로젝트형 과제가 담겨 있었다.

 

 

한정적인 분량에 모든 걸 보여주다 보니 깊은 내용은 아니라 약간 겉핥기 식으로 접근을 하고 있는데다 모바일 앱 개발과 인공지능 양쪽 다 어느정도 배경지식이 필요한 부분이 있어서 난이도가 다소 있는 책이지만 어떻게 모바일에 딥러닝을 이식하는지 전반적인 과정은 가볍게 훑어볼수 있는 책인 것 같아서 새로운 지식을 얻게된 부분은 많았던 것 같다. 물론 난이도가 꽤 있는 편인데다 보통의 경우라면 모바일과 딥러닝 양쪽 다 하는 사람은 드물기에 이 모든 기술을 배우기에는 한계가 있다고 생각하지만 그럼에도 양쪽 다 잡아주려는 시도를 함으로써 어떻게 접근하면 좋은지를 볼 수 있어 시야에 대해서 좀 더 확장적인 부분을 얻었다는 것에는 고무적이라고 생각된다.

 

 

완벽한 카탈로그는 아니지만 모바일 딥러닝 개발에 있어서 충분히 아이디어와 소스는 얻을수 있는 책이라 생각한다. 다만 어느정도 배경지식이 있기도하고 이 책에서도 추천하듯 자바랑 파이썬 둘 다 어느정도 백그라운드가 있으며, 모바일이랑 딥러닝 개발에 대해서도 지식이 있는 사람이 읽어야 충분히 도움이 될 책이라 생각한다. 접근하기는 쉽지 않은 책이지만 모바일이라는 제한적일수 있는 환경에서 무거운 딥러닝을 탑재할 방법에 대해서는 괜찮게 서술한 책이니 딥러닝을 여러 가지 방법으로 응용하고 싶은 사람에게는 좋은 참고도서가 되리라 생각한다.

보통 딥러닝을 배우는데 있어서 텐서플로 라이트는 많은 분들에게 생소합니다. 텐서플로 라이트를 이용하여 안드로이드앱을 개발하여 모바일 기기에 배포할 수 있습니다. 본 책은 모바일을 조금 접하신 분들에 한해서 추천드리고 싶은 책입니다.

먼저 안드로이드에 대한 내용을 앞에서 간략하게 훑고 기능들에 대하여 배울 수 있어서 유익하였습니다.

그리고 본격적으로 텐서플로 라이트를 사용하여 딥러닝 모델을 배포할 수 있습니다. 본 책에서는 이미지를 이용하여 추론하는 실습을 진행할 수 있기에 초보자에게는 실용적일 것 같습니다.

마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 1월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

소개

모바일 분야에서 딥러닝을 구현하기 위해서는 모바일 앱 프로그래밍은 클라이언트로 구현 하고 서버에 처리 요청 후 응답 데이터를 받아서 화면에 출력하는 형태로 이루어져 있습니다.

이 것은 딥러닝 모델이 강력한 컴퓨팅 자원을 필요로 하기 때문에 이러한 모델을 만들 수 밖에 없었습니다.

하지만 서버에 데이터를 보내고 받는 과정에서 정보보안이 취약해 짐에 따라 모바일의 자원을 활용하여 딥러닝 모델을 동작시키는 온디바이스 AI 환경의 필요성이 대두 되었고 텐서플로는 텐서플로 라이트를 공개하며 안드로이드 On-Device AI 개발 환경을 지원하고 있습니다.

이러한 온디바이스 AI 프로그래밍은 다음과 같은 절차로 이루어 집니다.

  • PC에서 딥러닝모델개발
    • 훈련데이터를 준비
    • 텐서플로 모델 생성
    • tflite 파일로 모델 변환
  • 안드로이드 앱 개발
    • 텐서플로 라이트 모델을 이용해서 PC에서 개발된 모델을 안드로이드 앱에서 사용

이 책은 이러한 On-Device AI 프로그래밍을 하는 방법에 대해 자세히 다루고 있습니다.

 

특징

1. 이 책은 안드로이드프로그래밍 구조 부터 설치까지 실습환경을 하나하나 설명해 주고 있습니다.

2. 텐서플로와 텐서플로 라이트의 비교를 통해 임베디드 기기의 컴퓨팅 자원에 맞춘 텐서플로 라이트의 구성 및 경량화에 따른 기술적 제약 등에 대해 설명하고 모델 생성시 주의점들을 확인합니다.

3. 텐스플로 라이트 개발 환경 구축 부터 코랩을 사용한 환경까지 실습환경 구축을 위한 배려가 돋보입니다.

4. 2장~3장을 통해서 안드로이드 프로그래밍을 처음 해 보는 독자라고 해도 충분히 안드로이드 프로그래밍을 따라 해 볼 수 있도록 친절히 안드로이드 프로그래밍의 기본을 차근차근 설명해 주고 있습니다.

5. 4장 에서는 딥러닝 모델을 직접 만들어 보지 않은 사용자도 충분히 코드에 대한 이해가 이루어 지도록 케라스에서 제공해 주는 mnist 데이터를 이용한 딥러닝 모델을 만들어 보면서 각각의 코드 라인별로 자세한 설명을 해 놓았습니다.

 

코드에 대해 상세하게 설명을 하고 있다.

 

6. 5장에서는 4장에서 만든 딥러닝모델을 이용하여 안드로이드에 탑재해서 다음과 같이 손글씨를 분류하는 안드로이드 프로그램을 만들어 봅니다.

 

손글씨를 체크해 보면 8이라는 숫자로 분류를 하는 모습

 

7. 6장에서는 ImageNet 데이터를 사용해서 학습한 모델 중 MobileNet V2 모델을 로드하여 이미지를 분류하는 안드로이드 앱을 만들어 봅니다.

 

고양이 사진을 선택하면 tabby 로 분류하는 모습

 

- 이러한 이미지 분류앱을 사용하면 사진을 이용한 백과사전과 연결하는 앱도 만들 수 있을것 같네요.

8. 이러한 제 마음을 읽었는지 바로 7장에서 카메라로 실시간 사진을 찍어서 분류하는 분류 방법에 대해 설명을 하고 있습니다.^^

9. 8장과 9장에서는 약간은 미흡한 모델에 대해서 모델의 성능 개선방법과 최적화 방법에 대해 다루고 있습니다.

또한 https://github.com/dualcoder-pe/android_tflite/issues 에서 궁금한점을 문의 하시면 저자님이 직접 답변을 달아 주시네요^^

 

서평

딥러닝을 배우기만 해서 활용을 하지 않는다고 하면 아마도 무용지물 일 것입니다.

이 책은 딥러닝을 가장 활용하기 좋은 스마트폰 앱에 적용시키는 방법에 대해서 다루고 있습니다.

딥러닝을 이용한 모델을 생성해서 고객에게 서비스를 제공해 주고 싶은 데이터과학자, 혹은 앞으로 딥러닝을 배우게 되면 어떤 식으로 활용하지? 라고 궁금한 학생들~

안드로이드 앱 프로그래밍을 좀더 지능적으로 만들어 보고 싶은 앱개발자 분들에게도 정말 많은 도움이 될것 같네요.^^

이 책을 읽고 코드를 따라 하면서 한줄 한줄 친절하게 설명되어 있는 내용들을 읽다 보면 딥러닝/안드로이드 앱 프로그래밍을 전혀 해 보지 않았다고 해도 사진을 찍은 이미지가 어떤 분류에 속하는지 찾아내는 인공지능 프로그램을 만들 수 있게 됩니다.

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

텐서플로로 머신러닝을 해보고, 그것을 앱으로 만들어보고 싶은 분에게 좋은 책입니다. 

일단 텐서플로 라이트에 대한 내용과 안드로이드 스튜디오를 모두 배울 수 있습니다. 사실 안드로이드 앱에 텐서플로를 올리는 것만으로도 다양한 머신러닝을 실제 보고 느끼면서 할 수 있는데, 그냥 단순히 파이썬으로 돌려보는 예제를 벗어나서 실제로 다양한 프로그램을 만들어보고 직접 테스트 해보면서 느낄 수 있는 점이 좋은듯 합니다. 아직 저도 배우는 중이라서 자꾸 다시 읽고 다시 읽고 하지만.. 조금은 어렵지만..

잘 보고 있습니다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

파이썬 덕분에 딥러닝은 이제 코딩에 대한 지식이 별로 없는 사람들도 시도해 볼 수 있는 기술이 되었다. 하지만 스마트폰에서 딥러닝을 처리하기에는 여전히 진입장벽이 존재한다. 스마트폰 애플리케이션 개발에 대한 기본적인 지식이 있어야 하고 x86 환경에서의 구동을 전제로 하는 기존의 딥러닝 지식들을 적용하기 어렵기 때문이다. 또한 강력한 컴퓨팅 자원이 필요한 딥러닝을 모바일 디바이스에서 제공하는 것은 인프라가 갖춰져있는 환경에서의 딥러닝과도 다르기 마련이다. 하지만 다른 면으로는 스마트폰에는 카메라를 비롯한 풍부한 입력장치가 있고, 딥러닝의 결과물을 즉시 표시해줄 수 있는 출력 디바이스 역시 부착되어 있어 딥러닝을 이용한 애플리케이션 개발의 가능성은 매우 크다고 할 수 있다.

이 책은 전반부에서 기본적인 모바일 개발 과정과 함께 딥러닝 알고리즘의 활용법을 기술하고 있어 모바일 개발 및 딥러닝에 존재하는 진입장벽을 효과적으로 해소해준다. 후반부에서는 실시간 이미지 처리와 함께 모델의 성능 개선, 최적화 방법을 다루고 있어 엣지 디바이스에 딥러닝을 적용할 때 겪는 가장 현실적인 문제인 성능에 대한 고민을 해결할 수 있게 하였다.

기존에 개념만 알고 있던 지식을 실제 구현해보는 가장 효과적인 방법은 간단한 동작이라도 처음부터 끝까지 구현해보는 것이다. 이 책을 통해 안드로이드 기반 딥러닝 앱을 개발해보는 경험은 더 복잡한 딥러닝 구현을 위한 좋은 토대가 될 것이다.



#텐서플로라이트 #안드로이드 #딥러닝 #한빛미디어
 

1.jpg

 

 
 
모바일 환경에서 텐서플로를 사용할 수 있는 것이 텐서플로 라이트이다. 바로 이것을 사용한 안드로이드 딥러닝 프로그래밍 가이드북이 이 책이다.
 
 
텐서플로 라이트는 실제로 스마트폰에서 모델을 학습하는 것은 아니고 학습된 모델을 올려서 사용하는 방식이다.
 
 
이 책은 안드로이드 기반이라 안드로이드 기본 혹은 숙련자에게 텐서플로 라이트에 대해서 소개해주는 책일것이라 생각했다. 
 
 
 
 
하지만 안드로이드의 기초도 간단하게 다룬다. 안드로이드 입문부터 개발환경 구축까지 모두 담고 있다. 액티비티, 위젯 등도 물론 포함된다.
 
 
 
 
즉 모바일에서 딥러닝을 맛 볼 수 있도록 하는 가이드북이다. 안드로이드 개발자인데 딥러닝을 해보고 싶은 사람이나, 안드로이드도 모르지만 개발 경험이 있고 딥러닝을 해보고 싶은 사람이라면 빠르고 쉽게 딥러닝에 입문할 수 있는 이 책을 추천한다.
 
 
 
   "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

#tflite #TensorflowLite

 

한빛미디어의 “텐서플로 라이트를 활용한 안드로이드 딥러닝”을 소개합니다.

 

"이제는 On-Device AI, 모바일 딥러닝을 준비해야 한다!"

표지에 나온 이 문구가 무엇보다 눈길을 끌었고 마음에 들었습니다. 개인적으로는 작년 TinyML에 이어 TensorFlow-Lite를 주제로 접하게 된 두번째 도서이기에 반가웠습니다. 게다가 집필서이기에 더욱...

 

임베디드 분야 업무를 하고 있어서 인공지능과 빅데이터가 나와는 무슨 상관이랴...라고 생각해왔었는데, 최근에 맡은 개발 프로젝트가 대부분이 이와 관련이 있어서 머신러닝 딥러닝을 급하게 학습하기에 꽤나 고생을 했었습니다. 그리고 임베디드 제품에 적용하려면 서버와 인터랙션을 통한 딥러닝 수행도 가능하겠지만 근래 관심이 고조되는 엣지-AI에 무엇보다 관심이 있었죠. 특히나 임베디드 디바이스에 적용할 수 있는 YOLO나 TensorFlow-Lite 프레임워크는 선행개발 프로젝트 때문에 이전에 많은 글을 접하고 시도해본 것이 있어서 본 도서가 조금만 더 일찍 출간되었으면 얼마나 좋을까란 아쉬움과 함께 도서에서는 On-Device AI를 주제로 어떤 내용을 어떻게 구성하여 접근하였는지가 궁금했죠.

 

 

책의 구성

도서는 9장으로 구성되어 있고, 목차에 대한 자세한 내용은 도서의 해당 사이트를 참고합니다.

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2354289186

https://github.com/dualcoder-pe/android_tflite

 

 

 

 

내용을 크게 세 부분으로 나누면

 

- TensorFlow와 TensorFlow-Lite에 대한 소개

- 안드로이드 앱 개발에 대한 소개와 TensorFlow-Lite 적용 방법

- TensorFlow-Lite를 이용한 프로젝트와 최적화

 

 

주로 임베디드 디바이스를 타겟으로 다루겠지만 TensorFlow-Lite 한계는 다음과 같습니다.

 

따라서 우리가 본 도서에서 관심있게 지켜봐야 하고 익혀야 하는 부분은 아래 그림으로 요약할 수 있습니다.

4장에 텐서플로 라이트 모델 변환에 대해서 자세히 알아 봅니다. 만일 임베디드 리눅스나 안드로이드 보드에 이식을 해서 실습을 적용하려는 독자는 누구보다 관심있게 읽어야 하는 부분입니다.

 

“5장 딥러닝 모델을 이용한 안드로이드 앱 개발”을 통해서 안드로이드 앱에 TensorFlow-Lite 적용에 대해서 배우게 됩니다. 이전 챕터까지는 알고 있는 내용과 겹치는 부분이 많아서 집중해서 읽어보게 되는 부분도 5장부터였습니다.

 

안드로이드 앱에서 TensorFlow-Lite를 적용하기 위해서는 앱이나 타겟보드에서 직접 할 수 없고 이미 학습된 tflite 파일을 로드하는 방식으로 사용됩니다. 도서 초반에 이미 이에 대한 내용을 명시했었죠.

 

7장에서는 Camera2 API를 사용하여 입력된 프레임 데이터를 다루는 실시간 이미지 프로젝트를 수행해봅니다. 실무에 가까운 상당히 흥미로운 내용입니다.

 

다만 전제해야 될 것은

 

TensorFlow-Lite 입문자에게는 너무나도 좋은 구성입니다. TensorFlow-Lite 교육을 한다면 TensorFlow 기반으로 머신러닝과 딥러닝의 이해, TensorFlow-Lite 소개와 임베디드 디바이스 적용 - 이왕이면

스마트폰이 일상에 가까워지면서 앱을 만들어고 싶다는 생각이 항상 마음 한 켠에 자리잡고 있었습니다. 그래서 이번에 선택한 책은 딥러닝 모델을 생성하고 이를 적용한 앱을 만드는 '텐서플로 라이트를 활용한 안드로이드 딥러닝'입니다.  막연하기만 한 딥러닝과 실제 이를 활용한 앱 개발을 한 권으로 배울 수 있어 정말 탁월한 기획력이 돋보이는 책인 것 같습니다.

텐서플로 라이트는 텐서플로로 만든 딥러닝 모델을 모바일 환경에서 활용할 수 있는 모바일용 기계학습 라이브러리입니다. 텐서플로 라이트와 안드로이드 스튜디오를 이용하여 앱을 만들기 위해서는 파이썬과 자바를 많이 사용하게 되므로 파이썬과 자바에 대한 기초지식이 필요한 책이기도 합니다.  손글씨 모델을 구현하기 위해 케라스를 사용하기도 합니다. 저는 자바에 아직 익숙치 않지만 각 코드들에 대해 친절하게 설명되어 있어서 책을 따라하며 익혀갈 수 있습니다. 코딩에 관한 기초지식이 있다면 너무 걱정하지 않으셔도 됩니다.

 

 

20210822_213841.jpg

 

 

실제로 책을 따라하며 앱 개발을 진행하기 위해서 처음에는 안드로이드 스튜디오와 아나콘다, 비쥬얼 스튜디어 코드 등을 설치해야 합니다. 저는 텐서플로를 설치하다가 오류가 난 이후 포기했던 적이 있는데, 책에서 모든 과정들에 대하여 상세하게 설명되어 있어 무사히 진행할 수 있었습니다. 정말 감사한 책입니다. 어떤 항목을 눌러야 하는지만 표시된 책도 있는데, 왜 선택해야 하는지 어떤 기능인지 등도 자세히 설명되어 있어서 이해하며 따라할 수 있습니다.



앱을 개발하기 위해서 안드로이드의 주요 구성요소들과 각 역할들에 대해 먼저 공부하게 됩니다. 앱이 실행되고, 백그라운드에서 동작하고 결과물을 공유하는 다양한 액티비티들이 정말 흥미롭네요. 만들어진 앱만 사용하다가 앱의 실체를 알아가고 이해할 수 있게 되니 무척 재미있습니다. 특히 중요한 내용들을 이렇게 별도로 설명하였는데 무척 유용한 내용이 많습니다. 

 

KakaoTalk_20210823_010941059.jpg

안드로이드 앱의 기본 구성을 익힌 후에는UI를 배치하고 레이아웃을 작성합니다. 각 설정과 수치에 따라 어떻게 화면이 구성되는지 모두 설명되어 있으므로 자신이 원하는 바를 쉽게 선택하여 적용할 수 있습니다. 

20210822_213956.jpg

앱에 관한 기본 구성과 디자인을 설정한 후에는 딥러닝 모델을 개발하고 텐서플로 라이트로 변환하는 방법을 공부합니다. 먼저 안드로이드 앱에서 이용할 딥러닝 모델을 선택해야 하는데, 손글씨 분류 앱을 만들 때는 이미지 분류 모델을 선택하고, 영화 리뷰를 분석할 때는 감성 분석 모델을 선택합니다. 모델을 직접 개발할 수도 있지만, 이미 개발된 모델을 선택할 수 있어 부담없이 딥러닝 모델을 활용할 수 있습니다. 

 

이렇게 선택된 모델은 텐서플로 라이트에서 사용할 수 있도록 변환해야 합니다. 그리고 변환된 파일을 안드로이드 스튜디오에 포함합니다.

 

딥러닝 모델을 설계하기 위해 인공 신경망인 다층 퍼셉트론 모델을 공부하고 이를 구현해봅니다. 책에서는 손글씨를 구분하는 모델과 사진을 구분하는 모델을 이용하여 설명합니다. 

20210822_214102.jpg

이렇게 변환된 모델을 안드로이드에 추가하여 앱을 개발합니다. 

20210822_214134.jpg

이미지를 확대할 때 사용되는 이미지 보간법에 대한 설명입니다. 이렇게 원리를 설명하는 부분들이 무척 마음에 듭니다. 또한 이미지를 변환하기 위한 시프트 연산 등에 대해서도 자세히 설명해줍니다. 

 

 

KakaoTalk_20210823_020642545.jpg

 

 

그리고 갤러리에 저장된 이미지를 활용하고 카메라를 다루는 방법도 배울 수 있습니다. 매우 어려울 것만 같던 딥러닝, 그리고 마음은 있지만 시작하기 두려웠던 앱 개발. 이 두 가지를 함께 배우고 바로 적용할 수 있다는 점에서 이 책은 무척 유용합니다. 딥러닝이 막연하고 어렵게 느껴졌던 분들은 이 책을 따라하며 딥러닝을 직접 경험해보시기 바랍니다. 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

장점

1. 텐서플로우로 학습시킨 모델이나 텐서플로우 허브를 통해 학습된 모델을 텐서플로우 생태계를이용하여 Lite 버전으로 변환해 안드로이드나 IOS, 라즈베리와같은 MPU에 적용해 모델 구축에 대한 확장성을 배울 수 있음

2. 모바일과 학습 모델제작을 일상 생활에 적용하여 효율적으로 배울 수있게 하기 위해 이미지를 이용하여 손 글씨 분류, 이미지 분류, 카메라 데이터 실시간으로 처리 방법을 배울 수 있음

 

단점

1. 안드로이드 제작 부분은 자바로 되어 있으며 요즘 데이터 분석 서적들도 R과 파이썬을 동시에 사용하는 방법을 가르쳐주는데, 추후 2부가 제작이 된다면 코틀린도 포함되었으면 좋겠다.

 

후기

1. 딥러닝을 처음 시작하다 보다 보면 이론에 지쳐 뭔가를 만들어 보고 싶거나 실습을 먼저해보고 싶은 입문자 대상으로 딥러닝과 안드로이드 두 마리의 토끼를 잡아 기본 베이스 향상 및 간단한 프로젝트를 성과를 원한다면 이 책을 읽어 보는것을 추천함

 

20210822_234615.jpg

 

 

 

이번에는 오랜만에 안드로이드 관련 책을 보게 되었다.

 
정확하게는 안드로이드가 아니라 안드로이드 기기에서 텐서플로우 라이트를 실행하는 내용을 다룬다.
 
 

표지 2021-08-17 10.41.09.jpg

 

그동안 틈틈히 딥러닝 관련한 내용을 조금씩 공부하고 있었던지라 이번 책은 꽤나 흥미가 있었다.
 
딥러닝에 대한 책은 이미 많이 출판되었지만 모바일용 안드로이드 기기에서의 딥러닝에 대한 책은 드물다.
 
목차를 보고 실제 책을 읽어보니 딥러닝과 안드로이드에 어느 정도 지식이 있다면 3장까지는 빨리 넘어갈 수 있다.
 
개발 툴들을 다운로드 하고 설정을 위한 내용도 그림과 함께 자세하게 나와 있다.
 

다운로드 2021-08-17 10.44.08.jpg

 

혹시라도 안드로이드 개발에 대한 내용이나 딥러닝을 전혀 모른다고 하면 관련 기본 서적을 별도로 보길 권한다.
 
이 책에서도 어느 정도 설명은 하고 있지만 아무래도 분량(370 페이지 정도)에 제한이 있는지라 한계가 있다.
 
어쨌든 이 책의 본질은 4장 이후부터 알 수 있다. CNN은 딥러닝에서도 이미지 처리를 위해 재미 있는 내용인데,
 
MNIST와 카메라 입력을 이용하여 실시간 이미지 처리가 가능하도록 책을 구성한게 장점이라고 볼 수 있다.
 
후반부에서는 성능 개선과 최적화에 대해서 다루기 때문에 내용이 좀 어렵다고 본다. 하지만 안드로이드용 딥러닝 앱을 
 
개발하는 사람들에게는 반드시 필요한 내용일테니 다른 책을 추가로 보더라도 그냥 넘길 수 없는 내용으로 보인다. 
 

컬러 2021-08-17 10.47.08.jpg

 

책의 곳곳에 나오는 그림과 소스 코드, 사진 등등 모두 컬러로 되어 있어 책을 보는 내내 눈이 참 편해서 좋았다.
 
요즘 나오는 책들은 컬러 인쇄가 많이 되어 있는데 참으로 바람직하다고 생각한다. 가뜩이나 요즘 사람들이
 
책을 많이 안읽는 추세가 되어가는데 컬러 인쇄를 하면 그나마 나아지지 않을까 하는 개인적인 생각이다.
 
이제 정리하면 다음과 같다.
 
모바일 앱 개발자이면서 딥러닝에 관심이 있다면 이 책을 꼭 보라고 권한다.
 
딥러닝에 대한 내용도 상당히 방대하므로 다른 책을 참고해야 할거다. 이 책에서는 CNN에 대한 내용만 살짝 다루며,
 
RNN이나 자연어 처리, 강화 학습, GAN 등에 대해서는 전혀 다루지 않는다.
 
번역서가 아닌 실무 개발자의 책이라는 점도 후한 점수를 주고 싶다. 앞으로도 이런 책들이 많이 나오길 기대 한다.
 
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
 

> 진행에 앞서

나의 직업상 안드로이드는 매우 친숙하고 가장 두려움이 없는 영역이다. 반면에 머신러닝에 대한 부분은 학습이 쉽게 되지 않아서 어려운 영역중 하나라고 생각한다.

이러한 두가지 영역을 같이 다룰 수 있는 주제가 바로 안드로이드에서 텐서플로 라이트를 활용하는 것이다.

약 일년 전부터 이 주제에 대해서 궁금해하고는 있었기 때문에 가벼운 테스트로 접근까지는 했었으나 파이어베이스의 가격정책도 함께 고려되는 상황이었기 때문에 쉽게 반영하기는 어렵다고 생각하고 있었다.

그러던 중 이런 책을 발견하게 된다.

 

> 책에 대한 간단한 정보


이 책은 Tensorflow Lite에 대한 책이다. 안드로이드에 적용하기 좋은 것이 바로 텐서플로 라이트이기 때문에, 안드로이드를 빼놓고서 텐서플로 라이트를 이야기 하기가 어려웠을 것이며, 반대로 텐서플로 라이트를 빼놓고서 안드로이드의 머신러닝을 이야기하기는 어려웠기에 두가지를 다룬 책으로 보여진다.


앞 표지

> 인상깊은 부분들

 

책의 구성은 심플하다

책의 구성은 심플한 편이다. 그래서 구성은 매우 이해하기 편했다.

일단 환경 구축에 대한 부분에서 시작해서, 안드로이드 앱 개발에 대한 설명, 그리고 딥러닝 모델 개발에 대한 설명으로써 가볍게 기본을 다져준다.

그리고 이렇게 다진 기본으로 딥러닝 모델을 활용하여 안드로이드 앱 개발을 어떻게 해 나갈 것인지 풀어낸다.

실습을 함께 진행하기 때문에 좋은 부분이지만, 이것만으로 충분하지 않을 수 있기에 성능 향상 및 최적화까지 다룸으로써 좀 더 확실한 방향을 제시하는 데 도움을 주고 있다고 생각한다.


안드로이드의 딥러닝 개발과 관련한 전체적인 개발 프로세스

안드로이드에서 텐서플로 라이트를 활요하기 위한 전체적인 개요를 다이어그램으로 보여준다.

큰 그림이 궁금할 수 있기 때문에 아주 간단한 그림이지만, 꼭 필요한 부분이다. 이러한 부분 때문에 앞으로의 전개가 막막하지는 않았다.


텐서플로 라이트 모델 개발에 대한 워크플로

전체적인 그림 외에도 세부적으로 들어가서 텐서플로 라이트 모델에 대해서 워크플로우도 나타내었다.

이러한 묘사로 인해, 앞으로 모델을 어떻게 만들어서 기기에 배포할 것인지도 막막하지 않게 도와주었다. 딥러닝에 대한 깊은 이해가 없이도 작업 자체를 들어갈 수 있도록 만드는 중요한 요소라고 생각한다.


도움이 되는 모델 및 데이터셋에 대한 사이트 목록

직접 아나콘다를 설치하고 그 위에 파이썬 및 텐서플로를 설치한다고 하여도, 실제 서비스 가능한 모델 생성을 하기 위해 학습하는 것은 어려운 일이다. 이것을 이미 도울 수 있도록 데이터셋을 형성한 사이트가 있었으며, 그러한 사이트를 이곳에 기록하여 놓았다.

연습에서 그치지 않고 실제로 작은 서비스라도 진행하기 위해서는 꼭 필요한 지식이라고 생각이 든다.


이 책의 대상이 되는 독자와 이 책의 목표를 명시해 놓은 뒷표지

주요 내용 및 추천사를 포함한 내용을 뒷 표지에 담아놓았다. 모바일을 활용하여 딥러닝을 어떻게 다룰지 궁금한 사람들을 위해 다루었다고 적혀있다.

특히 추천사 중 생소한 코드를 마치 페어프로그래밍 하듯이 한 줄 한 줄 이해시켜 준다는 말이 와 닿았다.(그렇다고 아주 친절하지는 않지만, 실습 내용은 대부분 그런 방식으로 적혀있었다.)



나의 주피터 실습 화면

이 책을 읽으며, 실습 위주의 책이기에 주피터노트북을 직접 설치하고, 진행하였다.

끝까지 진행하지는 못했지만, 다행히도 큰 오류 없이 진행이 가능했으며, 그렇기에 위처럼 직접 pixabay에서 가져온 이미지가 잘 분석되는 것을 확인할 수 있었다.

주피터노트북을 말로만 들었는데, 이렇게 활용해 보아 좋은 기회라고 생각이 들었으며, 이 경험으로 좀 더 친숙해진 느낌이다.



> 괜찮은 부분

1. 주제 선정의 시기 적절성

안드로이드와 텐서플로라이트라는 주제는 상당히 유니크하지만 필요한 주제라고 생각이 들었다. 인터넷에서의 자료도 여러 자료가 있지만, 깊은 이해를 요하는 분야가 포함되어 있기에 생각보다 적절한 자료를 찾기도 어려웠다. 그런 상황에서 시대에 맞는 주제라고 생각이 들었다. 많은 기술이 융합되었을 때 가치가 배가되어 올라가듯이, 이 두 기술도 마찬가지의 상황으로 처해있다고 생각한다. 나를 포함하여 이 책을 보는 모바일 개발자가 딥러닝에도 함께 관심을 가지고 친숙해졌으면 하는 바람이 있다.


2. 매우 깔끔한 구성

앞에서도 언급했지만, 책의 구성은 매우 간단하다. 처음 도입을 제외하곤, 안드로이드에 대한 기본지식+딥러닝에 대한 기본 지식을 익힐 수 있도록 하였으며, 그 내용 또한 복잡하지 않다. 그리고는 그 두가지를 활용한 앱을 만들어 볼 수 있도록 하며, 그것을 가볍게 고도화 할 수 있는 것으로 결론에 이르도록 하였다. 책 자체가 두꺼운 책은 아니지만, 구성 역시 복잡하지 않기에 편하게 읽혀서 매우 높은 만족감을 주었다.


3. 도표의 적절한 활용

설명을 위해 도표를 적절히 활용했다. 특히 플로우와 관련된 부분은 맥락 이해에 도움이 되었으며, 각 컴포넌트 구성을 이해하기에는 스택형식으로 그려서 표현한 그림이 이해에 도움이 되었다. 칼라 구성이라고 모두 꼭 필요하다고 생각하지는 않지만, 이 경우에는 적절히 활용했기에 강조할 부분도 강하게 강조가 되었으며, 그 중심으로 말하고자 하는 바를 바로 캐치하기가 편했다. 저자는 평소에도 설명할 때 그림으로 잘 표현하는 분이라는 생각이 들었다.

 

> 아쉬운 부분

1. 대상 독자 선정에 대한 의문

이 책이 바라보는 독자가 어떤 독자인지는 사실 좀 의문이 들었다. 안드로이드 입문자가 바라보기에는 사실 안드로이드에 대한 기본 설명이 충분한 편은 아니었기 때문이다. 그래서 차라리 안드로이드는 어느정도 기본 지식이 있는 사람이 본다는 가정하에 텐서플로 라이트에 대한 설명을 좀 더 할애했으면 좋았겠다는 생각이 들었다. 케라스나 모델 개발 등에 대한 지식이 단순이 실습을 따라가는 수준을 넘어서기에는 설명이 충분하지 않다고 생각되었기 때문이다.(나 스스로도 아직 이해가 덜 된 상태로 겨우 따라간 느낌이다.) 그래서 두마리 토끼를 잡으려다가 두마리 다 맛만 보고 지나간 느낌이 들기도 한다.


2. 자바 기준으로 된 안드로이드 설명

이 책은 안드로이드 소스 진행시 자바를 기준으로 설명하고 있다. 하지만 현 시점에서 최근 발행된 많은 책이나 자료는 코틀린을 기반으로 하는 경우가 많기 때문에 최근 출시된 책임에도 자바로 적혀있는 것은 이해가 잘 되지 않았다. 코틀린으로 진행할 경우 코드도 더 간결해지기 때문에 설명에도 불필요한 부분을 줄일 수 있으며, 최신 라이브러리를 사용하기에도 좋을텐데, 진행하면서도 굳이 자바로 진행했어야 했는지에 대한 의문이 남았다.


3. 스크린 샷 활용시 다크모드로 인한 시인성 떨어짐

설명 자료로 활용하는 부분 중 안드로이드 스튜디오와 관련된 캡처부분이 여럿 존재하였다. 이 부분에 대한 테마를 Darcula로 설정하여 진행한 부분이 눈에 띄었는데, 이렇게 진행할 경우 시인성이 떨어지는 것이 아쉬웠다. 실제 프로젝트 진행할 때에는 본인도 눈의 편안함을 위해서는 Darcula를 활용하지만, 책의 경우 흰색 글씨만 있는 것이 아니기에 대비가 강한 색을 사용하는 글씨를 제외하고는 잘 보이지 않는 부분도 존재하였기에, 흰 색의 테마로 캡쳐화면을 활용했더라면 좀 더 눈에 띄도록 할 수 있지 않았을까 생각이 들었다.

 

> 개인적인 평점

- 가격: 8 / 10

- 내용: 7 / 10

- 디자인: 8 / 10

- 구성: 9 / 10

 

> 정보

저자: 임태규

출판사: 한빛미디어

가격: 27,000원

전체 페이지: 368페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

텐서플로를 활용한 안드로이드 딥러닝.jpg

지난 몇년간 딥러닝을 필두로 인공지능 기술이 비약적으로 발전하여 IT업계 전반으로 확산되었습니다. 현업에서는 인공지능이 포함되지 않은 프로젝트는 시작도 하기 어렵다는 우스갯소리마저 나오고 있습니다.

하지만 딥러닝은 진입장벽이 매우 높은 기술이며 모바일 환경에서의 딥러닝 개발은 모바일이라는 기존의 기술의 강점을 유지하면서 딥러닝이라는 새로운 기술을 접목하여야 하기 때문에 더욱 까다로워 개간이 안된 황무지입니다.

그러나 최근 들어 텐서플로, 파이토치 등의 플랫폼이 발전하면서 진입 장벽이 점점 낮아지면서 다양한 딥러닝 관련 서적이 출간되고 있습니다.

제가 이 책을 선택한 이유는 평소 딥러닝에 관해서 학습을 하고 싶었고 PC환경에서의 딥러닝 개발은 다뤄볼 기회가 종종 있어서 다뤄보았지만 모바일에서의 딥러닝 개발은 접할 기회가 매우 희귀하여 이번 기회를 통해 학습하고 저의 한계를 넘어서고 싶었기 때문입니다. 이 책은 입문자의 시선에서 각 기술을 먼저 다룬 다음 이를 통합하는 방식으로 서술되어 동작하는 코드를 만들어내는 데에서 그치지 않고 가급적 라인 단위로 각 코드의 의미를 상세히 설명하기 때문에 초급자들이 단순히 코드만 찍어내는 코딩을 하는 것이 아닌 어떤 라인이 어떤 기능을 하는지 알 수 있어 이해하기가 좀더 쉽고 좀더 다양하게 응용할 수 있기 때문입니다.

 

 

이 책의 특성은 초반은 안드로이드와 딥러닝 모델에 대해 학습하고 후반부에서는 기술 융합과 더불어 성능 최적화의 방향으로 제시하여 전문적인 딥러닝 알고리즘과 활용 방법에 대하여 기술하고 생소한 코드를 페어 프로그래밍 하듯이 한중 한줄 이해시켜주어 혼자 학습하기에 무리가 없고 전체적인 모바일 딥러닝 기술을 이해하고 관련 앱을 개발하거나 제한된 자원에서 신기술을 구현하는 개발자가될 수 있도록 인도하는 길라잡이 역할을 하는 개발 기본서입니다.

 

 

요즘 대기업에서는 A.I 및 IoT를 위해 머신러닝에 대해 개발을 추진하는 추세입니다. 딥러닝이란 기술은 인간의 뇌구조를 묘사한 뉴럴 네트웍에 기반한 기술이고 굉장히 다양한 일들을 하고 있는데 예전에는 단순히 로봇에 학습을 시켜서 사람을 따라하게 만들었지만 이제는 로봇뿐만 아니라 스피커, 청소기등등이 자신들이 가지고 있는 학습 데이터에 기반해서 판단을 내리고 행동하는 초연결시대로 나아가기 위한 기술이기 때문입니다. 그래서 구글, 삼성같은 IT관련 대기업들은 이미 머신러닝에 관련돈 기술자들을 교육해서 키워내는등 첫번째 선두로 등장하기 위해 엄청난 경쟁을 벌이고 있을 정도로 21세기의 핵심 기술중 하나입니다.

 

구성

Chapter 1: 안드로이드와 텐서플로 라이트 입문

Chapter 2: 처음 만드는 안드로이드 앱

Chapter 3: 안드로이드 앱 UI 구성

Chapter 4: 텐서플로 라이트 모델 개발

Chapter 5: 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발

Chapter 6: 프레임워크를 활용한 이미지 분류 앱 개발

Chapter 7: 실시간 이미지 처리

Chapter 8: 텐서플로 라이트 모델의 성능 개선

Chapter 9: 텐서플로 라이드 모델 최적화

 

파트별로 나누어 봤을때 1장은 안드로이드와 텐서플로 라이트 프로레임워크개발환경 구축에 대해 설명하고 있고 2~3장은 프로젝트 및 UI를 구성하여 안드로이드 앱 개발에 대해 4장은 딥러닝 모델 개발에 대해 5~7장은 딥러닝 모델을 이용한 안드로이드 앱 개발에 대해, 8~9장은 성능 향샹 및 최적화에 대해 설명하고 있습니다.

 

개인적인 생각으로 학습은 안드로이드 또는 텐서플로를 1부터 시작해야하는 시니어이신 분들께서는 1장부터 시작하시면 좋을것 같고 어느정도 경험이 있으신 분들(모바일 APP 개발 또는 AI 엔지니어 2년차)은 4장까지는 가볍게 읽으시면서 기본 개발 방법을 학습하신 다음 5장부터 시작하시면 좋을듯 싶습니다. 그리고 현재 안드로이드/텐서플로에 대해 지식이 어느정도 풍부하시거나 현직에서 사용하시면서 프로젝트를 위해서 안드로이드 개발/딥러닝을 학습하시는 분들(3년차~) 역시 5장부터 시작하시면 좋을듯 싶습니다.(5장부터 핵심적인 내용이네요)

 

그리고 개인적으로 약간의 단점이 내용구성부분에서 기초적인 부분이 구성의 절반을 차지하는데 2장정도로 좀더 간단히 하고 딥러닝을 활용해서 데이터 모델이나 간단한 프로그램을 만드는 실습 부분이 좀더 많았으면 더 좋았을것 같다는 아쉬움이 있습니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

머신러닝, 딥러닝, 텐서플로우 등 많이 들어는 봤지만 어떻게 시작해야 할지 모르시는 분들이 많으실 텐데,

이번에도'한빛미디어, 나는 리뷰어다'를 통해 도서를 지원받게 되었고, 리뷰를 남겨보도록 하겠습니다.


아래부터 '텐서플로우' 대신 '텐서플로'로 표시하도록 하겠습니다'

 

'텐서플로 라이트를 활용한 안드로이드 딥러닝' 표지 사진

본 도서는 총 9개의 파트로 구성되어있습니다.

  • 파트1: 안드로이드와 텐서플로 라이트 입문
  • 파트2: 처음 만드는 안드로이드 앱
  • 파트3: 안드로이드 앱 UI 구성
  • 파트4: 텐서플로 라이트 모델 개발
  • 파트5: 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발
  • 파트6: 프레임워크를 활용한 이미지 분류 앱 개발
  • 파트7: 실시간 이미지 처리
  • 파트8: 텐서플로 라이트 모델의 성능 개선
  • 파트9: 텐서플로 라이트 모델 최적화

파트1) 안드로이드와 텐서플로 라이트 입문

첫 번째 파트에서는 안드로이드와 텐서플로 라이트에 대한 기초적인 소개로 만납니다.

주 내용은 안드로이드/텐서플로 라이트 환경 구축이라 생각이 들지만, 생각보다 많은 설명이 제공되고 있습니다.

 

앞 내용만 보면 '안드로이드 개발 도서인가?'라는 생각이 들 정도로 자세하게 설명하고 있습니다.
다시 말하면, 안드로이드 개발을 처음 하는 사람이라도 이해하고 따라올 수 있도록 안내되고 있습니다.
Activity Lifecycle, Intent, Service 등 생각보다 자세하게 설명되었습니다.

 

안드로이드 스튜디오 설치 및 환경 변수 설정, 그리고 파이썬은 물론 주피터 노트북 설치, 아나콘다 가상 환경 설정 등 기초에 충실하게 설명되어 있습니다.

파트2) 처음 만드는 안드로이드 앱

두 번째 파트에서는 안드로이드 개발 구조적인 내용이 담겨있습니다.

 

프로젝트 구조부터, Android Manifest, res 구성, Gradle, 빌드 프로세스, AVD 설정 등 안드로이드 개발에 있어 알고 넘어가야 할 부분은 모두 설명하고 있습니다.

 

더도 말고 덜도 말고 딱 필요한 구성만 설명하고 있어 깔끔하였습니다.

파트3) 안드로이드 앱 UI 구성

그다음 이어지는 내용으로는 안드로이드 UI입니다.

화면을 만드는 데 있어 필요한 레이아웃부터

LinearLayout, RelativeLayout, ConstraintLayout

화면에 배치할 위젯은 물론

TextView, EditText, Button, Spinner, Toggle/Radio ...

클릭 이벤트 처리 및 액티비티 실행, LogCat 등 딱 안드로이드에서 사용하는 기초적인 부분을 설명하고 있습니다.

 

추가로 마지막에는 Thread까지 설명하고 있어 이 부분은 과한 게 아닌가 싶었는데,
뒤의 '실시간 이미지 처리' 부분에서 비동기 작업을 위해 미리 설명을 하였던 것이었습니다.

파트4) 텐서플로 라이트 모델 개발

이전까지는 안드로이드 개발이었다면, 이제부터는 딥러닝의 세계로 들어갑니다.
'모델 개발 시 워크플로'에 대한 설명과 텐서플로 라이트 모델에 대한 기본적인 설명과 함께

 

MNIST 데이터셋을 통해 손글씨 분류 모델을 만들어보고,
ImageNet 데이터로 학습된 MobileNet V2 모델을 이용하여 임의 이미지 제공 시 어떤 형태인지 추론, 케라스 변환 등

 

여러분들이 생각하시던 딥러닝에 대한 내용이 시작됩니다.

 

여기서부터 난이도가 상승한 기분이었지만, 코드와 함께 파라미터(인자 값) 하나하나 설명을 하고 있어
시간을 가지고 읽다 보니 어느 정도 이해하고 넘어갈 수 있었던 것 같습니다.

파트5) 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발

어느 정도 안드로이드 개발과 딥러닝에 대한 기술을 이해하셨다면,
이제 본격적인 딥러닝 앱을 만들기 시작합니다.

 

처음 만드는 앱은 손글씨 분석이며, 여기서 사용되는 기술은 앞서 작업/설명한 내용들입니다.

  • AndroidDraw 라이브러리
  • 파트4에서 만든 다층 퍼셉트론 모델을 변환한 텐서프로 라이트 모델

안드로이드에서 AndroidDraw 라이브러리를 통해 숫자를 그리면,
우리가 만든 텐서프로 라이트 모델을 통해 추론한 숫자를 알려주는 앱이 뚝딱 탄생합니다.

 

처음에는 정확도가 낮지만,
마찬가지로 파트4에서 만든 합성공 신경망 모델로 바꾸어 정확도가 높아지는 것을 확인할 수 있습니다.

 

즉 어떤 모델을 사용하느냐에 따라 정확도가 나뉜다는 것을 알 수 있게 되었습니다.

파트6) 프레임워크를 활용한 이미지 분류 앱 개발

이전 파트에서 손글씨 숫자를 인식하는 앱을 만들었다면, 이 파트에서는 이미지를 분류하는 앱을 만들며,
마찬가지로 파트4에서 사전 학습 모델인 MobileNet V2를 사용합니다.

 

갤러리에서 이미지를 불러오거나 카메라를 통해 받은 이미지를 추론하여 결과를 내놓기에
본 파트에서는 네이티브 코드가 많이 작성됩니다.

 

대신 그만큼 재미있는 시도를 많이 할 수 있으며, 완성된 앱으로 밖의 사물을 촬영하여 이미지 추론 결과를 확인할 수 도 있습니다.

파트7) 실시간 이미지 처리

동일하게 이미지를 분류하지만 다른 점이 있다면,
이전 파트에서는 갤러리 또는 카메라로 촬영한 정적 이미지를 분석했지만 이번에는 실시간으로 카메라를 통해 받아온 이미지를 추론하여 표시합니다.

 

파트6에서 사용하였던 로직에서 갤러리/카메라를 Camera2 API로 교체하여 실시간으로 처리하도록 변경합니다.
여기서 권한과 비동기에 대해 추가적인 설명이 제공되고 있습니다.

 

최종 결과물로는 실시간으로 이미지를 추론하여 결과를 표시합니다.

파트8) 텐서플로 라이트 모델의 성능 개선

여러 딥러닝 앱을 만들어보았다면 개선도 해봐야겠죠
현재 딥러닝의 성능을 분석하고 어떻게 개선하는지 안내합니다.

 

간단하게 CPU 계산을 GPU로 바꾸는 등 다양한 방법을 소개하고 있습니다.

파트9) 텐서플로 라이트 모델 최적화

데이터셋으로 딥러닝을 통해 학습 모델을 만들었고, 해당 모델을 최종적으로 안드로이드 앱으로 이식하였습니다.
모바일은 아무래도 PC보다 성능이 부족하기에 제한적인 리소스를 가지고 있습니다.

 

마지막 파트에서는 양자화 적용 방법과 각 양자화 모델에 따른 성능(소요 시간)과 정확도를 비교함으로써
최종적으로 모바일에 맞는 딥러닝 앱을 구현하면서 모든 파트가 끝나게 됩니다.

마치며

안드로이드 개발 내용까지는 매우 쉽게 이해하였으나,
파트4 딥러닝 내용이 시작되면서 난이도가 상승한 느낌이었습니다.

 

하지만 코드와 함께 자세한 설명이 덧붙여져 있어,
누구나 따라만 한다면 나만의 딥러닝 앱을 만들 수 있을 것이라 생각합니다.

 

딥러닝 기술을 활용하여 안드로이드 앱을 만들어보고 싶다면, 본 도서를 읽는 것을 추천드립니다.

20210822_220422.jpg

안녕하세요?
이번에 리뷰할 책은 텐서플로 라이트를 활용한 안드로이드 딥러닝입니다.
처음에 책을 받고서 작년에 리뷰한 '초소형 머신러닝 TinyML' 과는 어떤 색다른 느낌일까 궁금했습니다.
둘다 모바일, 엣지 기기용 딥러닝에 대한 책이니까요.
초소형 머신러닝 TinyML은 아두이노 같은 기기용이고, 이번의 책 '텐서플로 라이트' 는 모바일 앱 용이라고 보시면 됩니다.
전체적인 흐름은 둘다 딥러닝을 학습한 후, 각자의 기기에 맞는 초소형, 경량화된 추론을 배포하는 형식입니다.
난이도는 '초소형 머신러닝 TinyML'이 조금 더 높은 편인 것 같아요.

 

둘 다 실제 기기에서 머신러닝을 돌려보고 확인할 수 있다는 점에서 훨씬 생동감 있게 느껴집니다.

20210822_220450.jpg

문제는 균형감이 정말 중요한 것 같아요. 안드로이드 앱 제작자를 위한 책일까, 머신러닝을 하시는 분들이 앱에서 구현해보는데 치중한 책일까?

 

각각의 내용이 단행권 책 한권 정도인데, 두 개를 하나 정도로 만들었으니, 조금만 균형을 벗어나도 한쪽은 포기할 수도 있고, 아니면 양쪽에서도 환영하지 못할 수도 있기 때문입니다.

20210822_220517.jpg

저는 아쉽게도, 90페이지에 달하는 설치를 잘 따라하였으나, 마지막에 제 핸드폰이랑 안드로이드 연결이 안되어서, 실습은 중간에서 포기하였습니다. 구글폰으로의 연결은 설명되어 있으나, 제 삼성폰과의 연결은 어떻게 하는지 대충 말로 설명되어 있어서, 좀 더 검색해보고 실습은 나중에 해보아야 겠습니다.

20210822_220546.jpg

그래서, 1/3 이후 부터는 글로 쭉 읽어보았는데, 머신러닝 부분은 다소 쉽게 느껴졌습니다. 계속 머신러닝 관련 책들을 읽어서 어느 정도 알고 읽기에 그냥 술술 넘어갔습니다. 별로 특별한 느낌은 없었습니다. 보통의 머신러닝 책 정도로 생각하시면 될 것 같아요.

 

안드로이드 부분은 제가 가끔 해보는 정도라서, 무작정 따라하기 정도의 책이 아니면 좀 어려워합니다. 여기서도 순서대로 설명했다기 보다는 중요 부분을 위주로 설명한 감이 있어, 이쪽 저쪽 넘겨가면서 이해하였습니다.

20210822_220633.jpg

 

그래서 평소 안드로이드 앱을 다루는 쪽에서 머신러닝을 적용하고 싶으신 분들이 읽으시면 좋을 것 같아요. 머신러닝만 하신 분이라면 다른 안드로이드 책을 한번 읽어보시고, 실습한 후에 보시면 좋은 길잡이 책이 될 것 같다는 느낌입니다.

소스코드마다 설명한 충분한 편이라서, 모르는 것을 검색해서 공부할 수 있도록 정도로는 알려준 편이라서, 천천히 공부하면 많이 도움이 될 것 같습니다. 뒷편의 실제 예제들은 많이 쓰일 예제이므로, 안드로이드의 장점을 충분히 발휘하여 딥러닝을 경험해볼 수 있습니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이전에 안드로이드 앱 개발공부를 잠깐 해본적이 있는데요.

그 이후 머신러닝, 딥러닝을 공부하면서 별도로 앱에 인공지능을 얹어보겠다, 라는 생각은 잘 못했던 것 같아요.

 

딥러닝을 배우면서 구글 코랩을 통해서 한 줄 한 줄 파이썬으로 된 딥러닝 명령어를 입력해보면서 그때그때 실행해서 결과를 얻었지만, 완성된 서비스 플랫폼은 대체 어떻게 만들어야할까, 접목을 하기가 어려웠는데요.

 

마침 한빛미디어 출판사에서 제공해준 책 <텐서플로 라이트를 활용한 안드로이드 딥러닝> 책을 접하게 되었습니다.

이 책은 인공지능을 탑재한 안드로이드 앱을 텐서플로 라이트 프레임워크를 통해 손쉽게 만들 수 있는 방법을 쉽게 설명한 책입니다.

이 책을 통해서 "안드로이드 앱"에 원하는 인공지능 서비스를 개발하여 완성된 프로그램을 만들고 서비스할 수 있겠구나, 나도 인공지능 앱을 개발할 수 있겠다는 자신감이 생겼습니다.

 

이 책에서 모바일용 머신러닝 프레임워크로 설명하고 있는 "텐서플로 라이트"는 원래의 인공지능 개발 프레임워크인 텐서플로로 만든 인공지능 모델들을 모바일, IoT 환경에서 활용할 수 있도록 모바일, IoT 기기에 특화된 On-Device AI 개발환경입니다.

 

 

 

안드로이드 플랫폼 위에 개발하는 것이므로, 안드로이드 스튜디오라는 안드로이드 개발 IDE를 설치하고 안드로이드 기본 프로젝트를 설명하는 것부터 시작합니다. 실제 갤럭시 기준으로 기기 테스트까지 하는 것을 설명하고 있습니다.

 

그리고 안드로이드 앱 UI를 상세하게 설명해주어 굳이 안드로이드 앱 개발을 위한 별도의 기본서를 따로 보지않더라도 이 책의 앞장을 보면서 안드로이드 앱 개발의 기초를 다질 수 있습니다. (All-in-one 같은 책이랄까요!?)

 

책의 4장부터는 본격적으로 텐서플로우 라이트 모델을 개발하는 방법을 다룹니다.

텐서플로 라이트는 이미지 분류모델, 객체 탐지 모델, 이미지 분할모델, 자세 추정 모델, 스타일 변환 모델, 텍스트 분류 모델, 질문과 답변 모델, 스마트 답장 모델을 tflite 파일로 제공한다고 합니다.

이미 만들어진 모델을 사용할 수도 있고, 모델을 개발할 수도 있습니다.

 

단, 디테일한 모델 개발 지식과 예제는 이 책보다는 다른 책 (예 : 핸즈온 머신러닝 책 등)을 추천드립니다.

(이 책에서도 다른 책을 추천하고 있습니다.)

 

6장부터는 본격적으로 프레임워크를 활용한 앱 개발을 다루고 있고, 예제로 이미지 분류, 실시간 이미지 처리(카메라 활용)를 직접 개발해보는 것을 실습하고 있습니다.

 

무엇보다도 이 책은 기존에 다른 머신러닝, 딥러닝 책들이 AWS나 클라우드 컴퓨팅, 웹 기반으로 컴퓨팅 파워를 지원해주는 환경에서 개발하는 것을 기본으로 했다면,

우리가 흔히 갖고있는 스마트폰을 딥러닝 컴퓨팅 파워로 이용하여 그 위에서 서비스 앱을 개발할 수 있도록 모바일 영역으로 딥러닝을 끌어온 것에 대하여 좋게 평가하고 싶습니다. (이런 책을 보지 못했던 것 같습니다.)

 

또한, 진입장벽이 낮게끔 상세하게 설명해주고 있어 따라만 하더라도 간단한 인공지능 앱 개발이 가능하도록 설명과 예제 코드가 구체적이어서 좋았습니다.

 

앞으로도 딥러닝을 접목한 모바일 앱들이 다양하게 서비스되길 바라며, 저도 이 책을 공부하면서 예제를 따라해보고, 앞으로 어떤 앱을 개발할 수 있을지를 인공지능 분야와 결부하여 좀더 넓은 시야로 아이디어를 구상해볼 수 있을 것 같습니다.

 

 

- 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 -

서평 : 얇은 개발 서적이지만 풍부한 그림, 자세한 설명으로 텐서플로 라이트를 활용해서 안드로이드 딥러닝을 하고 싶으신 분에게 강력이 추천 합니다. 초반 프로그램 설치부터 자세하게 다루고 , 플랫폼별 라이프 사이클에 대해서도 자세히 다루고 있어서 좋았습니다.

 

텐서플로 라이트를 사용한 어플리케이션을 빠르게 개발하고 싶으시다면 강력히 추천 드립니다!!

 

 

 

KakaoTalk_20210822_205423885.jpg

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

총 368 페이지, 두께 약 1.5센치 얇은 책이라 양이 적고 쉽다고 생각하면 안된다.  작은 책 치고 묵직한 것을 보면 확실히 얇아 보일뿐 종이 자체가 얇은 뿐이다.

이해하지 못해도 일단 따라하면(작은 고난들은 있을 수 있다) 텐서플로를 적용한 앱 하나를 만들어 볼 수 있다.

첫페이지 부터 약 1/3의 구성만 보면 안드로이드 입문서로 추천하고 싶은 정도로 안드로이드 앱 개발을 위한 기초 지식을 꽈악꽈악 눌러 담았다.

안드로이드 개발자라도 꽤 많은 페이지를 소모해서 가볍게 보고 넘어가려다가 멈칫멈칫 하는 곳이 가끔식 있어서 스스로를 돌아 보고 싶다면 정독 한번 해보는 것도 추천한다.

 

 

설치나 작업 단계마다 필요한 명령어와 명령어를 입력한 이미지를 모두 삽입해두었는데 이미지가 더 눈에 들어와서 정작 텍스트가 눈에 잘 안들어온다. 그리고 이미지는 좀 해상도가 낮아서 잘 보이지 않는 다는 단점이 있었다.

앞에선 분명히 쉬웠는데 뒤로가면 어렵다. 쉬운 것에서 부터 어려운 내용까지 모두 잘 설명해두었다.

물론 실습을 할 수 없을 정도는 아니고 그에 필요한 내용들이 대부분 설명이 되어 있다. 실습만 따라하고 싶다면 일단 설명은 넘어가고 시키는대로 하다 보면 끝을 볼 수 있다. 각각에 대한 이론적인 것과 자세한 내용은 정독이 필요한데 집중해서 봐야한다.

설명이 절대 가볍지 않다. 책을 쭉 따라하면 실습을 모두 완료 할 수 있다. 대충... 2~3일 정도면 전부 가능한 양이고 이후에 천천히 내용을 자세히 보고서 스스로에게 필요한 부분을 적용해서 나만의 기능을 적용할 수 있도록 되어있다.

 

- 위 서평은 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

ㅌㅍㄹ.png

https://blog.naver.com/aul-_-/222480360012

KakaoTalk_20210822_200307416.jpg

 

안드로이드로 딥러닝이라는 흥분된 마음으로 첫페이지를 열어본다.


안드로이드 설치와 기본적인 사용법을 알려주는 것으로 시작해서 안드로이드로 딥러닝 임문까지를 자세히 설명해주고있다.


아쉬운점은 책의 절반정도가 안드로이드 기본 설치와 안드로이드 입문 강의 내용이다.

다르게 보면 , 안드로이드 자체를 처음 해보거나, 아직 초보의 수준에 머물러 있다면,

전반적으로 이 책에대한 몰입도를 높여줄수도 있을것 같다.


4장 텐서플로 라이트 모델 개발

텐서플로 라이트 모델 개발, 용어부터 쉽지가않다,

대부분의 전문용어나 개념이 낮설다, 그래도 좋다, 딥러닝을 위한 훌륭한 학습정보를 그나마 알기 쉽게 설명해주고있고, 이와중에 첫실습의 결과는 놀랍다,

그림을 보고 어떤 그림인지 알아내는 딥러닝의 기본적인 예제인데 결과가 예사롭지않다.


5장부터 드디어 안드로이드 앱을 이용한 실습이다.

재미있는 이론을 보는것 같다. 그림으로 이해가 쉽도록 설명해주고 있다.

그러나 생각보다 앞전 예제에비해 정확도가 떨어지는것이 좀 아쉽다.


곧이어 이미지 분류 실습 코드는 이미지분류~

훌륭하다.


계속해서 딥러닝에대한 학습을 진행해나가면서 딥러닝을 정확도를 올리는 방법이나 카메라를 통한 실시간 이미지 분리를 보면서 아직 성능이 조금 부족하지만 안드로이드에서 이정도가 어디인가?


이론반 코드 반인 내용의 결코 많이 않은 페이지의 안드로이드 딥러닝 입문 서적으로 

아주 짧은 시간에 안드로이드에서 딥러닝을 경험해볼수 이는 내용으로...


텐서플로 2판이 기다려진다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

모바일 딥러닝을 하고자 한다면, 볼 수 있는 유일한 책일 것 같다. 자바와 파이썬, 그리고 딥러닝의 기초 수준만 안다면, 이 책을 읽기엔 무리 없을 것 같다.

이 책은 체계적으로 어떻게 모바일 딥러닝을 구현하는지 가르쳐준다. 베이직한 예제를 통해, 어떻게 이미지를 전처리 시키고, 학습을 시키는지 기술해주고 있으며 더 나아가 카메라 API를 이용해서 실시간 이미지를 얻는 방법을 가르쳐준다.

실시간으로 이미지를 처리해야 하기 때문에 안드로이드 기기의 컴퓨팅 자원을 최대한 활용하고, 최적화하는 방법까지 제시하므로써 조그마한 아이디어가 있다면, 충분히 매력적인 토이 프로젝트를 할 수 있도록 도와주고 있다.

책 두께는 얇지만, 그 내용만큼은 결코 얇지 않은 책이다.

컴퓨터공학을 했다면 피할 수 없는 전문 분야가 딥러닝이다. 딥러닝을 활용한 강력한 소프트웨어들로 무장한 기업이 승승장구 하고 있는 현재는 개발자는 최소한 딥러닝 툴은 익혀야 하는 시대가 왔다. 

 

이 책은 삼성전자와 쿠팡에서 근무하셨던 임태규 기술사님이 쓴 책으로 모바일 개발자로서 모바일과 인공지능 기술의 융합에 기여하고자 쓴 책이라고 한다. 대상 독자는 자바와 파이썬을 이미 알고 있는 안드로이드 개발자 또는 AI 엔지니어라고 한다. 내가 보기에는 책의 내용을 이해하려고 하면 기본적으로 프로그래밍 언어 중 자바와 파이썬을 알고 있고 머신러닝과 딥러닝에 대한 사전지식이 있으며 안드로이드앱 개발 경험이 있는 사람이어야 책의 내용을 제대로 이해할 수 있을 것 같다는 생각이 들었다.

 

책을 쭈욱 읽어보니 이 책은 텐서플로 라이트로 안드로이드 앱 개발 경험이 없는 개발자에게 실무적으로 아주 도움이 될 것이라는 생각이 들었다. 시간 관계상 모든 예제를 실행해서 테스트를 해보지는 못 하였지만 책이 아주 논리적으로 잘 작성되어 있으며 용어도 정확하게 서술되어 있었다. 전반적으로 훌륭한 책이라고 생각이 들었다. 전체적인 모바일 딥러닝 기술을 안드로이드 라는 플랫폼에서 익히고자 하는 분들에게 추천하는 책이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

 
이번에 리뷰한 책은 "텐서플로 라이트를 활용한 안드로이드 딥러닝" 입니다.
 
IT분야에서 머신러닝 딥러닝 관련 인기를 끌고 대세가 된 지 오래입니다.
인공지능관련된 일을 실무에서는 사용하고 있지 않아서 개인적으로 책을 읽거나 강좌 영상을 보곤하는데,
거의 대부분 환경구축 텐서플로 설치 쥬피터 노트북 사용한 예제들의 구성이라 흥미를 잃어가던 차에 모바일과 접목한 분야의 책을 읽게 되었네요.

이를 위해선 안드로이드 개발과 딥러닝 개발이라는 2가지 분야의 지식과 개발 프로세스가 필요합니다.
각각이 제대로 다루자면 꽤 깊이 들어가야 겠지만 최대한 간결하게 꼭 필요한 과정들을 설명하고 있습니다.

서버를 API로호출하여 머신러닝 추론을 수행하고 결과를 받아오는 방식도 있지만 요새 모바일기기의 성능이 좋아지면서 텐서플로라이트를 통한 온디바이스형태로 추론을 수행하는 방식이 도입되고 있는데, 그 텐서플로라이트를 통한 개발을 다루고 있습니다.

딥러닝 개발: 데이터를 통해 학습을 시켜서 텐서플로 모델을 생성하고 그 모델을 (모바일용) 텐서플로 라이트 모델로 변환
안드로이드 개발: 텐서플로 모델을 이용하여 결과를 추론하는 서비스를 사용자에게 제공

환경설정 및 필요한 파일설치는 스크린샷과 함께 적절히 제공되었으며, 저자의 환경과 다른 환경으로 발생했던 오류도 언급된 부연 설명으로 해결할 수 있었습니다. 

안드로이드 앱의 라이프사이클과 UI 구성, 이벤트 처리, 외부라이브러리 사용, 성능개선등에 대해 알려주고 있으며,
딥러닝에 대해선 모델 직접개발, 사전 학습 모델이용, 전이 학습등에 대해 각각 예제를 제공하여 데이타를 준비하고, 전처리하고 학습 및 평가를 하거나 텐서플로허브를 이용하는 방법등을 알 수 있었습니다.

이 책에서 다루는 예제는 이미지분류(숫자 혹은 어떤 이미지 인지 맞추는것) 에 대한 것 한 종류뿐이라 아쉬었지만 덕분에 책 두께도 그리 두껍지 않아 부담없이 읽었습니다.

모바일 개발을 통해 인공지능 서비스를 개발하고자 한다면 이 책을 길잡이 삼아 시작하고 부족한 부분은 각 분야의 다른 책으로 보충하시면 좋을 거 같습니다.

대부분의 서비스는 서버로 데이터를 전달해서

처리결과를 전달받아 화면에 보여주는 형태이고

 

딥러닝을 구동하기 위한 환경은 x86 CPU와 Linux에

그래픽 카드를 장착한 데스크탑 환경이 기본이다.

 

Cloud기반의 서버들을 사용한다고해도

사용량에 따른 요금 부담은 다소 부담스럽기도 하다.

 

하지만, 최근의 트렌드와 니즈가

실시간으로 서비스를 처리하면서

개인정보도 보호해야하고,

오프라인에서 동작하는 서비스를 필요로 하고 있다.

 

서버 없이 기기 자체에서 딥러닝 모델을 활용하는

On-Device AI가 필요해진 것이다.

 

"텐서플로 라이트를 활용한 안드로이드 딥러닝"은

이를 위해 안드로이드 기기의 제한된 자원을 사용하여

딥러닝 모델을 활용하는 방법을 알려준다.

 

 

텐서플로라이트를활용한안드로이드딥러닝.jpg

 

안드로이드 기기에서 딥러닝 모델을 활용하는 앱을 만드는 것이다.

너무나 매력적이다.

거추장 스러운 것들이 없어진 Simple한 느낌이다.

 

텐서플로 라이트와 안드로이드 개발 환경을

만드는 것부터 시작해서

안드로이드 앱을 만드는 방법도 알려주므로

시작은 쉽게 할 수 있다.

 

텐서플로 라이트 딥러닝 모델을 개발하고

이를 이용한 안드로이드 앱을 개발하고

성능을 올리고 최적화하는 방법까지 적고있어서

 

딥러닝 모델을 활용하는 앱의 시작부터 끝까지를 경험해 볼 수 있는 책이다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



 

KakaoTalk_20210822_164327209.jpg

 

KakaoTalk_20210822_164327209_01.jpg

 


 



신청한 이유

이번에 이 책을 선정한 이유는 실제로 가벼운 텐서 플로 라이트를 활용해서 모바일 애플리케이션 (안드로이드) 개발에 어떻게 반영을 할 것인지가

궁금하였고 앞으로는 이런 경량화된 딥러닝 모델을 활용해 다양한 애플리케이션이 나올 것이므로 미리 조금 익혀보고자 신청하게 되었습니다.

 



내용

 

1장에서는 주로 안드로이드와 텐서 플로 라이트가 어떤 것인지 자세하게 설명을 되어 있습니다.





그리고 실습환경을 구축하기 위한 텐서 플로 환경, 아나콘다 설정이랑 안드로이드 스튜디오 앱 개발을 위한 세팅에 대한 내용이 친절하게 적혀있습니다.

 

2장 3장은 안드로이드에 대한 전반적인 UI에 관련된 내용 및 코드 예시가 있습니다.

 

 

 

4장은 주로 텐서 플로 라이트 모델 개발에 관련된 내용이 있습니다. 4장에서는 다층 퍼셉트론, 합성곱 신경망에 대한 구현 예제가 있습니다.

그리고 손글씨 분류 모델을 구현하는 ResNet 모델도 예시가 있습니다.

 

 

텐서 플로 허브라는 것도 책을 읽으면서 처음 알게 되었네요.



사전 학습 모델이라는 것도 있는 이미 학습이 완료된 모델로 tfile 파일 또는 텐서 플로 모델로 제공되는 것이 있다고 책에 적혀있고

이 검증된 모델로 바로 앱을 개발할 때 사용할 수도 있다고 내용이 적혀있습니다.

 

그리고 책에서는 이렇게 텐서 플로 허브에서 모델 선택하는 것, 그리고 탐색하는 법이 자세하게 캡처 및 표시가 되어 있으니 참고하시면 됩니다.





그리고 텐서 플로 라이트로 변환하는 법도 책에 자세하게 적혀있습니다.

 

또한 변환된 모델을 안드로이드 스튜디오에서 적용하는 것도 적혀있습니다.

 

4장에서도 모델에 대한 더 많은 공부를 하고 싶으면 핸즈 온 머신러닝 책도 추천드리고 있으니 참고하시면 됩니다.

 

 

5장은 텐서 플로 라이트 모델을 이용한 안드로이드 앱 개발하는 방법에 대한 내용이 있습니다.

 

tflite 모델을 가지고 실제로 안드로이드 코드로 초기화 및 구현하는 코드도 있으니 참고하시면 됩니다.

 

 

6장은 프레임워크를 활용한 이미지 분류 앱 개발, 7장도 실시간 이미지 처리에 대한 내용이 있고요.

 

마지막으로 8장은 텐서 플로 라이트 모델의 성능 개선에 대한 내용이 있습니다.

 

안드로이드 디바이스의 하드웨어 가속을 활용해서 추론 성능을 개선하는 법이 있어요.

 

 

마지막으로

일단은 이 책에서는 그래도 텐서 플로 라이트를 활용한 다양한 예제가 있습니다만 그래도 조금 더 안드로이드에 대한 지식이랑 머신러닝에 대한 간단한 공부는 조금이라도 하고 보면 더욱더 이해하기가 좋을 것 같아요.

 

그래도 직접 텐서 플로 라이트를 활용해서 만들고 싶은 이미지 추론, 감성분석 및 다양한 앱들을 만들 수 있도록 간단하게 따라 해볼 수 있는 예제가 있으니 따라 하시면 좋을 것 같습니다.







이번 읽은 책은 "텐서플로 라이트를 활용한 안드로이드 딥러닝"입니다.

 

 

 

대상독자

이 책은 이미 학습이 된 모델을 안드로이드에서 활용하는 방법을 가르쳐 주고 있습니다.

그렇기 때문에 선행학습으로 안드로이드 개발 경험이 있는 개발자라면 쉽게 따라갈 수 있을것 같습니다.

 

난이도

책 자체의 난이도는 그렇게 높지 않습니다.

안드로이드 개발 경험만 있으면 예제를 따라서 결과물을 쉽게 볼 수 있습니다.

쉽고 재미있게 따라하면서 가볍게 텐서플로의 맛을 본다는 생각으로 시작 하면 됩니다.

 

내용

저는 텐서플로에 대한 관심은 있지만 나름의 바쁘다는 핑계 같은 현실 때문에 뒤로 미뤄놓고 있었습니다.

그렇기 때문에 텐서플로에 대한 지식이 거의 전무하다 할 수 있습니다.

이 책을 통해 텐서플로가 어떻게 학습되어지는지, 그리고 어떻게 동작하는지를 어느정도 감을 익힐 수 있는 기회가 되었습니다.

 

책 전체의 내용의 1/3을 할당하여 안드로이드의 기초를 설명한것은 이해하기 힘들었습니다.

대상 독자를 안드로이드 개발 경험이 있는 개발자로 설정했다는것을 생각 해본다면 다른 예제를 하나 더 있었으면 하는 아쉬움이 있습니다.

 

  1. 1장
    안드로이드, 파이썬, 주피터등의 개발환경 구성에 대해 설명합니다.
  2. 2장, 3장
    안드로이드 프로젝트의 구성, UI에 대해 설명합니다.
  3. 4장, 5장
    텐서플로와 텐서플로 라이트의 차이점, 기본개념을 설명합니다.
  4. 6장, 7장
    텐서플로 모델을 적용하여 이미지 처리와 실시간 이미지 처리에 대해 설명합니다.
    이 책에서 가장 흥미 있었던 부분이 6장, 7장이었습니다.
  5. 8장, 9장
    모델의 인식률 개선에 대한 실습과 최적화에 대해 설명합니다.

 

그 외...

위의 대상독자 항목에서도 언급 했듯이 이 책의 내용을 잘 이해 하려면 파이썬과 안드로이드에 대한 선행학습이 필요합니다.

그리고 당연하겠지만 이 책 한권으로 텐서플로 라이트에 대한 모든것을 알 수 없습니다.

그 후에 남은 일은 이 책을 계기로 계속되는 학습이 아닐까 합니다.

 

이 책은 한빛미디어에서 제공받았습니다.

 

제가 사용하는 기존 텐서플로 모델을 텐서플로 라이트로 변환하고 싶어서 신청한 책입니다.  

 

더 정확하게 말하자면, 라즈베리파이에서 텐서플로로 만든 모델은 매우 느리고, 텐서플로 라이트 예제로 나오는 SSD 모델이 제가 원하는 성능이 나오지 않아서, 커스텀 모델을 만드는 것을 목표로 읽었습니다.

 

그런 기대로 책을 읽었기 때문에, 아쉽게도 이 책의 주 내용은 안드로이드용 이미지 분류기를 만드는 것으로,  많은 부분이 텐서플로 라이트보다는 안드로이드 자바에 집중하는 것이라, 코드를 실행하지는 않고 읽기만 했습니다.

(+컴퓨터 유저 디렉토리가 한글이라서, 안드로이드 스튜디오도 이상하게 설치되어서 포기한면이 있긴합니다.)

 

그렇기 때문에,  자바는 사용하지 않는 것을 떠나서 데이터 분석이 주인 문과인 저 같은 사람들(=텐서플로 라이트에만 관심을 갖고 사실 분)에게는  '아 그냥 텐서플로 문서 볼 걸'이라는 생각이 들지도 모르겠다는 느낌이 드는 책이었습니다.

 

그래도 문서를 보면서 시행착오를 겪으면서 고생하는 것보다는 텐서플로 라이트 부분만 읽고, 안드로이드 개발자 또는 자바 사용자에게 이 책을 선물로 주는 것도 나쁘지 않을 것이라는 생각도 듭니다...... [

 

이에 더해, 딥러닝을 활용 예시로는 항상 등장하는 간단한 분류 모델이 아니라 좀 더 실용적인 Object Detection 모델 등으로 앱을 만들었다면 더욱 괜찮지 않았을 까라는 생각도 드네요.

 

그럼에도 저는 꽤나 도움이 많이 되었습니다.

 

 제 직장이 라즈베리파이를 많이 사용해서, 리눅스, 비동기 등등 컴퓨터 공학 등의 지식이 사용하게 되었는 데, 그 때 처음이라 당했던 것들[ex)카메라 FPS 문제]을 개고생하면서, 얻었던 교훈들을 반추하는 느낌과 프로그래머들은 어떤 식으로 앱에 딥러닝 모델을 넣는 지 알 수 있는 기회였습니다. 

 

 

이 책은 텐서플로 라이트를 활용하여 안드로이드 기반의 딥러닝 어플리케이션 개발에 대해 소개한다. 

안드로이드 앱 개발자이면서 인공지능 어플리케이션을 개발하고 싶다면 , 이 책을 일독하기 바란다. 

 

첫 Part에서는 전반적으로 안드로이드 앱의 개발에 대해 언급한다. 

 

두번째 Part에서는  스마트폰에서 인공지능을 구현가능케 하는  On-Device AI 툴의 하나인 텐서 플로 라이트를 활용하여 

딥러닝 모델을 개발하는 방법에 대해 소개한다. 

어플리케이션 필요한 텐서 플로기반의  딥러닝 모델을 직접개발이나  전이학습및  사전학습 모델을 통해  모델 개발을 완료하였다면, 스마트폰에서 이 모델을 활용하기 위해서는 반드시  텐서플로 라이트 모델로 변환과정을 거쳐야 한다.

 

텐서플로 딥러닝 모델을   텐서플로 라이트 모델로 변환하는 방법과 사전 학습모델의 저장소인 텐서플로 허브에 접속, 텐서플로 라이트 사전 학습 모델을 검색하고 다운로드하는 방법을  소개한다. 

 

 

세번째 Part에서는 안드로이드 앱에서 텐서플로 라이트 모델을 활용하는 방법에 대해 소개한다.  

텐서플로 라이트 딥러닝 어플리케이션 예제로서  MNIST 숫자 분류 앱과 이미지 분류 앱  개발 과정을 다룬다. 

Camera2 API를 사용하여 카메라에서 실시간으로 입력 영상을 통해 객체를 탐지하고 객체를 추론하는 앱 개발 과정을 다룬다. 

 

 

네번째 Part에서는 텐서플로 라이트 모델의 성능 개선과 최적화 방법을 소개한다.   

모델의 정확도 손실을 최소화하면서 모델의 크기와 추론 소요 시간을 단축하는 양자화 기법을 배울 수 있다.  

 

 

목차

1장. 안드로이드와 텐서플로 라이트 입문

1.1 안드로이드와 텐서플로 라이트를 이용한 앱 개발 워크플로

1.2 안드로이드 입문

1.3 안드로이드 개발 환경 구축

1.4 텐서플로 라이트 입문

1.5 텐서플로 라이트 개발 환경 구축

1.6 마무리

 

2장. 처음 만드는 안드로이드 앱

2.1 안드로이드 프로젝트 생성

2.2 안드로이드 프로젝트의 구조 및 기본 코드 분석

2.3 안드로이드 개발 언어

2.4 Gradle

2.5 안드로이드 기기 테스트

2.6 마무리

 

3장. 안드로이드 앱 UI 구성

3.1 레이아웃

3.2 위젯

3.3 액티비티

3.4 액티비티와 UI 연결

3.5 외부 컴포넌트 불러오기

3.6 마무리

 

4장. 텐서플로 라이트 모델 개발

4.1 텐서플로 라이트 모델 개발 워크플로

4.2 모델 선택

4.3 모델 개발

4.4 모델 변환

4.5 기기 배포

4.6 마무리

 

5장. 텐서플로 라이트 모델을 이용한 안드로이드 앱 개발

5.1 텐서플로 라이트 모델을 이용한 앱 개발 프로세스

5.2 입력 데이터 생성 앱 개발

5.3 TFLite 모델 로드

5.4 입력 이미지 전처리

5.5 추론 및 결과 해석

5.6 마무리

 

6장. 프레임워크를 활용한 이미지 분류 앱 개발

6.1 ImageNet 데이터

6.2 텐서플로 라이트 서포트 라이브러리

6.3 기기에 저장된 이미지 처리

6.4 카메라 이미지 처리

6.5 마무리

 

7장. 실시간 이미지 처리

7.1 Camera2 API의 개요

7.2 실시간 이미지 처리 앱의 개요

7.3 레이아웃 개발

7.4 카메라 사용 로직 구현

7.5 기기에서의 추론

7.6 마무리

 

8장. 텐서플로 라이트 모델의 성능 개선

8.1 추론 성능 측정

8.2 추론 성능 개선

8.3 마무리

 

9장. 텐서플로 라이트 모델 최적화

9.1 최적화의 개요

9.2 학습 후 양자화

9.3 양자화 인식 학습

9.4 마무리

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 

 

KakaoTalk_20210822_134331081.jpg

 

KakaoTalk_20210822_134344957.jpg

 

 

이 책은 텐서플로 라이트를 이용하여 인공지능 딥러닝 모델을 안드로이드 기기에 배포하는 것까지를 다루고 있습니다. 이 과정에서 딥러닝 모델에 대해 소개해 주며, 안드로이드 컴포넌트에는 어떤 것이 있는지 UI는 어떻게 구성할 것인지 코드를 보여주면 해당 코드에 대한 상세한 설명으로 알려 줍니다. 또한 여기에 그치지 않고 실제 서비스 가능하도록 딥러닝 모델은 어떻게 최적화 시켜야 하며, 텐서플로 라이트 모델을 배포할 때는 어떤 최적화들을 이용할 수 있는지 자세히 실험을 하며 해당 결과를 제시해 줍니다.

1210822.jpg

 

 

딥러닝에 관심 있는 분들도 계실 겁니다.

 

안드로이드에 딥러닝을 활용하는 책을 소개해 드리려 합니다.

 

책 제목은 ‘텐서플로 라이트를 활용한 안드로이드 딥러닝’ 입니다.

 

이 책을 찾는 분들 텐서플로나 안드로이드 앱 개발에 관심이 있기 때문에 찾으셨을 거로 생각됩니다.

 

입문자도 보면 쉽게 할 수 있도록 풀어낸 책입니다.

 

이 책을 보면 텐서플로를 활용해 간단한 앱을 개발해 볼 수 있을 겁니다.

 

모델을 어떻게 개발하고 안드로이드에 적용할 수 있는지 배울 수 있습니다.

 

딥러닝 모델을 활용한 안드로이드 앱을 개발 할 수 있도록 도와주는 책입니다.

 

 

2210822.jpg

 

 

◆ 모델 개발

텐서플로 라이트 모델 개발은 어떻게 진행될까요?

모델 개발은 모델 선택, 모델변환, 기기 배포, 모델 최적화 순으로 순환됩니다.

 

모델은 직접 개발할 수도 있고 사전학습모델을 이용할 수 있습니다.

 

사전학습모델은 텐서플로에서 제공하는 모델로 초보자도 쉽게 사용 가능합니다.

 

텐서플로 라이트는 설계나 학습을 하지 않고도 모델을 앱에 적용을 할 수 있기 때문입니다.

 

딥러닝 모델을 어디에 적용시키는지 궁금하실 텐데요.

MNIST 예제, 이미지 분류 앱, 이미지 실시간 처리 하는 예제도 있습니다.

 

예제를 통해 텐서플로 라이트를 이해하는 데 도움 되실 겁니다.

 

 

3210822.jpg

 

 

◆ 환경 구축

환경을 구축해야 개발을 시작할 수 있습니다.

 

텐서플로를 안드로이드에 돌리기 위한 환경을 구성해야 하는데요.

파이썬, 텐서플로, 안드로이드 스튜디오가 설치되어 있어야 합니다.

 

텐서플로는 CPU 버전과 GPU 버전이 있습니다.

 

본인의 PC 사양에 맞는 버전을 설치하시면 됩니다.

 

개발 환경 구축부터 안드로이드 프로젝트 구조와 구성요소도 알려줍니다.

 

앱의 UI를 구성하는 레이아웃과 위젯, 컴포넌트 사용법도 잘 정리되어 있습니다.

 

딥러닝 모델을 적용하기 전에 안드로이드 개발을 좀 숙지하시면 다음 진도에 도움 될 것입니다.

 

 

4210822.jpg

 

 

끝으로 딥러닝을 전문적으로 하신다면 모델을 직접 개발하실 겁니다.

 

모델을 개발하는데 컴퓨터 성능의 역할이 큽니다.

 

텐서플로 라이트는 다양한 학습된 모델을 제공해주는데요.

이미지 분류, 객체 탐지, 이미지 분할, 자세 추정 등의 다양한 모델이 있습니다.

 

스마트폰은 pc에 비해 성능이 제한됩니다.

 

제한된 환경에서 최고의 성능을 내려면 모델을 최적화도 해야 합니다.

 

딥러닝 모델로 앱을 개발하며 최적화를 해보고 싶은 분들에게 이 책을 추천합니다.

 

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

TFlite.jpg

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이 책은 안드로이드 기기에서 딥러닝 모델을 동작하고 이를 활용한 앱을 개발하는 방법을 서술한 책 입니다.

 

안드로이드 앱 개발은 저에게는 생소했는데요. 모바일 기기의 의존도가 높아지면서

이를 활용한 머신러닝 앱 개발은 항상 흥미가 있었던 차에 이런 좋은 책이 출시되어 기뻤습니다.

 

안드로이드 앱 개발의 설명과 TFLite를 이용한 모델 학습, 추론, 최적화, 실시간 처리 등으로

워크플로의 모두를 아우릅니다. 튜토리얼로서 훌륭하게도 MNIST 데이터셋과 ImageNet 데이터셋을 

기반하여 가급적 실용적으로 응용할 수 있게끔 구성한 저자의 배려도 돋보입니다.

 

카메라를 이용한 컴퓨터 비전 기반의 앱을 기준으로 하고있지만

책의 내용을 기반으로 음성 인식과 자연어처리 앱을 만들수 있겠다는 아이디어도 생깁니다.

 

머신러닝 기반의 모바일 앱 아이디어가 있으신 분들께 강력하게 추천합니다!

 

한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

0. 머신러닝, 그 공허함

머신러닝 혹은 딥러닝을 공부하고 나면 언제나 아쉬움이 가득하다. 예를 들어, 2018년에 박해선님이 번역하신 <<핸즈온 머신러닝>>을 친구들과 스터디를 하고 나서 느꼈던 감정은 “이제 뭘 해야 하나?”였다. 구글에서 몇가지 글을 찾아서 Flask와 연계해서 간단한 이미지 추론 예제를 진행했지만 내가 생각했던 것(물체 인식, 자율 주행?)을 진행하려고 하니 생각만큼 쉽지 않았다. 특히, 몇 백메가에 달하는 모델을 어떻게 처리해야 할지 몰라서 난감했던 생각이 주마등처럼 스친다.

머신러닝을 아무리 열심히 배워도 ‘모델’ 정도 만들고, 그걸 활용할 수 있는 방법이 적당하지 않았다. 뭔가 해보고 싶어서 ML Kit과 Core ML 등을 찾아서 공부해보려고 했지만 쉽지 않았다. 왜냐하면 대부분 모델을 생성하는 부분을 다루고 있지 않아서 제공하는 모델을 사용하는 것은 문제가 없지만 막상 내가 모델을 만들어서 진행하면 실행 결과가 형편없었다. 2021년이 되어서야 Tensorflow Lite를 활용해서 다양한 예제를 접할 수 있었다.

“2~3권을 책을 참고해서 머신러닝 서비스를 학습할 수 있다면, 무슨 걱정이 있을까?”

Python을 사용해서 모델을 만들고, 그 모델을 사용해서 웹이나 앱을 서비스 하기 위해선 Android, iOS, Flask, Django 등과 같은 책을 참고해야 한다. 최소한 2~3권 정도 책을 참고해서 학습을 진행하게 되는데, 사실 그렇게 학습을 진행할 수 있는 정도면 무슨 걱정이 있겠는가?

1. 한 권으로 시작하자!

<<텐서플로 라이트를 활용한 안드로이드 딥러닝>>은 한 권으로 모델과 Android 앱을 개발하는 모든 과정을 실습 해 볼 수 있다. Python으로 모델을 생성하고, 생성된 모델을 TFLite로 변경해서 Android 앱에 저장하고 저장된 모델을 사용해서 앱을 개발한다. 이 모든 과정을 한권으로 해결할 수 있다. 2~3권을 상호참조하면서 진행하는 것에 비해서 한 권으로 진행하기 떄문에 학습을 일관된 흐름으로 진행할 수 있다.

파이썬 예제

책의 흐름은 단순한 예제인 MNIST로 시작한다. MNIST 예제는 Tensorflow에 포함된 예제라서 누구든 쉽게 접근할 수 있다. 그래서 Python 개발 환경과 코드를 가볍게 연습할 수 있다. 본인이 직접 만든 MNIST 모델을 사용해서 숫자를 인식하는 예제를 만들어보는 것이 첫번째 예제다. 이후 객체 인식 연구에 사용되는 ImageNet을 사용해서 만들어 놓은 예제를 개선하고, 카메라를 사용해서 실시간으로 객체를 추론하는 기능을 추가한다. 마지막으로 성능을 개선하고 끝난다. 단 한권으로 작동하는 Android 앱을 만들어볼 수 있다는 점은 머신러닝을 활용해서 서비스를 만들거나 앱을 만드는 분들에게 엄청나게 큰 장점이라 할 수 있다.

단 한권으로 이 모든 과정을 일관되게 진행할 수 있다!

이 책의 장점은 크게 두 가지로 꼽을 수 있다. 첫째는 자신이 모델을 만들어서 사용하는 것 뿐만 아니라 기존의 공개된 모델을 사용하는 방법을 소개한다는 점이다. 단순하게 MNIST를 가지고 성능 개선까지 진행해도 무리가 없을텐데, 공개된 머신러닝 모델을 활용하는 방법을 소개하고 있어서 머신러닝을 사용해서 서비스를 구성하는 분들에게 많은 도움이 된다. 둘째는 군더더기 없는 설명이다. Tensorflow와 Android 모두를 설명하기 때문에 자칫하면 분량이 늘어날 수 있음에도 불구하고 책을 쓴 저자분이 꼭 필요한 부분만 선별해서 설명하고 있고, 중요한 부분은 2~3번 정도 반복해서 설명하기 때문에 책을 진행하면서 겪게되는 어려움은 없다. 무엇보다 해당 교재에 있는 예제는 별다른 수정 없이 잘 작동(2021.08.19년 기준)하기 때문에 이론을 포기하고 실습만 진행한다 하더라도 많은 것을 배울 수 있다.

2. 아쉬움은?

이 책을 읽으면서 가장 아쉬웠던 부분은 다른 점은 Kotiln이 아니라 Java로 Android 코드가 구성되어 있다는 점이다.

책을 읽는 동안 Java로 구성되어 있어도 별다른 문제 없이 잘 작동하기 때문에 큰 아쉬움이 없었다. 하지만 Google이 Kotlin을 Android의 기본 언어로 지원하고 있기 때문에 이왕이면 Kotlin으로 진행하면 향후에도 책을 읽으면서 작성한 코드를 활용할 수 있으면 좋았을텐데 싶었다.

아쉽게도 Java

그래서 책을 다 읽고, 1~5장까지 진행한 내용은 Kotlin으로 변경해서 github 저장소에 올려두었다. 6장 이후는 현재 코드를 작성하고 있다. 다음에 기회가 된다면 Kotlin으로 진행되는 교재로 개정되길 희망한다. 그리고 (수요가 많이 없을 수 있지만) ML Core 기반의 iOS도 자매품으로 함께 출간되길 기원해본다.

3. 스터디에 좋다!

즐거움이 많았던 책이다. 실습 코드 걱정 없이 즐겁게 읽고, 재미있게 코딩할 수 있는 기회였다. 머신러닝을 가지고 앱이나 서비스를 기획하고 있다면 친구들과 이 책으로 시작해보자. 주변에 머신러닝을 공부하는 분들이 있다면, 이 교재를 가지고 객체 인식, 세그먼테이션 등과 같은 것으로 개선할 수 있으니 스터디에 도전해보면 좋겠다. 책의 분량 때문에 생략된 부분은 다른 교재를 참고해서 진행해보면 좋다. 그래서 머신러닝을 활용해서 서비스를 구성하려는 초급자나 팀에게 추천한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

이 책에 나온 실습을 제대로 하려면 자바와 파이썬에 대한 지식이 어느정도 필요합니다. 둘 중에 하나만 갖추고 있다면 다른 언어에 대한 지식을 가진 동료와 함께 이 책을 함께 보면서 실습하는 것이 좋습니다.  

 

 

 

개인적으로는 안드로이드 개발자가 읽기에 더 좋은 책이라고 느껴집니다. 이 책에서 사용하는 텐서플로우 코드는 간단하기에 기존 안드로이드 소스에 이를 더하기가 훨씬 수월한 것으로 보입니다. 그래도 인공지능에 대한 지식이 아예 없을 경우, ai 엔지니어에게 물어보면서 실습을 하거나 함께 보는 게 더 낫긴합니다. 

 

그렇다고 파이썬과 자바의 높은 수준을 요구하는 코드들은 아닙니다. 기본기만 갖춰져 있다면, 이해하고 실습하는데 전혀 어렵지 않습니다. 이 책을 통해서 On-Device 에 ai 를 접목하는 흐름을 어느 정도 파악할 수 있었습니다. 그리고 이 책에서는 좋은 모델이 있다는 전제 하에서 진행하기에 어떤 면에서는 실무에 좀 더 적용하기 좋은 책이라고 느껴집니다. 카메라를 이용하여 실시간 이미지 처리를 하는 딥러닝 모델을 모바일에서 진행하려고 한다면 이 책이 정말 큰 도움이 될 것이다. 

 

이 책의 실습을 통해 좀 더 추가적인 학습과 관련 오픈소스를 연구한다면 좋은 개인 토이 프로젝트를 만들 수 있을 것 같습니다. 

 

정리하자면, 잘 만들어진 딥러닝 모델을 모바일에 배포하는 것에 관심이 있는 이들에게 권해주고 싶은 책입니다.

 

 

 


 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

temp2.png.jpg

 

 

temp1.png

 

이전부터 텐서플로 라이트 프로젝트에 관심이 있었는데 알맞는 타이밍에 

본 책을 보게 되었다. (그야말로 지금의 나를 위해 나온 듯한 한 줄기 빛 같은 느낌...)

 

올해, OCR관련 프로젝트를 텐서플로로 진행을 시도하였으나 모바일에 구겨넣는 부분에서 원할하지 않았었다.

그 배경에는 네이티브 모바일개발과 웹 개발을 주로 해왔는데...인터넷에 떠도는 정돈되지 않은 지식을 바탕으로 급하게 기술을 습득한면이 당연히 가장 큰 이유가 되었으리라....

 

애초에 나의 포커스가 텐서플로라이트에 있어서,

안드로이드 쪽에 대한 내용은 기대도 하지 않았는데,

생각보다 꽤 깊이가 있으면서도 라이트하게(또는 적절하게) 잘 정리되어 있었다.

물론 전문적으로 안드로이드 앱을 만들기 위한 작업들,

UI나 애니메이션, 통신 등 이런 부분을 상세하지는 않으니해당 지식이 필요한 사람은 다른책도 곁들이기 바란다

 

메인 주제로 돌아와, 텐서플로를 통한 개발의 전반적인 흐름과 개념 등도 상세하게 설명되어 있어서

기존에 내 머리속에 난잡하게 들어있던 지식들이 깔끔하게 정리된 느낌이다.

또한 모바일에서 진행하는 프로젝트에서 가장 중요한것 중 하나가 퍼포먼스를 위한 코딩인데

해당 부분이 매우 상세하게 고려해야하는 포인트 및 방법등이 기술되어 있다.

 

평소에도 한빛미디어 책은 개발자인 나에게 있어, 정말 중요한 지식의 소스이지만

이 책은 적어도 올해 실질적으로 나에겐 최고로 고마운 책으로 뽑을 수 있을 것 같다.



 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

책은 총 9개의 장으로 구성되어 있다.

안드로이드 설치부터 하게되니 초보자 입장에선 하나씩 따라가면 되니 좋다.

 

 

pc에서 딥러닝, 이미지 구분 정도는 해봤지만 모바일로는 어떻게 하나 싶었다.

최근에 다이어트 카메라 AI 라는 것을 써보는데 어떤 것은 정확도가 있지만 어떤 것은 정확도가 현저하게 떨어져서 아니 이건 뭐 이래? 했던 적이 있는데 이 책에서 이런 과정을 거쳐서 음식을 파악하는 거구나, 를 알 수 있었다.

 

 



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

0. 도서 정보

 - 도서명 : 텐서플로 라이트를 활용한 안드로이드 딥러닝

 - 저자 : 임태규

 - 링크

 

 

1. 후기

 1) 친절함

 

 

  - 개인적으로 기술서를 좀 보유하고 있는데(최소 50권) 해당 도서는 굉장히 삽화나 사진이 많은 축에 속한다.

  - 해당 도서가 안드로이드를 할 줄 아는 사람에게는 딥러닝을 알려주고, 딥러닝을 할 줄 아는 사람에게는 안드로이드 앱을 만드는 방법을 알려줘야 하기에 개발환경 셋팅 설명(아나콘다 설치, 안드로이드 스튜디오 설치 등등...)만 전체 368페이지 중 61페이지에 달한다.

 2) 난이도

  - 기본적으로 java 와 python 은 기본적으로 알고 있어야 한다. 안드로이드 앱은 코틀린으로 만들수도 있지만 해당 도서에서는 java 로 설명을 하기에 java 를 배경지식으로 알고 있어야 한다.

  - 딥러닝만을 배우기 위해 이 책을 선택하는 것에는 무리가 있다. 목차에서 볼 수 있듯이 모델 개발에 대한 비중이 크지 않다.(MNIST 예제 정도) 따라서, '나는 아무것도 모르지만 딥러닝을 이용한 안드로이드 앱을 만들고 싶어!!!' 하시는 분들은 이 책 하나 만을 본다면 이 책의 예제를 벗어난 앱은 만들기 힘들수도 있다.

 

 

 3) 구성

  - 딥러닝 파트와 안드로이드 파트의 비율은(코드 상으로) 1:9 비율 정도 되는 것으로 보인다. 아무래도 안드로이드에 딥러닝을 올리는 책이기에 딥러닝에 대한 자세한 설명 보다는 이럴 경우 어떻게 올리나에 대한 것이 주된 설명이다.

 4) 예제 앱

  (1) 손글씨 분류

 

 

  (2) 이미지 분류

 

 



[주요 내용]

- 텐서플로 라이트 모델 개발 워크플로

- 모델 개발후 안드로이드 프로젝트 배포

- 딥러닝 모델을 활용한 안드로이드앱 개발

- 프레임워크를 통한 이미지 추출/분석 앱 개발

- 카메라 입력데이터 실시간 처리 앱 개발

- 추론 성능 측정/성능향상/모델최적화



[대상독자]

-모바일 딥러닝에 가장빠르게 입문하고 싶은 독자

-딥러닝 모델 개발 경험이 있는 AI 엔지니어

-텐서플로 라이트를 도입 하고자 하는 안드로이드 앱 개발자


[서평]

이 책의 구성


이 책은 총 9개 장으로 구성되어 있습니다. 먼저 안드로이드 앱을 개발하는 방법과 딥러닝 모델을 개발하는 방법을 살펴본 다음 딥러닝 모델을 활용한 안드로이드 앱을 개발하는 방법을 설명합니다. 그리고 모델의 추론 성능을 측정하고 이를 최적화하는 방법도 다룹니다.


1장: 개요 및 개발 환경 구축

안드로이드와 텐서플로 라이트 프레임워크를 소개하고, 개발 환경을 구축합니다.


2장, 3장: 안드로이드 앱 개발

2장에서는 안드로이드 프로젝트를 생성하고 프로젝트 구조와 구성 요소를 알아봅니다. 3장에서는 안드로이드 앱의 UI를 구성할 수 있도록 레이아웃과 위젯에 대해 살펴보고, 외부 컴포넌트를 사용하는 방법을 알아봅니다.


4장: 딥러닝 모델 개발

텐서플로 라이트 모델 개발 워크플로를 알아보고, 각 프로세스에 따라 모델을 개발하여 안드로이드 프로젝트에 배포합니다.


5장, 6장, 7장: 딥러닝 모델을 이용한 안드로이드 앱 개발

5장에서는 4장에서 개발한 딥러닝 모델을 활용하여 안드로이드 앱을 개발합니다. 앱에서 모델에 입력할 데이터를 만들고, 이를 모델에 입력하여 추론하고 그 결과를 표현하는 방법을 알아봅니다. 6장에서는 프레임워크를 이용하여 다양한 방법으로 기기에서 이미지를 얻고 이를 분석하는 앱을 개발합니다. 7장에서는 기기의 카메라에 입력되는 데이터를 실시간으로 처리하는 앱을 개발합니다. 이미지 크기 최적화와 비동기 처리 등 실시간 데이터 처리를 위한 기법을 알아봅니다.


8장, 9장: 성능 향상 및 최적화

8장에서는 기기에서 모델의 추론 성능을 측정하고, 이를 향상시키는 방법을 알아봅니다. 9장에서는 제한된 환경에서 최고의 성능을 낼 수 있도록 모델을 최적화하는 방법을 알아봅니다.


안드로이드 개발자로 딥러닝을 모바일 앱에 적용할 수 있는가장 쉬운 책이 아닌가 생각합니다. 입문자의 눈높이에서 딥러닝 모델 개발 부터 최적화 배포 까지 실무에 꼭 필요한 부분에 대해서 상세하게 설명 하고 있어 딥러닝 앱 개발할때 많은 도움이 될것이라 생각합니다.

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

IMG_0983.png

 

저희 회사는 모바일 앱을 이용해서 의료정보를 제공하는 사업을 하고 있습니다. 측정한 데이터을 이용한 AI 서비스도 제공을 하고 있습니다. 

 

기존에는 AI 서버를 이용해서 서비스를 제공하고 있었지만, 아무래도 민감정보가 있다 보니, 서버로 자신의 데이터가 전송되는 것을 바라지 않는 사용자가 있을 수 있고, 또 제공하는 서비스의 수준과 요금 체계를 다양하게 나누기 위해 모바일 앱에서 1차적으로 AI 서비스를 제공하는 것으로 기획을 하고 있습니다.  

 

텐서플로우 라이트를 이용해서 기존의 모델을 변경해서 개발이 가능하다는 정도는 알고 있었고, 또 코세라나 유다시티 같은 온라인 교육 사이트에서도 모바일에서 AI 서비스를 개발하는 내용은 다루고 있었습니다.

 

그래도, 한편으로는 좀 쉽고 체계적으로 접근할 수 있는 순수 국내 서적이 있었으면 좋겠다라는 생각을 하고 있단 찰라에 이 책의 출간 소식을 접하게 되어 상당히 반가웠습니다.

 

이 책은 안드로이드 앱 개발을 기준으로 하고 있어서, 처음에는 대략적인 안드로이드 앱 개발 방법을 먼저 설명을 하고 있습니다. 그리고 나서 텐서플로우 라이트가 무엇인지 설명을 한후  텐서플로우 라이트 모델과 프레임워크를 활용해서 간단한 샘플 프로그램을 제작합니다.

 

그리고 모바일 앱 개발에서 중요한 성능 개선과 최적화 방법을 설명하면서 책을 마무리 하고 있습니다.

 

어떤 낯선 기술로 개발을 시작할 때 제일 쉬운 방법은 간단한 샘플 프로그램을 베이스로 조금씩 확장해 나가면서 본인이 원하는 서비스를 점차 갖춰 나가는 방법이 효과적인 방법일 것입니다.

 

그런 측면에서 이 책은 모바앨 앱에서의 딥러닝 서비스를 개발하는데 있어서 베이스를 제공해주는 책이라고 생각이 됩니다. 그리고 단순히 스킬만을 설명하는 것이 아니라, 저자의 경험이 담긴 성능 개선과 최적화 방법을 설명함으로써 한단계 수준 높은 서비스를 제공하는데 도움이 될 것이라 생각합니다.

 

다음 개정판에서는 비전 뿐만 아니라 앞으로 더 다양한 도메인에서 활용할 수 있는 샘플이 있었으면 좋겠고, 또 안드로이드 앱 뿐만 아니라 iOS 앱 개발에 있어서도 이런 책이 출간 되었으면 좋겠습니다.

 

 

   "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

텐서플로 라이트를 활용한 안드로이드 딥러닝

 

이제 모바일에도 본격적으로 AI가 상륙한다!!

 

 

1.jpg

 

2.jpg

 

3.jpg

 

4.jpg

 

5.jpg

 

 

 

이 책은 안드로이드 앱에서 딥러닝 모델을 활용하는 방법을 다룹니다.

 

이 책을 읽으려면 자바와 파이썬 언어에 대한 기본적인 지식이 필요합니다.

 

자바와 파이썬 언어에 익숙하지 않은 독자는 사전 지식을 갖춘 뒤 이 책을 읽기 바랍니다.

 

 

앱 개발 경험이 있는 안드로이드 개발자라면 이 책을 통해

 

스스로 만든 앱에 딥러닝 모델을 배포하여 활용하는 방법을 익힐 수 있습니다.

 

또한 딥러닝 모델 개발 경험이 있는 AI 엔지니어라면

 

직접 개발한 모델을 안드로이드 환경에서 서비스하는 방법을 배울 수 있습니다.

 

텐서플로 라이트를 활용한 안드로이드 딥러닝 中

 

 

요즘 앱 개발에 관심을 조금 멀리하였더니 어느새 텐서플로 적용 서적까지 나왔네요 ^^

 

 

이제 앱, 웹에도 인공지능 적용 시대!

 

같이 한번 시작해볼까요?

 

참고로 이 서적은 자바/파이썬 기본 이상의 지식과 안드로이드 개발 경험이

 

필수라고 생각하지만, 쉽게 따라 할 수 있게 구성되어 있습니다.

 

다만 속도가 많이 느릴 수 있으니 참고 부탁드립니다.

 

 

 

 

DAY 1, 2, 3

 

안드로이드 텐서플로 라이트 입문/개발 기초

 

파트 1 ~ 5

 

 

앱 개발 + 인공지능

 

 

6.jpg

 

7.jpg

 

8.jpg

 

9.jpg

 

10.jpg

 

 

 

 

드디어 안드로이드와 인공지능의 만남! 기다렸습니다 :) 리뷰 시작해보겠습니다~~~

 

 

일단, 책장을 넘기자마자 알록달록 이쁘게 꾸며진 디자인에 미소를 짓게 되었습니다. "아니, 너무 이쁘잖아?"

 

처음 보시는 분들은 조금 어렵고 생소한 내용이 많겠지만, 안드로이드에 관심이 많은 저는 더 작고, 더 가벼운 모바일, 에지 기기용 머신러닝 기술이 들어간 앱을 드디어 개발 가능하겠구나!라는 생각에 즐겁게 리뷰할 수 있었습니다.

 

책 구성도 훌륭하고 무엇보다 궁금한 곳을 시원하게 긁어주는 안드로이드용 인공지능 시작의 좋은 길잡이가 되어주는 서적이 아닐까 싶습니다.

 

 

 

1장은 안드로이드와 텐서플로 앱 개발의 워크플로우와 환경 구축에 대하여 진행합니다, 천천히 읽고 따라 하시면 무리 없는 챕터이나 설치에 시간이 좀 소요될 것입니다. 참고 부탁드립니다!

 

 

2장부터 본격적으로 소스코드 작성 및 개발에 대한 기초 지식에 대하여 나옵니다. 언어는 자바를 위주로 설명하고 있고 안드로이드를 자바로 익혀두면 코틀린 역시 금방 익힐 수 있으니, 자바를 기준으로 활용해보시길 바랍니다. 물론 자바가 쉬운 언어는 아니지만요 ^^;;

 

 

안드로이드 빌드 프로세스, 실제 기기로 테스팅하는 방법까지 마무리하고 나면 2장도 종료됩니다.

 

2장부터 집중하시면 좋습니다. 아직까지 큰 무리는 없을 것 같네요!

 

 

3장부터는 레이아웃 배치, 외부 컴포넌트 불러오는 학습을 진행합니다. UI 구성은 앱 구성에서 정말 중요한 부분이죠.

 

안드로이드 레이아웃, 위젯, 액티비티는 가장 기초적인 지식이자 필수 지식입니다. 이벤트를 받는 방법도 나오니 꼭 복붙하지 마시고 소스코드를 성실하게 작성해보세요! 신기한 경험이 펼쳐집니다 :)

 

 

4~5장부터는 저도 흥미롭게 진행할 수 있었습니다. 드디어 텐서플로 라이트 모델 개발 워크플로우부터 기기 배포까지 실습을 진행하는 곳입니다 ^^

 

 

딥러닝 모델을 개발하고 이를 텐서플로 라이트 모델로 변환하는 방법은 생각보다 쉽지 않았습니다, 많이 접한 툴과 언어지만 계속 봐도 어려운 분야는 맞는 것 같네요 ^^ 머신러닝, 딥러닝 분야는 정말 많은 공부를 해야 될 것 같습니다. 열공 시작 챕터입니다!

 

 

5장까지 간단한 텐서플로 라이트 모델을 이용하여 간단한 앱 개발 프로세스를 진행하고 나면, 조금 진이 빠질 것입니다.

 

아, 생각보다 난이도가 좀 있죠?ㅎㅎ 생성한 이미지를 모델의 입력 텐서 형태에 맞게 전처리하고, 이를 모델에 입력하여 추론 결과를 받아 해석하는 방법까지 다룹니다. 어렵습니다~~ 그래도 재미있습니다! 이제 앱을 만들어보러 고고싱 해볼까요?

 

 

 

 

DAY 4, 5, 6

 

데이터, 라이브러리의 활용

 

파트 6 ~ 7

 

데이터와 로직 그리고 실시간 처리

 

 

11.jpg

 

12.jpg

 

 

6장부터는 실제로 갤러리에 저장된 이미지와 직접 촬영한 이미지를 활용하는 방법과 실시간으로 추론 결과를 확인하는 방법에 대하여 다룹니다. ImageNet 데이터를 사용하고, 모델 활용 로직을 더 효율적으로 구현하기 위해 텐서플로 라이트 서포트 라이브러리를 적용합니다.

 

안드로이드 기기에 탑재된 다양한 프레임워크를 이용하여 이미지를 얻고 이를 딥러닝 모델로 처리하는 실습을 진행합니다.

 

 

안드로이드 개발도 쉽지 않은데 인공지능까지 얹어서 진행하려고 하니! 생각보다 진땀이군요 ^^;;

 

 

실시간으로 이미지를 처리하는 챕터에선 Camera2 API의 처리 프로세스를 파악하고 API를 이용하여 실시간으로 카메라의 이미지를 받아오는 방법에 대하여 다룹니다.

 

 

또한 모델의 입력 이미지 크기에 따라 카메라의 이미지 크기를 최적화하고, 핸들러스레드를 이용한 비동기 처리를 적용하여 실시간 이미지 처리를 구현합니다.

 

 

어려운 단어도 많고 로직도 쉽지 않아 저 포함 많은 초보자분들이 많은 애를 먹을 것 같은 6, 7챕터 ^^

 

아무래도 인공지능 영역이다 보니, 천천히 진행해보려고 합니다~~!! Opencv 기술과는 또 다른 매력이 있군요!

 

 

 

 

DAY 7, 8, 9

 

모델의 추론 성능을 측정하고 최적화까지

 

파트 8 ~ 9

 

성능 개선과 최적화

 

 

 

 

 

13.jpg

 

14.jpg

 

 

 

 

 

 

8장에서는 안드로이드 기기에서 모델의 추론 성능을 개선하는 방법을, 9장에서는 텐서플로 라이트 모델을 최적화하는 방법을 알아보는 챕터입니다.

 

 

추론 성능을 측정하는 코드를 구현하고 CPU의 멀티 스레드, GPU 위임, NNAPI 위임을 각각 구현하여 성능을 비교합니다.

 

구현이 1차 목표라면 아무래도 성능을 측정하고 개선하는 것은 2차 목표겠죠? 어려워도 꼭 정독하고 코드를 작성하고 넘어가 봅시다 ^^

 

 

이후 텐서플로 라이트 모델을 최적화하는 방법을 살펴보는 마지막 챕터만 남았는데, 역시 개념도 어렵고 코드도 어렵습니다!

 

학습 후 양자화 기법으로 양자화된 모델의 성능을 비교해보고, 양자화 인식 학습을 통해 양자화된 모델의 정확도를 높이는 방법도 다룹니다.

 

 

이제 적절한 양자화 기법을 적용하여 리소스가 제한된 안드로이드 기기에서 모델의 성능을 극대화할 수 있는 앱을 만들어 볼 차례입니다!

 

 

 

 

 

DAY 10

 

후기

 

이제는 On-Device AI!

 

 

재미있는 모바일 딥러닝

 

 

15.jpg

 

 

 

 

후기 : 유저가 자주 이용하는 모바일, 웹에도 딥러닝이 필수인 시대

 

 

 

 

안드로이드는 서적도 많이 보고 앱도 어느 정도 만들어 본 경험이 있어 프로세스를 다시 복습하는 데 오랜 시간이 걸리지 않았습니다.

 

그리고 요즘 케라스, 텐서플로우, 파이 토치 등 딥러닝 라이브러리를 활용하여 공부와 프로젝트를 진행하고 있어 재미있는 서적이 나왔다고 생각했습니다.

 

 

그리고 역시! 예상대로!

 

 

텐서플로 라이트라는 또 다른 모바일 딥러닝 라이브러리가 제 머리와 가슴을 뒤흔들었습니다.

 

 

모델 선택부터, 개발, 변환, 배포까지 프로세스에 대하여 정확히 알려주며 어렵지 않게 앱 만드는 방법을 소개하고 있고

 

이미지 분류, 실시간 처리 그리고 마지막에는 성능 개선과 모델 최적화까지! 완벽한 프로세스로

 

 

독자가 충분히 이해할 수 있게 설명하고 있습니다.

 

 

후배한테도 재미있다고 극찬한 서적입니다.

 

 

모바일 개발과 인공지능 앱 개발에 관심이 있다면, 강추입니다!

 

 

 

★★★★★

 

 

 

리뷰를 마치며!

 

 

main.jpg

 

 

 

 

 

"<텐서플로 라이트를 활용한 안드로이드 딥러닝>"의 자세한 내용은 한빛미디어 홈페이지에서 확인하실 수 있습니다."

 



한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

인터넷 트레픽에서 PC를 압도하는 모바일 기기들..

몇 년전 부터 시작된 딥러닝 열풍, 

 

책을 받으며( 뭐 사실 e-book으로 받았지만 ) 360 페이지 밖에 안되는 책으로 두 기술을 함께 다룰 수 있을 까 하는 생각이 들었다.

심지어 안드로이드, 텐서플로 개발 환경 에 대해서 다루는 두 Chapter를 읽을 때까지도 반신 반의였다.

 

근데 Chapter 6에서 부터 실제 구동되고, 실무로도 이용가능할 이미지 분류 앱을 단계별로 개발해 보면서 

안드로이드와 텐서플로 라이트에 대해서 중요한 부분만을 꼭 찝어 설명해 내는 것에 감탄을 금할 수 없었다.

 

다만 아쉬운 건 안드로이드에 대해서는 기초적인 내용도 많이 다룬 반면,

텐서플로에 대해서는 기초적인 설명이 부족해, 어느정도의 선지식이 있어야 겠다는 생각은 들었다.

 

하지만, 텐서플로 전반을 다루다 보면 책이 너무 커질 것이고, 

텐서플로 라이트는 아직 발전하는 기술이기에

텐서플로를 안드로이드에 적용하는 실무적인 아이디어를 보여주는 것 만으로도 충분하겠다는 생각도 들었다.

 

최근에 한국 개발자가 직접 지은 책을 볼 기회가 없었는데..

번역서 포함 최근에 읽은 서적중에 가장 맘에 드는 책이었다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

책을 읽기 전에

평소 안드로이드 개발 기술을 공부하다, Firebase에서 지원하는 맛보기식 On-Device 머신러닝을 흥미롭게 보고 이를 활용하여 간단한 OCR 프로젝트를 만들어본 적이 있었습니다. 책 제목을 봤을 때 이러한 기술의 연장선이 되는 내용을 다룰 것이라 예상해, 기대를 품고 독서를 시작했습니다.

안드로이드 개발자가 읽을 때

안드로이드 앱에 텐서플로우를 올릴 수 있다는 것 만으로 그 활용 가능성이 무궁무진해지는데, 이를 중반 텐서플로우 관련 파트에서 여실히 다루고 있어 안드로이드 개발자 입장에서 기술적인 시각을 넓히는 데 큰 도움이 될 것이라 생각합니다. 최근 컴퓨터 비전의 성행에 따라 안드로이드 직군에서도 관련 협업 경험이나 스택을 우대하는 경우가 종종 있는데, 관련 목적으로 참고하기에도 좋은 책이라 생각됩니다.

AI 엔지니어가 읽을 때

이미 텐서플로우의 활용이 익숙한 AI 엔지니어나 리서치 계열의 분들에게는, 보유한 기술을 시각화하거나 프로토타이핑하여 시연할 수 있는 능력을 얻는 데 큰 도움이 될 것으로 보입니다. 특히 안드로이드 개발의 경우 핵심적인 내용을 충실히 다루고 있고, Camera2의 경우에도 자칫 어렵게 느껴질 수 있으나 금방 이해하고 사용할 수 있도록 기술하고 있습니다.

너무 어렵지 않으면서도, 많은 직군에게 꼭 필요한 책

전반적인 책의 내용이 모두 실생활에서 충분히 활용할 수 있거나 흥미를 끌 수 있는 기술 위주로 구성되어 있기 때문에, 안드로이드나 AI 분야 경험이 없는 타 IT 직군도 가볍고 재미있게 읽으면서 많은 것을 배울 수 있는 좋은 책이라고 생각합니다.

 

안녕하십니까, 간토끼입니다.

 

오늘은 한빛미디어의 <나는 리뷰어다 2021>의 일환으로 받은 텐서플로 라이트를 활용한 안드로이드 딥러닝에 대한 서평을 작성해보도록 하겠습니다.

 

 

 

 


Q. 이 책은 어떤 책인가요?

딥러닝에 관심있는 분들 중 안드로이드 앱에서 딥러닝 모델을 활용하는 방법에 대해 알고 싶은 분들을 위한 책입니다.

바로 On-Device AI, 모바일 딥러닝이라고 하죠.

 

예를 들어 강아지와 고양이의 이미지를 분류하는 모델을 개발했다고 합시다.

텐서플로우와 케라스를 이용하여 모델을 설계하고, 강아지 / 고양이 이미지를 학습 시켜서 둘 중 하나의 이미지가 주어졌을 때 어떤 동물인지 분류하는 분류 모델이 되겠네요.

이러한 모델을 코딩으로 구현하는 것 정도는 가능하지만, 앱(App)으로 개발하는 건 별개의 문제죠!

실제로 휴대폰 카메라로 찍어서 어떤 동물인지 바로 판별할 수 있는 앱으로 만들어낼 수 있다면, 우리가 개발하고자 하는 딥러닝 모델의 활용 가능성이 무궁무진해질 것입니다!

 

이러한 점에서 이 책은 '모바일 딥러닝'을 다룹니다.

직접 개발한 딥러닝 모델을 안드로이드 환경에서 서비스 할 수 있도록 방법을 제시하고 있죠.

 

이 책은 크게 다음과 같은 구성으로 이루어져 있습니다.

이 책의 구성

이 책은 총 9개 장으로 구성되어 있습니다. 먼저 안드로이드 앱을 개발하는 방법과 딥러닝 모델을 개발하는 방법을 살펴본 다음 딥러닝 모델을 활용한 안드로이드 앱을 개발하는 방법을 설명합니다. 그리고 모델의 추론 성능을 측정하고 이를 최적화하는 방법도 다룹니다.

1장: 개요 및 개발 환경 구축

안드로이드와 텐서플로 라이트 프레임워크를 소개하고, 개발 환경을 구축합니다.

2장, 3장: 안드로이드 앱 개발

2장에서는 안드로이드 프로젝트를 생성하고 프로젝트 구조와 구성 요소를 알아봅니다.

3장에서는 안드로이드 앱의 UI를 구성할 수 있도록 레이아웃과 위젯에 대해 살펴보고, 외부 컴포넌트를 사용하는 방법을 알아봅니다.

4장: 딥러닝 모델 개발

텐서플로 라이트 모델 개발 워크플로를 알아보고, 각 프로세스에 따라 모델을 개발하여 안드로이드 프로젝트에 배포합니다.

5장, 6장, 7장: 딥러닝 모델을 이용한 안드로이드 앱 개발

5장에서는 4장에서 개발한 딥러닝 모델을 활용하여 안드로이드 앱을 개발합니다. 앱에서 모델에 입력할 데이터를 만들고, 이를 모델에 입력하여 추론하고 그 결과를 표현하는 방법을 알아봅니다. 

6장에서는 프레임워크를 이용하여 다양한 방법으로 기기에서 이미지를 얻고 이를 분석하는 앱을 개발합니다. 

7장에서는 기기의 카메라에 입력되는 데이터를 실시간으로 처리하는 앱을 개발합니다. 이미지 크기 최적화와 비동기 처리 등 실시간 데이터 처리를 위한 기법을 알아봅니다.

8장, 9장: 성능 향상 및 최적화 

8장에서는 기기에서 모델의 추론 성능을 측정하고, 이를 향상시키는 방법을 알아봅니다. 9장에서는 제한된 환경에서 최고의 성능을 낼 수 있도록 모델을 최적화하는 방법을 알아봅니다.

 


Q. 그럼 누구에게 추천하는 책인가요?

당연하게도 딥러닝 모델을 직접 서비스로 구현하고자 하는 분들에게 추천하는 책입니다.

개인적으로 딥러닝에 대한 이해도가 어느정도 있다면 훨씬 수월하게 읽으실 수 있을 거라 생각합니다.

결국 응용을 하기 위해서는 그에 수반되는 선행 지식을 알고 있다는 것이 전제가 되니깐요.

 

저도 이전에 공모전을 통해 이미지 분류 모델을 개발한 적이 있었는데요.

앱으로까지 확장하는 아이디어를 제안하긴 했지만, 제가 개발한 모델을 앱에 싣는 방법을 알지 못하여 앱으로 확장하는 아이디어는 단순 '아이디어'로만 그친 경험이 있습니다.

그러한 점에서 이 책이 정말 반가웠습니다. 제가 고민하던 걸 딱 해결해주던 책이었거든요.

 

특히 앱에 모델을 탑재하기 위해서는 모델을 가볍게 가져가야 원활하게 앱에서 운용할 수 있는데,

이를 위해 '텐서플로 라이트'를 소개하고 있습니다.

 

또한 On-Device AI 를 위해 실시간 이미지 처리 등의 API를 소개함으로써 풍부한 서비스 구현을 가능하게 하고 있고요.아마 이미지 분류 앱을 개발하려는 분들에게 큰 도움이 될 것이라 사료됩니다.

 


Q. 이 책의 장점은 무엇인가요?

구체적으로 딥러닝 기반의 앱을 개발하는 방법에 대해 소개돼있습니다.

생소할 수 있는 코드를 친절하게 소개해줌으로써 한 줄 한 줄 이해시켜 줍니다.

기초적인 모바일 개발부터 딥러닝 알고리즘 및 활용 방법까지 다루고 있어 공모전 등에 참여하실 때도 매우 도움이 될 것이라 생각합니다.

한 마디로 딥러닝 기반의 앱 개발을 위한 가이드라인인 셈이죠.

 

이 책과 함께 꼭!! 공모전에 도전해보시길 바랍니다.

 

감사합니다.



출처: https://datalabbit.tistory.com/114 [간토끼 DataMining Lab]

텐서플로 라이트를 활용한 안드로이드 딥러닝.jpg

 

 

 

모바일 분야(안드로이드, IOS 등)에서의 개발은 많은 코더들이 존재한다. 또한 딥러닝 연구자, 개발자들도 많이 존재한다. 하지만 이 두 분야를 모두 다룰 수 있는 전문가는 많지 않다. 특히 딥러닝을 활용한 서비스들은 모바일에서 수요가 꾸준하게 증가하고 있기 때문에 딥러닝 모델들을 모바일에 이식하여 배포할 수 있는 기술이 매우 중요해진 실정이다.

 

나같은 필자 또한 모바일에 딥러닝 모델을 배포하고 서비스하는 것에 관심이 많고, 앞으로도 중요한 핵심 기술이 될 것 같기 때문에 개인적으로 TensorFlow Lite를 공부하고 있었다. 하지만 나는 모바일 프로그래밍이라고는 대학교 2학년 때 안드로이드 어플을 간단히 만들어 본 적 밖에 없고, 딥러닝 모델을 개발한 적은 있어도 모바일 기기에 배포한 적은 없었기 때문에 어디서부터 손을 대야 할지 모르겠는 상황이였다.

 

때 마침 한빛미디어에서 "텐서플로 라이트를 활용한 안드로이드 딥러닝"이라는 책이 발간되었다. 이 책은 삼성전자에서 9년동안 안드로이드 기반 서비스를 개발했고, 현재 쿠팡에서 플러터를 이용하여 모바일 앱을 개발하고 있는 임태규 저자가 집필하였다. 

 

이 책은 안드로이드 앱에서 딥러닝 모델을 활용하는 방법을 다루고 있는데, 이 책을 읽으려면 자바와 파이썬 언어에 대한 기본적인 지식이 필요하다고 한다. 앱 개발 경험이 있는 안드로이드 개발자라면 이 책을 통해 스스로 만든 앱에 딥러닝 모델을 배포하여 활용하는 방법을 익힐 수 있다고 한다. 또한 딥러닝 모델 개발 경험이 있는 AI 엔지니어라면 직접 개발한 모델을 안드로이드 환경에서 서비스 하는 방법을 배울 수 있다고 한다. 

 

 

이 책의 목차는 아래와 같이 구성되어있다. 

 

1장, 개요 및 개발 환경 구축

2-3장, 안드로이드 앱 개발

4장, 딥러닝 모델 개발

5-7장, 딥러닝 모델을 이용한 안드로이드 앱 개발 

8-9장, 성능 향상 및 최적화 

 

일단 안드로이드와 텐서플로 라이트를 이용하여 앱을 개발하는 전체 프로세스는 다음과 같다. 

 

 

딥러닝 모델 개발 프로세스 에서는 파이썬과 텐서플로를 이용하여 모델을 설계하고 학습을 하게된다. 모델이 개발되면 모바일에서 사용 가능 하도록 텐서플로 라이트 모델로 변환하여 저장한다. 딥러닝 모델 개발 단계의 최종 산출물은 텐서플로 라이트 모델을 파일로 저장한 tflite 파일이 된다. 이 파일이 생성되면 안드로이드 앱 개발 환경에서 안드로이드 앱의 UI와 비즈니스 로직을 개발한다. UI 개발 단계에서는 사용자에게 보여줄 화면을 개발하고 화면에서 발생하는 이벤트를 비즈니스 로직과 연결한다. 비즈니스 로직 개발 단계에서는 UI로부터 전달 받은 이벤트를 처리하고, 딥러닝 모델을 불러와 데이터 입력 및 추론 결과 처리 로직을 구현한다. 앱 개발 단계의 최종 산출물은 안드로이드 기기에 직접 설치되는 앱의 설치 파일인 apk 파일이 된다. 이렇게 개발된 앱은 사용자로부터 데이터를 입력 받아 딥러닝 모델로 추론하여 결과를 활용하는 서비스를 제공한다. 

 

필자는 딥러닝 모델을 개발 한 다음 모바일 개발자에게 딥러닝 모델을 제공하기 위해 신경써야 할 것들이 무엇이 있는지 알아야하기 때문에 이 관점에서 책을 보았다. 그래서 1장에서부터 3장 까지는 가볍게 읽었고, 4장 부터 집중적으로 보았다.

 

이 책을 통해서 딥러닝 모델 개발러가 모바일 개발러에게 제공해야 할 것은 아래와 같다. 

 

1. 좋은 성능을 가진 딥러닝 모델 개발 (모델을 이미 개발했다고 가정)

2. 텐서플로 라이트 모델로 변환하여 배포 (+ 모델 입력을 위한 이미지 전처리 과정 알려주기)

3. 모델이 안드로이드 기기에서 최적의 성능을 발휘하도록 튜닝

 

필자가 생각하기에 모든 과정이 중요하지만, 여기서 가장 중요한 것은 이미지 전처리하는 방식 아닐까 싶다. 학습 과정에서 사용한 이미지 전처리 방식을 안드로이드에서 테스트 할 때도 동일한 전처리 방식으로 적용해주어야 똑같은 추론 결과를 얻기 때문이다. 텐서플로 라이트 모델로 변환하기 전의 딥러닝 모델의 결과와 변환 후의 모델 결과를 비교하는 과정이 반드시 필요할 것 같다. 또한 텐서플로 라이트 서포트 라이브러리에서는 이미지 전처리 하는 라이브러리를 몇가지 제공하고 있다. 

 

이 책의 좋은점은 안드로이드 카메라 API 를 통해 실시간으로 이미지를 처리하는 방법에 대해서도 다루고 있다. 카메라를 연결하여 실시간으로 이미지를 처리하는 딥러닝 모델을 모바일에 이식하고자 하는 사람들에게 굉장히 많은 도움이 될 것 같다. 경험자라서 그런지 내용이 굉장히 세세하며, 경험해보지 않은 이상 이러한 내용을 적을 수 없다. 또한 학습 후 양자화 하는 과정에 대해서도 다루고 있는데 이 부분도 꽤 중요하다. 왜냐하면 양자화를 통해 정확도를 조금 잃는 대신 엄청난 속도 향상을 얻을 수 있기 때문이다. 무거운 딥러닝 모델의 경우 이 양자화가 굉장히 중요하다. 개인적으로 모델마다 달라질 순 있겠지만 integer 양자화 보다는 fp16 양자화를 선호한다. 


이 책을 모두 읽고나서 든 생각은 앞으로 발전할 On-Device AI 분야에서 전문가가 되기 위해 반드시 거쳐야할 책이라고 생각한다. 모든 내용을 책 한권에 담을 순 없겠지만, 적어도 딥러닝 모델을 모바일에 배포하기 위한 시작점이 되기에 충분한 책이라고 생각한다. 

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
텐서플로 라이트를 활용한 안드로이드 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
텐서플로 라이트를 활용한 안드로이드 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
텐서플로 라이트를 활용한 안드로이드 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?