詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

Book description

OpenCVの開発者によるベストセラー書の改訂版。最新のC++インタフェースに対応。OpenCVは現在、ロボットの視覚システムだけでなくスマホやパソコンの顔認証、画像アプリやセキュリティ監視の人物検出、製造、医療、自動運転車、ゲームやARアプリ、さらには機械学習に代表される人工知能の研究など、さまざまな分野で利用されています。本書では、カメラ入力やファイル出力といった簡単な使い方から、画像の変換やセグメンテーション、テンプレートマッチング、パターン認識、特徴量、物体や動きのトラッキング、ステレオビジョンからの3Dの再構成、機械学習まで、基礎から丁寧かつ詳細に解説します。関数のリファレンスとしても利用可能です。

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  訳者まえがき
  5.  まえがき
  6.  1章 概要
  7.   1.1 OpenCVとは何か?
  8.   1.2 OpenCVを使うのはだれか?
  9.   1.3 コンピュータビジョンとは何か?
  10.   1.4 OpenCVの起源
  11.    1.4.1 OpenCVのブロック図
  12.    1.4.2 IPPでOpenCVを高速化する
  13.    1.4.3 OpenCVの所有者はだれか?
  14.   1.5 OpenCVをダウンロード、インストールする
  15.    1.5.1 インストール
  16.   1.6 Gitから最新のOpenCVを入手する
  17.   1.7 その他のOpenCVドキュメント
  18.    1.7.1 同梱のドキュメント
  19.    1.7.2 オンラインドキュメントとWiki
  20.   1.8 OpenCVの寄贈リポジトリ
  21.    1.8.1 寄贈コードのモジュールをダウンロードしビルドする
  22.   1.9 移植性
  23.   1.10 まとめ
  24.   1.11 練習問題
  25.  2章 OpenCV入門
  26.   2.1 インクルードファイル
  27.    2.1.1 リソース
  28.   2.2 初めてのプログラム——写真を表示する
  29.   2.3 2つ目のプログラム——動画
  30.   2.4 動き回る
  31.   2.5 簡単な変換
  32.   2.6 少し複雑な変換
  33.   2.7 カメラからの入力
  34.   2.8 AVIファイルへ書き込む
  35.   2.9 まとめ
  36.   2.10 練習問題
  37.  3章 OpenCVのデータ型
  38.   3.1 基本
  39.   3.2 OpenCVのデータ型
  40.    3.2.1 基本の型の概要
  41.    3.2.2 基本の型:深く掘り下げる
  42.    3.2.3 ヘルパーオブジェクト
  43.    3.2.4 ユーティリティ関数
  44.    3.2.5 テンプレート構造
  45.   3.3 まとめ
  46.   3.4 練習問題
  47.  4章 画像と大型配列型
  48.   4.1 動的可変長ストレージ
  49.    4.1.1 cv::Matクラス:N次元の密な配列
  50.    4.1.2 配列の生成
  51.    4.1.3 個々の配列要素へのアクセス
  52.    4.1.4 N変数配列イテレータ:cv::NAryMatIterator
  53.    4.1.5 ブロック単位での配列要素へのアクセス
  54.    4.1.6 行列の演算式:代数とcv::Mat
  55.    4.1.7 飽和型変換
  56.    4.1.8 その他、配列でできること
  57.    4.1.9 cv::SparseMatクラス:疎な配列
  58.    4.1.10 疎な配列の要素へのアクセス
  59.    4.1.11 疎な配列に特有の機能
  60.    4.1.12 大型配列型用のテンプレート形式
  61.   4.2 まとめ
  62.   4.3 練習問題
  63.  5章 配列の演算
  64.   5.1 配列でできる多様な処理
  65.    5.1.1 cv::abs()
  66.    5.1.2 cv::absdiff()
  67.    5.1.3 cv::add()
  68.    5.1.4 cv::addWeighted()
  69.    5.1.5 cv::bitwise_and()
  70.    5.1.6 cv::bitwise_not()
  71.    5.1.7 cv::bitwise_or()
  72.    5.1.8 cv::bitwise_xor()
  73.    5.1.9 cv::calcCovarMatrix()
  74.    5.1.10 cv::cartToPolar()
  75.    5.1.11 cv::checkRange()
  76.    5.1.12 cv::compare()
  77.    5.1.13 cv::completeSymm()
  78.    5.1.14 cv::convertScaleAbs()
  79.    5.1.15 cv::countNonZero()
  80.    5.1.16 cv::cvarrToMat()
  81.    5.1.17 cv::dct()
  82.    5.1.18 cv::dft()
  83.    5.1.19 cv::cvtColor()
  84.    5.1.20 cv::determinant()
  85.    5.1.21 cv::divide()
  86.    5.1.22 cv::eigen()
  87.    5.1.23 cv::exp()
  88.    5.1.24 cv::extractImageCOI()
  89.    5.1.25 cv::flip()
  90.    5.1.26 cv::gemm()
  91.    5.1.27 cv::getConvertElem()とcv::getConvertScaleElem()
  92.    5.1.28 cv::idct()
  93.    5.1.29 cv::idft()
  94.    5.1.30 cv::inRange()
  95.    5.1.31 cv::insertImageCOI()
  96.    5.1.32 cv::invert()
  97.    5.1.33 cv::log()
  98.    5.1.34 cv::LUT()
  99.    5.1.35 cv::magnitude()
  100.    5.1.36 cv::Mahalanobis()
  101.    5.1.37 cv::max()
  102.    5.1.38 cv::mean()
  103.    5.1.39 cv::meanStdDev()
  104.    5.1.40 cv::merge()
  105.    5.1.41 cv::min()
  106.    5.1.42 cv::minMaxIdx()
  107.    5.1.43 cv::minMaxLoc()
  108.    5.1.44 cv::mixChannels()
  109.    5.1.45 cv::mulSpectrums()
  110.    5.1.46 cv::multiply()
  111.    5.1.47 cv::mulTransposed()
  112.    5.1.48 cv::norm()
  113.    5.1.49 cv::normalize()
  114.    5.1.50 cv::perspectiveTransform()
  115.    5.1.51 cv::phase()
  116.    5.1.52 cv::polarToCart()
  117.    5.1.53 cv::pow()
  118.    5.1.54 cv::randu()
  119.    5.1.55 cv::randn()
  120.    5.1.56 cv::randShuffle()
  121.    5.1.57 cv::reduce()
  122.    5.1.58 cv::repeat()
  123.    5.1.59 cv::scaleAdd()
  124.    5.1.60 cv::setIdentity()
  125.    5.1.61 cv::solve()
  126.    5.1.62 cv::solveCubic()
  127.    5.1.63 cv::solvePoly()
  128.    5.1.64 cv::sort()
  129.    5.1.65 cv::sortIdx()
  130.    5.1.66 cv::split()
  131.    5.1.67 cv::sqrt()
  132.    5.1.68 cv::subtract()
  133.    5.1.69 cv::sum()
  134.    5.1.70 cv::trace()
  135.    5.1.71 cv::transform()
  136.    5.1.72 cv::transpose()
  137.   5.2 まとめ
  138.   5.3 練習問題
  139.  6章 描画方法とテキスト表示方法
  140.   6.1 図形を描画する
  141.    6.1.1 線画とポリゴンの塗りつぶし
  142.    6.1.2 フォントとテキスト
  143.   6.2 まとめ
  144.   6.3 練習問題
  145.  7章 OpenCVのファンクタ
  146.   7.1 「何かをする」オブジェクト
  147.    7.1.1 主成分分析(cv::PCA)
  148.    7.1.2 特異値分解(cv::SVD)
  149.    7.1.3 乱数生成器(cv::RNG)
  150.   7.2 まとめ
  151.   7.3 練習問題
  152.  8章 画像、動画、データファイル
  153.   8.1 HighGUI:ポータブルなグラフィックスツールキット
  154.   8.2 画像ファイルを扱う
  155.    8.2.1 画像を読み込む、書き込む
  156.    8.2.2 コーデックに関する注意
  157.    8.2.3 圧縮と展開
  158.   8.3 動画を扱う
  159.    8.3.1 cv::VideoCaptureオブジェクトを用いて動画を読み込む
  160.    8.3.2 cv::VideoWriterオブジェクトを用いて動画を書き出す
  161.   8.4 データの保存
  162.    8.4.1 cv::FileStorageに書き込む
  163.    8.4.2 cv::FileStorageから読み込む
  164.    8.4.3 cv::FileNode
  165.   8.5 まとめ
  166.   8.6 練習問題
  167.  9章 クラスプラットフォームとネイティブウィンドウ
  168.   9.1 ウィンドウで作業する
  169.    9.1.1 HighGUIネイティブのグラフィカルユーザーインタフェース
  170.    9.1.2 Qtバックエンドで作業する
  171.    9.1.3 OpenCVと他のGUIツールキットを統合する
  172.   9.2 まとめ
  173.   9.3 練習問題
  174.  10章 フィルタとコンボリューション
  175.   10.1 概要
  176.   10.2 始める前に
  177.    10.2.1 フィルタ、カーネル、コンボリューション
  178.    10.2.2 境界線の外挿と境界条件
  179.   10.3 閾値処理
  180.    10.3.1 大津のアルゴリズム
  181.    10.3.2 適応型閾値処理
  182.   10.4 平滑化
  183.    10.4.1 単純平滑化とボックスフィルタ
  184.    10.4.2 メディアンフィルタ
  185.    10.4.3 Gaussianフィルタ
  186.    10.4.4 バイラテラルフィルタ
  187.   10.5 微分と勾配
  188.    10.5.1 Sobel微分
  189.    10.5.2 Scharrフィルタ
  190.    10.5.3 Laplacian
  191.   10.6 画像のモルフォロジー
  192.    10.6.1 膨張と収縮
  193.    10.6.2 汎用的なモルフォロジー関数
  194.    10.6.3 オープニングとクロージング
  195.    10.6.4 モルフォロジーの勾配演算
  196.    10.6.5 トップハットとブラックハット
  197.    10.6.6 自前のカーネルを作成する
  198.   10.7 任意の線形フィルタによるコンボリューション
  199.    10.7.1 cv::filter2D()を用いて汎用フィルタを適用する
  200.    10.7.2 cv::sepFilter2D()を用いて汎用的な分離可能フィルタを適用する
  201.    10.7.3 カーネルを作る
  202.   10.8 まとめ
  203.   10.9 練習問題
  204.  11章 画像変換
  205.   11.1 概要
  206.   11.2 拡大、縮小、ワープ(歪曲)、回転
  207.    11.2.1 均一なリサイズ
  208.    11.2.2 画像ピラミッド
  209.    11.2.3 不均一写像
  210.    11.2.4 アフィン変換
  211.    11.2.5 透視変換
  212.   11.3 汎用的な写像
  213.    11.3.1 極座標変換
  214.    11.3.2 対数極座標(LogPolar)
  215.    11.3.3 任意の写像
  216.   11.4 画像修復
  217.    11.4.1 修復
  218.    11.4.2 ノイズ除去
  219.   11.5 ヒストグラムの平坦化
  220.    11.5.1 cv::equalizeHist():コントラストの平坦化
  221.   11.6 まとめ
  222.   11.7 練習問題
  223.  12章 画像解析
  224.   12.1 概要
  225.   12.2 離散フーリエ変換
  226.    12.2.1 cv::dft():離散フーリエ変換
  227.    12.2.2 cv::idft():逆離散フーリエ変換
  228.    12.2.3 cv::mulSpectrums():スペクトル乗算
  229.    12.2.4 DFTを用いたコンボリューション
  230.    12.2.5 cv::dct():離散コサイン変換
  231.    12.2.6 cv::idct():逆離散コサイン変換
  232.   12.3 積分画像
  233.    12.3.1 標準の積分計算用のcv::integral()
  234.    12.3.2 二乗和積分用のcv::integral()
  235.    12.3.3 傾斜和積分用のcv::integral()
  236.   12.4 Cannyエッジ検出器
  237.    12.4.1 cv::Canny()
  238.   12.5 Hough変換
  239.    12.5.1 Hough線変換
  240.    12.5.2 Hough円変換
  241.   12.6 距離変換
  242.    12.6.1 ラベルなし距離変換用のcv::distanceTransform()
  243.    12.6.2 ラベル付き距離変換用のcv::distanceTransform()
  244.   12.7 領域分割
  245.    12.7.1 フラッドフィル処理
  246.    12.7.2 Watershedアルゴリズム
  247.    12.7.3 Grabcuts
  248.    12.7.4 平均値シフト分割
  249.   12.8 まとめ
  250.   12.9 練習問題
  251.  13章 ヒストグラムとテンプレートマッチング
  252.   13.1 OpenCVでのヒストグラムの表現
  253.    13.1.1 cv::calcHist():データからヒストグラムを作成する
  254.   13.2 ヒストグラムの基本操作
  255.    13.2.1 ヒストグラムの正規化
  256.    13.2.2 ヒストグラムの閾値
  257.    13.2.3 最も値の大きいビンを見つける
  258.    13.2.4 2つのヒストグラムを比較する
  259.    13.2.5 ヒストグラムの使用例
  260.   13.3 もう少し洗練されたヒストグラムの手法
  261.    13.3.1 EMD(搬土距離)
  262.    13.3.2 バックプロジェクション
  263.   13.4 テンプレートマッチング
  264.    13.4.1 二乗差分マッチング手法(cv::TM_SQDIFF)
  265.    13.4.2 正規化二乗差分マッチング手法(cv::TM_SQDIFF_NORMED)
  266.    13.4.3 相互相関マッチング手法(cv::TM_CCORR)
  267.    13.4.4 正規化相互相関マッチング手法(cv::TM_CCORR_NORMED)
  268.    13.4.5 相関係数マッチング手法(cv::TM_CCOEFF)
  269.    13.4.6 正規化相関係数マッチング手法(cv::TM_CCOEFF_NORMED)
  270.   13.5 まとめ
  271.   13.6 練習問題
  272.  14章 輪郭
  273.   14.1 輪郭を見つける
  274.    14.1.1 輪郭の階層
  275.    14.1.2 輪郭を描画する
  276.    14.1.3 輪郭の例
  277.    14.1.4 もう1つの輪郭の例
  278.    14.1.5 高速な連結成分の解析
  279.   14.2 輪郭に対してさらに何かを行う
  280.    14.2.1 ポリゴン近似
  281.    14.2.2 幾何形状と特徴の要約
  282.    14.2.3 幾何形状的な調査
  283.   14.3 輪郭と画像をマッチングする
  284.    14.3.1 モーメント
  285.    14.3.2 モーメントの詳細
  286.    14.3.3 Hu不変モーメントを用いてマッチングを行う
  287.    14.3.4 Shape Contextを用いて形状を比較する
  288.   14.4 まとめ
  289.   14.5 練習問題
  290.  15章 背景除去
  291.   15.1 背景除去の概要
  292.   15.2 背景除去の弱点
  293.   15.3 シーンのモデル化
  294.    15.3.1 ピクセル集合の断面
  295.    15.3.2 フレーム差分
  296.   15.4 平均背景法
  297.    15.4.1 平均、分散、共分散を累積する
  298.   15.5 より高度な背景除去手法
  299.    15.5.1 クラス
  300.    15.5.2 背景を学習する
  301.    15.5.3 動く前景の物体も含めて学習する
  302.    15.5.4 背景差分:前景物体を見つける
  303.    15.5.5 コードブック背景モデルを使う
  304.    15.5.6 コードブックモデルに対するさらなる考察
  305.   15.6 前景除去のための連結成分
  306.    15.6.1 クイックテスト
  307.   15.7 背景手法を比較する
  308.   15.8 OpenCVの背景除去のカプセル化
  309.    15.8.1 cv::BackgroundSubtractor基底クラス
  310.    15.8.2 KaewTraKulPong and Bowdenの手法
  311.    15.8.3 Zivkovic法
  312.   15.9 まとめ
  313.   15.10 練習問題
  314.  16章 キーポイントと記述子
  315.   16.1 キーポイントとトラッキングの基礎
  316.    16.1.1 コーナー検出
  317.    16.1.2 オプティカルフローの概要
  318.    16.1.3 Lucas-Kanade法による疎なオプティカルフロー
  319.   16.2 一般化されたキーポイントと記述子
  320.    16.2.1 オプティカルフロー、追跡、認識
  321.    16.2.2 OpenCVによるキーポイントと記述子の一般的なケースにおける扱い方
  322.    16.2.3 キーポイント検出手法
  323.    16.2.4 キーポイントのフィルタ処理
  324.    16.2.5 マッチングメソッド
  325.    16.2.6 結果を表示する
  326.   16.3 まとめ
  327.   16.4 練習問題
  328.  17章 トラッキング
  329.   17.1 トラッキングの概念
  330.   17.2 密なオプティカルフロー
  331.    17.2.1 Farnebäckの多項式展開アルゴリズム
  332.    17.2.2 Dual TV-L1アルゴリズム
  333.    17.2.3 Simple Flowアルゴリズム
  334.   17.3 平均値シフトとCamshiftトラッキング
  335.    17.3.1 平均値シフト
  336.    17.3.2 Camshiftアルゴリズム
  337.   17.4 モーションテンプレート
  338.   17.5 推定器
  339.    17.5.1 Kalmanフィルタ
  340.    17.5.2 拡張Kalmanフィルタに関する簡単な説明
  341.   17.6 まとめ
  342.   17.7 練習問題
  343.  18章 カメラモデルとキャリブレーション
  344.   18.1 カメラモデル
  345.    18.1.1 射影幾何の基本
  346.    18.1.2 ロドリゲス変換
  347.    18.1.3 レンズ歪み
  348.   18.2 キャリブレーション
  349.    18.2.1 回転行列と平行移動ベクトル
  350.    18.2.2 キャリブレーションボード
  351.    18.2.3 ホモグラフィ
  352.    18.2.4 カメラキャリブレーション
  353.   18.3 歪み補正
  354.    18.3.1 歪み補正マップ
  355.    18.3.2 cv::convertMaps()を用いて歪み補正マップの表現を変換する
  356.    18.3.3 cv::initUndistortRectifyMap()を用いて歪み補正マップを計算する
  357.    18.3.4 cv::remap()を用いて画像の歪み補正を行う
  358.    18.3.5 cv::undistort()を用いて歪み補正を行う
  359.    18.3.6 cv::undistortPoints()を用いて疎な歪み補正を行う
  360.   18.4 キャリブレーションを全部まとめる
  361.   18.5 まとめ
  362.   18.6 練習問題
  363.  19章 射影変換と3次元ビジョン
  364.   19.1 射影
  365.   19.2 アフィン変換と透視変換
  366.    19.2.1 鳥瞰図変換の例
  367.   19.3 3次元姿勢推定
  368.    19.3.1 単一カメラによる姿勢推定
  369.    19.3.2 cv::solvePnP()を用いて既知の物体の姿勢を計算する
  370.   19.4 ステレオ画像処理
  371.    19.4.1 三角測量
  372.    19.4.2 エピポーラ幾何
  373.    19.4.3 基本行列と基礎行列
  374.    19.4.4 エピポーラ線を計算する
  375.    19.4.5 ステレオキャリブレーション
  376.    19.4.6 ステレオ平行化
  377.    19.4.7 ステレオ対応点探索
  378.    19.4.8 ステレオキャリブレーション、平行化、対応点探索のコード例
  379.    19.4.9 3次元再投影からの奥行きマップ
  380.   19.5 動画像からの3次元復元
  381.   19.6 2次元と3次元の線のフィッティング処理
  382.   19.7 まとめ
  383.   19.8 練習問題
  384.  20章 OpenCVによる機械学習の基本
  385.   20.1 機械学習とは?
  386.    20.1.1 訓練セットとテストセット
  387.    20.1.2 教師あり学習と教師なし学習
  388.    20.1.3 生成的モデルと識別的モデル
  389.    20.1.4 OpenCVのMLアルゴリズム
  390.    20.1.5 機械学習をビジョンで使う
  391.    20.1.6 変数の重要度
  392.    20.1.7 機械学習の問題を診断する
  393.   20.2 MLライブラリの古い関数群
  394.    20.2.1 K-means法
  395.    20.2.2 Mahalanobis距離
  396.   20.3 まとめ
  397.   20.4 練習問題
  398.  21章 StatModelクラス:OpenCVの学習標準モデル
  399.   21.1 MLライブラリの共通ルーチン
  400.    21.1.1 訓練とcv::ml::TrainDataクラス
  401.    21.1.2 予測
  402.   21.2 cv::ml::StatModelを用いた機械学習アルゴリズム
  403.    21.2.1 単純/ノーマルベイズ分類器
  404.    21.2.2 二分決定木
  405.    21.2.3 ブースティング
  406.    21.2.4 ランダムツリー
  407.    21.2.5 期待値最大化
  408.    21.2.6 K近傍法
  409.    21.2.7 多層パーセプトロン
  410.    21.2.8 サポートベクタマシン
  411.   21.3 まとめ
  412.   21.4 練習問題
  413.  22章 物体検出
  414.   22.1 木構造に基づく物体検出テクニック
  415.    22.1.1 カスケード分類器
  416.    22.1.2 教師あり学習とブースティングの理論
  417.    22.1.3 新しい物体を学習する
  418.   22.2 サポートベクタマシンによる物体検出
  419.    22.2.1 物体検出のためのLatent SVM
  420.    22.2.2 Bag of Wordsアルゴリズムと意味カテゴリ化
  421.   22.3 まとめ
  422.   22.4 練習問題
  423.  23章 OpenCVの今後
  424.   23.1 過去と現在
  425.    23.1.1 OpenCV 3.x
  426.   23.2 前回の予言はどれくらいうまくいったか?
  427.   23.3 将来の機能
  428.    23.3.1 現在のGSoCの成果
  429.   23.4 コミュニティからの貢献
  430.    23.4.1 OpenCV.org
  431.   23.5 AIに関する思索
  432.   23.6 あとがき
  433.  付録A 平面分割
  434.   A.1 ドロネー三角形分割、ボロノイ分割
  435.    A.1.1 ドロネーまたはボロノイ細分割区分の生成
  436.    A.1.2 ドロネーの細分割区分を動き回る
  437.    A.1.3 外側の三角形または凸包上の辺を特定し、凸包上を歩く
  438.    A.1.4 使用例
  439.   A.2 練習問題
  440.  付録B opencv_contribモジュール
  441.   B.1 opencv_contribモジュールの概説
  442.    B.1.1 opencv_contribの内容
  443.  付録C キャリブレーションパターン
  444.   C.1 OpenCVで使われるキャリブレーションパターン
  445.  参考文献
  446.  著者・訳者紹介
  447.  奥付

Product information

  • Title: 詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
  • Author(s): Adrian Kaehler, Gary Bradski, 松田 晃一, 小沼 千絵, 永田 雅人, 花形 理
  • Release date: May 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118376

You might also like

book

入門 Python 3 第2版

by Bill Lubanovic, 鈴木 駿, 長尾 高弘

データサイエンスやウェブ開発、セキュリティなど、さまざまな分野で人気を獲得してきているPython。本書は、ベストセラー『入門 Python 3』の6年ぶりの改訂版で、プログラミング初級者を対象としたPythonの入門書です。プログラミングおよびPythonの基礎から、ウェブ、データベース、ネットワーク、並行処理といった応用まで、実践を見据えたPythonプログラミングをわかりやすく丁寧に説明します。Python 3.9に対応し、f文字列などの新機能も追加され大幅にボリュームアップしました。Pythonの機能をひと通り網羅し、リファレンスとしても便利です。

book

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

by David Foster, 松田 晃一, 小沼 千絵

生成型ディープラーニングの解説書。「絵を描く」「曲を作る」といった、これまで人間にしかできないと思われていた創造的な作業を機械に行わせるという、いま最もホットな技術の基礎から応用までをJupyterノートブック環境で実際に試しながら学びます。第I部は基礎編です。機械学習プログラミング、変分オートエンコーダ、GANやRNNなど、生成モデルの作成において重要な基礎技術を学びます。第II部は応用編です。CycleGAN、エンコーダ―デコーダモデル、MuseGANなどのモデルを作成し、作画、作文、作曲といった創造的なタスクに取り組みます。さらには、実環境を用いずにゲームプレイの学習を可能にする、世界モデルを使った強化学習にも取り組みます。

book

詳説 Deep Learning ―実務者のためのアプローチ

by Josh Patterson, Adam Gibson, 本橋 和貴, 牧野 聡, 新郷 美紀

エンタープライズ向けのディープラーニングの解説書。企業でディープラーニングアプリケーションを開発、運用するための実践的な手法を紹介します。対象読者はソフトウェア開発の現場で活躍する実務者。前半はディープラーニング初心者、後半はJavaエンジニア向けの構成です。機械学習、ニューラルネットワークの基礎から始め、ディープラーニングの基本的な概念、実際にチューニングを行う際のベストプラクティス、データのETL(抽出・変換・ロード)の方法、Apache Sparkを用いた並列化について、JavaライブラリDeep Learning4J(DL4J)の開発者でもある著者がわかりやすく丁寧に解説します。

book

ゼロから作るDeep Learning ❹ ―強化学習編

by 斎藤 康毅

人気シリーズの第4弾。今回のテーマは強化学習です。実際のコードを提示し動かしながら学ぶという本シリーズのスタイルを踏襲し、外部ライブラリに頼らず、強化学習を支える基本的な技術やアイデアをゼロから実装しながら学びます。本書では読者が強化学習独特の理論を確実にマスターできるように、強化学習という難解なテーマの構成要素の一つひとつを「理論」と「実践」の双方から丁寧に解説します。数式だけで説明する理論書とは異なり、読者はコードを通してハッとする気づきを数多く得られるでしょう。