OpenCV 4를 활용한 머신러닝 입문 (OpenCV 4, 파이썬, scikit-learn을 사용해 이미지 처리 앱을 | 만들기 위한 지능형 알고리즘 | 2 판)

OpenCV 4를 활용한 머신러닝 입문 (OpenCV 4, 파이썬, scikit-learn을 사용해 이미지 처리 앱을 | 만들기 위한 지능형 알고리즘 | 2 판)

$40.16
Description
머신러닝은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘 연구이며, 인공지능의 한 분야다. 이 책에서는 분류 및 회귀와 같은 통계 학습의 핵심 개념을 간단/직관적인 예제를 통해 확인할 수 있다. 모든 기본 개념을 다룬 이후에는 의사 결정 트리(Decision tree), 서포트 벡터 머신(Support vector) 및 베이지안(Bayesian) 네트워크와 같은 다양한 알고리즘을 탐색하고 다른 OpenCV 기능과 결합하는 방법을 배운다. 딥러닝과 앙상블 학습을 살펴보고 직접 손으로 쓴 숫자의 분류와 제스처 인식과 같은 실제 애플리케이션을 만들 수 있다. 마지막으로, 이미지 처리 시스템을 구축하기 위한 최신 Intel OpenVINO를 살펴본다. 이 책을 다 읽고 난 이후에는 OpenCV4로 지능형 컴퓨터 비전 애플리케이션을 만들 수 있다.
저자

아디타샤르마

AdityaSharma
로버트보쉬(RobertBosch)의수석엔지니어로서자율주행컴퓨터비전문제를해결하는일을하고있다.로버트보쉬에서는2019년AI해커톤1위를차지하기도했다.IIT만디와IIIT하이데라바드를비롯한인도의일부주요기관과협업을진행하고있다.IIT에서는ICIP2019와MICCAI2019에서딥러닝을이용한의료영상논문을발표했다.IIIT에서는초고해상도문서이미지관련업무에큰기여를했다.
DataCamp와LearnOpenCV의머신러닝과딥러닝에관한많은논문을작성했다.유튜브채널을운영하고,NCVPRIPG콘퍼런스(2017년)와알리가르무슬림대학교에서연설자로참여해딥러닝워크숍을진행해왔다.

목차

1부.머신러닝과OpenCV의기본원리

1장.머신러닝시작
__기술적요구사항
__머신러닝시작
__머신러닝으로해결할수있는문제
__파이썬시작
__OpenCV시작
__설치
____이책의최신코드얻기
____파이썬의아나콘다배포판
____conda환경에서OpenCV설치
____설치확인
____OpenCV의ML모듈엿보기
__머신러닝의응용
__OpenCV4.0의새로운기능
__요약


2장.OpenCV로데이터작업
__기술적요구사항
__머신러닝워크플로의이해
__OpenCV와파이썬을사용한데이터취급
____새로운IPython이나주피터세션시작
____파이썬NumPy패키지를사용한데이터취급
______NumPy가져오기
______NumPy배열의이해
______인덱싱을통해단일배열요소에액세스
______다차원배열만들기
____파이썬에서외부데이터세트불러오기
____Matplotlib을사용한데이터시각화
______Matplotlib가져오기
______간단한플롯만들기
______외부데이터세트의데이터시각화
____C++에서OpenCV의TrainData컨테이너를사용해데이터다루기
__요약


3장.지도학습의첫번째단계
__기술적요구사항
__지도학습이해
____OpenCV에서지도학습살펴보기
____점수화함수로모델성능측정
______정확도,정확률,재현율을사용하는점수화분류기
______평균제곱오차,분산,R제곱을사용한회귀분석
__분류모델을사용한클래스레이블예측
____k-최근접이웃알고리즘의이해
____OpenCV에서k-최근접이웃구현
______훈련데이터생성
______분류기훈련
______새데이터요소의레이블예측
__회귀모델을사용해지속적인결과예측
____선형회귀분석
____OpenCV의선형회귀방법
____선형회귀분석방법을사용해보스턴주택가격예측
______데이터세트불러오기
______모델훈련
______모델테스트
____라소와융기회귀적용
__로지스틱회귀를이용한아이리스종분류
____로지스틱회귀이해
______훈련자료불러오기
______이진분류문제로만들기
______데이터검사
______데이터를훈련세트와테스트세트로나누기
______분류기훈련
______분류기테스트
__요약


4장.데이터와엔지니어링특징표현
__기술적요구사항
__특징엔지니어링의이해
__전처리데이터
____특징표준화
____특징정규화
____특징의범위확장
____특징이진화
____누락된데이터처리
__차원축소의이해
____OpenCV에서PCA구현
____ICA구현
____NMF구현
____t-분산확률적이웃임베딩(t-SNE)을이용한차원감소시각화
__범주형변수표현
__텍스트특징표현
__이미지표현
____색공간사용
______RGB공간에서이미지인코딩
______HSV와HLS공간에서이미지인코딩
____이미지의코너검출
____스타(star)검출기와BRIP설명자(descriptor)사용
____ORB사용
__요약


2부.OpenCV사용법

5장.의사결정트리를사용한의학진단
__기술적요구사항
__의사결정트리의이해
____첫번째의사결정트리만들기
______새데이터만들기
______데이터를이해한후작업에활용
______데이터전처리
______트리만들기
____훈련된의사결정트리의시각화
____의사결정트리의내부동작조사
____특징중요도평가
____의사결정규칙이해
____의사결정트리의복잡도제어
__의사결정트리를사용해유방암진단
____데이터세트불러오기
____의사결정트리만들기
__회귀결정트리사용
__요약


6장.서포트벡터머신으로보행자검출
__기술적요구사항
__서포트벡터시스템의이해
____최적의의사결정경계학습
____첫번째서포트벡터머신구현
______데이터세트생성
______데이터세트시각화
______데이터세트전처리
______서포트벡터머신구축
______의사결정경계시각화
__비선형의사결정경계다루기
____커널트릭의이해
____사용자가사용할커널파악
____비선형서포트벡터머신구현
__실생활에서보행자검출
____데이터세트가져오기
____HOG훑어보기
____네거티브생성
____서포트벡터머신구현
____모델부트스트랩
____더큰이미지에서보행자검출
____모델개선
____SVM을사용한다중클래스분류
______데이터정보
______속성정보
__요약


7장.베이지안학습을이용한스팸필터구현
__기술적요구사항
__베이지안추론의이해
____확률이론간단히살펴보기
____베이즈정리의이해
____나이브베이즈분류기의이해
__첫번째베이지안분류기구현
____장난감데이터세트만들기
____일반베이즈분류기로데이터분류
____나이브베이즈분류기로데이터분류
____조건부확률의시각화
__나이브베이즈분류기를사용한이메일분류
____데이터세트불러오기
____판다스를사용해데이터행렬만들기
____데이터전처리
____정상적인베이즈분류기훈련
____전체데이터세트에대한훈련
____n-그램을사용한결과개선
____TF-IDF를사용한결과개선
__요약


8장.비지도학습으로숨겨진구조발견
__기술적요구사항
__비지도학습의이해
__k-평균클러스터링의이해
____첫번째k-평균예제구현
__기댓값최대화방법의이해
____기댓값최대화솔루션구현
____기댓값최대화의한계파악
______첫번째경고:전반적인최적결과를찾기어렵다
______두번째경고:미리클러스터수를선택해야한다
______세번째경고:클러스터경계는선형이다
______네번째경고:k-평균은많은수의샘플에서는느리다
__k-평균을사용한색공간압축
____트루컬러팔레트시각화
____k-평균을사용한색상팔레트축소
__k-평균을사용한숫자필기인식분류
____데이터세트불러오기
____k-평균실행
__클러스터를계층적트리로구성
____계층적클러스터링의이해
____응집력있는계층적클러스터링구현
____클러스터링알고리즘비교
__요약


3부OpenCV를사용한고급머신러닝

9장.딥러닝을사용한숫자필기인식분류
__기술적요구사항
__맥컬럭-피츠뉴런의이해
__퍼셉트론의이해
__첫번째퍼셉트론구현
____장난감데이터세트생성
____퍼셉트론을데이터에적용
____퍼셉트론분류기평가
____선형으로분리되지않는데이터에퍼셉트론적용
__다층퍼셉트론의이해
____경사하강법의이해
____역전파를이용한MLP훈련
____OpenCV에서MLP구현
______데이터전처리
______OpenCV에서MLP분류기만들기
______MLP분류기의사용자정의
______MLP분류기훈련과테스트
__딥러닝에익숙해지기
____케라스에익숙해지기
__숫자필기인식분류
____MNIST데이터세트가져오기
____MNIST데이터세트전처리
____OpenCV를사용한MLP훈련
____케라스를이용한심층신경망훈련
______MNIST데이터세트전처리
______컨볼루션신경망(CNN)만들기
______모델요약
______모델피팅
__요약


10장.앙상블기법으로분류
__기술적요구사항
__앙상블메서드의이해
____평균앙상블의이해
______배깅분류기구현
______배깅회귀기구현
____부스터앙상블의이해
______약한학습기
______부스팅분류기구현
______부스팅회귀기구현
____스태킹앙상블의이해
__의사결정트리를랜덤포레스트로결합
____의사결정트리의단점이해
____첫번째랜덤포레스트구현
____scikit-learn을사용한랜덤포레스트구현
____과랜덤화된트리구현
__얼굴인식을위한랜덤포레스트사용
____데이터세트불러오기
____데이터세트전처리
____랜덤포레스트훈련과테스트
__AdaBoost구현
____OpenCV에서AdaBoost구현
____scikit-learn에서AdaBoost구현
__다른모델을투표분류기로결합
____다양한투표방법의이해
____투표분류기구현
____다원성
__요약


11장.하이퍼매개변수튜닝으로올바른모델선택
__기술적요구사항
__모델평가
____잘못된방식으로모델평가
____올바른방식으로모델평가
____최고의모델선택
__교차유효성검증의이해
____OpenCV에서교차유효성의매뉴얼검증구현
____scikit-learn을사용한k-겹교차검증
____단일관측값제거법교차검증의구현
__견고성예측에부트스트랩사용
____OpenCV에서부트스트랩을직접구현
__결과의중요성평가
____스튜던트t-검정구현
____맥니마의검정구현
__그리드검색으로하이퍼매개변수튜닝
____간단한그리드검색구현
____유효성검증세트의값이해
____교차유효성검증과함께그리드검색결합
____중첩된교차유효성검증과함께그리드검색결합
__다양한평가메트릭을사용한점수화모델
____올바른분류기준선택
____올바른회귀메트릭선택
__파이프라인을형성하기위한체이닝알고리즘
____scikit-learn에서파이프라인구현
____그리드검색에서파이프라인사용
__요약


12장.OpenCV의OpenVINO사용
__기술적요구사항
__OpenVINO소개
__

출판사 서평

★이책에서다루는내용★

■이미지처리를위한핵심머신러닝개념
■머신러닝과딥러닝알고리즘설계의이론
■딥러닝모델을교육하기위한효과적인기술
■머신러닝모델평가로모델성능향상
■컴퓨터비전애플리케이션에서지원벡터머신및베이즈분류등과같은알고리즘통합
■OpenCV4와함께OpenVINO를활용한모델추론속도향상

★이책의대상독자★

초보자는물론고급독자에게도도움이될수있게모든개념을설명하려고노력했다.파이썬프로그래밍에대한기본적인지식이있으면좋지만,의무사항은아니다.이해할수없는파이썬구문을발견할때마다인터넷에서찾아보길권한다.도움은모르는것을찾는사람들에게만항상제공된다.

★이책의구성★

1장,‘머신러닝시작’에서는이책에필요한소프트웨어와파이썬모듈을설치하는방법을설명한다.
2장,‘OpenCV으로데이터작업’에서는몇가지기본적인OpenCV기능을살펴본다.
3장,‘지도학습의첫번째단계’에서는머신러닝에서지도학습방법의기본을다룬다.파이썬에서지원하는OpenCV와scikit-learn라이브러리를이용한지도학습방법의몇가지예를살펴본다.
4장,‘데이터와엔지니어링특징표현’에서는OpenCV의ORB를사용한특징검출및특징인식과같은개념을다룬다.또한차원의저주와같은중요한개념을이해하려고노력한다.
5장,‘의사결정트리를사용한의료진단’에서는트리의깊이와가지치기등의기법을비롯해의사결정트리및이와관련된중요한개념을소개한다.의사결정트리를이용한유방암진단예측의실용적적용도다룬다.
6장,‘서포트벡터머신으로보행자검출’에서는벡터머신을지원하기위한소개와OpenCV에서구현할수있는방법을다룬다.또한OpenCV를이용한보행자검출의응용방법도다룬다.
7장,‘베이지안학습을이용한스팸필터구현’에서는나이브베이즈알고리즘,다항나이브베이즈등과같은내용뿐만아니라이를구현할수있는방법도알아본다.또한스팸과햄데이터를분류하는머신러닝어플리케이션을구축한다.
8장,‘비지도학습으로숨겨진구조발견’에서는두번째등급의머신러닝알고리즘,즉비지도학습을소개한다.k-최근접이웃,k-평균등을이용한클러스터링기술을알아본다.
9장,‘딥러닝을사용한숫자필기인식분류’에서는딥러닝기법을소개하고,MNIST데이터세트에서이미지를분류하고자심층신경망을어떻게사용하는지살펴본다.
10장,‘앙상블기법으로분류’에서는분류목적을위한랜덤포레스트,배깅,부스팅등의주제를다룬다.
11장,‘하이퍼매개변수튜닝으로올바른모델선택’에서는모델성능을개선하고자다양한머신러닝방법에서최적의매개변수집합을선택하는과정을살펴본다.
12장,‘OpenCV의OpenVINO사용’에서는OpenCV4.0에서소개된OpenVINO툴킷을소개한다.또한이미지분류를예로들어OpenCV에서사용할수있는방법도살펴본다.
13장.‘결론’에서는책에서다룬주요주제를요약하고,이후에무엇을더할수있는지를이야기한다.

★옮긴이의말★

지금전세상을뒤덮는화두중하나가머신러닝이라는것을아무도부인하긴어려울것이다.구글딥마인드의알파고가세기의이벤트를많은사람에게보여준이후에그관심도는나날이급상승중이다.이제는우리주변에서머신러닝이적용된사물을쉽게볼수있다.대표적인예로스마트폰에서도이미머신러닝이적용돼사용자들에게많은편의사항을제공하고있다.
머신러닝이적용된사회에살아가면서머신러닝이라는단어외에도내부에어떠한원리가동작하는지를함께알아가야한다.이러한시작점에이책이일정한역할을할수있다고믿는다.이책은실제컴퓨터비전작업을할때직접적인도움이될수있도록구성됐고OpenCV의최신API(v4.0.0)지식들을포함한다.
1장부터8장까지는분류및회귀와같은통계학습의핵심개념으로시작해지도/비지도머신러닝도살펴본다.의사결정트리(Decisiontree),서포트벡터머신(Supportvectormachine),베이지안(Bayesian)네트워크와같은다양한알고리즘을탐색하고다른OpenCV기능과결합하는방법을배운다.9장부터11장까지는딥러닝기술,숫자필기인식분류,앙상블기법을사용한분류방법과모델성능을개선하기위한과정을살펴본다.
12장은2판에서새롭게도입한부분이다.OpenVINO(OpenVisualInference&NeuralNetworkOptimization)도학습할수있는데,OpenVINO는개방형시각추론과신경망최적화솔루션이며고성능컴퓨터비전과딥러닝추론애플리케이션개발용으로설계됐다.
이책에서는비전처리와관련된분야에서머신러닝을어떻게활용할수있는지상세한이론설명과예제를통해보여준다.머신러닝을완벽하게이해하려면가장기본적인원리를이해하는것이좋다.이해과정은이책에서의설명과코드를통해시작해보자.
진심으로모든독자가OpenCV와머신러닝의기본이론을이해하고실제로구현하는데이책이많은도움이되길바란다.