コンピュータビジョンの学習におすすめの書籍
コンピュータビジョンの学習におすすめの書籍
大学の専攻は全くの異分野で、コンピュータビジョンや画像認識の素人だった私が、独学で特許や arXiv の論文を読解できるようになるまでの過程で、役に立った書籍を紹介します。
コンピュータビジョン
ディジタル画像処理
画像処理エンジニア検定の教科書であり、画像処理に携わる際に最初に読む本として、おすすめできます。
CG 系の検定も扱う CG-ARTS 発行のため体裁も美しく、フルカラーでふんだんに例示が含まれており、とても読みやすいです。
もし3次元復元に興味があるなら、3次元復元とレンダリングは表裏一体ですので、同じシリーズの コンピュータグラフィックス もオススメです。
コンピュータビジョンのセカイ - 今そこにあるミライ
マイナビで連載されていた 林 昌希 博士による 2015 年頃までの技術トレンド記事です。後半は、やや点群解析に主軸が移っていきます。
実装の話題は少ないので教養向きです。ADASなどトレンド技術の内容を、無償でわかりやすく理解することができます。
詳解OpenCV3
現代のコンピュータビジョンを語る上で、OpenCV を外すことはできません。OpenCV の提供するアルゴリズムを眺めることで、コンピュータビジョンに含まれる技術分野について、俯瞰することができます。
公式マニュアルも充実しているのですが、学習のためには、本書のように読み物としてまとまっている方が適していると思います。
もっとも、アルゴリズム選定理由が「OpenCV に実装されているから」のように、過剰に思考が拘束されてしまうのは問題ですが。
イラストで学ぶ ディープラーニング
中央大学 MRPG の山下先生の著書ですが、大学教科書のような難解さはなく、異分野出身でもサクサクと全体像をイメージできる内容と感じました。
「ホイールダック2号」で有名な イラストで学ぶ 人工知能概論 のようなコミカルさはないですが、好きなシリーズです。
[画像認識 (機械学習プロフェッショナルシリーズ) ]
T.B.D
ROS
リアルタイムにアームと連携したり、SLAMを解くうえで、ROSの知識は必須です。
詳説ROSロボットプログラミング
ROS のチュートリアルや書籍は色々ありますが、無償かつ日本語でこれだけのボリュームがあるのが素晴らしいです。
実用ロボット開発のためのROSプログラミング
ros control, gmapping, actionlib, pluginlib, rostest など、入門書やチュートリアルでは扱わないが関心の高い内容に踏み込んでいる、貴重な存在です。
数学
ROS や OpenCV はただの開発環境なので普通に解説を読めば理解できます。しかしそこに実装されたアルゴリズムを理解するには、数式がバンバン出てくるので、大学学部レベルの数学知識が必須です。数学が得意ではない私が、社会人になって勉強し直した際に、有用だった本を挙げます。
プログラミングのための線形代数
タイトルの印象に反してプログラムは殆ど出てきませんが、名著と思っています。
行列は写像だ を合言葉に、行列演算の持つ意味をグラフィカルに説明しています。私の大学の講義は、古いアカデミックな教科書に数式が並ぶだけのそっけないものだったため苦手意識がありましたが、本書のイメージを持たせる説明を読み、やっとある程度理解できるようになりました。
実例で学ぶゲーム3D数学
クオータニオンを解説したセガの社内教育資料が話題となったように、3DCG は数学知識の上に構築されています。
そして情報をモデルに基づいて映像化する 3DCG は、映像からモデルを用いて情報を抽出するコンピュータビジョンと双対の関係にあります。そのため、3DCG の数学知識は、そのままコンピュータビジョンに役立つものばかりです。
本書は線形代数がメインですが、それ以外にも物体の衝突判定やレンダリングなどの多岐を扱いながらも、平易な解説でわかりやすいです。
これならわかる最適化数学
大学の教科書なので、上記2冊よりは、やや難解かもしれません。
最適値探査は、実装上は Ceres Solver などのソルバーに頼ってしまうかもしれませんが、その動作原理を掴む上では、一度読んでおきたいです。
ロボティクス
id:meison_amsl さん が紹介しているリストが良いと思います。
私が触れたことがあり、オススメできるのは以下です。
- 確率ロボティクス
- Principles of Robot Motion: Theory, Algorithms, and Implementations (途中で挫折)
- SLAM入門: ロボットの自己位置推定と地図構築の技術
- Udacity : Artificial Intelligence for Robotics Course
Discussion