Pythonで学ぶ実践画像・音声処理入門

Pythonで学ぶ実践画像・音声処理入門

画像や音声をコンピュータで扱うための基本的な手法を知り,実際にPythonを用いて様々な処理ができるようになることを目指す。

ジャンル
発行年月日
2018/04/27
判型
A5
ページ数
190ページ
ISBN
978-4-339-00902-6
Pythonで学ぶ実践画像・音声処理入門
在庫僅少
在庫が少ない商品です。品切れとなっている場合がございます。

定価

2,750(本体2,500円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介
  • 広告掲載情報

本書は,ディジタルメディアの代表的データである画像や音声をコンピュータで扱うための基本的な手法を知り,実際に読者がPythonを用いて様々な処理ができるようになることを目標としている。

まえがき
本書の目的は,音声や画像などのティジタルメディアを処理するためのプログラミングの基礎を学ぶことです。ディジタルメディア処理の最先端技術の多くは高度な数学に基づいています。それらの技術を習得する第一歩として本書では,理系の大学1,2年生までに学ぶような数学でもさまざまな処理に役立つことを学びます.その際に,なるべく実際の音声データや画像データを処理して実践的な知識を習得することを目指しています。また,コンピュータによる音声や画像の簡単な加工,分析,生成方法を音声処理と画像処理の共通性を意識しながら学ぶことで,データサイエンスの基礎を学ぶことを目的としています。


対象読者
本書は,Python3によるPythonプログラミングの基本知識を備えていることを想定して執筆しました。具体的には,関数,関数の引数,ループを理解していることを想定しています。数学に関しては,高校数学および大学レベルの微積分,線形代数,統計学の基礎知識があることが必要ですが,必要に応じて,基礎的なレベルの教科書を参照すれば十分でしょう。またフーリエ変換については,どのようなものか知っている方がサンプルプログラムを理解しやすいでしょう。

本書の構成
本書では,章の最初に,その章のプログラムに必要なパッケージを示します。説明内容に合わせて,数行のプログラムが示されます。これらのプログラムは,章内では,全部続けて実行することを想定しています。つまり,章の最初の方で値を設定された変数が,後のプログラムで断りなしに使われることもあります。また,章の最初にキーワードを示します。それに関連する数学的な事項を思い出すとよいでしょう。その章で学んだことを定着させるための章末問題も用意しています。これらの問題は,学んだ知識を自分なりに応用するためのヒントになっています。定着させるためには,最後まで自力で考えた方がよいのですが,巻末にはヒントを掲載しました。

本書で想定するPython環境
本書のサンプルプログラムは,Mac OS Sierra上のAnaconda 4.4.0をベースとしたPython3.5の環境で動作確認しています。Windowsなど異なる環境では,出力などが多少異なるのでご留意ください。パッケージのインストール方法などは,サポートサイトに掲載しています。本書で用いた音声や画像データ,本書のために開発したパッケージも本ページからダウンロードできます。本書で用いるパッケージの一覧を次頁に示します。破線の下はcis.pyだけで用いるもので,サンプルプログラムなどで直接使うことはありません。科学技術プログラミングの分野では,本書で紹介したNumPyを基盤とする,さまざまなパッケージが作られています。本書が,そのようなパッケージの利用につながるような音声・画像処理の実践的なPythonプログラミングを習得する一歩になれば幸いです。
2018年2月 著者

1. 簡単な音声処理
1.1 波形データの生成
1.2 1次元データの可視化
1.3 時間波形の重ね合わせ
1.4 時間波形の連結
1.5 読み込んだ音声データの加工
章末問題

2. 簡単な画像処理
2.1 画像の構造
2.2 画像・ビデオの読み込み
2.3 領域の抽出
章末問題

3. 音声のフーリエ変換
3.1 フーリエ変換
3.2 窓関数
3.3 音声のフレーム処理
3.4 逆フーリエ変換
章末問題

4. フィルタ(音声)
4.1 線形フィルタ
 4.1.1 線形システム
 4.1.2 遅延演算
 4.1.3 移動平均フィルタ
4.2 インパルス応答
4.3 IIRフィルタ
4.4 フィルタ設計のツール
章末問題

5. 画像の周波数領域処理
5.1 空間周波数
5.2 2次元フーリエ変換
5.3 周波数領域でのフィルタ処理
5.4 周波数領域での画像の拡大
章末問題

6. 画像の空間領域処理
6.1 2次元畳み込み
6.2 微分演算
6.3 エッジの検出
6.4 非線形フィルタ
章末問題

7. 音声データの相関
7.1 相互相関
 7.1.1 ベクトルの類似度
 7.1.2 相互相関関数
7.2 自己相関
7.3 時間波形のフレーム処理
章末問題

8. 画像データの類似度
8.1 画素のユークリッド距離
8.2 画素の相関の応用
8.3 領域の相関
章末問題

9. 複素信号
9.1 信号の複素指数関数表現
9.2 周波数変調
 9.2.1 瞬時周波数
 9.2.2 周波数変調
 9.2.3 任意の音の周波数変調
章末問題

10. 画像の幾何学的処理
10.1 2次元平面上の回転
10.2 2次元平面上の平行移動
10.3 同次座標表現を用いた変換
10.4 アフィン変換
10.5 射影変換
10.6 複雑な形状の変換
章末問題

11. 分類
11.1 特徴量
 11.1.1 短時間エネルギー
 11.1.2 零交差
11.2 k最近傍分類
11.3 最尤法
章末問題

12. 音声・画像処理の応用
12.1 Wavetable合成
 12.1.1 ADSRエンベロープ
 12.1.2 楽器音からの波形データの抽出
 12.1.3 複数のテンプレートを用いた合成
 12.1.4 長さの変更
 12.1.5 リサンプルによるピッチの変更
12.2 衛星画像の時間変化領域の解析
章末問題

章末問題ヒント
索引

書籍レビュー(@hiro5585様)

Qiitaに詳細を掲載しています。
https://qiita.com/hiro5585/items/01cc0062a101a4f198b1

この書籍は,大きく以下のような特徴があります。
1. Pythonを通じて画像処理・音声処理の基礎を習得できる
2. 画像処理・音声処理を題材としてPythonの数値計算の基礎を習得できる
3. 機械学習のためのハンドクラフト特徴の作り方の基礎を習得できる


内容としては,データ構造など基礎的なことから説明されてあり,そもそも信号がどう表現されていて,プログラム上でどのように扱われているかを最初に説明されていることがよかったです。そして,信号処理の定番であるフーリエ変換について,スペクトルが捉えるものがどういった現象かを,Matplotlibでの可視化結果を踏まえて説明しているのがよかったです。この部分なんとなく使っている人が多い気がするので,再確認する意味でも読むことをおすすめします。最後に応用例として,画像にける画素の分類であったり,音のあるフレームを抽出などが書かれています。

総評すると,信号処理の初学者が一人立ちして研究・開発を行うための入門書としては非常に優れていると思います。また,NumpyやMatplotlibなどの,データ分析では必須となっているライブラリの使い方を実践を伴い学べるのは非常に良いです。

読者モニターレビュー【msageha様(修士課程 学生,専門:コンピュータサイエンス,自然言語処理)】

 本書籍は,画像や音声といったデジタルメディアを処理するための基礎知識を学ぶための書籍です。
 Pythonによるコードが書かれており,実際に手元で動かしながら学べる実践的な内容となっております。
 音声処理では,簡単な時系列波形データの扱いから始まり,フーリエ変換,フィルタ処理,複素信号処理といった音声処理を行う上では欠かせない基礎技術を一通り学ぶことができます。
 画像処理では,読み込み,抽出といった簡単な画像データの扱いから始まり,2次元フーリエ変換による周波数処理,畳み込み演算による空間領域処理,画像の幾何学的処理といった画像処理に対する基礎技術を体系的に学べます。
 大学で学んだ数学的知識が画像・音声処理を通じてどのように役に立つのか知ることで理解が深まるほか,コンピュータによる音声・画像の両データに対する加工,分析,生成方法学ぶことで,音声処理と画像処理の共通性を意識しながら学ぶことが出来る構成になっております。
 画像処理・音声処理に興味がある人やこれから研究や業務で携わる人が最初に読んでおくと,その後,より専門的な書籍や論文にあたる際に手助けになると思います。

読者モニターレビュー【Y様(博士後期課程 学生,専門:信号処理)】

 本書は,Python初心者レベルの読者が音声・画像信号処理の基本技術を学習することを想定して書かれています。数式は必要最低限ながらもサンプルプログラムが充実した構成となっているため,読者はどんどん手を動かして知識を深めることができます。
 本書の特徴は,音声と画像のトピックが交互に展開されているところで,両メディアの信号処理に共通する基礎が段階的に習得できる点です。最終章では,楽器音合成や画像解析といった応用例も紹介されており,信号処理全般やPythonプログラミングに興味を持つ読者にとって非常に良い入門本だと思います。

読者モニターレビュー【kouki様(研究職,専門:信号処理)】

 本書は,音声信号や画像情報をPythonで処理するための基礎から丁寧に説明してくれます。
対象者は,ちょうど大学の研究室に配属された人や,仕事で音声・画像処理を始めることになった人でしょうか。
 Pythonについては,numpyやmatplotlibなど基本的なライブラリのみを使っているので,Python初心者でもはじめやすいでしょう。
 ただし,本書の中ではPythonの環境構築周りの説明は省略されており,Pythonをゼロから始める人は別の書籍も用意したほうが良いと思います(ちなみに、サポートページには環境構築手順があります)。
 構成は,まず音の基礎(波形の生成)からmatplotlibによる可視化でnumpy配列の基本を押さえます。
 その後,画像の読み込み・描画,音のフーリエ変換から画像の周波数処理と,音と画像の処理が交互に説明されています。
 これが読む前は「音と画像分けたほうが良いのでは?」と思いましたが,ちょうど1次元信号の処理から2次元へのステップアップになっていて,結果わかりやすい説明になっていました。
 後半,音についてはWavetable合成について説明されています。Wavetable合成という言葉は聞き慣れなかったのですが,要はディジタルシンセサイザーで用いられる音声合成方法です。
 ここは音楽音響(ピアノなどの楽器音をコンピュータで合成するなど)の範囲になるので,一般的な機械学習の書籍で取り上げられているのは珍しいかと思います。
 画像は,K-means法による画像領域のクラスタリングを行っており,これは機械学習の定番をしっかり押させてるなと思います。
 後半の応用部分は多少物足りなさを感じるかもしれませんが,そこにたどり着くまでの基礎を丁寧に学べる良い本だと思いました。

小泉 悠馬(コイズミ ユウマ)

掲載日:2022/12/28

「電子情報通信学会誌」2023年1月号広告

掲載日:2020/11/02

「日本音響学会誌」2020年11月号広告

掲載日:2020/03/04

日本音響学会 2020年春季研究発表会 講演論文集広告