빠르게 팽창하고 있는 컴퓨터 비전 기술 분야를 이 실용서로 시작하라. 오픈 소스 OpenCV 라이브러리 창시자인 아드리안 캘러(Adrian Kaehler)와 개리 브래드스키(Gary Bradski)가 쓴 이 책은 개발자와 재미로 읽는 독자를 위한 완벽한 소개서다. 이 책을 통해 컴퓨터가 데이터를 ‘보고’ 결정을 내리는 응용 프로그램을 작성하기 위해 알아야 할 방법을 배울 것이다. OpenCV는 보안, 의료 이미징, 패턴 및 얼굴 인식, 로봇 공학 그리고 공장 제품 검사와 같은 다양한 상업용 응용 프로그램에 사용하는 500개 이상의 함수를 제공한다. 이 책은 컴퓨터 비전과 OpenCV의 확실한 기초 지식을 제공하고 간단하거나 정교한 비전 응용 프로그램을 작성할 수 있게 해준다. 각 장의 실전 연습 문제를 통해 배운 내용을 적용해 볼 수 있다. 이 책은 컴퓨터 비전을 위한 머신러닝 도구를 포함해 최신 C++로 구현한 OpenCV 라이브러리 전체를 다룬다. ★ 이 책에서 다루는 내용 ★ ◎ OpenCV 데이터 타입과 배열 타입, 배열 연산 학습 ◎ HighGUI를 이용한 정지/동영상 이미지 캡처와 저장 ◎ 늘이기, 줄이기, 워핑, 재매핑 및 복구를 위한 이미지 변환 ◎ 얼굴 탐지를 포함한 패턴 인식 탐구 ◎ 시각 필드를 통한 객체와 모션 추적 ◎ 스테레오 비전으로 3D 이미지 재구성 ◎ OpenCV의 기본/고급 머신러닝 기술
빠르게 팽창하고 있는 컴퓨터 비전 기술 분야를 이 실용서로 시작하라. 오픈 소스 OpenCV 라이브러리 창시자인 아드리안 캘러(Adrian Kaehler)와 개리 브래드스키(Gary Bradski)가 쓴 이 책은 개발자와 재미로 읽는 독자를 위한 완벽한 소개서다. 이 책을 통해 컴퓨터가 데이터를 ‘보고’ 결정을 내리는 응용 프로그램을 작성하기 위해 알아야 할 방법을 배울 것이다.
OpenCV는 보안, 의료 이미징, 패턴 및 얼굴 인식, 로봇 공학 그리고 공장 제품 검사와 같은 다양한 상업용 응용 프로그램에 사용하는 500개 이상의 함수를 제공한다. 이 책은 컴퓨터 비전과 OpenCV의 확실한 기초 지식을 제공하고 간단하거나 정교한 비전 응용 프로그램을 작성할 수 있게 해준다. 각 장의 실전 연습 문제를 통해 배운 내용을 적용해 볼 수 있다.
이 책은 컴퓨터 비전을 위한 머신러닝 도구를 포함해 최신 C++로 구현한 OpenCV 라이브러리 전체를 다룬다.
★ 이 책에서 다루는 내용 ★ ◎ OpenCV 데이터 타입과 배열 타입, 배열 연산 학습 ◎ HighGUI를 이용한 정지/동영상 이미지 캡처와 저장 ◎ 늘이기, 줄이기, 워핑, 재매핑 및 복구를 위한 이미지 변환 ◎ 얼굴 탐지를 포함한 패턴 인식 탐구 ◎ 시각 필드를 통한 객체와 모션 추적 ◎ 스테레오 비전으로 3D 이미지 재구성 ◎ OpenCV의 기본/고급 머신러닝 기술
교보문고에서 제공한 정보입니다.
출판사 서평
빠르게 팽창하고 있는 컴퓨터 비전 기술 분야를 이 실용서로 시작하라. 오픈 소스 OpenCV 라이브러리 창시자인 아드리안 캘러(Adrian Kaehler)와 개리 브래드스키(Gary Bradski)가 쓴 이 책은 개발자와 재미로 읽는 독자를 위한 완벽한 소개서다. 이 책을 통해 컴퓨터가 데이터를 ‘보고’ 결정을 내리는 응용 프로그램을 작성하기 위해 알아야 할 방법을 배울 것이다.
OpenCV는 보안, 의료 이미징, 패턴 및 얼굴 인식, 로봇 공학 그리고 공장 제품 검사와 같은 다양한 상업용 응용 프로그램에 사용하는 500개 이상의 함수를 제공한다. 이 책은 컴퓨터 비전과 OpenCV의 확실한 기초 지식을 제공하고 간단하거나 정교한 비전 응용 프로그램을 작성할 수 있게 해준다. 각 장의 실전 연습 문제를 통해 배운 내용을 적용해 볼 수 있다.
이 책은 컴퓨터 비전을 위한 머신러닝 도구를 포함해 최신 C++로 구현한 OpenCV 라이브러리 전체를 다룬다.
★ 이 책에서 다루는 내용 ★
◎ OpenCV 데이터 타입과 배열 타입, 배열 연산 학습
◎ HighGUI를 이용한 정지/동영상 이미지 캡처와 저장
◎ 늘이기, 줄이기, 워핑, 재매핑 및 복구를 위한 이미지 변환
◎ 얼굴 탐지를 포함한 패턴 인식 탐구
◎ 시각 필드를 통한 객체와 모션 추적
◎ 스테레오 비전으로 3D 이미지 재구성
◎ OpenCV의 기본/고급 머신러닝 기술
알라딘에서 제공한 정보입니다.
목차
▣ 01장: 개요 OpenCV란? OpenCV는 누가 사용하는가? 컴퓨터 비전이란? OpenCV의 기원 ___OpenCV 블록 다이어그램 ___IPP를 이용한 OpenCV의 성능 향상 ___누가 OpenCV를 소유하는가? OpenCV 다운로드 및 설치 ___설치 Git으로 최신 OpenCV 얻기 OpenCV에 대한 더 많은 문서 ___제공되는 문서 ___온라인 문서와 위키 OpenCV Contribution 저장소 ___Contributed 모듈 다운로드하고 빌드하기 이식성 요약 연습 문제
▣ 02장: OpenCV 소개 Include 파일 ___관련 자료 첫 번째 프로그램 - 이미지 출력 두 번째 프로그램 - 비디오 재생 위치 이동하기 ___간단한 변환 별로 단순하지 않은 변환 카메라 입력 AVI 파일에 쓰기 요약 연습 문제
▣ 03장: OpenCV 데이터 타입 알아보기 기본 사항 OpenCV 데이터 타입 ___기본 데이터 타입의 개요 ___기본 데이터 타입: 세부사항 알아보기 ___도우미 객체 ___유틸리티 함수 ___템플릿 구조 요약 연습 문제
▣ 04장: 이미지 및 대형 배열 타입 동적 및 가변 저장장치 ___cv::Mat 클래스: N차원의 밀집 배열 ___배열 만들기 ___배열의 개별 요소 접근하기 ___다차원 배열 반복자: NAryMatIterator ___블록 단위로 배열 요소 접근 ___행렬 표현식: 대수학과 cv::Mat ___포화 캐스팅 ___배열로 할 수 있는 더 많은 것 ___cv::SparseMat 클래스: 희소 배열 ___희소 배열의 요소에 접근하기 ___희소 배열에 있는 고유한 함수들 ___대형 배열 타입의 템플릿 구조 요약 연습 문제
▣ 06장: 그리기와 주석 달기 도형 그리기 ___라인 아트와 채워진 다각형 ___폰트와 텍스트 요약 연습 문제
▣ 07장: OpenCV 펑터 작업 처리 객체 ___주성분 분석(cv::PCA) ___특이값 분해(cv::SVD) ___난수 생성기(cv::RNG) 요약 연습 문제
▣ 08장: 이미지, 비디오, 데이터 파일 HighGUI: 포터블 그래픽 툴킷 ___이미지 파일 다루기 ___이미지 로딩과 저장 ___코덱에 대한 참고 사항 ___압축과 압축 해제 비디오 다루기 ___cv::VideoCapture 객체로 비디오 읽기 ___cv::VideoWriter 객체로 비디오 쓰기 데이터 지속성 ___cv::FileStorage에 쓰기 ___cv::FileStorage에서 읽기 ___cv::FileNode 요약 연습 문제
▣ 09장: 크로스 플랫폼과 기본 윈도우 윈도우 작업 ___HighGUI 기본 그래픽 유저 인터페이스 ___Qt 백엔드로 작업하기 ___전체 GUI 툴킷과 OpenCV 통합 요약 연습 문제
▣ 10장: 필터와 컨벌루션 개요 시작하기 전에 ___필터, 커널, 컨벌루션 ___테두리 외삽법과 바운더리 조건 경계값 연산 ___오츠(Otsu)의 알고리즘 ___적응형 경계값 스무딩 ___단순 블러 및 박스 필터 ___메디안 필터 ___가우시안 필터 ___바이레터럴 필터 미분 및 그래디언트 ___소벨 미분 ___샤르(Scharr) 필터 ___라플라시안 이미지 모폴로지 ___팽창과 침식 ___일반 모폴로지 함수 ___열림과 닫힘 연산 ___탑햇과 블랙햇 연산 ___자신만의 커널 만들기 임의의 선형 필터를 사용한 컨벌루션 ___cv::filter2D()로 일반적인 필터 만들기 ___cv::sepFilter2D를 사용해 분리 가능한 일반 필터 만들기 커널 빌더 요약 연습 문제
▣ 11장: 일반 이미지 변환 개요 늘이기, 줄이기, 왜곡하기, 회전하기 ___균일 크기 조절 ___이미지 피라미드 ___비균일 매핑 ___아핀 변환 ___원근 변환 일반적인 재매핑 ___극좌표 매핑 ___로그 극좌표(LogPolar) ___임의의 매핑 이미지 복구 ___인페인팅 ___노이즈 제거 히스토그램 평활화 ___cv::equalizeHist(): 콘트라스트 평활화 요약 연습 문제
▣ 12장: 이미지 분석 개요 이산 푸리에 변환 ___cv::dft(): 이산 푸리에 변환 ___cv::idft(): 역 이산 푸리에 변환 ___cv::mulSpectrums(): 스펙트럼 곱셈 ___이산 푸리에 변환을 이용한 컨벌루션 ___cv::dct(): 이산 코사인 변환 ___cv::idct(): 역 이산 코사인 변환 적분 이미지 ___표준 합산 적분을 위한 cv::integral() ___제곱 합산 적분을 위한 cv::integral() ___기울어진 합산 적분을 위한 cv::integral() 캐니 엣지 검출기 cv::Canny() 허프 변환 ___허프 선 변환 ___허프 원 변환 거리 변환 ___cv::distanceTransform(): 라벨이 없는 거리 변환 ___cv::distanceTransform(): 라벨이 붙는 거리 변환 세그멘테이션 ___색 채움(Flood Fill) ___그랩컷 ___평균 이동 세그멘테이션 요약 연습 문제
▣ 13장: 히스토그램과 템플릿 OpenCV의 히스토그램 데이터 표현 ___cv::calcHist(): 데이터에서 히스토그램 만들기 히스토그램을 이용한 기본 조작 ___히스토그램 정규화 ___히스토그램 경계값 ___가장 인기 있는 빈 찾기 ___두 히스토그램 비교하기 더 복잡한 히스토그램 메서드 ___불도저 거리 역투영 템플릿 매칭 ___제곱 차이 매칭 메서드(cv::TM_SQDIFF) 요약 연습 문제
▣ 14장: 윤곽선 윤곽선 찾기 ___윤곽선 계층 구조 ___윤곽선 그리기 ___윤곽선 예제 ___다른 윤곽선 예제 ___신속한 연결된 구성 요소 분석 윤곽선을 이용한 더 많은 작업 ___다각형 근사법 ___기하학 및 요약 특성 ___기하학적 테스트 윤곽선과 이미지 매칭 ___모멘트 ___모멘트에 대한 추가 정보 ___Hu 모멘트와 매칭 ___형상 컨텍스트를 사용해 형상 비교하기 요약 연습 문제
▣ 15장: 배경 분리 배경 분리의 개요 배경 분리의 약점 장면 모델링 ___픽셀의 슬라이스 ___프레임 간 차이 평균화된 배경 메서드 ___누적된 평균, 분산, 공분산 더 진보된 배경 분리 메서드 ___구조체 만들기 ___배경 러닝하기 ___움직이는 전경 객체에서 러닝하기 ___배경 차분으로 전경 객체 찾기 ___코드북 배경 모델 사용하기 ___코드북 모델에 대한 몇 가지 생각 배경을 정리하는 연결된 구성 요소 ___빠른 테스트 두 배경 메서드 비교하기 OpenCV에서 배경 분리 구현 ___cv::BackgroundSubtractor 기반 클래스 ___KB 메서드 ___지브코비치 메서드 ___cv::BackgroundSubtractorMOG2 클래스 요약 연습 문제
▣ 16장: 키포인트와 기술자 키포인트와 트래킹의 기초 ___코너 찾기 ___옵티컬 플로우 소개 ___희소 옵티컬 플로우를 위한 루카스-카나데 메서드 일반화된 키포인트와 기술자 ___옵티컬 플로우, 트래킹, 인식 ___OpenCV가 키포인트와 기술자를 제어하는 일반적인 방법 ___핵심 키포인트 검출 메서드 ___해리스-시-토마시(Harris-Shi-Toma ___피처 검출기와 cv::GFTTDetector ___키포인트 필터링 ___매칭 메서드 ___결과 표시하기 요약 연습 문제
▣ 17장: 트래킹 트래킹 개념 밀집 옵티컬 플로우 ___파네백 다항식 확장 알고리즘 ___듀얼 TV-L1 알고리즘 ___단순 플로우 알고리즘 평균 이동과 캠시프트 트래킹 ___평균 이동 ___캠시프트 모션 템플릿 추정기 ___칼만 필터 ___확장 칼만 필터에 대한 간략한 설명 요약 연습 문제
▣ 18장: 카메라 모델과 캘리브레이션 카메라 모델 ___투영 기하학의 기초 ___로드리게스 변환 ___렌즈에 의한 왜곡 캘리브레이션(Calibration) ___회전 행렬과 평행 이동 벡터 ___캘리브레이션용 보드 ___호모그래피 ___카메라 캘리브레이션 왜곡 제거 ___왜곡 제거 지도 ___cv::convertMaps()를 사용해 왜곡 제거 지도의 표현 변환하기 ___cv::initUndistortRectifyMap()을 사용해 왜곡 제거 지도 계산하기 ___cv::remap()을 사용한 이미지의 왜곡 제거 ___cv::undistort()를 사용한 왜곡 제거 ___cv::undistortPoints()를 사용한 희소 왜곡 제거 모두 한꺼번에 캘리브레이션하기 요약 연습 문제
▣ 19장: 투영과 3차원 비전 투영 아핀과 원근 변환 ___조감도 변환 예제 3차원 자세 추정 ___단일 카메라를 이용한 자세 추정 스테레오 이미징 ___삼각 측량 ___에피폴라 기하 구조 ___필수 및 기본 행렬 ___에피폴라 선 계산하기 ___스테레오 캘리브레이션 ___스테레오 정류 ___스테레오 대응 ___스테레오 캘리브레이션, 정류, 대응 코드 예제 ___3차원 재투영을 통한 깊이 맵 모션 구조 2차원 및 3차원 라인 피팅 요약 연습 문제
▣ 20장: OpenCV에서의 머신러닝 기본 머신러닝이란? ___훈련 집합과 테스트 집합 ___지도 러닝과 비지도 러닝 ___생성 모델과 판별 모델 ___OpenCV의 ML 알고리즘 ___비전에서 머신러닝 사용하기 ___변수 중요성 ___머신러닝 문제 진단하기 ML 라이브러리의 레거시 루틴 ___K-평균 ___마할라노비스 거리 요약 연습 문제
▣ 21장: StatModel: 머신러닝을 위한 OpenCV 표준 모델 ML 라이브러리의 일반 루틴 ___훈련과 cv::ml::TrainData 구조체 ___예측 cv::StatModel을 사용한 머신러닝 알고리즘 ___단순/일반 베이즈 분류기 ___바이너리 의사 결정 트리 ___부스팅 ___랜덤 트리 ___기댓값 최대화 ___K-최근접 이웃(KNN) ___다층 퍼셉트론(MLP) ___SVM(서포트 벡터 머신) 요약 연습 문제
▣ 22장: 객체 검출 트리 기반 객체 검출 기법 ___캐스케이드 분류기 ___지도 학습 및 부스팅 이론 ___새로운 객체 훈련 서포트 벡터 머신을 이용한 객체 검출 ___객체 검출을 위한 Latent SVM ___Bag of Words 알고리즘과 의미에 의한 분류 요약 연습 문제
▣ 23장: OpenCV의 미래 과거와 현재 ___OpenCV 3.x 버전 이전에 예측한 내용이 얼마나 맞을까? OpenCV의 미래 ___현재 GSoC(Google Summer of Code) 작업 ___커뮤니티 기여 ___OpenCV.org 인공 지능에 대한 일부 억측 책을 마치며
▣ 부록A: 평면 분할 들로네 삼각 분할, 보로노이 터셀레이션 ___들로네 또는 보로노이 재분할 ___들로네 재분할 탐색하기 ___사용 예제 연습 문제
▣ 부록B: opencv_contrib opencv_contrib 모듈의 개요 ___opencv_contrib의 내용
아드리안 캘러 박사는 사업가이자 실리콘 밸리 딥 러닝 그룹의 설립자다. 그의 연구 작업은 머신러닝, 통계 모델링, 컴퓨터 비전 및 로봇 공학 관련 주제를 포함한다. 그는 스탠퍼드 대학 인공지능 연구소에서 일했고 DARPA 그랜드 챌린지에서 우승한 스탠리 경주팀의 멤버였다.
개리 브래드스키
글작가
개리 브래드스키 박사는 어레이(Arraiy.com)의 CTO로 과거 여러 스타트업 기업에서 직책을 맡았고 스탠퍼드 대학 인공지능 연구소의 컴퓨터 과학과 컨설팅 교수로 재직했다. 그는 OpenCV 라이브러리의 창시자이자 유명 발표자이며 오픈 소스 공동체의 기여자다.
장길호
번역자
정보통신학을 전공했고 DjVu 이미지와 PDF 기반의 전자 문서 솔루션 관련 프로젝트를 해왔다. 최신 C++ 표준 기술과 메타프로그래밍을 통한 표현력 있는 코드의 작성에 관심이 많다.
정태석
번역자
명지대학교 공과대학에서 컴퓨터공학을 전공했다. 영상 보안 전문기업 아이디스에서 S/W 개발을 담당했고 IT 스타트업 “BUILDLIM”을 운영하기도 했다. 현재 안광학의료기기 업체인 HUVITZ에서 안광학S/W 연구원으로 의료영상저장 표준인 DICOM 관련 개발을 담당하고 있다.
정은식
번역자
한국산업기술대학교 컴퓨터공학과에 진학하며 컴퓨터 프로그래밍을 시작했다. C++, 머신러닝, 영상처리, 서버, 최적화 분야에 관심이 많다.
전향란
번역자
cdism.com 소속으로 facebook.com/groups/OpenCPP “C++, OpenSource Study”를 운영하고 있다. 무엇보다 C++ 최신 스펙과 C++의 표현력을 발전시키는 데 관심이 많다. C++ 기반의 오픈 소스 프로젝트를 기획하고 진행한다.
윤훈남
번역자
cdism.com 소속으로 facebook.com/groups/OpenCPP “C++, OpenSource Study”를 운영하고 있다. 무엇보다 C++ 최신 스펙과 C++의 표현력을 발전시키는 데 관심이 많다. C++ 기반의 오픈 소스 프로젝트를 기획하고 진행한다.
신재익
번역자
초등학교 때 GW-Basic과 MS-DOS로 컴퓨터에 입문하고 연세대 대학원에서 C++와 리눅스로 입자물리학을 공부했다. 졸업 후 국립암센터와 한국원자력의학원에서 DICOM 의료 영상과 방사선치료에 대한 GEANT4 몬테카를로 시뮬레이션을 연구했다.
아드리안 캘러 박사는 사업가이자 실리콘 밸리 딥 러닝 그룹의 설립자다. 그의 연구 작업은 머신러닝, 통계 모델링, 컴퓨터 비전 및 로봇 공학 관련 주제를 포함한다. 그는 스탠퍼드 대학 인공지능 연구소에서 일했고 DARPA 그랜드 챌린지에서 우승한 스탠리 경주팀의 멤버였다.