yasudacloudの日記

札幌に住むソフトウェアエンジニア

OpenCVに入門する

大型夏休みに突入しました\(^o^)/

 

積読がだいぶ溜まってたので2ヶ月前に買った「OpenCVではじめようディープラーニングによる画像認識」を読み始めました。”はじめよう”とあるように初学者向けに丁寧に書いてあるので読みやすいです。

 

公式は技術評論社のこちら

gihyo.jp

 

書籍の内容そのものには触れず、目次をベースに良かったところや感想を書いていきます。ちなみに今日は5章の終わりまで読みました。

第1章 OpenCVとは

主にOpenCVの概要や歴史、ライセンスについて記載されています。実装と直接関係ないこともあってページ数も少なめで、入りとしてはちょうどいいボリューム。

第2章 OpenCVインストール

幾つかのプラットフォーム毎にインストール方法が記載されていますが、こちらもページ数は結構少なめ。

Dockerを使う場合や自分でソースからビルドする人には参考になりそうです。

第3章 coreモジュール

ここから本格的な実装(API)の話。ページが多く、機能一つ一つにサンプルコードも載っていてイメージしやすいです。

ただ、APIを暗記する必要はないと思っているので「どんなことができるのか」と「書いてあるコードがどういう意味なのか」の2つに注目してざっと流し読み程度で進めました。

第4章 imgprocモジュール

本章でまた難易度が上がります。

画像の色の変換や変形、射影変換といったあまり聞きなれないキーワードが出てきますが、短いコードのわりに結果の画像のクオリティが高くて驚きました。特に射影変換は3章で紹介されていたような画像の反転や分割と違い、これ単体でも1機能(サービス)として提供できるような可能性を秘めている気がします。

あと、後から読み直して気づいたのですがこの章では6章以降のディープラーニングの前処理画像として使用することを想定しているようです。

第5章 imgcodecs,videoioモジュール

こちらはページ数は少ないものの、なかなか良い情報で溢れています。

画像・動画からの読み込み、書き込みに加えてパソコンのカメラを使用する方法も記載されています。自宅のiMacのカメラを難なく起動でき、3章のシンプルな加工も簡単にできました。

これを例えばiOSアプリでOpenCVを勉強しようとするとカメラを使うために実機が必要になったり、画像・動画を引っ張ってくる所を自前で書かないといけないので面倒になります。

ここまでの感想

全体的に文章が読みやすい。ただ、専門用語が連発する所はさすがにきついので自分で調べたり何度も読み直す必要があります。

ちなみに、自分の目的はアプリ側でOpenCVを使いこなすことです。本に書かれているコードは全てPythonのようですが、APIを暗記するというよりOpenCVの理解を深めていくための本だと思っているので言語が違うことはあまり遠回りではないと感じてます。

他にもC#で紹介している本もありましたが、新書だったのでこちらを書いました✊

6章のディープラーニングから更に難易度上がるので結構きつそう。また後日。。