デジタルメディア処理1 担当: 井尻 敬.

Slides:



Advertisements
Similar presentations
ゲームプログラミング講習 第2章 関数の使い方
Advertisements

サービス管理責任者等研修テキスト 分野別講義    「アセスメントと        支援提供の基本姿勢」 <児童発達支援管理責任者> 平成27年10月1日.
ヒトの思考プロセスの解明を目的とするワーキングメモリの研究
第27講 オームの法則 電気抵抗の役割について知る オームの法則を使えるようにする 抵抗の温度変化を理解する 教科書P.223~226
コラッツ予想の変形について 東邦大学 理学部 情報科 白柳研究室 山中 陽子.
コンパイラ 第3回 字句解析 ― 決定性有限オートマトンの導出 ―
第5章 家計に関する統計 ー 経済統計 ー.
公共財 公共経済論 II no.3 麻生良文.
VTX alignment D2 浅野秀光 2011年12月15日  放射線研ミーティング.
冷却フランシウム原子を用いた 電子の永久電気双極子能率探索のための ルビジウム磁力計の研究
生命情報学 (8) スケールフリーネットワーク
前半戦 「史上最強」風 札上げクイズ.

認知症を理解し 環境の重要性について考える
フッ化ナトリウムによる洗口 2010・9・13 宮崎市郡東諸県郡薬剤師会 学校薬剤師  日高 華代子.
食品の安全性に関わる社会システム:総括 健康弱者 ハイリスク集団 HACCP (食肉処理場・食品工場) 農場でのQAP 一般的衛生管理
規制改革とは? ○規制改革の目的は、経済の活性化と雇用の創出によって、   活力ある経済社会の実現を図ることにあります。
地域保健対策検討会 に関する私見(保健所のあり方)
公共政策大学院 鈴木一人 第8回 専門化する政治 公共政策大学院 鈴木一人
医薬品ネット販売規制について 2012年5月31日 ケンコーコム株式会社.
平成26年8月27日(水) 大阪府 健康医療部 薬務課 医療機器グループ
平成26年度 呼吸器学会からの提案結果 (オレンジ色の部分が承認された提案) 新規提案 既収載の変更 免疫組織化学染色、免疫細胞化学染色
エナジードリンクの危険性 2015年6月23日 経営学部市場戦略学科MR3195稲沢珠依.
自動吸引は 在宅を変えるか 大分協和病院 院長         山本 真.
毎月レポート ビジネスの情報 (2016年7月号).
医療の歴史と将来 医療と医薬品産業 個人的経験 3. 「これからの医療を考える」 (1)医薬品の研究開発 -タクロリムスの歴史-
社会福祉調査論 第4講 2.社会調査の概要 11月2日.
2015年12月28日-2016年3月28日 掲載分.
2010度 民事訴訟法講義 補論 関西大学法学部教授 栗田 隆.
腫瘍学概論 埼玉医科大学国際医療センター 包括的がんセンター 緩和医療科/緩和ケアチーム 奈良林 至
“企業リスクへの考え方に変化を求められています。 トータルなリスクマネジメント・サービスをプロデュースします。“
情報漏えい 経済情報学科 E  西村 諭 E  釣 洋平.
金融班(ミクロ).
第11回 2009年12月16日 今日の資料=A4・4枚+解答用紙 期末試験:2月3日(水)N2教室
【ABL用語集】(あいうえお順) No 用語 解説 12 公正市場価格 13 債権 14 指名債権 15 事業収益資産 16 集合動産 17
基礎理論(3) 情報の非対称性と逆選択 公共政策論II No.3 麻生良文.
浜中 健児 昭和42年3月27日生まれ 東京都在住 株式会社ピー・アール・エフ 代表取締役 (学歴) 高 校:千葉県立東葛飾高校 卒業
COPYRIGHT(C) 2011 KYUSHU UNIVERSITY. ALL RIGHTS RESERVED
Blosxom による CMS 構築と SEO テクニック
記入例 JAWS DAYS 2015 – JOB BOARD 会社名 採用職種 営業職/技術職/その他( ) 仕事内容 待遇 募集数
ネットビジネスの 企業と特性 MR1127 まさ.
Future Technology活用による業務改革
ネットビジネス論(杉浦) 第8回 ネットビジネスと情報技術.
g741001 長谷川 嵩 g740796 迫村 光秋 g741000 西田 健太郎 g741147 小井出 真聡
自然独占 公共経済論 II no.5 麻生良文.
Autonomic Resource Provisioning for Cloud-Based Software
Webショップにおける webデザイン 12/6 08A1022 甲斐 広大.
物理的な位置情報を活用した仮想クラウドの構築
ハイブリッドクラウドを実現させるポイントと SCSKのOSSへの取組み
寺尾 敦 青山学院大学社会情報学部 第12回 情報デザイン(4) 情報の構造化と表現 寺尾 敦 青山学院大学社会情報学部
【1−1.開発計画 – 設計・開発計画】 システム開発計画にはシステム開発を効率的、効果的に実行する根拠(人員と経験、開発手順、開発・導入するシステム・アプリケーション・サービス等)を記述すること。 システム開発の開始から終了までの全体スケジュールを記載すること。 アプリケーション機能配置、ソフトウェア、インフラ構成、ネットワーク構成について概要を示すこと。
6 日本のコーポレート・ガバナンス 2008年度「企業論」 川端 望.
急成長する中国ソフトウェア産業 中国ソフトウェアと情報サービス産業の規模 総売上高は5年間で約5.3倍の成長
米国ユタ州LDS病院胸部心臓外科フェローの経験
公益社団法人日本青年会議所 関東地区埼玉ブロック協議会 JCの情熱(おもい)育成委員会 2011年度第1回全体委員会
次世代大学教育研究会のこれまでの活動 2005年度次世代大学教育研究大会 明治大学駿河台校舎リバティタワー9階1096教室
子どもの本の情報 大阪府内の協力書店の情報 こちらをクリック 大阪府内の公立図書館・図書室の情報
第2回産業調査 小島浩道.
〈起点〉を示す格助詞「を」と「から」の選択について
広東省民弁本科高校日語専業骨幹教師研修会 ①日本語の格助詞の使い分け ②動詞の自他受身の選択について   -日本語教育と中日カルチャーショックの観点から- 名古屋大学 杉村 泰.
■5Ahバッテリー使用報告 事例紹介/東【その1】 ■iphon4S(晴れの昼間/AM8-PM3) ◆約1時間で68%⇒100%
『ワタシが!!』『地域の仲間で!!』 市民が始める自然エネルギー!!
ポイントカードの未来形を形にした「MUJI Passport」
SAP NetWeaver を支える Microsoft テクノロジーの全貌 (Appendix)
ガイダンス(内業) 測量学実習 第1回.
Python超入門 久保 幹雄 東京海洋大学.
熱力学の基礎 丸山 茂夫 東京大学大学院 工学系研究科 機械工学専攻
京都民医連中央病院 CHDF学習推進委員会
資料2-④ ④下水道.
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Presentation transcript:

デジタルメディア処理1 担当: 井尻 敬

スケジュール 10/01 イントロダクション1 : デジタル画像とは,量子化と標本化,Dynamic Range 10/08 イントロダクション2 : デジタルカメラ,人間の視覚,表色系 10/15 フィルタ処理1 : トーンカーブ,線形フィルタ 10/29 フィルタ処理2 : 非線形フィルタ,ハーフトーニング 11/05 フィルタ処理3 : 離散フーリエ変換と周波数フィルタリング 11/12 画像処理演習1 : python入門 (PC教室9,10) 11/19 画像処理演習2 : フィルタ処理 (PC教室9,10) ※ 11/26 画像処理演習3 : フィルタ処理 (PC教室9,10, 前半部分の課題締め切り 11/29 23:59) 12/03 画像処理演習4 : フィルタ処理 (PC教室9,10) 12/10 画像処理演習5 : フィルタ処理 (PC教室9,10, 後半部分の課題締め切り 12/20 23:59) 12/17 画像の幾何変換 : アファイン変換と画像補間 01/07 ConvolutionとDe-convolution(進度に合わせて変更する可能性有り) 01/14 画像圧縮(進度に合わせて変更する可能性有り) 01/21 後半のまとめと期末試験

Deconvolution σ =20のガウシアンブラーの例 手振れ・焦点ずれによりボケてしまった画像 ボケのない画像を復元 ボケを引き起こした点広がり関数が既知ならば綺麗な復元が可能

Deconvolution w=20, θ=0.2π の線分状の点広がり関数の例 手振れ・焦点ずれによりボケてしまった画像 ボケのない画像を復元 ボケを引き起こした点広がり関数が既知ならば綺麗な復元が可能

復習 : 線形フィルタ(Convolution)

線形フィルタの例 ぼかす 先鋭化

線形フィルタの例 エッジ抽出       横方向    縦方向

線形フィルタの例 1D 平滑化したい! 1/3 周囲3ピクセルの平均を取る ※端ははみ出すので値をコピー(ほかの方法もある) 33 15 22 11 26 32 12 94 108 98 111 121 102 1/3 周囲3ピクセルの平均を取る 27 23 16 20 23 23 22 16 44 72 100 106 110 111 108 ※端ははみ出すので値をコピー(ほかの方法もある)

線形フィルタ(1D)とは 𝐼 𝑗 ℎ 𝑛 𝐼′ 𝑗 = 𝑛=− ℎ 𝑥 ℎ 𝑥 ℎ 𝑛 𝐼 𝑗+𝑛 出力画素値を周囲画素の重み付和で計算するフィルタ 𝐼′ 𝑗 = 𝑛=− ℎ 𝑥 ℎ 𝑥 ℎ 𝑛 𝐼 𝑗+𝑛 𝐼 𝑗 ℎ 𝑛

線形フィルタ(2D)とは 𝐼′ 𝑖,𝑗 = 𝑚=− ℎ 𝑦 ℎ 𝑦 𝑛=− ℎ 𝑥 ℎ 𝑥 ℎ 𝑚, 𝑛 𝐼 𝑖+𝑚, 𝑗+𝑛 出力画素値を周囲画素の重み付和で計算するフィルタ 𝐼′ 𝑖,𝑗 = 𝑚=− ℎ 𝑦 ℎ 𝑦 𝑛=− ℎ 𝑥 ℎ 𝑥 ℎ 𝑚, 𝑛 𝐼 𝑖+𝑚, 𝑗+𝑛 2 ℎ 𝑦 +1 2 ℎ 𝑥 +1 (i,j) (i,j) h(i,j) フィルタ I’ (i,j) 出力画像 I(i,j) 入力画像

Convolution(畳み込み)とは 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 𝑓∗𝑔 𝑛 = 𝑘=−∞ ∞ 𝑓 𝑘 𝑔 𝑛−𝑘 二つの関数 f (t) g(t) を重ね合わせる演算 f (t) を固定し,g(t) を平行移動しながらf (t)に掛けあわせ,得られた関数を積分 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 連続関数 𝑓∗𝑔 𝑛 = 𝑘=−∞ ∞ 𝑓 𝑘 𝑔 𝑛−𝑘 離散関数

𝑓 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 例題) 2関数の畳み込み積分を求めよ 𝑓 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 例題) 2関数の畳み込み積分を求めよ 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 g 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 −1≤𝑥≤0のとき 𝑓∗𝑔 𝑥 = − 1 2 𝑥+ 1 2 1×1𝑑𝑡 =𝑥+1 x -1/2 1/2 x+1/2 0≤𝑥≤1のとき 𝑓∗𝑔 𝑥 = 𝑥− 1 2 1 2 1×1𝑑𝑡 =1−𝑥 x-1/2 多少こんがらがりそうではある。 + 横軸tのグラフを書く + f(t)を書く + g(x-t)を書く g 𝑥 がゼロで無い値を持つ定義域は -0.5 <= t-x <= 0.5 x-0.5 <= t <= x+0.5 + この図示があれば,たぶん計算は大丈夫そう 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡

𝑓∗𝑔 𝑥 𝑓 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 例題) 2関数の畳み込み積分を求めよ 𝑓 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 例題) 2関数の畳み込み積分を求めよ 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 g 𝑥 = 1 − 1 2 ≤𝑥≤ 1 2 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑓∗𝑔 𝑥 = 𝑥+1 −1≤𝑥≤0 1−𝑥 0≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 1 𝑓∗𝑔 𝑥 -1 By Lautaro Carmona [CC-BY-SA] from wikipedia 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡

𝑡 𝑡 𝑡 例題) 2関数の畳み込み積分を求めよ 𝑓 𝑥 = 1 −1≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑓 𝑥 = 1 −1≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 g 𝑥 = 𝑥 0≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 −1≤𝑥≤0のとき 0≤𝑥≤1のとき 1≤𝑥≤2のとき 𝑓∗𝑔 𝑥 = −1 𝑥 (𝑥−𝑡)𝑑𝑡 = 𝑥+1 2 2 𝑓∗𝑔 𝑥 = 𝑥−1 𝑥 (𝑥−𝑡)𝑑𝑡 = 1 2 𝑓∗𝑔 𝑥 = 𝑥−1 1 (𝑥−𝑡)𝑑𝑡 =− 𝑥 2 2 +𝑥 𝑓 𝑡 𝑔 𝑥−𝑡 𝑔 𝑥−𝑡 𝑔 𝑥−𝑡 g 𝑥 がゼロでない定義域は、、 0<=x-t<=1 x-1 <= t <= x 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 𝑡 𝑡 𝑡 -1 1 -1 1 -1 1 x-1 x x-1 x x-1 x 𝑔 𝑥−𝑡 は,t軸に対して反転するので注意

𝑓∗𝑔 𝑥 𝑡 𝑥 𝑓 𝑥 = 1 −1≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 例題) 2関数の畳み込み積分を求めよ 𝑓 𝑥 = 1 −1≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 g 𝑥 = 𝑥 0≤𝑥≤1 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑓∗𝑔 𝑥 = −1 𝑥 (𝑥−𝑡)𝑑𝑡 = 𝑥+1 2 /2 1/2 − 𝑥 2 /2+𝑥 −1≤𝑥≤0 0≤𝑥≤1 1≤𝑥≤2 𝑓∗𝑔 𝑥 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 𝑓 𝑡 1 2 -1 𝑔 𝑥−𝑡 𝑡 𝑥 -1 1

Convolution(畳み込み)とは 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 𝑓∗𝑔 𝑛 = 𝑘=−∞ ∞ 𝑓 𝑘 𝑔 𝑛−𝑘 二つの関数 f (t) g(t) を重ね合わせる演算 f (t) を固定し,g(t) を平行移動しながらf (t)に掛けあわせ,得られた関数を積分 𝑓∗𝑔 𝑥 = −∞ ∞ 𝑓 𝑡 𝑔 𝑥−𝑡 𝑑𝑡 連続関数 𝑓∗𝑔 𝑛 = 𝑘=−∞ ∞ 𝑓 𝑘 𝑔 𝑛−𝑘 離散関数

2次元Convolution(畳み込み) 𝑓∗𝑔 𝑥,𝑦 = −∞ ∞ −∞ ∞ 𝑓 𝑢,𝑣 𝑔 𝑢−𝑥,𝑣−𝑦 𝑑𝑢𝑑𝑣 連続関数 二つの関数 f (x,y) g(x,y) を重ね合わせる演算 f (x,y) を固定し,g(x,y) を平行移動しながらf (x,y)に掛けあわせ,得られた関数を積分 𝑓∗𝑔 𝑥,𝑦 = −∞ ∞ −∞ ∞ 𝑓 𝑢,𝑣 𝑔 𝑢−𝑥,𝑣−𝑦 𝑑𝑢𝑑𝑣 連続関数 𝑓∗𝑔 𝑛 = 𝑗=−∞ ∞ 𝑖=−∞ ∞ 𝑓 𝑖,𝑗 𝑔 𝑖−𝑥,𝑗−𝑦 離散関数 ※ 長々と説明しましたが、教科書中の線形フィルタとの違いは, 積分域をフィルタの中だけから(-∞, ∞)に変更し,フィルタgの引数の一部がマイナスになった点です.

復習 : フーリエ変換

フーリエ変換とは 横軸が時間の関数を、横軸が周波数の関数に変換する手法 入力音声 周波数 フーリエ変換 逆フーリエ変換 周波数 時間 FourierSound.py フーリエ変換とは 横軸が時間の関数を、横軸が周波数の関数に変換する手法 入力音声 周波数 フーリエ変換 逆フーリエ変換 入力はりんごをナイフで切った音 出力は log10(|Fk|) 高周波 低周波 高周波 周波数 時間 注) グラフ横軸は係数番号(Hzではない)   グラフ縦軸は係数の実部 注) グラフ縦軸は音圧

フーリエ変換とは フーリエ変換後の関数は元信号に含まれ る正弦波の量を示す 中央に近いほど低周波,外ほどが高周波 FourierSound.py フーリエ変換とは フーリエ変換後の関数は元信号に含まれ る正弦波の量を示す 中央に近いほど低周波,外ほどが高周波 中央(最も低周波)は,定数項で直流成 分と呼ばれる 直流成分があるので正弦波の組み合わせでも 平均値が0でない信号を作れる 周波数(係数番号) 時間 時間 時間 時間 入力はりんごをナイフで切った音 出力は log10(|Fk|) ※下の波はイメージ ※本来はもっともっと細かいです。

フーリエ級数 区間 − 𝑇 2 , 𝑇 2 上の連続関数𝑓(𝑡)は、 フーリエ級数で表現できる. 𝑓 𝑡 = 𝑎 0 2 区間 − 𝑇 2 , 𝑇 2 上の連続関数𝑓(𝑡)は、 フーリエ級数で表現できる. − 𝑇 2 𝑇 2 sin 1 𝜔 0 𝑡 cos 1𝜔 0 𝑡 𝑓 𝑡 = 𝑎 0 2 + 𝑎 1 cos 1𝜔 0 𝑡 + 𝑏 1 sin 1 𝜔 0 𝑡 + 𝑎 2 cos 2 𝜔 0 𝑡 + 𝑏 2 sin 2 𝜔 0 𝑡 + 𝑎 3 cos 3 𝜔 0 𝑡 + 𝑏 3 sin 3 𝜔 0 𝑡 +⋯ 基本周波数 𝜔 0 = 2𝜋 𝑇 sin 2 𝜔 0 𝑡 cos 2𝜔 0 𝑡 つまり関数を周波数の異なるsin と cosの和で表現するよ、ってこと 𝑎 1 cos 𝑘 2𝜋 𝑇 𝑡 sin 3 𝜔 0 𝑡 cos 3𝜔 0 𝑡

フーリエ級数(複素数表記) 区間 − 𝑇 2 , 𝑇 2 上の連続関数𝑓(𝑡)は、 フーリエ級数で表現できる. 区間 − 𝑇 2 , 𝑇 2 上の連続関数𝑓(𝑡)は、 フーリエ級数で表現できる. − 𝑇 2 𝑇 2 𝑓 𝑡 = 𝑘=−∞ ∞ 𝐶 𝑘 𝑒 𝑖 𝑘𝜔 0 𝑡 𝐶 𝑘 = 1 𝑇 − 𝑇 2 𝑇 2 𝑓 𝑡 𝑒 −𝑖 𝑘𝜔 0 𝑡 𝑑𝑡 この複素数表記された 正弦波を重ね合わせていることは分かるんだけど、 cos 𝑘 𝜔 0 𝑡 , sin 𝑘 𝜔 0 𝑡 に比べてイメージしにくい

フーリエ級数(複素数表記) 赤が実軸 緑が虚軸 青が時間軸 区間 − 𝑇 2 , 𝑇 2 上の連続関数𝑓(𝑡)は、 フーリエ級数で表現できる. − 𝑇 2 𝑇 2 𝑓 𝑡 = 𝑘=−∞ ∞ 𝐶 𝑘 𝑒 𝑖 𝑘𝜔 0 𝑡 𝐶 𝑘 = 1 𝑇 − 𝑇 2 𝑇 2 𝑓 𝑡 𝑒 −𝑖 𝑘𝜔 0 𝑡 𝑑𝑡 赤が実軸 緑が虚軸 青が時間軸

フーリエ変換とは 𝑓 𝑡 = 1 2𝜋 −∞ ∞ 𝐹 𝜔 𝑒 𝑖𝜔𝑡 𝑑𝜔 𝐹(𝜔)= −∞ ∞ 𝑓 𝑡 𝑒 −𝑖𝜔𝑡 𝑑𝑡 𝑡 𝑓 𝑡 𝑓 𝑡 = 1 2𝜋 −∞ ∞ 𝐹 𝜔 𝑒 𝑖𝜔𝑡 𝑑𝜔 𝐹(𝜔)= −∞ ∞ 𝑓 𝑡 𝑒 −𝑖𝜔𝑡 𝑑𝑡 フーリエ変換 : 逆フーリエ変換 : 𝑡 𝜔 𝑓 𝑡 𝐹(𝜔) このかたちをよく見ると, f(t)を a倍すると F(ω)も a倍される 形になっている f(t)  af(t) とすると F(ω)  aF(ω) 逆フーリエ変換のみに ½πがあるのが気持ち悪い人は違う定義を行っている 時間𝑡の関数 𝑓 𝑡 を、周波数𝜔の関数𝐹(𝜔)に変換する 𝑓 𝑡 と𝐹(𝜔)は複素数関数である(𝑓 𝑡 は実数関数のことが多い) フーリエ級数展開において T → ∞ とすると導出できる

ガウス関数のフーリエ変換 𝑔 𝑡 = 1 2𝜋 𝜎 𝑒 − 𝑡 2 2𝜎 2 𝐺 𝜔 = 𝑒 − 𝜔 2 𝜎 2 2 ガウス関数 : 導出も大切だけど、 結論がとにかく大切なので 覚えてほしい! ガウス関数をフーリエ変換するとガウス関数になる 標準偏差は逆数になる(裾の広い関数はとがった関数に) 虚部はゼロになる 𝑔 𝑡 = 1 2𝜋 𝜎 𝑒 − 𝑡 2 2𝜎 2 ガウス関数 : フーリエ変換 : 𝐺 𝜔 = 𝑒 − 𝜔 2 𝜎 2 2 𝑔 𝑡 𝜎=20.0の例 𝐺 𝜔

ガウス関数のフーリエ変換(導出) 𝐺 𝜔 = 1 2𝜋 𝜎 −∞ ∞ 𝑒 − 𝑡 2 2𝜎 2 𝑒 −𝑖𝜔𝑡 d𝑡 (定義より) (両辺微分) = 1 2𝜋 𝜎 −∞ ∞ 𝑒 − 𝑡 2 2𝜎 2 (−𝑖𝑡) 𝑒 −𝑖𝜔𝑡 d𝑡 (微分実行) = 1 2𝜋 𝜎 𝜎 2 −∞ ∞ − 2𝑡 2 𝜎 2 𝑒 − 𝑡 2 2𝜎 2 𝑖 𝑒 −𝑖𝜔𝑡 d𝑡 (整理・部分積分準備) = 1 2𝜋 𝜎 𝜎 2 𝑒 − 𝑡 2 2𝜎 2 𝑖 𝑒 −𝑖𝜔𝑡 −∞ ∞ − −∞ ∞ 𝑒 − 𝑡 2 2𝜎 2 𝜔 𝑒 −𝑖𝜔𝑡 d𝑡 (部分積分) 𝑑𝐺 𝜔 𝑑𝜔 =−𝜔 𝜎 2 𝐺 𝜔 =−𝜔 𝜎 2 𝐺 𝜔 (第一項はゼロ、第二項はG(w)なので) 𝑑𝐺 𝜔 𝑑𝜔 =−𝜔 𝜎 2 𝐺 𝜔

ガウス関数のフーリエ変換(導出) 𝐺 𝜔 = 𝑒 − 𝜔 2 𝜎 2 2 𝑑𝐺 𝜔 𝑑𝜔 =−𝜔 𝜎 2 𝐺 𝜔 𝑑𝐺 𝜔 𝑑𝜔 =−𝜔 𝜎 2 𝐺 𝜔 (これは一階の微分方程式なので変数分離で解ける) 𝑑𝐺 𝜔 𝐺 𝜔 =−𝜔 𝜎 2 𝑑𝜔 (変数分離) log 𝐺 𝜔 =− 1 2 𝜔 2 𝜎 2 +𝐶 (両辺を積分、Cは積分定数) 𝐺 𝜔 = 𝑒 𝐶 𝑒 − 1 2 𝜔 2 𝜎 2 (整理) 𝐺 0 = 𝑒 𝐶 = 1 2𝜋 𝜎 −∞ ∞ 𝑒 − 𝑡 2 2𝜎 2 d𝑡 =1 (積分定数を決める、有名な積分公式利用) 𝑑𝐺 𝜔 𝑑𝜔 =−𝜔 𝜎 2 𝐺 𝜔 𝐺 𝜔 = 𝑒 − 𝜔 2 𝜎 2 2 (求まった積分定数を代入して,フーリエ変換が得られた)

畳み込み積分のフーリエ変換 𝐻 𝜔 =𝐹 𝜔 𝐺(𝜔) ℎ 𝑥 = −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 導出も大切だけど、 結論がとにかく大切なので 覚えてほしい! 畳み込み積分のフーリエ変換 ℎ 𝑥 = −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 𝐻 𝜔 =𝐹 𝜔 𝐺(𝜔) 𝐻 𝜔 , 𝐹 𝜔 , 𝐺(𝜔)は, ℎ 𝑥 , ℎ 𝑥 , ℎ 𝑥 のフーリエ変換 畳み込み積分のフーリエ変換は、フーリエ変換後の積になる 用途例 畳み込みは処理時間がかかる  O(N2) フーリエ変換して(FFTならO(NlogN)),周波数空間で積を計算し(O(N)), 逆フーリエ変換( O(NlogN) ) O(NlogN) (𝑓∗𝑔) 𝑥 を計算するより ℱ −1 ℱ 𝑓 ℱ 𝑔 を計算したほうが速いことがある

畳み込み積分のフーリエ変換(導出) ℎ 𝑥 = −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 =𝐹 𝜔 𝐺(𝜔 導出も大切だけど、 結論がとにかく大切なので 覚えてほしい! 畳み込み積分のフーリエ変換(導出) ℎ 𝑥 = −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 (畳み込み積分の定義) 𝐻 𝜔 = −∞ ∞ −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 𝑒 −𝑖𝑥𝜔 𝑑𝑥 (hをフーリエ変換) = −∞ ∞ −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 𝑒 −𝑖𝑥𝜔 𝑑𝑡𝑑𝑥 (整理) = −∞ ∞ −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 𝑒 −𝑖 𝑥−𝑡 𝜔 𝑒 −𝑖𝑡𝜔 𝑑𝑡𝑑𝑥 (さらに整理、少し技巧的) = −∞ ∞ −∞ ∞ 𝑓 𝑥−𝑡 𝑒 −𝑖 𝑥−𝑡 𝜔 𝑑𝑥 𝑔 𝑡 𝑒 −𝑖𝑡𝜔 d𝑡 (x関連とt関連の項に分離) =𝐹 𝜔 𝐺(𝜔

フーリエ変換(復習)のまとめ フーリエ変換: 時間𝒕の関数 𝑓 𝑡 を周波数𝝎の関数𝐹(𝜔)に変換する変換 フーリエ変換: 時間𝒕の関数 𝑓 𝑡 を周波数𝝎の関数𝐹(𝜔)に変換する変換 𝑓 𝑡 = 1 2𝜋 −∞ ∞ 𝐹 𝜔 𝑒 𝑖𝜔𝑡 𝑑𝜔 𝐹(𝜔)= −∞ ∞ 𝑓 𝑡 𝑒 −𝑖𝜔𝑡 𝑑𝑡 ガウス関数をフーリエ変換するとガウス関数になる 𝑔 𝑡 = 1 2𝜋 𝜎 𝑒 − 𝑡 2 2𝜎 2 𝐺 𝜔 = 𝑒 − 𝜔 2 𝜎 2 2 畳み込み積分のフーリエ変換はフーリエ変換の積になる ℎ 𝑥 = −∞ ∞ 𝑓 𝑥−𝑡 𝑔 𝑡 d𝑡 𝐻 𝜔 =𝐹 𝜔 𝐺(𝜔) 𝐻 𝜔 , 𝐹 𝜔 , 𝐺(𝜔)は, ℎ 𝑥 , ℎ 𝑥 , ℎ 𝑥 のフーリエ変換

離散フーリエ変換(1D) 𝐹 𝑘 𝐹 𝑘 = 1 𝑁 𝑙=0 𝑁−1 𝑓 𝑙 𝑒 −𝑖 2𝜋𝑘𝑙 𝑁 𝐹 𝑘 = 1 𝑁 𝑙=0 𝑁−1 𝑓 𝑙 𝑒 −𝑖 2𝜋𝑘𝑙 𝑁 𝑓 𝑙 = 𝑘=0 𝑁−1 𝐹 𝑘 𝑒 𝑖 2𝜋𝑘𝑙 𝑁 フーリエ 変換 逆フーリエ 変換 𝑓 𝑙 1 2 N-1 … 𝐹 𝑘 … … 1 2 N-1 複素数列 𝑓 𝑙 𝑙=0,…,𝑁−1 を、複素数列 𝐹 𝑘 𝑘=0,…,𝑁−1 に変換する( 𝑓 𝑙 は実数列のことが多い) 𝐹 𝑘 は,k番目の正弦波 𝑒 𝑖2𝜋 𝑁 𝑘𝑙 の,大きさと偏角を表す 半分より右に行くと逆に低周波になる  『一回あたり動く角度が大きくなると,それは小さい角度で逆方向に回っていると思えるから』 という説明が分かりやすいかも 周期Nの離散値 𝑓 𝑙 を周期Nの離散値 𝐹 𝑘 に変換する 𝑓 𝑙 と 𝐹 𝑘 は複素数(ただし 𝒇 𝒍 は実数列のことが多い) 𝑓 𝑙 が実数の場合 𝐹 𝑘 = 𝐹 −𝑘 が成り立つ( 𝐹 −𝑘 = 𝐹 𝑁−𝑘 )

少し余談(FFTの簡単な説明)

𝐹 𝑘 = 1 8 𝑙=0 7 𝑓 𝑙 𝑒 −𝑖 2𝜋 8 𝑘𝑙 N=8のときの離散フーリエ変換を考えてみる 𝐹 𝑘 = 1 8 𝑙=0 7 𝑓 𝑙 𝑒 −𝑖 2𝜋 8 𝑘𝑙 この 𝑒 −𝑖 2𝜋 8 𝑘𝑙 は何? -klを無視した 𝑒 𝑖 2𝜋 8 は1の8乗根 𝑒 𝑖 2𝜋 8 =𝑐𝑜𝑠 2𝜋 8 +𝑖𝑠𝑖𝑛 2𝜋 8 𝑒 −𝑖 2𝜋 8 = cos 2𝜋 8 −𝑖 sin 2𝜋 8

𝑠= 𝑒 −𝑖 2𝜋 8 𝑠= 𝑒 −𝑖 2𝜋 8 とおくと… 𝑠 6 𝑠 7 𝑠 5 𝑠 8 𝑠 4 𝑠 3 𝑠= 𝑒 −𝑖 2𝜋 8 とおくと… 𝑠 6 𝑠 7 𝑠 5 𝑠 8 𝑠 4 𝑠= 𝑒 −𝑖 2𝜋 8 𝑠 3 𝑠 9 , 𝑠 17 , 𝑠 25 ,… 𝑠 2 𝑠 11 , 𝑠 19 , 𝑠 27 ,… 𝑠 10 , 𝑠 18 , 𝑠 26 ,…

𝐹 𝑘 = 1 8 𝑙=0 7 𝑓 𝑙 𝑒 −𝑖 2𝜋 8 𝑘𝑙 N=8のときの離散フーリエ変換を、根性で書き下してみる 𝐹 𝑘 = 1 8 𝑙=0 7 𝑓 𝑙 𝑒 −𝑖 2𝜋 8 𝑘𝑙 N=8のときの離散フーリエ変換を、根性で書き下してみる 𝑠= 𝑒 −𝑖 2𝜋 8 を利用すると以外に綺麗な形に 行列自体は前計算可能 行列と (f0, f1, f2,… f7)の積には,複素数の掛け算が 8×8回必用  O(N2) Nが2のべき乗のとき,これをO(N log N)で計算できる!!

𝑠= 𝑒 −𝑖 2𝜋 8 なので 𝑠 𝑘+8𝑛 = 𝑠 𝑘 が成り立つ 乗数が7以下になるよう変形 なんか繰り返しが見える…

偶数列に注目して…  偶数列が先に、  奇数列が後に なるよう入れ替える

この行列をじっくり眺める この部分は… この部分は同じ! 黄色い部分の 繰り返しが隠れている! 𝑠 0 ( 𝑠 1 ( 𝑠 2 ( 𝑠 3 ( 𝑠 4 ( 𝑠 5 ( 𝑠 6 ( 𝑠 7 ( ) 黄色い部分の 繰り返しが隠れている!

先の繰り返し構造を利用して 以下の通り変形できる 複素数 掛け算 回数 4 x 8 回(疎行列xベクトル) 1 x 8 回(疎行列xベクトル)

偶数列を先に 奇数列を後になるよう 入れ替える

2分割の回数だけ1x8 が生じるので O(N log N) に この黄色い部分の中に さらに繰り返しが存在 2 x 8 回 1 x 8 回 1 x 8 回 1x8 + 1x8 + 2x8 : 2分割の回数だけ1x8 が生じるので O(N log N) に

2分割の回数だけ1x8 が生じるので O(N log N) に この黄色い部分の中に さらに繰り返しが存在 1 x 4 回 1 x 8 回 S0=1を考慮すると 掛け算は1x4回 1 x 8 回 1x8 + 1x8 + 2x8 : 2分割の回数だけ1x8 が生じるので O(N log N) に

『 NxN 疎行列  × N次元 ベクトル』の繰り返しである NxN 疎行列の各行には『1』と sk が一つだけ含まれる 行列xベクトル 演算は, ベクトルから2個選んで 片方をそのまま、もう片方に sk をかけて足し合わせる  バタフライ演算がうっすらと見えてきませんか?

まとめ: 離散フーリエ変換 𝐹 𝑘 𝐹 𝑘 = 1 𝑁 𝑙=0 𝑁−1 𝑓 𝑙 𝑒 −𝑖 2𝜋𝑘𝑙 𝑁 𝐹 𝑘 = 1 𝑁 𝑙=0 𝑁−1 𝑓 𝑙 𝑒 −𝑖 2𝜋𝑘𝑙 𝑁 𝑓 𝑙 = 𝑘=0 𝑁−1 𝐹 𝑘 𝑒 𝑖 2𝜋𝑘𝑙 𝑁 フーリエ 変換 逆フーリエ 変換 𝑓 𝑙 1 2 N-1 … 𝐹 𝑘 … … 1 2 N-1 周期Nの離散値 𝑓 𝑙 を周期Nの離散値 𝐹 𝑘 に変換する Nが2のべき乗のとき高速フーリエ変換が適用可能  O(N log N)に!

Decovolution

画像の劣化モデル(1) g(x,y) : 劣化画像 f (x,y) : 劣化の無い理想画像 劣化 手ブレ・ピンボケ・撮影機器のノイズ等のため劣化した画像が取得される 劣化前画像復元のため劣化課程をモデル化(数式表現)する 劣化 f (x,y) : 劣化の無い理想画像 ※ピンホールカメラ動きの無いシーンを 撮影すると取得可能 g(x,y) : 劣化画像 ※ 手ブレ・ピンボケ・ノイズを含む

= + * 画像の劣化モデル(2) 𝑔 𝑥,𝑦 =ℎ 𝑥,𝑦 ∗𝑓 𝑥,𝑦 +𝑛(𝑥,𝑦) g(x,y) h(x,y) f(x,y) ここでは画像の劣化モデルを以下のとおり定義する 𝑔 𝑥,𝑦 =ℎ 𝑥,𝑦 ∗𝑓 𝑥,𝑦 +𝑛(𝑥,𝑦) = + * 劣化 手ブレ ピンボケ ノイズ g(x,y) h(x,y) f(x,y) n(x,y) 『元画像にカーネルh(x,y)を畳み込みノイズn(x,y)が加算されて』画像が劣化する h(x,y)は,ボケの様子を表し点広がり関数と呼ばれる f (x,y) g(x,y)

点広がり関数 (PSF: point spread function) = * + g(x,y) h(x,y) f(x,y) n(x,y) 画像劣化時に元画像に畳み込まれている関数h(x,y)のこと 劣化の特性を表す 元画像が点光源のとき、劣化画像に表れる応答を表すため、 点広がり関数(PSD)やインパルス応答と呼ばれる

劣化画像例

劣化画像例

劣化画像の復元 (単純な手法) 劣化画像と点広がり関数から元画像を取得する問題を考える 𝑔 𝑥,𝑦 =ℎ 𝑥,𝑦 ∗𝑓 𝑥,𝑦 +𝑛 𝑥,𝑦 gとhは既知で f がほしい 𝐺 𝑢,𝑣 =𝐻 𝑢,𝑣 𝐹 𝑢,𝑣 +𝑁(𝑢,𝑣)  両辺をフーリエ変換(大文字で表現) 𝐺 𝑢,𝑣 ≈𝐻 𝑢,𝑣 𝐹 𝑢,𝑣        ちょっと強引だけどノイズの影響を無視 𝐹 𝑢,𝑣 ≈ 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣        Fについて整理 𝑓 𝑥,𝑦 ≈ ℱ −1 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣     両辺逆フーリエ変換

劣化画像の復元 (単純な手法) g h G H G/H 𝑓 𝑥,𝑦 ≈ ℱ −1 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣 この手法の問題 𝑓 : 元画像 𝐺 : 劣化画像のフーリエ変換 𝐻 : 点広がり関数のフーリエ変換 𝑓 𝑥,𝑦 ≈ ℱ −1 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣   この手法の問題 ノイズを無視 Hは高周波部分でほぼゼロ  単純に G/H を実装するとノイズが 強調される 左の例ではHを以下の通り拡張した 𝐻′ 𝑢,𝑣 = 𝑡 𝐻 ′ 𝑢,𝑣 <𝑡 𝐻 𝑢,𝑣 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 g h フーリエ変換 逆フーリエ変換 G H G/H ここでは 𝑡=0.01を利用

正解との比較 右が正解 左が復元手法 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣 𝐺 𝑢,𝑣 : 劣化画像 ※Hに対する閾値処理の影響が見られる 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣   ℱ −1 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣 正解との比較 右が正解 左が復元手法 ※Hに対する閾値処理の影響が見られる ※これを行なわないと高周波成分に存在するノイズが強調され画像はうまく復元されない 𝐺 𝑢,𝑣 : 劣化画像

劣化画像の復元 : Wiener filter 𝑓 : 元画像 𝐺 : 劣化画像のフーリエ変換 𝐻 : 点広がり関数のフーリエ変換 𝐻 ∗ : 共役複素数 𝑓 𝑥,𝑦 ≈ ℱ −1 𝐻 ∗ 𝑢,𝑣 𝐻 𝑢,𝑣 2 +𝜖 𝐺 𝑢,𝑣   先の単純な手法の問題点(ノイズ無視・Hがゼロに近いときに困る)を改善 周波数空間において元画像F(u,v)と復元画像F’(u,v)=M(u,v)G(u,v)の平均二乗誤差 を最小化 arg min 𝑀 𝑢 𝑣 𝐹 𝑢,𝑣 −𝑀(𝑢,𝑣)𝐺 𝑢,𝑣 この解として以下が得られる 以下の講義資料では確率場の議論は無く、単純に平均二乗誤差 arg min 𝑀 𝑢 𝑣 𝐹 𝑢,𝑣 −𝑀(𝑢,𝑣)𝐺 𝑢,𝑣 の最小化を行なっている [http://web.engr.oregonstate.edu/~sinisa/courses/OSU/ECE468/lectures/ECE468_13.pdf] or [http://www.ee.columbia.edu/~xlx/ee4830/notes/lec7.pdf] 一方、確率場を考慮した説明がなされることもある。 𝑀(𝑢,𝑣) = 𝐻 ∗ 𝑢,𝑣 𝐻 𝑢,𝑣 2 + 𝑁 𝑢,𝑣 2 / 𝐹 𝑢,𝑣 2 ここで、ノイズNと元画像Fは不明なので 𝑁 𝑢,𝑣 2 / 𝐹 𝑢,𝑣 2 =𝜖 置いて上の式が得られる 導出の参考 [http://web.engr.oregonstate.edu/~sinisa/courses/OSU/ECE468/lectures/ECE468_13.pdf]

点広がり関数 h のフーリエ変換 H について hがガウシアンならHもガウシアン 広がりを表す𝜎は逆数になる ℎ 𝑥,𝑦 = 1 2𝜋 𝜎 2 𝑒 − 𝑥 2 + 𝑦 2 2𝜎 2 𝐻(𝑢,𝑣)= 𝑒 − 𝑢 2 + 𝑣 2 𝜎 2 2 ℎ 𝑥,𝑦 𝐻(𝑢,𝑣) hが手ブレによる線分形状をもつとき Hはsinc関数に ℎ 𝑥,𝑦 = 1 2𝑊 𝑖𝑓 𝑥 cos 𝜃 +𝑦 sin 𝜃 ≤𝑤 & 𝑥 sin 𝜃 =𝑦 cos 𝜃 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒   𝐻(𝑢,𝑣)= sin 𝑤 𝑢 cos 𝜃+𝑣 sin 𝜃 𝑤 𝑢 cos 𝜃+𝑣 sin 𝜃 ℎ 𝑥,𝑦 𝐻(𝑢,𝑣) ※ w: 線分の長さ、θ線分の傾き ※ note : 実装の際は, u,vは画素位置に 𝑢 ′ = 2𝜋 𝑊 𝑢, 𝑣 ′ = 2𝜋 𝐻 𝑣 と正規化して利用する

Wiener filter 適用例 劣化画像 Wiener filter 単純な手法 1/H σ = 6のガウシアン ε = 0.00001

Wiener filter 適用例 w = 20, θ=0.8π の線分カーネル ε = 0.00001 劣化画像 単純な手法 1/H w = 20, θ=0.8π の線分カーネル ε = 0.00001

まとめ: Deconvolution Deconvolution(逆畳み込み)とは, 以下二つのフィルタを紹介した 劣化画像 g(畳み込み後)と 点広がり関数 h から,元画像を復元する処理のこと 以下二つのフィルタを紹介した 点広がり関数の逆数を利用した単純なフィルタ ノイズを考慮し復元画像と元画像の誤差を最小化する Wiener filter 今回は点広がり関数を既知としたが,これも同時に推定する手法もある 𝑓 𝑥,𝑦 ≈ ℱ −1 1 𝐻 𝑢,𝑣 𝐺 𝑢,𝑣   𝑓 𝑥,𝑦 ≈ ℱ −1 𝐻 ∗ 𝑢,𝑣 𝐻 𝑢,𝑣 2 +𝜖 𝐺 𝑢,𝑣   𝑓 : 元画像 𝐺 : 劣化画像のフーリエ変換 𝐻 : 点広がり関数のフーリエ変換 𝐻 ∗ : 共役複素数