• 検索結果がありません。

tottori2013-print.key

N/A
N/A
Protected

Academic year: 2021

シェア "tottori2013-print.key"

Copied!
38
0
0

読み込み中.... (全文を見る)

全文

(1)

画像情報処理

Visual Information Processing

筒口 拳

kent@m.ieice.org

鳥取大学 工学部 電気電子工学科

特別講義II

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

1

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像を扱う技術は,TVや映画などの映像をあつかう分野はもちろんのこと,スマホや  タブレットの表示,デジカメなど暮らしの中で欠かすことのできないものです. さらに,医療やロボットなど,ITの最先端の産業分野でも必須のものとなっています. この講義では,さまざまな応用技術の基本となっている画像情報処理について, 基本的な事項から応用技術まで,幅広く解説します. ・情報理論や色空間・JPEGなど,画像処理に関する基礎的な事項を学びます. ・コンピュータビジョンやコンピュータグラフィックスなどの3次元情報を扱う技術,  電子透かしなどの応用技術についても学習します. ・これらの学習を通じ,人間と情報とのインタフェースとしての画像情報について  考察します.    

概要

Guidance 2 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

7/6(土)  ■ 09:00-12:00 ■ 第1部 画像情報処理の基礎    画像データ/数学的基礎/プログラミング  ■ 13:00-16:00 ■ 第2部 画像を表現する    画像データの処理/色空間/符号化  ■ 16:00-17:30 ■ 第3部 画像を加工する    プリプロセッシング処理/2値画像処理/特徴抽出/画像処理の応用例 7/7(日)  ■ 09:00-10:30 ■ 第4部 画像を理解する    画像認識・画像理解/機械学習/コンピュータビジョン  ■ 10:30-12:00 ■ 第5部 画像を生成する    コンピュータグラフィックス  ■ 13:00-14:30 ■ 第6部 応用例    電子透かし/画像のベクトル化技術    

授業計画

Guidance 3 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ ディジタル画像処理   ディジタル画像処理編集委員会,CG-ARTS協会(2006) ■ コンピュータ画像処理   田村秀行 編著,オーム社出版局(2002) ■ わかりやすいパターン認識   石井・上田・前田・村瀬 共著,オーム社出版局(1998) ■ コンピュータビジョン ー 視覚の幾何学 ー   佐藤淳 著,コロナ社(1999) ■ コンピュータグラフィックス   コンピュータグラフィックス編集委員会,CG-ARTS協会(2006)

参考書

Guidance 4

(2)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像情報処理

1

画像情報処理の基礎

5

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

視覚にかかわるさまざまな情報を,

画像データを介して処理する技術のこと,と定義します

■ 画像処理

 画像から何らかの特徴を抽出する技術  特徴を抽出しやすくするために画像の色情報を変換する技術

■ コンピュータ・ビジョン

 画像から何らかの構造を抽出し,現実の構造を仮想的に復元する技術  画像から何らかの意味を抽出し,現実世界を理解する技術

■ コンピュータ・グラフィックス

 コンピュータにデータを与えて可視化したり仮想的な構造を構築する技術  コンピュータにデータを与えて画像やアニメーションを生成・表示する技術

画像情報処理

1. 画像情報処理の基礎 6 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像データ

画像データ 1. 画像情報処理の基礎

7

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

空間に色(輝度)情報が連続的に分布しているもの

普通は2次元の長方形に色(輝度)情報が分布したものをさす(3次元画像もある)

この講義ではデジタル画像を対象とします

画像データ

画像とは?

1. 画像情報処理の基礎 8 アナログ画像(analogue image):空間,輝度ともに連続したもの 特徴:オリジナルは唯一で複製すると劣化してしまう/コンピュータでの処理は困難 例:絵の具で描いた絵画/鉛筆で書いた文字や絵/フィルム写真,フィルム映画 デジタル画像(digital image):空間,輝度ともに離散的なもの 特徴:保存,複製が容易で劣化しない/コンピュータでの処理が容易 例:デジカメ写真/CGの画像/地デジ放送やネット画像

(3)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

デジタル画像はどのように表示されているか?

離散化された2次元空間上の「タイル」で表示:近似された画像とみなせる タイルをより多く,小さくするともとの画像に近くなる 画像データ

画素(ピクセル)

1. 画像情報処理の基礎 9

タイルの1つを画素(ピクセル)とよぶ

pixel = picture element

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画素数とは,縦横の画素の数を表します

解像度とも呼ばれますが,解像度は単位長さあたりの画素数(dpi)を表すことも あり,多義的な用語です 画像データ

画素数(解像度)

1. 画像情報処理の基礎 10 解像度16×12 解像度32×24

テキスト

デジカメの「300万画素」はどれぐらい? 1,000×1,000 = 100万なので,だいたい 2,000×1,500 です / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

サイズの変遷

画像データ

画像のサイズ

1. 画像情報処理の基礎 11 XGA: 1024x768 Full HD: 1920x1080 4K: 3840x2160 8K(SHD): 7680x4320 QVGA 320x240 VGA: 640x480 SVGA: 800x600 QVGA 320 x 240 VGA 640 x 480 SVGA 800 x 600 XGA 1024 x 768 HD720 1280 x 720 UXGA 1600 x 1200 Full HD 1920 x 1080 4K 3440 x 2160 8K(SHD) 7680 x 4320 代表的な画像サイズ / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

コンピュータではRGB加色法(混色系の一種)を使います

インクや絵の具はCMYK減色法です 画像データ

色表示のしくみ

1. 画像情報処理の基礎 12 White [R,G,B] = [255, 255, 255] [R,G,B] = [0, 0, 0]Black White [R,G,B] = [255, 255, 255] Red: [R,G,B] = [255,0,0] Magenta [R,G,B] = [255, 0, 255] Blue: [R,G,B] = [0, 0, 255] Yellow [R,G,B] = [255, 255, 0] Green: [R,G,B] = [0, 255, 0] Cyan [R,G,B] = [0, 255, 255] この他,知覚的に表現する顕色系もあります

(4)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

フルカラーではR(赤),G(緑),B(青)各256(=2

8

)階調

256×256×256=16,777,216(約1,670万)色となります 画像データ

色はどれぐらい必要か?

1. 画像情報処理の基礎 13 R:0∼255(28階調) G:0∼255(28階調) B:0∼255(28階調) 他:非透過率(アルファ値)など 256階調(28)は8ビット(1バイト)で表せるので 1画素あたり24ビット(3バイト)必要です / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

液晶ディスプレイではRGBの発光素子が並んでいます

画像データ

表示のしくみ

1. 画像情報処理の基礎 14 White [R,G,B] = [255, 255, 255] / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

RGB各色のフィルタを通して受光するセンサを用います

受光センサは「明るさ」のみを計測します 画像データ

デジカメのしくみ ∼ 受光素子

1. 画像情報処理の基礎 15 3枚の 受光素子 センサ センサ センサ Bだ! Gだ! Rだ! 1枚の 受光素子 高級カメラ 一般カメラ そのまま保存 補間して保存 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

CCDセンサ,CMOSセンサがあります

受光の原理は同じですが,信号の保存の仕方が異なります 画像データ

デジカメのしくみ ∼ CCDとCMOS

1. 画像情報処理の基礎 16

CCD

CMOS

Charge Coupled Device Complementary Metal Oxide Semiconductor

各素子の信号を直列に受け取り まとめて増幅して保存

各素子ごとに信号を増幅し そのまま保存

(5)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

数学的基礎

数学的基礎 1. 画像情報処理の基礎

17

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 10進数の「95」を2進数で表すと?

□ 9510 = 64 + 16 + 8 + 4 + 2 + 1 □ 9510 = 1x26+ 0x25+ 1x24+ 1x23+ 1x22+ 1x21+ 1x20 □ 9510 = 1 0 1 1 1 1 12  

■ 2進数の「101011」を10進数で表すと?

□ 1010112 = 1x25+ 0x24+ 1x23+ 0x22+ 1x21+ 1x20   □ 1010112 = 1x325+ 0x164+ 1x83+ 0x42+ 1x21+ 1x1   □ 1010112 = 325+ 83+ 42+ 21+ 1   □ 1010112 = 47 数学的基礎・情報理論

コンピュータにおける演算(2)

1. 画像情報処理の基礎 18 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 命題に対する演算

□ 命題(proposition):真偽が判定できる文 □ 命題A,Bに対し . . . ・Aではない(否定) ・AかつB(論理積) ・AまたはB(論理和) ・AならばB など 数学的基礎・情報理論

論理演算(Boole代数)

1. 画像情報処理の基礎 19 A B !A A&B A ¦ B A B !A ¦ B T T F T T T T T F F F T F F F T T F T T T F F T F F T T 真偽表 T: true / F: false / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 電子回路で論理演算を実装できる ⇒ 論理ゲート

□ C. E. Shannon が1937年の論文で提唱

A Symbolic Analysis of Relay and Switching Circuits ・電子回路は1本の電線で2通りの情報を送信できる: ⇒ 電圧がかかっている(電流が流れている)か否か ・論理演算の「真」を1,「偽」を0として,1ビット(0か1)の情報で表現 ・電圧がかかっていれば1,そうでなければ0とする 数学的基礎・情報理論

論理演算とコンピュータ

1. 画像情報処理の基礎 20 電源 スイッチ A スイッチB 電源 電源 スイッチA スイッチB スイッチA A&B A ¦ B !A

(6)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

論理否定のルール

全ての

人間は論理的

である

ある

人間は論理的

でない

数学的基礎・情報理論

例題:解説

1. 画像情報処理の基礎 21 である でない かつ/AND または/OR すべての/任意の ある/少なくとも1つの / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 命題「A⇒B」(AならばB)に対し,

□ !B ⇒ !A(BならばA)を「逆」 □ !A ⇒ !B(AでなければBでない)を「裏」 □ !B ⇒ !A(BでなければAでない)を「対偶」   

といい,「A⇒B」が真であれば対偶も真である.

数学的基礎・情報理論

逆・裏・対偶

1. 画像情報処理の基礎 22 A B B A !A !B !B !A 逆 逆 裏 裏 対偶 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

命題「A⇒B」(AならばB)が真であるとき

A ⊂ B

という包含関係にある.

A⇒Bが真,かつ,B⇒Aが真ならばAとBは

同値

である.

数学的基礎・情報理論

包含関係

1. 画像情報処理の基礎 23 A B Venn図 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 命題A,命題Bの論理積・論理和に対し以下が成立する

数学的基礎・情報理論

ド・モルガンの法則

1. 画像情報処理の基礎 24

!(A & B) = !A | !B

!(A | B) = !A & !B

A A&B B A ¦ B

(7)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

情報の「量」を表す単位:ビット

■ 最小の情報量は,2通りの状態を等確率(1/2)でとりうる信号を表すもの:1ビット  ● 4通り(確率1/4ずつ)だと2ビット(00,01,10,11)  ● N通り(確率1/Nずつ)だと log2 N ビット

不確かさ

あいまいさ

を表す指標とも言える

■ 確率Pで発生する信号がもつ情報量は log2 (1/P) = ー log2 P ビット  ●「3割打者が打った」… ー log2 0.3 = 1.74 ビットの情報  ●「9割打者が打った」… ー log2 0.9 = 0.15 ビットしかない 数学的基礎・情報理論

情報量

25 1. 画像情報処理の基礎 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

4個の球のうち1つだけ重く他は同じ重さである

どれが重いかを決めるのに必要な最小の比較回数は?

■ 普通に考えると:  ● 1回め:(A+B)と(C+D)を比較  ● 2回め:重かった方のペアを分けて比較,完了 ■ 情報量から解釈すれば:  ● どの1個が重いかわからない状態(確率1/4):ー log2(1/4) = 2ビットの情報量  ● 天 ではかると天 の左右のどちらが重いかわかる:   - 2通りなので1ビットの情報が得られる…曖昧さが1ビット減る   - 2回の比較で曖昧さがなくなり,0ビットになる 数学的基礎・情報理論

情報量の例

26 A B C D 1. 画像情報処理の基礎 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

見た目が同じ8枚の金貨がある. そのうち1枚は偽物で,わずかに重さが軽い. 天 を使ってこの偽金貨を見つけ出したい. 最も少ない回数で見分けるには,何回はかればよいか. 数学的基礎・情報理論

例題:天 の情報量

1. 画像情報処理の基礎 27 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

金貨が8枚だったので曖昧さ(情報量)は ー log2(1/8) = 4ビットである. これは,「どちらが重い」かをはかる天 を1回使うと,曖昧さが1ビット減るので, 4回の操作が必要なはず. なぜ2回で済んだのか? 数学的基礎・情報理論

例題:天 の情報量:疑問

1. 画像情報処理の基礎 28

(8)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

正弦関数(sin),余弦関数(cos)の特徴

■ 周期的である

■ 何回でも微分できるし,2回微分すると自分自身になる ■ 正規直交性を満たす:

あらゆる関数を sin,cos で表せれば非常に便利

■ 関数 f(x) を,sin x,sin 2x,sin 3x,…,cos x,cos 2x,… で表す ■ そのときの係数も,もとの f(x) から計算することができる 数学的基礎・Fourier 解析

Fourier 解析の考え方

1. 画像情報処理の基礎 29 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 任意の(周期)関数は,Fourier 級数に展開できる:

■ それぞれの係数(Fourier 係数)はもとの関数を使って計算できる:

■ Euler の公式を用いれば sin と cos をまとめて表せる: ■ Fourier 級数と Fourier 係数:

Fourier 級数

1. 画像情報処理の基礎 30 数学的基礎・Fourier 解析 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 周期関数以外にも拡張し,区間も拡張する:  ● Fourier 変換:(係数を求めることに相当)  ● Fourier 逆変換:(もとの関数を展開することに相当) ■ たたみこみ(convolution)  これのFourier変換は となる

Fourier 変換

1. 画像情報処理の基礎 31 数学的基礎・Fourier 解析 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像を2次元の関数と見て正弦波・余弦波に分解したとき

どの成分が多く含まれるか,を分析する

■ 画像の x,y 空間を周波数空間に変換する

Fourier 変換を何に使うのか?

1. 画像情報処理の基礎 32 数学的基礎・Fourier 解析 画素空間 (x, y) 周波数空間 (u, v) 低周波領域

(9)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

3次元空間の点 X を撮像面の点 x に射影(透視投影)し,

さらにデジタル座標系の点 m に変換する

空間の数学

射影:3次元空間から2次元平面へ

1. 画像情報処理の基礎 33 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

ユークリッド空間に無限遠点(∞)を加え,

原点(視点)を取り除いたもの

■ 消失点は無限遠点の像である

■ 平行線は無限遠点で交わっている

■ 平行な面は無限遠の直線で交わっている

透視投影は,3次元射影空間P

3

から2次元射影平面P

2

への

射影である

空間の数学

射影空間

1. 画像情報処理の基礎 34 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

ユークリッド座標の次元をひとつ上げた座標

■ はユークリッド空間の点  を   表す,と解釈する ■ 通常は第4座標値として「1」とすることが多い ■ 第4座標値が0のときは,その方向の無限遠点を表す(これがメリット!) ■ を0でない実数とすると, と はユークリッド空間の同じ点を表す(同値関係) 空間の数学

同次座標 1

1. 画像情報処理の基礎 35 ただし / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

もう1つのメリット:剛体変換を1つの行列で表せる

■ 通常の表記:   3回変換を繰り返すと... ■ 同次座標表記   3回変換を繰り返しても... 空間の数学

同次座標 2

1. 画像情報処理の基礎 36

(10)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

プログラミング

プログラミング 1. 画像情報処理の基礎

37

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

選択肢は多岐にわたる

プログラミング

プログラミング環境:道具の選択

1. 画像情報処理の基礎

OS

Windows C/C++ Objective-C Java エディタ VisualStudio コンパイラ ライブラリ 38 iOS android Linux MacOS JavaScript Ruby デバッガ eclipse XCode CYGWIN / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

基本的にはC++を用いた方がライブラリが豊富

プログラミング

プログラミング言語

1. 画像情報処理の基礎 継承して機能追加が可能 C言語の上位互換である

C

ANSI標準化されている クラス:構造体にメンバ関数がついたもの 39 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

なぜこれらのツールが必要か?

プログラミング

画像処理プログラミングに必要なツール

1. 画像情報処理の基礎 40 OS 全ての作業を行うため パッケージツール 様々なライブラリをそろえるため コーディングツール ソースコードを書いたり命令を実行したりするため コンパイラ ソースコードをネイティブコードに変換するため 画像処理ライブラリ 画像データに変更を加えるため 画像描画ライブラリ 画像の内容を表示用メモリに書き込むため 画像入出力ライブラリ 画像ファイルを読み書きするため GUIライブラリ 画像表示ウィンドウやマウス,キーボードを扱うため

(11)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

私の環境は以下の通り(あくまで一例です)

プログラミング

画像処理プログラミングに必要なツール

1. 画像情報処理の基礎 41 OS MacOS パッケージツール Homebrew または MacPorts コーディングツール Emacs + ターミナル コンパイラ gcc(MacOS標準) 画像処理ライブラリ OpenCV または自作 画像描画ライブラリ OpenGL 画像入出力ライブラリ OpenCV または JPEG,libpng GUIライブラリ GLUT / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

プログラミング

プログラム開発の流れ

1. 画像情報処理の基礎 どのようなプログラムを書くか決める プログラムを書き,保存する(.cppや.h ができる) コンパイルする(.oができる) リンクする(.exeができる) No Yes プログラムを実行する 原因を見つけ出す うまくいったか? END START 42 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

プログラミング

画像処理プログラムを実行するということ

1. 画像情報処理の基礎 プログラム ※プログラムもメモリ内に読み込まれる 画像ファイル JPEG PNG ... 画像ファイル JPEG PNG ... 画像データ (memory内) 読込 処理 出力 CPU/GPU 43 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

プログラム言語(人間)から機械語への翻訳のこと

プログラミング

コンパイルとは

1. 画像情報処理の基礎 内容 保存形式 拡張子 データ処理などの方法 命令セット 文法 プログラミング言語仕様 機械語特有 テキストファイル バイナリファイル .h/.cpp 等 .o/.obj/.lib/.dll/.exe 等 対象 人間 コンピュータ ソースコード ネイティブコード 44

(12)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像情報処理

2

画像を表現する

45

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像データの処理

画像データの処理 2. 画像を表現する

46

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

C/C++では unsigned char 型(符号なし1バイト)が

色データを表すのに適しています

画像データの処理

色データのプログラムでの扱い

2. 画像を表現する

2 2 2 2 2 2 2 2

× × × × × × ×

=

2

8 47 8ビット=1バイト 1ビット:0か1かの2通り unsigned char 型は 0∼255 までの整数値を記憶できます 例: unsigned char r = 0; // 0が最小値 unsigned char g = 255; // 255が最大値 unsigned char g = 127; // 中間の値 // 0∼255の範囲外の数値を入力するとおかしなことになるので注意 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

表示用メモリ(フレームバッファ)に色データを記憶します

画像データの処理

色データのプログラムでの表示

2. 画像を表現する 色データに対応する色でディスプレイを発光させます 実行 (OS) では,プログラムではデータをどう表せばよいのでしょうか? 48 プログラム フレームバッファ ディスプレイ // 16x12のデータ領域を確保する unsigned char data[16*12*3]; // (i, j)を黄色にする data[i,jに相当する場所の赤] = 255; data[i,jに相当する場所の緑] = 255; data[i,jに相当する場所の青] = 0; // 表示させる命令 glDrawPixels(..., data);

(13)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

2次元タイル(格子またはブロック)と考えます

■ 大抵のプログラミング言語は0から数え始めるので,横W画素,縦H画素のとき,   横方向は[0∼W-1],縦方向は[0∼H-1]   の範囲となります ■ 縦横のサイズと,1画素に何バイト必要かでデータ量が異なります   普通は,W×H×3バイト(RGB)のデータとなります 画像データの処理

画像データの扱い

2. 画像を表現する W画素 H画素 49 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

ややこしいことに,2通りの座標系が混在しています

■ ライブラリがどちらかを使っているときはそれに従わざるを得ませんが,   「自分はこちらを基本とする」という考え方を決めておくとよいでしょう 画像データの処理

画像座標系

2. 画像を表現する 0 1 2 3 4 5 6 7 0 1 2 3 4 5 左上原点 左下原点 50 0 1 2 3 4 5 6 7 5 4 3 2 1 0 ウィンドウシステムや画像,TVなど 3次元グラフィックスや数学のグラフなど 行列タイプ グラフタイプ / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

さらにややこしいことに,

実数座標系を扱う場合も(たまに)あります

■ この場合は座標の範囲は,横[0∼W],縦[0∼H]となります 画像データの処理

画像座標系(実数値)

2. 画像を表現する 51 0 1 2 3 4 5 6 7 1 2 3 4 5 0 1 2 3 4 5 6 7 5 4 3 2 1 6 左上原点 左下原点 ウィンドウシステムや画像,TVなど 3次元グラフィックスや数学のグラフなど 行列タイプ グラフタイプ 8 6 8 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Y座標だけ変換すればOK

■ 機械的に変換できるが縦の画素数を知らないと計算できない  ● 整数値の場合:     x = x     y + y = H - 1  ● 実数値の場合:     x = x     y + y = H 画像データの処理

左上原点・左下原点の座標値の変換

2. 画像を表現する 左上原点では (x, y) = (5, 3) (x', y') = (5, 2)左下原点では 52 0 1 2 3 4 5 6 7 5 4 3 2 1 0 0 1 2 3 4 5

(14)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

第0画素

先頭画素から1バイトずつデータが詰まっています

■ OpenGLでは表示用データを1バイトずつの1次元配列で表す  ● 図の例では,1画素あたり,RGBの3バイトで表現 ■ 画像処理プログラミングとは,つまるところ,このデータのどこかの値を変えること 画像データの処理

参考: OpenGL表示用の画像データ

2. 画像を表現する 0 1 2

R G B

R G B R G B R G B

第2画素のGを変えたいときは,ここにアクセス 画像データ (WxHx3バイト) 53 OpenGLは 左下原点 W×H - 1番目 第1画素 第2画素 第WH-1画素 data[ ] / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

libpng/libjpeg では2次元配列で表されてます

■ 1バイトずつのデータがスキャンラインごとに並ぶ 画像データの処理

参考: ライブラリの画像データフォーマット

2. 画像を表現する

R G B

R G B R G B R G B

R G B

R G B R G B R G B

R G B

R G B R G B R G B

54 data[ ][ ] ibpng/libjpeg は左上原点 第0画素 第1画素 第2画素 第 W-1 画素 第0スキャンライン 第1スキャンライン 第 H-1 スキャンライン 第0スキャンライン 第1スキャンライン 第 H-1 スキャンライン / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

2次元配列で読み込んだデータを1次元配列に変換する!

■ しかも原点が異なります 画像データの処理

参考: PNG/JPEGとOpenGLをつなぐ

2. 画像を表現する frame buffer OpenGL data

memory (allocated data) graphics HDD

PNG file

JPEG file libpng/libjpeg data

55 libpng/libjpeg のデータ形式 左上原点 スキャンラインごとの2次元配列 OpenGL のデータ形式 左下原点 全画素直列の1次元配列 変換プログラムは自分で作る必要があります / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

libpng/libjpegでは1スキャンラインあたりのバイト長は3バイト×横の画素数では なくワード長(4バイト)の倍数となる 画像データの処理

参考: データの数があわないことがある

2. 画像を表現する

R G B

R G B R G B R G B

R G B R G B R G

B B

B 0 0 0

この範囲には画素が持つRGBの値が入っている 余ったところには0が入る 56 ibpng/libjpeg は左上原点 第0スキャンライン 第1スキャンライン 第0画素 第1画素 第2画素 第 W-1 画素 第 i スキャンライン (論理的なデータ) 4バイトごとの並び (実際のデータ)

(15)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

色空間

色空間 2. 画像を表現する

57

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Y成分(明るさ)は多くの情報を含むがU/V成分(色差)は少ない

■ 縦/横の変化が急峻ではない ■ U/Cb=(B-Y)×定数,C/Cr=(R-Y)×定数 ■ U/Vの範囲を -0.5∼0.5 にすると,Cb/Crになる 色空間

RGBをYUV(YCbCr)に変換する

2. 画像を表現する 58 Y Cr Cb R G B / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画素を間引くことで記録するデータ量を減らす

色空間

色差信号(Cb/Cr)のデータを減らす 1

2. 画像を表現する 59 4:4:4フォーマット サンプリング数1 4:2:2フォーマット サンプリング数2/3 4:2:0フォーマット サンプリング数1/2 輝度Y 色差Cb 色差Cr / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Cb/Cr信号を減らしてもノイズはほとんど見えない

色空間

色差信号(Cb/Cr)のデータを減らす 2

2. 画像を表現する 60 Y Cr Cb Y Cr Cb Y Cr Cb 4:4:4 4:2:2 4:2:0 横を1画素ごとに間引く (総画素数 2/3) 縦横とも1画素ごと間引く (総画素数 1/2) Cb・Cr(色差)に含まれる情報は少ない (縦横の変化が急ではない)

(16)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

符号化

符号化 2. 画像を表現する

61

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

空間 x,y の関数として「高さ」で表すことができる

 ● サンプル数:解像度(縦横それぞれ数百∼数千)  ● 通常は8ビット/サンプル(カラーだと3倍) 符号化

メディア信号(画像)

2. 画像を表現する 62 35 40 41 45 42 40 41 42 46 44 60 50 50 53 49 80 85 53 57 57 105110111 85 60

f(x,y)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

空間および時間の関数

■ HDTVの場合  ● サンプリング間隔 30Hz  ● 解像度 1920×1080  ● 24ビット/サンプル 符号化

メディア信号(映像)

2. 画像を表現する 63 時間(t) 1/30秒 1フレーム (静止画像)

f(x,y,t)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

データサイズが 1/N になれば

■ 1/Nの容量の媒体(ネットワーク,メモリなど)に入る ■ 媒体がN倍になったのと同じ効果をあげられる

実例

■ 電話 … 64kbps の信号を 4∼8 kbps に圧縮 ■ MP3 … 1.4MbpsのCD信号を128kbps に圧縮 ■ 地上波デジタル放送 … 1Gbps の信号を 200Mbps に圧縮

映像・音声の広帯域化は進行中

■ モノラル信号 → ステレオ信号 → 5.1チャネル → 22.2チャネル(SHV) ■ 標準TV映像 → HDTV(6倍)→ デジタルシネマ(4倍)→ SHV(4倍) 符号化

なぜ圧縮効率のよい符号化が必要か?

2. 画像を表現する 64

(17)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

関数を「基本的な形」に分解する(一次結合で表す)

節タイトル

Fourier 変換の直感的解釈

2. 画像を表現する 65

× F

1

× F2

× F3

× F4

・・・・・

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

縦縞に分解できる(横縞も同様に可能)

符号化

2次元のFourier変換

2. 画像を表現する 66 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

JPEGで用いられている変換方式(Fourier変換の仲間)

節タイトル

離散コサイン変換

discrete Cosine Transform, DCT

2. 画像を表現する 67

低周波成分に集中

8×8DCTの例

!余弦波(cos)を使って変換 !1980年代に実用化された技術  !画像信号をより圧縮向きに変換 !量子化と合わせて情報量を大幅に削減 !ブロック単位で実施 !高速算法あり / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

1. 色差成分を圧縮(Cb,Cr成分を間引く) 2. 周波数成分に変換(DCT),高周波部分をカットしてもとに戻す 3. ハフマン符号化を用いる:出現確率の多い情報に短いコードを付与 節タイトル

JPEG圧縮のしくみ

2. 画像を表現する 68 低周波成分に 集中 元画像 JPEG Cb・Crを間引く 離散コサイン変換 ハフマン符号化 高周波成分をカット

(18)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像情報処理

3

画像を加工する

69

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

関係のない特徴を抑制し,重要な特徴を浮き彫りにする

■ 各画素の明度変換 ■ 幾何学的変換 ■ 近傍画素の情報による処理(平滑化・エッジ処理など) ■ 原画像の知識を用いた画像復元 ...など pre-processing

画像の前処理

3. 画像を加工する 70 前処理 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画素の輝度値を数式により変換する

■ ヒストグラム変換

■ グレースケール変換

■ 反転

■ ポスタリゼーション

■ 2値化

pre-processing

画素の明度変換

3. 画像を加工する 71 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像の位置を変換する

■ レンズ歪みの補正

■ アフィン変換 (回転・平行移動・拡大・縮小・傾斜)

実数座標値で計算を行う

■ 変換の前後で対応する画素の位置にずれが生じる

■ 間の画素値は補間計算を行う

pre-processing

幾何学的変換

3. 画像を加工する 72

(19)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

処理対象画素とその周辺の画素の値から新しい値を計算

■ 全画素に適用すると明るさの凸凹が軽減されて「ぼかし」の効果が出ます ■ 処理対象画素が画像の端にある場合は存在しない画素を計算から除外する工夫が必要 pre-processing

平滑化処理

3. 画像を加工する 73 もとの輝度画像 変換後の画像 L[P'] = ( 1 L[P1]+1 L[P2]+1 L[P3]+1 L[P4]+1L[P] +1 L[P5]+1 L[P6]+1 L[P7]+1 L[P8] )

P

P

1

P

2

P

3

P

6

P

7

P

8

P

4

P

5 1 9

P'

フィルタの係数マトリクス

&

全体の明るさが変わらないように,フィルタの係数の和は1になるようにします. この例では係数がすべて同じ値なので,平均を取るのと同じことになります. 1 9

1

1 1 1

1 1 1

1

1

×

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

係数マトリクス:処理画素中心のGauss分布に従う

■ 普通に計算すると時間がかかるのであらかじめ計算して整数値にしておくことが多い

pre-processing

Gaussian フィルタ

3. 画像を加工する

L' [a][b] = ∑ij exp(- { (i-a)

2 + (j-b)2 } / 2σ2) L[a+i][b+j] L[i][j] : (i,j)画素の明るさ σ : ガウス分布の標準偏差 ∑ij exp(- { (i-a)2 + (j-b)2 } / 2σ2) 処理画素位置 係数の値 周辺画素位置 74 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

近傍画素の中間値を出力値とする

■ エッジがぼけにくい ■ スパイクノイズやランダムな白色ノイズに対し有効 ■ 細い線や角が保存されにくい pre-processing

メディアンフィルタ

3. 画像を加工する 75 61 96 41 57 60 34 24 30 31 61 96 41 57 165 34 24 30 31 61 96 41 57 41 34 24 30 31 入力画像 平均だと60 中間値だと41 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像の高周波成分を強調し人にみえやすくする 

■ 対象画素と周辺の画素の輝度値の差を強調する pre-processing

先鋭化

3. 画像を加工する 76 -1 -1 -1 -1 9 -1 -1 -1 -1 0 -1 0 -1 5 -1 0 -1 0 4近傍 8近傍

(20)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画素の輝度値をあるしきい値で白黒2色に分ける

 ● 図形や文字の解析に便利  ● 対象物やシーンの識別に利用できる  ● 幾何学的な概念を定義できる ■ アルゴリズムにもよるが,値あり…1,値なし…0 とすることが多い ■ ある画素が隣の画素とつながっているかどうか(連結性)が重要  ● つながっているまとまり…連結成分 2値画像処理

2値画像処理

3. 画像を加工する 77 4-連結 上下左右だけつながっている 8-連結 ナナメもつながっている / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

連結成分ごとに異なった番号を割り振ること

■ 各連結成分を識別するため ■ 連結のしかた(4-連結・8-連結)により結果が異なる  ● 下の例では,4-連結では4成分,8-連結では2成分 2値画像処理

ラベリング

3. 画像を加工する 8-連結とすると 上下左右,ナナメに つながっている 注目画素 78 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

1. 左下から1画素ずつ,注目画素の下3画素,左1画素(調査画素)を調べる 2. (1)既にラベル付の調査画素があれば,その中で最も若い番号を注目画素につける 2. (2)調査画素の中に異なるラベル番号の画素があれば,対応表をつけておく 2. (3)ラベル付の調査画素がなければ,新しいラベル番号を発行して注目画素につける 3. 対応表に基づいて,連結しているけれど異なるラベル番号のものを同じ番号に える  ● 下図の例では調査画素に「1」と「2」があるが若い番号の「1」を付与する  ● 「1」と「2」がつながっている,という情報を記憶しておく 2値画像処理

ラベリングの基本アルゴリズム 1

3. 画像を加工する 1 2 1 下3画素,左1画素を調べる 1 1 1 1 1 2 1 1 2 1 1 1 1 2 1 1 2 調査画素 79 注目画素 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

4. 調査する画素に異なる番号のラベルがあったら対応表(Lookup table)に記録する  ● このルックアップテーブルをどうつくるかが効率的な処理のポイント 2値画像処理

ラベリングの基本アルゴリズム 2

3. 画像を加工する 対応表(ルックアップテーブル) に記録していく 2 1 3

=

1 3 1 1 1 1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 アルゴリズムに従って ラベル番号をつけていく ルックアップテーブルに従って 番号を付け直す

=

80 Look Up Table 3==1がわかる 2==1がわかる 新しいラベル番号

(21)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

2画像間の対応点を見つけるために用いられる

■ コーナー検出オペレータ

 ● Moravec オペレータ

 ● Harris オペレータ

■ 局所特徴量

 ● SIFT

 ● SURF

特徴抽出

特徴点の抽出

3. 画像を加工する 81 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

人工物の検出や矩形領域の検出に用いられる

■ 線検出オペレータ

■ ハフ変換(Hough transform)

 直線の方程式を   ρ=x cosθ+y sinθ  で表し,(ρ, θ) 空間でもっともらしいものを見つける  ● 特徴点が不連続でも,ノイズがあっても良好に検出可能  ● 円や楕円にも応用可能 特徴抽出

直線の抽出

3. 画像を加工する 82 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

明るさが急激に変化している部分を抽出する

■ 周辺画素との比較により各画素に付加される属性 ■ 大きさと方向から求めることができる  ● 大きさ:明度変化の度合い  ● 方向:変化の度合いが最大になる向き ■ さまざまなオペレータが提案されている  ● Laplacian オペレータ  ● Roberts オペレータ  ● Prewitt オペレータ  ● Sobel オペレータ 特徴抽出

エッジ検出

3. 画像を加工する 83 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

特徴の類似した連結画素集合を領域として求める処理

■ 再帰分割

■ ミーンシフト

■ グラフカット

■ watershed

特徴抽出

領域分割

3. 画像を加工する 84

(22)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像情報処理

4

画像を理解する

85

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像に対し,意味レベルまで踏み込んで解析を行うこと

■ それは何を撮影したものであるか ■ それはどのように分類すべきか ■ それは画像Aと同じ内容であるかどうか

■ 類似画像検索 ■ 有害画像フィルタリング ■ 監視・モニタリング ■ 著作権管理 ■ 顔検出 ... 画像理解・画像認識

画像理解・画像認識

4. 画像を理解する 86 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

未知の画像をどう分類するか:2者択一が基本

■ 何らかの特徴量を計算し,類似したカテゴリーに分離する  ● ヒストグラム  ● 局所特徴量  ● ラベル ■ 学習により分類の精度を上げていく  ● サポートベクターマシン  ● ニューラルネットワーク など 画像理解・画像認識

画像の分類

4. 画像を理解する 87 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

機械学習

機械学習のパラダイム

4. 画像を理解する 88

模倣対称

学習パラダイム

概要

生物進化 進化的計算 生物進化過程(淘汰,突然変異)を模倣 動物行動 強化学習 報酬と罰によって環境に適した行動パターンを模倣 人間の脳 ニューラルネットワーク 神経回路網を模倣 人間の情報処理 機能学習,演繹学習 人間の認知過程を模倣

(23)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

複雑な問題,計算量の多い問題が得意

 □ 多量のデータを扱う組合せ問題,非線形問題の最適化処理が得意.

適用領域が広い

 以下のような問題にも適用可能  □ 問題の解き方がわかっていないような問題  □ 解の空間構造が不明である問題  □ 全探索が不可能なほどの膨大なデータを扱わねばならない問題

■ 欠点

 □ パラメータやコーディングに対する一般的なモデルがない  □ 問題に対する一般的な解法が存在しない  □ 得られた解が真かどうかの保証が(一般的には)ない 機械学習: 進化的計算

進化的計算の特徴

4. 画像を理解する 89 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 生物の進化

 □ 繁殖により遺伝子を変化させながら,環境への適応をうまく行った種が    生き残っていく過程   ⇒ 複数の個体が世代交代を繰り返しながら,環境へどの程度適用しているかを     評価関数として,できるだけ高い評価値となる個体をみつける

■ 遺伝的アルゴリズム

 □ 個体それぞれが解の候補としての染色体を持ち,   ・交配によって子を残すこと,   ・突然変異によって変化すること,   で最適な解の探索を行う  □ 遺伝子そのものと,遺伝子をどのように個体として表出させるか,を    区別する必要があり,また,遺伝子がうまく解となるようなコーディングが必要 機械学習: 進化的計算

遺伝的アルゴリズム

4. 画像を理解する 90 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ パラメータ

 ・集団:個体集団M,個体数¦M¦  ・突然変異率:Pm  ・交 率:Pc  ・世代数:g  ・遺伝子の情報長さ:L 機械学習: 進化的計算

遺伝的アルゴリズムの処理

4. 画像を理解する 91 END START 個体集団の初期化 適応度の評価 交 ペアの選択 交 突然変異 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 突然変異

■ 交

機械学習: 進化的計算

突然変異・交 の例

4. 画像を理解する 92 a b c d e f g h ↑ ↑ a b c d e ・ f g h S T U V W・ X Y Z a T c d e Q g h a b c ・ d e ・ f g h S T U・ V W・ X Y Z a b c d e f g h S T U V W X Y Z 変異 変異 a b c d e ・ X Y Z S T U V W・ a b c S T U・ d e ・ X Y Z a b c ・ V W・ f g h a T U d e X g Z S b c V W f Y h

(24)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 遺伝子の表し方

 □ ビット列  □ 文字列

■ 遺伝的プログラミング (GP)

 □ プログラムそのものを遺伝子とみなす  □ 個体の持つプログラムを評価することで適合度を計算し,プログラム自身に    GAオペレータを施して進化による自動プログラミングか可能となる  □ 具体的には,プログラム内の変数や演算子,ブロックなどが変化することになる 機械学習: 進化的計算

遺伝的プログラミング

4. 画像を理解する 93 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ プログラムを木構造で表す

■ 変数や四則演算子などをノードとして表現する

機械学習: 進化的計算

遺伝子コーディング

4. 画像を理解する 94 main { i = 22; j = sqrt( i ); k = i + j; } main

=

=

=

i 22 j sqrt i k

+

i j / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ GPの突然変異例

機械学習: 進化的計算

遺伝的プログラミング 例1

4. 画像を理解する 95 main { … i = 22; j = sqrt( i ); k = i + j; } main { … i = 22; j = sqrt( i ); k = pow(i, j); } i main

=

=

=

22 j sqrt i k

+

i j i main

=

=

=

22 j sqrt i k pow i j i main

=

=

=

22 j mod i k

+

i j main { … i = 22; j = j % i; k = i + j; } j / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ GPの交 例

機械学習: 進化的計算

遺伝的プログラミング 例2

4. 画像を理解する 96 i main inc

=

m

+

3 i i main

=

=

=

22 j sqrt i k

+

i j i main inc i main

=

=

22 j sqrt i

=

k

+

i j

=

m

+

3 i

(25)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ ニューラルネットワーク

 (NN; Neural Network)  □ 人間の脳神経をモデルにした情報処理の手法  □ 人間の脳そのものをモデル化する研究とは区別される  □ 主に階層型ニューラルネットワークと相互結合型ニューラルネットワークがある

■ NNの歴史

 1958 パーセプトロンの提唱(Rosenblatt) ブームに  1969 パーセプトロンの限界の提示(Minsky&Papert) 下火に  1982 ホップフィールドモデル(Hopfield) 相互結合型  1986 バックプロパゲーションモデル(Rumelhart) 再び活発に

■ 適用分野

 □ 文字認識,画像認識など 機械学習: ニューラルネットワーク

ニューラルネットワークとは

4. 画像を理解する 97 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 多入力1出力(多数決論理素子)

 □ 多くの入力の電位の(重み付き)和がある一定値を超えると,信号を出力する

■ 結合特性

 □ シナプスのつながり方(ネットワークの構造)  □ シナプスにおいてどのような結合特性があるか(結合係数:興奮性[+]・抑制性[-])

■ 学習≡

結合特性や閾値が可塑的に変化して行くこと

機械学習: ニューラルネットワーク

脳細胞のモデル

4. 画像を理解する 98 s2 出力信号

d =

結合係数w1 閾値θ 入力信号s1 w1 w2 w5 w4 w3 s5 s3 s4

1 ( s

i

w

i

≧ θ )

0 (それ以外)

{

Σ

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 信号は一方通行

■ 層間結合はあるが層内結合はない

機械学習: ニューラルネットワーク

階層型ニューラルネットワーク

4. 画像を理解する 99 入力信号 入力層 中間層 出力層 出力信号 ユニット(情報処理単位) 結合(信号伝達路) (信号の流れ) / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

■ 双方向の信号の流れがある

 □ 階層型NNより一般的;階層型NNでは解けない問題にも適用可能  □ 連想記憶,最適化問題に適用可能

■ 閉路を含むので信号が何度も流れることがある

 □ 収束に時間がかかる 機械学習: ニューラルネットワーク

相互結合型ニューラルネットワーク

4. 画像を理解する 100 閉路

(26)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

コンピュータに

視覚(vision)

を構築する技術

■ 主にカメラからの入力画像をもとに現実世界の形状や運動を解析する  ● カメラパラメータの推定  ● 対象物体の3次元形状の復元  ● 対象物体の認識・理解  ● 運動の解析 ■ 画像以外の情報と組み合わせる手法も多い  ● 赤外線センサ  ● RFIDタグ  ● GPS  ● レンジスキャナ コンピュータビジョン

コンピュータビジョンとは

4. 画像を理解する 101 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Single View

computer vision: single view

Computer Vision:

4. 画像を理解する

102

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

視点を中心とするカメラ座標系O-XYZをメインに考える

1. ワールド座標系からカメラ座標系に変換する:3次元空間における剛体変換 2. カメラ座標系において焦点距離 f の位置の射影面に射影する:透視射影変換 3. 射影面の一部を切り取ってデジタル画像座標系に変換する:拡大縮小と原点移動

computer vision: single view

3次元空間から画像への射影

4. 画像を理解する 103 カメラ座標系 画像座標系 ワールド座標系 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

ワールド座標  からカメラ座標  への変換

■ ユークリッド空間における剛体変換と同じ

■ 同次座標を使うと以下のようになる

computer vision: single view

3次元空間から画像への射影 1

4. 画像を理解する

(27)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

カメラ座標  から射影面上の座標  への変換

■ ユークリッド空間における剛体変換と同じ

■ 同次座標を使うと以下のようになる

computer vision: single view

3次元空間から画像への射影 2

4. 画像を理解する

105

簡単な比から

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

射影面座標  からデジタル画像座標の座標  への変換

■ 単位の変換(実空間[mm]から画像空間[pixel]へ):拡大縮小

■ 原点位置の変換

computer vision: single view

3次元空間から画像への射影 3

4. 画像を理解する 106 視線方向の射影点の画像での位置 受光素子1mmあたりの素子数(画素数) 受光素子の縦と横の角度に依存する変数 (通常は0とみなしてよい) / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

射影面座標  からデジタル画像座標の座標  への変換

■ これまでの3つの式をまとめる

■ 焦点距離と1mmあたりの画素数は(画像からは)わからないのでまとめる ■ 内部パラメータ(カメラ固有),外部パラメータ(カメラの姿勢)に分離可能

computer vision: single view

3次元空間から画像への射影 まとめ

4. 画像を理解する

107

内部パラメータ 外部パラメータ

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

3次元点  とその像 からカメラパラメータを求める

■ 撮影された画像からは内部パラメータも外部パラメータもわからない:   射影の式は以下のように未知数12個を含む式となる ■ 既知の3次元の点とその画像上の点がいくつかわかれば,解くことができる:  ● Pの未知数は12個であるが,P全体を実数倍しても同じ点に射影される  ● 独立な未知数は11個だが,いくつか拘束条件を加えることで8個に減らせる    受光素子は正方形で,縦横が同じ長さである,と仮定すると    内部パラメータ2,回転行列3,並進ベクトル3 の8パラメータ  ● 同一平面にあり,同一直線上にはない4点の3次元座標値(Zw=0とみなす)と,    その画像座標値がわかれば,近似的にカメラパラメータを求めることができる computer vision: single view

キャリブレーション

4. 画像を理解する

(28)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Stereo View

computer vision: stereo view

Computer Vision:

4. 画像を理解する

109

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

2枚の画像から3次元情報を復元するには:

■ 2台のカメラの相互の位置関係が既知である ■ ワールド座標系(または被写体)とカメラとの位置関係が既知である ■ カメラパラメータが既知である ■ 対応点(図のmとm )が画像上で正しく求められる しかし現実は,,, ● 2台のカメラの相互位置は不明 ● 被写体とカメラの位置関係も不明 ● カメラパラメータも入手しにくい ● 対応点も誤りが生じ得る 少ない情報から何が得られるか:  → エピポーラ幾何

computer vision: stereo view

ステレオ視のしくみ

4. 画像を理解する 110 C C’ M( X, Y, Z ) m’ f f’ (m’) z B m d / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

疑似逆行列

■ 一般の行列 P(正方行列でなくてよい)に対し, が存在すれば,   Pの疑似逆行列を次式で定義する:

ベクトルの外積の行列形

■ ベクトルの外積は反対称行列をかけることで表すことができる:

computer vision: stereo view

ちょっとだけ数学的基礎

4. 画像を理解する

111

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

空間上の点Xと2台のカメラで撮影した像との空間的関係

■ エピポーラ平面:ワールド座標系の点Xと2つのカメラ中心O,O がつくる平面 ■ エピポーラ線:エピポーラ平面と撮影画像との交線 ■ エピポール:他のカメラ中心の像  ● どんなエピポーラ平面も必ずOO を通る  ● どんなエピポーラ線もエピポールを通る

computer vision: stereo view

エピポーラ幾何

4. 画像を理解する

112

(29)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

computer vision: stereo view

エピポーラ方程式

4. 画像を理解する 113 2枚の画像において を射影した画像座標値を , とすると: 第1の式を を求める式に変形し( は を満たすベクトル) これを第2の式に代入し,カメラ中心 の他の画像への像 を とすると 両辺と との外積をとり,さらに両辺と との内積をとると(意味はあります) 中の3×3行列を (Fundamental Matrix)とおくと,エピポーラ方程式を得る: ( :エピポール) ( はカメラ中心を表す) / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

エピポーラ方程式は2枚の画像間の拘束関係を与える

■ F は3×3行列だがランクは2であり,自由度は7(=4つの対応点から計算可能) ■ F を求めても,画像上の任意の点 m の対応点 m は一意的に決まらない

■ しかし,対応点 m は直線 の上に拘束される

computer vision: stereo view

エピポーラ拘束

4. 画像を理解する

114

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

Multiple View

computer vision: multiple view

Computer Vision:

4. 画像を理解する

115

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像枚数が増えればそれだけ安定して復元可能

■ 3つの対応点間に成立する拘束式を用いて3次元復元

■ 2枚の場合の F に相当するものとして: trifocal tensor(trilinear tensor) ■ さらに画像が多い場合は適当に選択して計算することもある

computer vision: multiple view

3以上の画像を用いる手法もある

4. 画像を理解する

(30)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像情報処理

5

画像を生成する

117

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

コンピュータを用いてデータを視覚的に表現する技術

■ 特徴

 ● 見えないものを可視化する  ● 現実にはありえないものを描く  ● 大量データ,複雑なデータを表現する  ● 加工,複製,修正が容易である

■ 応用

 ● 芸術・エンターテインメント  ● 映像産業・ゲーム産業  ● サイエンティフィックビジュアリゼーション  ● 医用画像  ● 設計・プロトタイピング... computer graphics

コンピュータ・グラフィックス(CG)とは

5. 画像を生成する 118 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

視点変化を考慮するかどうか

■ 2次元CG

 ● 絵画やセルアニメーション  ● 奥行情報がない(優先順位のみ)  ● レタッチ,ドローイングに向く  ● 視点変更には向かない

■ 3次元CG

 ● プラモデルやクレイアニメーション  ● 3次元構造を持つデータを扱う  ● ウォークスルーやアニメーションに向く  ● データを作ったり入力するのが面倒 computer graphics

2次元CGと3次元CG

5. 画像を生成する 119 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

computer graphics

CG制作の過程

5. 画像を生成する 出力 紙類・ビデオテープ ディスプレイ デジタルファイル 画像生成 ディジタルデータ 計算 MODELING RENDERING 描画対象 数値化・入力 動植物・自然現象 想像・人工物 動き・シミュレーション 120

(31)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

プラモデルやクレイを作成し,構図を決める

computer graphics: modeling

モデリングとは

5. 画像を生成する シーン,オブジェクトの構築 データの入力 (3次元)シーンの計算機内での構築 描画対象の構造化・データ化 プログラムへの入力:User Interface プログラムまたはプログラマーの仕事 厳密な区別は曖昧 121 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

シーンの論理的な階層構造を設計する

■ 構成要素の位置,形状,色,属性などを設計

computer graphics: modeling

シーンの構築

5. 画像を生成する

例:シーングラフ

122

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

オブジェクト(描画対象)の空間的・時間的関係の設計

■ いくつかの座標系と,それらの相対関係を記述

■ スタック構造を利用すると便利

computer graphics: modeling

座標系の構成

5. 画像を生成する

ローカル座標系

ワールド座標系

123 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

サーフェース・モデル

■ 表面をポリゴン(多角形)で近似することが多い ■ 三角形パッチが多用される

 ● ポリゴンが多い → ○ より精密なモデル × データ量が多い  ● ポリゴンが少い → ○ より少いデータ量 × 品質に問題あり

computer graphics: modeling

オブジェクトの基本形状:ポリゴン

5. 画像を生成する

(32)

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

基本要素(プリミティブ)の組み合わせで複雑な構造を表現

computer graphics: modeling

オブジェクトの基本形状:プリミティブ

5. 画像を生成する 直感的なパラメータによる構築 基本要素はあらかじめ作成しておき,モデリング変換を施す 125 / 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

カラーパレット等で設定することが多い

■ 自然界の色や質感をRGB値で表現することは難しい

computer graphics: modeling

オブジェクトのカラー

5. 画像を生成する

126

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

光・陰影の設定

■ 光源の設定

 ● 光源の種類,色,位置,ひろがり ■ オブジェクトの表面の属性の設定  ● 反射率,透過率,屈折率等

computer graphics: modeling

光源・質感

5. 画像を生成する

127

/ 152

Copyright © 2013 Ken-KENT-Tsutsuguchi. All Right Reserved.

Visual Information Processing 2013

画像の色情報をポリゴンの色情報として適用する

computer graphics: modeling

Texture mapping

5. 画像を生成する 環境マッピング:周囲の状況を映り込ませる → 車など バンプマッピング:法線情報をマッピング → ゴルフボールなど

u

c (u, v)

s

t

v

128

参照

関連したドキュメント

そればかりか,チューリング機械の能力を超える現実的な計算の仕組は,今日に至るま

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

子どもが、例えば、あるものを作りたい、という願いを形成し実現しようとする。子どもは、そ

ヒュームがこのような表現をとるのは当然の ことながら、「人間は理性によって感情を支配

共通点が多い 2 。そのようなことを考えあわせ ると、リードの因果論は結局、・ヒュームの因果

話者の発表態度 がプレゼンテー ションの内容を 説得的にしてお り、聴衆の反応 を見ながら自信 をもって伝えて

国際仲裁に類似する制度を取り入れている点に特徴があるといえる(例えば、 SICC

ぎり︑第三文の効力について疑問を唱えるものは見当たらないのは︑実質的には右のような理由によるものと思われ