길벗출판사에서 2019년 4월에 발행된 “OpenCV로 배우는 컴퓨터 비전과 머신러닝” 책의 리뷰를 하겠습니다. 저자는 황선규씨이고 패스트캠퍼스에서 진행된 강의를 바탕으로 만들어진 책이라고 합니다. 상당히 두꺼운 책이고 방대한 양을 담고 있습니다. 시중에 있는 OpenCV 책들 중 설명도 내용도 퀄리티가 정말 좋은 책이라고 생각됩니다.
책에 소개된 코드와 추가적인 동영상 파일도 저자분의 깃허브에 공개되어 있습니다. (https://sunkyoo.github.io/opencv4cvml/)
책의 목차는 yes24 페이지에서 확인하실 수 있습니다. (http://www.yes24.com/Product/Goods/71829618)
총 16장에 걸쳐서 기본적인 컴퓨터 비전과 영상에 대한 개념 설명, OpenCV 설치방법과 여러 영상처리 기법들을 사용하는 방법, 그리고 머신러닝과 딥러닝을 활용한 영상처리까지 넓게 다루고 있습니다. 이 리뷰를 보며 책을 살지 고민하는 분들께 추가적인 설명을 드리자면, 리뷰어인 저는 파이썬으로 주로 머신러닝, 딥러닝과 데이터분석을 공부하는 대학원생이고, 파이썬 코딩은 오래 했지만 C++ 경험은 없으며, 딥러닝을 활용한 이미지처리 등은 해 보았지만 영상처리라는 분야에 대한 깊은 이해는 없는 사람입니다. 제 기준에서 느낀 이 책의 장점들은 다음과 같습니다.
1. 영상처리에 대한 기본 내용을 초심자에게 잘 설명하는 책입니다.
앞에서 설명드렸듯이 저는 영상처리에 대한 지식은 별로 없어서 이 책을 바로 접해도 될지 고민이 되었었는데요. 패스트캠퍼스에서 강의하셨던 분의 책이 역시 맞다는 생각이 들었습니다. 기초부터 차근차근 배경과 지식들이 설명되어 있던 점이 좋았습니다.
2. 코드에 대한 설명이 행별로 가독성이 좋게 설명이 정말 잘 되어있습니다.
일반 개발 서적들을 볼 때 불편했던 점이 코드를 이해하는 부분입니다. 코드를 혼자 따라 읽으며 살펴보지만 대체 어느줄이 어떤 설명인지, 이론을 설명하고 코드가 주어져 있는데 이 코드는 왜 그렇다는 건지 부분적으로 이해가 안 될때가 많습니다. 이 책의 큰 장점은 코드에 라인 넘버가 있고 줄별로 설명이 상세하게 주어진다는 것입니다. C++를 처음 접하는 사람들도 다른 프로그래밍 언어를 하시던 분들이라면 주석 코드를 따라서 충분히 이해하며 실제 적용되는 예제들을 따라하실 수 있습니다.
3. 예제와 수학적인 이론에 대한 설명이 친절합니다.
저자께서 책에서 설명하시지만 컴퓨터비전이라는 분야에서 쓰이는 기법들은 수학적인 원리를 많이 사용하기 때문에 고등학생 이상의 수학 지식을 요구합니다. 사용하는 기법들의 뒤에 있는 수학적 원리를 상당히 쉽게 이해할 수 있도록 수식과 그림들을 활용하며 설명되어 있습니다.
4. 머신러닝 패키지를 사용하는 부분에서 알고리즘의 작동원리까지 잘 설명 되어 있습니다.
제가 주로 공부하는 부분이어서 그런지 더 자세히 살펴보게 되었는데요. K-최근접이웃과 SVM등의 머신러닝을 사용하는 방법을 사용법에 그치지 않고 알고리즘에 대한 이해를 할 수 있도록 함께 다른 머신러닝 책들만큼 설명이 잘 되어 있었습니다. 머신러닝과 딥러닝을 사용한 영상처리에 관심이 있으신 분들이라면 재미있고 유용하게 보실 수 있는 챕터입니다.
전반적인 소감
책 내용이 매우 방대해서 모든 예제를 따라해 보지는 못했지만 방학 때 시간을 가지고 연습해 보려 합니다. 전반적으로 기대 이상이었고, 저자께서 완벽주의자가 아닌가 싶을 정도로 책의 내용이 알차고 구성이 정말 좋은 책입니다. 책이 상당히 두껍기 때문에 이 책을 며칠만에 다 보겠다는 작정을 하기 보다는, OpenCV를 처음 사용할 때 가이드로 사용하고, 해보고 싶은 실습들을 찾아서 사전처럼 따라해 보고 참고서처럼 쓰기에 좋은 책이라고 생각됩니다.
이 포스트는 길벗 출판사에서 해당 서적을 지원받고 솔직하게 작성된 리뷰입니다.