内容紹介
PyTorchで物体検出アルゴリズムを実装しよう!
本書は、PyTorchを利用して、物体検出のアルゴリズムと実装方法を解説する書籍です。
・ PyTorch(パイトーチ)とは?
2018年にFacebook が発表した、ディープラーニングのフレームワークです。世界的にユーザーが多く、GitHubで公開されるディープラーニングのプログラムもPyTorchで作られたものが多数存在します。
・ 物体検出とは?
画像認識の一分野で、画像から特定の物体の位置と、その物体のカテゴリ(クラスタ)を検出する技術です。
ディープラーニングは当初、物体の識別において従来手法を大きく上回る精度を出したことから注目されました(例:2012年の画像認識コンテストILSVRC)。ただし物体識別自体はどちらかといえば要素技術であるため、そのまま現実のシステムに応用することは多くありません。実際に必要とされるものは、多くの場合、物体識別を発展させた物体検出です。自動運転・外観検査・医療分野の画像診断など、どれも物体識別ではなく物体検出の技術が使われています。
本書は、PyTorchの使いかたを習得することと、物体検出の各種アルゴリズムを理解して自力でプログラムを作れるようになることを目的とします。前半はPyTorchについて解説し、後半は物体検出の代表的なアルゴリズムを解説しながら、PyTorchでの実装例を示します。
<本書の特徴>
・PyTorchを使って物体検出アルゴリズムを実装できるようになります。
・Pythonによるサンプルコードを例示&配布し、自分で手を動かしながら理解を深められます。
このような方におすすめ
◎ 物体検出に携わるエンジニア
○ 深層学習を学んでいる学生
○ PyTorchの使いかたを習得したい方
目次
主要目次
第1章 PyTorch によるプログラミング
第2章 物体検出アルゴリズムSSDの実装
第3章 SSDに関連した話題
詳細目次
はじめに
目次
第1章 PyTorch によるプログラミング
1.1 ニューラルネット
1.1.1 人工知能と関数推定
1.1.2 パラメトリックモデルと回帰
1.1.3 ニューラルネットは関数
1.1.4 ニューラルネットのパラメータ
1.2 最急降下法と誤差逆伝播法
1.2.1 ニューラルネットにおける学習と損失関数
1.2.2 最急降下法
1.2.3 誤差逆伝播法
1.2.4 ミニバッチ学習と確率的勾配降下法
1.3 Define-by-run と自動微分
1.3.1 合成関数と計算グラフ
1.3.2 計算グラフを利用した勾配計算
1.3.3 Define-by-run
1.4 Tensor とNumPy
1.4.1 Tensor の作成
1.4.2 Tensor と数値の四則演算
1.4.3 Tensor どうしの四則演算
1.4.4 Tensor の行列積
1.4.5 Tensor のバッチの行列積
1.4.6 Tensor を扱う関数
1.4.7 Tensor の型と型の変換
1.4.8 Tensor とNumPy と相互変換
1.4.9 Tensor の結合
1.4.10 Tensor の軸の操作
1.4.11 Tensor と自動微分
1.5 PyTorch の学習プログラムの作成
1.5.1 プログラムのひな形
1.5.2 ライブラリの読み込み
1.5.3 学習データの準備
1.5.4 モデルの設定
1.5.5 モデルの生成,最適化アルゴリズムと損失関数の設定
1.5.6 学習
1.5.7 テスト
1.5.8 ミニバッチ
1.5.9 クロスエントロピー
1.5.10 nn.Sequential によるモデル設定と生成
1.5.11 nn.ModuleList によるモデル設定と生成
1.5.12 GPU の利用
1.6 畳み込みニューラルネットワーク
1.6.1 NN とCNN
1.6.2 畳み込み
1.6.3 max pooling
1.6.4 学習の対象
1.6.5 NN による画像識別
1.6.6 CNN による画像識別
1.6.7 Dropout
1.7 複雑なネットワークの学習
1.7.1 層が分岐するネットワーク
1.7.2 複数のモデルの混在
第2章 物体検出アルゴリズムSSDの実装
2.1 物体検出
2.2 ボックスの形式
2.3 デフォルトボックスとオフセット
2.4 特徴量マップと領域
2.5 SSD の処理の概要
2.6 SSD のネットワークモデル
2.7 SSD モデルの実装
2.7.1 vgg ネットワークの実装
2.7.2 extras ネットワークの実装
2.7.3 loc ネットワークの実装
2.7.4 conf ネットワークの実装
2.7.5 L2Norm の実装
2.8 DBox の実装
2.9 SSD のforward 関数
2.10 損失関数の実装
2.10.1 IOU によるDBox の選択
2.10.2 match 関数の実装
2.10.3 利用するNegative DBox の選択
2.10.4 SmoothL1Loss と交差エントロピーによる損失値算出
2.11 学習プログラム全体の実装
2.11.1 学習用データの準備と設定
2.11.2 入力画像の前処理
2.11.3 学習プログラム
2.12 モデル出力からの物体検出処理
2.12.1 Non-Maximum Suppression
2.12.2 detection の実装
2.13 推論プログラムの実装
第3章 SSD に関連した話題121
3.1 既存の画像識別モデルの利用
3.2 SSD のDataLoader
3.2.1 DataLoader 利用の基本3要素
3.2.2 自前のcollate fn
3.2.3 DataLoader を使った学習のループ部分
3.3 SSD のData Augmentation
3.4 物体検出システムの評価方法
3.4.1 物体検出の評価データ
3.4.2 mAP (mean Average Precision)
3.5 アノテーションツール(Labelimg)
3.6 既存モデルの利用
3.7 SSD の転移学習
3.8 SSD の動画への適用
3.9 弱教師あり学習
3.10 他モデルの利用
3.10.1 YOLOv3
3.10.2 M2Det
3.10.3 detectron2
参考文献
索引
続きを見る