Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
linear.pdf
Search
Minoru Natsutani
June 26, 2012
330
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
linear.pdf
Minoru Natsutani
June 26, 2012
More Decks by Minoru Natsutani
See All by Minoru Natsutani
3D Gaussian Splatting勉強会
natsutan
0
45
初めての模倣学習とVLA
natsutan
0
730
放熱勉強会資料
natsutan
0
44
グラフの書き方勉強会
natsutan
0
110
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
110
動き検出勉強会資料
natsutan
0
69
WindowsでGenesisに挑戦した話
natsutan
0
620
辛い仕事をプリキュアで乗り切りHack
natsutan
0
110
論文読み勉強会 RoboGen
natsutan
0
410
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Site-Speed That Sticks
csswizardry
13
1.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
How STYLIGHT went responsive
nonsquared
100
6.3k
The Curious Case for Waylosing
cassininazir
1
560
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Product Roadmaps are Hard
iamctodd
55
13k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Transcript
線形代数難しいよね 2012/06/27 なつたん
線形代数難しいよね 行列の計算自体は分かるんけど、「だから 何?」感が強い 対角化、固有値 計算方法は分かるけど、僕のプログラムで出番有る の?
LU分解とか・・・ ここまで勉強しても、全く同じ気持ち
だから何?の例 アフィン変換 変換前の座標をX、変換後をYとして以下の式で表現でき る Y = A・X
+ B 回転の場合 こんなの行列使わなくても、図書けば分かるよね? 回転の前後に平行移動が入っても、行列使わずに順番に計算し たら簡単だよね?
画像フィルターの行列表現 ガウシアンフィルターの例 画像処理の教科書に載っている。3x3 ガウシアン フィルターの行列表現 これを画像処理にどう使うの?
よくある間違い 16x16ピクセルの画像データを 16x16の2次元行列Xに入っているとする と・・・。Y = A・X なので、Yも16x16の行列で表せて、かけたらよくね? Y Y
・・・ Y Y Y ・・・ Y : : Y Y ・・・ Y = 16 1 1 2 1 2 4 2 1 2 1 X X ・・・ X X X ・・・ X : : X X ・・・ X 0,0 0,1 0,15 1,0 1,1 1,15 15,0 15,1 15,15 0,0 0,1 0,15 1,0 1,1 1,15 15,0 15,1 15,15 出力画像 フィルター 入力画像 → 行列の次元が合ってないので計算出来ない
さっきの正解 Y Y : Y Y : Y = 16
1 4 2 0 0 0 ・・・ 0 2 1 0 0 0 ・・・ 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 : : 1 2 1 0 0 2 4 2 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 2 4 2 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 2 4 2 0 1 2 1 0 0 0 0 0 0 1 2 0 0 0 2 4 2 0 1 2 1 0 0 0 0 0 0 1 0 0 0 0 2 4 0 0 1 2 1 0 : 0 0 0 0 0 ・・・ 0 0 0 0 0 0 ・・・ 0 0 0 0 4 2 X X : X X : X 0,0 0,1 0,15 1,0 15,15 0,0 0,1 0,15 1,0 15,15 256x256の行列 (境界処理適当) 1次元配列 1次元配列 Y = aX + bに対応するガウシアンフィルターの行列表現は、斜めに3本の線が入るような 疎行列(無茶大きい)
良くある実装 /* 境界処理適当 */ for(y=0;y<15;y++) { for(x=0;x<15;x++) { dst[y][x] =
( src[y-1][x-1] + 2 * src[y-1][x] + src[y-1][x+1] + 2 * src[y][x-1] + 4 * src[y][x] + 2 * src[y][x+1] + src[y+1][x-1] + 2 * src[y+1][x] + src[y+1][x+1] ) / 16; } } さっきの巨大な行列、全然出てこない>< 本当は、端っこの処理が難しかったり、ビットシフト使ったり、計算結果再利用 したり、並列化したりするよ!
問題点 Y Y : Y Y : Y = 16
1 4 2 0 0 0 ・・・ 0 2 1 0 0 0 ・・・ 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 0 0 0 2 4 2 0 0 0 1 2 1 0 0 0 0 0 0 : : 1 2 1 0 0 2 4 2 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 2 4 2 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 2 4 2 0 1 2 1 0 0 0 0 0 0 1 2 0 0 0 2 4 2 0 1 2 1 0 0 0 0 0 0 1 0 0 0 0 2 4 0 0 1 2 1 0 : 0 0 0 0 0 ・・・ 0 0 0 0 0 0 ・・・ 0 0 0 0 4 2 X X : X X : X 0,0 0,1 0,15 1,0 15,15 0,0 0,1 0,15 1,0 15,15 /* 境界処理適当 */ for(y=0;y<15;y++) { for(x=0;x<15;x++) { dst[y][x] = ( src[y-1][x-1] + 2 * src[y-1][x] + src[y-1][x+1] + 2 * src[y][x-1] + 4 * src[y][x] + 2 * src[y][x+1] + src[y+1][x-1] + 2 * src[y+1][x] + src[y+1][x+1] ) / 16; } } 線形代数の教科書に添ったガウシ アンフィルターの実装 画像処理の教科書にでてくるガウシ アンフィルターの実装 このギャップが大きすぎるので何とかして欲しい