본문 바로가기
항해/독서

[Deep Learning for Vision Systems - 비전 시스템을 위한 딥러닝]

by ggoboogi_house 2022. 2. 17.
반응형

[Deep Learning for Vision Systems - 비전 시스템을 위한 딥러닝]

제목 : 비전 시스템을 위한 딥러닝(Deep Learning for Vision Systems)
초판 발행 :  2021년 12월 20일
지은이 : 모하메드 엘겐디
옮긴이 : 심효섭

출판사 : 한빛미디어

 

  이번에 우연한 기회로 2022년 한빛미디어 리뷰어로 활동할 수 있게 되었다. 여러가지 책 중에서 요즘 관심을 가지고 학습하고 있던 컴퓨터 비전과 딥러닝 관련 된 책이 눈에 띄어 이 책을 리뷰하게 되었다. 책을 받기 전 목차를 보았을 때는.... 몇 페이지짜리 책이길래 이렇게 넓은 범위를 다 다룬다는 거지?라는 생각이 들었지만, 막상 책을 받아 읽어보니 컴퓨터 비전 분양의 전공자가 아닌 내가 전반적으로 다양한 내용들을 두루 살펴볼 수 있어서 많은 도움이 되었다.

 

책의 목차는 다음과 같다.

[PART I 딥러닝 기초]

CHAPTER 1 컴퓨터 비전 입문
1.1 컴퓨터 비전
1.2 컴퓨터 비전 응용 분야
1.3 컴퓨터 비전 파이프라인 전체 처리 과정
1.4 이미지 입력
1.5 이미지 전처리
1.6 특징 추출
1.7 분류 학습 알고리즘
1.8 마치며

CHAPTER 2 딥러닝과 신경망
2.1 퍼셉트론
2.2 다층 퍼셉트론
2.3 활성화 함수
2.4 순방향 계산
2.5 오차 함수
2.6 최적화 알고리즘
2.7 역전파 알고리즘
2.8 마치며

CHAPTER 3 합성곱 신경망
3.1 다층 퍼셉트론을 이용한 이미지 분류
3.2 합성곱 신경망 구조
3.3 합성곱 신경망의 기본 요소
3.4 CNN을 이용한 이미지 분류
3.5 과적합을 방지하기 위해 드롭아웃층 추가하기
3.6 컬러 이미지의 합성곱 연산(3D 이미지)
3.7 프로젝트: 컬러 이미지 분류 문제
3.8 마치며

CHAPTER 4 딥러닝 프로젝트 시동 걸기와 하이퍼파라미터 튜닝
4.1 성능 지표란
4.2 베이스라인 모델 설정하기
4.3 학습 데이터 준비하기
4.4 모델을 평가하고 성능 지표 해석하기
4.5 신경망을 개선하고 하이퍼파라미터 튜닝하기
4.6 학습 및 최적화
4.7 최적화 알고리즘
4.8 과적합을 방지하기 위한 규제화 기법
4.9 배치 정규화
4.10 프로젝트: 이미지 분류 정확도 개선하기
4.11 마치며

[PART II 이미지 분류와 탐지]

CHAPTER 5 고급 합성곱 신경망 구조
5.1 CNN의 디자인 패턴
5.2 LeNet-5
5.3 AlexNet
5.4 VGGNet
5.5 인셉션과 GoogLeNet
5.6 ResNet
5.7 마치며

CHAPTER 6 전이학습
6.1 전이학습으로 해결할 수 있는 문제
6.2 전이학습이란
6.3 전이학습의 원리
6.4 전이학습의 세 가지 방식
6.5 적합한 전이학습 수준 선택하기
6.6 오픈 소스 데이터셋
6.7 프로젝트 1: 사전 학습된 신경망을 특징 추출기로 사용하기
6.8 프로젝트 2: 미세 조정
6.9 마치며

CHAPTER 7 R-CNN, SSD, YOLO를 이용한 사물 탐지
7.1 사물 탐지 알고리즘의 일반적인 프레임워크
7.2 영역 기반 합성곱 신경망
7.3 싱글샷 탐지기
7.4 YOLO
7.5 프로젝트: 자율주행차를 위한 싱글샷 탐지기 학습하기
7.6 마치며

[PART III 생성 모델과 시각 임베딩]

CHAPTER 8 생성적 적대 신경망
8.1 GAN 구조
8.2 GAN 모델의 평가 방법
8.3 GAN 응용 분야
8.4 프로젝트: GAN 모델 직접 구현해보기
8.5 마치며

CHAPTER 9 딥드림과 신경 스타일 전이
9.1 합성곱 신경망이 본 세계는 어떤 것일까
9.2 딥드림
9.3 신경 스타일 전이
9.4 마치며

CHAPTER 10 시각 임베딩
10.1 시각 임베딩 응용 분야
10.2 임베딩 학습하기
10.3 손실 함수
10.4 정보량이 높은 데이터를 골라내는 마이닝
10.5 프로젝트: 임베딩 신경망 학습하기
10.6 현재 성능 더욱 끌어올리기
10.7 마치며
10.8 참고 문헌

APPENDIX A 실습 환경 설정하기
A.1 코드 저장소 내려받기
A.2 아나콘다 설치하기
A.3 딥러닝 실습 환경 설정하기
A.4 AWS EC2 환경 설정하기

 

위의 목차에서 볼 수 있는 것처럼 이 책은 크게 3개 파트로 구성되어 있다.

첫번째 파트는 다음의 4개의 챕터로 구성되어 있다.

  • Ch1. 컴퓨터 비전 입문
  • Ch2. 딥러닝과 신경망
  • Ch3. 합성곱 신경망(with 실습)
  • Ch4. 딥러닝 프로젝트 시동 걸기와 하이퍼파라미터 튜닝(with 실습)

두번째 파트는 다음의 3개의 챕터로 구성되어 있다.

  • Ch5. 고급 합성곱 신경망 구조
  • Ch6. 전이학습(with 실습)
  • Ch7. R-CNN, SSD, YOLO를 이용한 사물 탐지(with 실습)

세번째 파트는 다음의 3개의 챕터로 구성되어 있다.

  • Ch8. 생성적 적대 신경망(GAN)(with 실습)
  • Ch9. 딥드림과 신경 스타일 전이
  • Ch10. 시각 임베딩(with 실습)

 

  꽤나 넓은 범위의 내용을 다루면서도 너무 얕지 않게, 하지만 입문자도 어렵지 않게 학습할 수 있을 것 같다. 여기서 말하는 입문자는 컴퓨터 프로그래밍 자체의 입문이 아닌, 컴퓨터 비전으로의 입문을 말한다.

 

  또, 주요 챕터마다 실습이 포함되어있는데, 저자의 github에 들어가면 해당 코드가 있어, 실습 환경 설정 후 코드를 학습할 수 있도록 해놓은 것이 이 책의 강점인 것 같다. 아직 모든 실습을 다 마무리 해보지는 못했지만, 제공된 실습 외에도 소개만 된 딥러닝 모델들을 직접 구현해보면서 학습해볼 계획이다. 해당 내용은 정리되는 대로 포스팅 해보아야겠다.

 

  또, 이 책에서는 이미지 증강(augmentation) 방법으로 keras라이브러리의 'ImageDataGenerator' 모듈을 사용하고 있는데, 파이토치 기반이긴 하지만, 케라스에서도 사용할 수 있는 'Albumentation' 모듈을 사용해서 비교 테스트를 수행해보아야겠다. Albumentation 모듈이 속도도 더 빠르고, 제공되는 증강기법도 더 많은 것으로 알고 있고, 캐글과 같은 대회에서 상위 랭크한 코드들을 보면 많이 사용되고 있었다. 

 

Albumentations

Albumentations: fast and flexible image augmentations

albumentations.ai

 

또, 실습코드를 사용할때 저자의 github에서 데이터와 코드를 가져다가 사용할 수 있는데, 이를 로컬 환경으로 가져와서 사용하려면 꽤나 번거롭고 귀찮을 수 있다. 그래서 구글 colab에서 저자의 github 저장소를 복제해서 사용하면, colab환경에서 바로 테스트 해볼 수 있어 빠른 학습에 더 도움이 될 것 같다. 해당 설정에 대해서는 아래 링크를 참조하면 된다.

https://turtle-dennis.tistory.com/61

 

구글 코랩(colab)에서 github 저장소 사용하기

구글 colab에서 github 저장소 이용하기 요즘 공부하고 있는 "Deep Learning for Vision Systems[모하메드 엘겐디, 한빛미디어]" 책에서 실습 프로젝트로 데이터와 코드를 github 저장소를 통해 제공한다. 그래

turtle-dennis.tistory.com

 

아직 뒷부분 9장과 10장 부분은 실습을 더 반복해보며 복습해봐야 조금 더 이해가 될 것 같다. 책 안에서 코드만 제공되었다면 귀찮아서라도 다 학습하지 못했을텐데, 잘 갖춰진 github 저장소를 이용해서 실습해볼 수 있다는 것이 학습을 지속하는데 참 도움이 크게 되는 것 같다. 많은 이들이 코딩을 잘하려면 '백문이 불여일타'라고 하지않았던가...,  그런면에서 이 책은 나와 같이 computer vision 분야의 초심자가 부담없이 학습하기에 좋은 잘 쓰여진 책인 것 같다. 

그리고 이후에 (저자가) 가능하다면 SOTA까지 포함한 후속 버전의 책이 나온다면 더 좋을 것 같다.

 

 

 

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

 

<Reference>

- https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=285003216

- https://www.hanbit.co.kr/media/books/book_view.html?p_code=B6566099029

- https://github.com/moelgendy

- https://github.com/moelgendy/deep_learning_for_vision_systems

- https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator

- https://albumentations.ai/

반응형

'항해 > 독서' 카테고리의 다른 글

[적정한 삶]  (0) 2022.02.28
[양자 컴퓨터 프로그래밍] Practical Quantum Computing  (0) 2022.02.28
[퀀텀의 세계]  (0) 2022.02.15
[양자 컴퓨터 21세기 과학혁명]  (0) 2021.07.29
[대전환의 시대] 짐 로저스  (0) 2021.04.23