이제는 On-Device AI, 모바일 딥러닝을 준비해야 한다!
안드로이드 앱에서 딥러닝 모델을 활용하는 방법을 최대한 입문자의 시선에 맞추어 풀어낸 책이다. 모델의 추론 성능을 측정하고 최적화하는 방법까지 다룬다. 또한 입문자의 진입장벽을 낮추기 위해 각 코드의 의미를 한 줄 한 줄 상세히 설명했다. 앱 개발 경험이 있는 안드로이드 개발자라면 이 책을 통해 직접 만든 앱에 딥러닝 모델을 배포하여 활용하는 방법을 빠르게 익힐 수 있다. 딥러닝 모델 개발 경험이 있는 AI 엔지니어라면 직접 개발한 모델을 안드로이드 환경에서 서비스하는 방법도 찾을 수 있다.
On-Device AI, 모바일 딥러닝에 가장 빠르게 입문하고 싶다면, 이 책으로 시작하자!
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 마무리
1장은 안드로이드 애플리케이션에서 사용할 수 있는 텐서플로 라이트 모델에 대해서 소개한다. 딥러닝 모델 개발 프로세스를 간략화하면 데이터, 모델 설계/학습, 텐서플로 모델 저장, 변환으로 나타낼 수 있다. 1장에서는 모바일 기기에서 모델을 사용할 수 있는 TFlite(텐서플로우 라이트) 모델을 만드는 법에 대해서 설명한다. 또 한, 딥러닝 개발에 필요한 IDE에 대해서 소개하며 파이참, 주피터 노트북, VSCode, Anaconda, Tensor Flow, Colab 등 을 소개한다.
2, 3장은 안드로이드 프로젝트에 구성요소에 대해 소개를 하며 앱, 유아이, 레이아웃 구성, 외부 모듈을 사용하는 방법 등 안드로이드 애플리케이션을 구성하는 기초적인 사용법을 설명한다.
4장은 손글씨 분류 앱을 만들면서 Image Classification 문제 대해서 알아보며 이미 개발된 모델을 TensorFlow Hub에서 찾을 수 있다. 사전 학습 모델과 전이 학습에 차이를 설명하고 전이 학습을 하는 과정을 매우 쉽게 설명되어 있다.
5장에서는 파이썬을 이용하여 모델을 만들고 생성한 모델 기반으로 TFLite 모델로 변환하여 안드로이드 애플리케이션에서 추론하는 방법에 대해서 소개한다. 전이 학습을 사용한 모델의 INPUT의 크기는 각 모델별로 다르기 때문에 모델 INPUT 크기로 안드로이드 화면에 표시된 입력 이미지를 축소 혹은 확대하는 전처리가 필요하다.
6장에서는 5장에서 텐서플로우 모델을 사용하여 추론을 할때 전처리가 필요한 부분을 직접 개발하여 처리하였지만 텐서플로 라이프 서포트 라이브러리에서 제공하는 TensorImage class를 사용하여 간편하게 추론하는 방법을 기술한다.
7장에서는 실시간 이미지 처리를 위한 비동기 처리 방법에 대해서 소개하며 다른 장들과 다르게 코드가 많으며 많은 설명을 포함하고 있다.
8장에서는 텐서플로 라이트 모델의 성능 개선을 위한 방법을 기술하며 CPU 멀티스레드, GPU 위임, NNAPI 위임을 각각 각각 구현하여 성능 비교 및 수행시간을 출력하는 방법을 알려준다.
9장에서는 텐서플로 라이트 모델의 최적화를 방법과 학습 후 양자화 기법으로 양자화된 모델의 성능을 비교해 보고, 양자화 인식 학습을 통해 양자화된 모델의 정확도를 높이는 방법을 소개한다.
이책은 안드로이드만 아는사람 혹은 모델만 만들줄 아는사람 모두에게 도움이되는 책이다. 다만 안드로이드에 대한 설명은 기본적인 레이아웃 구성이 다임으로 깊이있는 수준은 얻기 어려우며 모델 만드는 방법 또한 CNN 기반으로 직접 모델을 설계하면서 0부터 만드는 방법을 포함하고 있지는 않다. 입문자도 쉽게 따라 할 수 있는 정도의 설명임으로 안드로이드에서 딥러닝을 사용할 수 있는 방법에 대해서 가이드라인을 제시하는 정도로 파악된다.
본 리뷰는 제가 직접 책을 구매하여 주관적인 판단에 따라 작성하였습니다.
단단한 심층강화학습 - 제이펍 (0) | 2022.03.12 |
---|---|
비전 시스템을 위한 딥러닝 (0) | 2022.02.23 |
머신러닝 엔지니어링 - 제이펍 (0) | 2022.01.07 |
객체지향 프로그래머들이 반드시 알고 있어야 할 코딩의 정석 C++ (0) | 2021.12.27 |
자바스크립트는 모든 곳에 존재한다 - 그래프QL, 리액트, 리액트 네이티브, 일렉트론으로 크로스플랫폼 앱 만들기 (0) | 2021.12.24 |
댓글 영역