第 10 回 講 義 水 曜 日 1 限 教 室 6218 情 報 デザイン 専 攻 画 像 情 報 処 理 論 及 び 演 習 I - 画 像 合 成 - Image Analogy 吉 澤 信 shin@riken.jp, 非 常 勤 講 師 大 妻 女 子 大 学 社 会 情 報 学 部 今 日 の 授 業 内 容 www.riken.jp/brict/yoshizawa/lectures/index.html ごめんなさい.m( )m 講 義 ページからリンク 張 り 忘 れまし た. 直 接 URL をfirefoxに 打 ち 込 んでください. 今 日 は 演 習 メインでやります. 1 前 回 の 復 習. 2 演 習 :Image Analogy +レポート 第 3 回 の 質 問. 今 日 の 演 習 は 第 4 回 レポートの 内 容 なので 頑 張 ってくださいp(^^)q 前 回 の 復 習 :Texture 合 成 与 えられた 画 像 を 敷 き 詰 める 事 : - 境 界 を 出 来 るだけ 意 識 させない. - Textureの 繋 がり(パターン)を 保 持. 前 回 の 復 習 :Pixel TransferによるInpainting 画 像 から 似 ている 画 素 Textureを 持 ってくる. - 局 所 Windowで 類 似 パターンを 検 索 :Windowサイズに 依 存. - 低 周 波 画 像 は 補 間 で 生 成 しておくと 影 等 の 効 果 を 反 映 出 来 る. - 穴 (マスク)を 埋 める 順 番 が 重 要! 類 似 検 索 p D. Hoiem, Univ. Illinois. D. Hoiem, Univ. Illinois. H. Yamauchi et al., CGI 2003. 前 回 の 復 習 :Image Analogy/Example-based 例 題 や 類 推 による 画 像 編 集 合 成 : 原 理 は 同 じ 類 似 検 索. 前 回 の 復 習 :Image Analogy 様 々なフィルタ 処 理 が 可 能! 1
Image Analogyアルゴリズム パラメータ(Windowサイズ): r>=2. Image Analogyアルゴリズム2 検 索 はANN (Approximate Nearest Neighbor)ライブラ リを 使 う. ANNはエラー( 誤 差 )を 許 して 高 速 にn 次 元 空 間 の 近 傍 をサーチ. パラメータ(ANNError): E>=1.0. Image Analogyアルゴリズム3 Best Approximate Matchは Windowの 半 径 2のとき55 次 元 ベクトルのガウス 相 関. - ガウス 相 関 : 中 心 の 画 素 からガウ ス 関 数 で 重 みを 付 けて 対 応 する 画 素 を 要 素 とするベクトルの 距 離. Best Coherence Matchは Textureの 整 合 性 を 加 味 し て 既 に 合 成 された 画 素 の 対 応 する 画 素 でサーチ. - Textureの 整 合 性 を 重 視 する 場 合 はパラメータkを 大 きくする. - 大 きくしすぎるとAとA だけしか 結 果 に 反 映 されないので 注 意. パラメータ(Texture 度 ): k>=0. 演 習 :Image Analogyを 使 ってみよう! www.riken.jp/brict/yoshizawa/lectures/ex05.zip ごめんなさい.m( )m 講 義 ページからリンク 張 り 忘 れました. 直 接 URL をfirefoxに 打 ち 込 んでください. Image Analogyでフィルタリング: 1. Ex05 内 に 用 意 されたプログラム 群 を 動 かしてみる. 2. Ex05 内 の 画 像 を 用 いてImage Analogyによる 色 々 なフィルタリング 処 理 をしてみる. 3. 新 しいフィルタリングを 考 えてみよう! 今 日 の 演 習 は 第 4 回 レポートの 内 容 なので 頑 張 ってくださいねーp(^^)q 演 習 :ANNのコンパイル www.riken.jp/brict/yoshizawa/lectures/ex05.zip まずはじめに ANNをコンパイルする. 1. Ex05.zipを 展 開 する. 2. Ex05 内 にann_1.1.2.zipがあるのでEx05 内 で 展 開 する. 3. 端 末 でEx05/ann_1.1.2に 入 る もしもデスクトップに 展 開 していたら cd ~/Desktop/Ex05/ann_1.1.2. 4. コンフィギュレーションを 行 う4.の 後 に 端 末 で sh Make-config でエンターキー. 5. コンパイルする5.の 後 に 端 末 で make linux-g++ と 打 ち 込 みエンターキーを 押 す.Ex05/ann_1.1.2/libの 下 に libann.aが 出 来 れば 成 功. 演 習 :Ex05 内 の 説 明 www.riken.jp/brict/yoshizawa/lectures/ex05.zip Ex05 内 の 説 明 :コンパイルは 端 末 で make Makefile ImageAnalogyClass.h: Image Analogyの 本 体. - ColorImage.h: カラー 画 像 クラス. - GaussianPyramid.h: ガウスピラミッドクラス. Image Analogyとは 関 係 ないファイル: - Image Analogyの 入 力 画 像 を 生 成 するフィルタで 使 うヘッダー ファイル:Gauss.h: ガウス 平 滑 化 用 fastgb.h & gaussfgt1d.h: 高 速 エッジ 保 存 フィルター 用. - 前 回 までに 使 ったファイル:SimpleImage.h( 画 像 クラス) otsu.h( 大 津 の 二 値 化 ) ppmio.h(カラー 画 像 入 出 力 ) thinning.h( 細 線 化 ). 2
演 習 :Image Analogyとは 関 係 ないファイル まずは Image Analogyとは 直 接 関 係 ないプログラムから. ただし これらのプログラムを 使 えばImage Analogyに 入 力 させる 画 像 を 簡 単 に 作 成 可 能 : Run_Smoothing.sh, Run_EdgePreserving.sh, Run_EdgeThinning.sh. EdgeThinning.cxx: エッジ 強 度 画 像 ( 勾 配 強 度 =Gradientベクトル の 大 きさ)とエッジの 細 線 化 画 像 を 出 力 するプログラム: 引 数 3: - EdgeThinning 入 力.ppm 出 力 エッジ 細 線 化.ppm 出 力 強 度 画 像.ppm 演 習 :Image Analogyとは 関 係 ないファイル Smoothing.cxx:ガウス 平 滑 化 を 実 行 するプログラム: 引 数 3: - Smoothing 入 力.ppm 出 力.ppm 平 滑 化 度 合 (double) - 平 滑 化 度 合 のパラメータは0より 大 きな 実 数 2.0~20.0ぐらいが 実 用 的. EdgePreservingFilter.cxx: エッジ 保 存 平 滑 化 を 実 行 : 引 数 3 - EdgePreservingFilter 入 力.ppm 出 力.ppm エッジの 大 きさ(double) - エッジの 大 きさパラメータは0より 大 きな 実 数 0.5~2.0ぐらいが 実 用 的. エッジ 細 線 化 画 像 入 力 エッジ 強 度 画 像 EdgePreservingFilter, 1.0 入 力 Smoothing, 5.0 演 習 :Texture Transfer Image Analogyを 用 いてTexture Transferを 実 行 するプログラム: 引 数 8 - TextureTransfer 入 力 画 像 A.ppm 入 力 画 像 A.ppm 入 力 画 像 B.ppm 出 力 画 像 B.ppm Texture 度 k(double>=0.0) ANN 誤 差 (double>=1.0) Window 半 径 (int>=2) Blending(1.0>=double>=0.0, 小 元 画 像 強 め) - sh Run_TextureTransfer.shでも 実 行 可 能. 演 習 :Texture by Numbers Image Analogyを 用 いてTexture by Numbersを 実 行 するプログラ ム: 引 数 7 - TextureByNumbers 入 力 画 像 A.ppm 入 力 画 像 A.ppm 入 力 画 像 B.ppm 出 力 画 像 B.ppm Texture 度 k(double>=0.0) ANN 誤 差 (double>=1.0) Window 半 径 (int>=2) - sh Run_TextureByNumbers.shでも 実 行 可 能 実 行 結 果. 演 習 :Artistic Filters 演 習 :シェルの 説 明 Image Analogyを 用 いて 様 々なArtisticフィルタを 実 行 : 引 数 7 - ArtisticFilter 入 力 画 像 A.ppm 入 力 画 像 A.ppm 入 力 画 像 B.ppm 出 力 画 像 B.ppm Texture 度 k(double>=0.0) ANN 誤 差 (double>=1.0) Window 半 径 (int>=2) - sh Run_ArtisticFilter.sh sh Run_Etc1~3.sh sh Run_Smoothing_Sharpning.shでも 実 行 可 能. 端 末 にて sh シェルスクリプト 名.sh で 実 行 中 にコンパイル+ 実 行 + 表 示 のコマンドが 書 いてある. - Run_TextureTransfer.sh: 5 種 類 のテ クスチャーをテクスチャー 度 を 1,3,5,7,9の 五 種 類 で 実 行. 3
演 習 :Run_TextureByNumbers.sh 演 習 :Run_Smoothing_Sharpning.sh 入 力 演 習 :Run_ArtisticFilter.sh 演 習 :Run_ArtisticFilter.sh テクスチャー 度 の 違 い:6 種 類 実 行. 演 習 :Run_ArtisticFilter.sh Window 半 径 の 違 い:2 種 類 実 行. 注 意 点 :ANN 誤 差 は 全 て 1000.0で 実 行 1.0に 近 け れば 綺 麗 な 結 果 だが 計 算 時 間 が 大 : 数 十 分 ~ 数 十 時 間 かかる 可 能 性 あり! 演 習 :Run_Etc1.sh ArtisticFilterにEdgeThinningの 出 力 (エッジ 強 度 )を 使 った 結 果. 4
演習 Run_Etc2.sh 演習 Run_Etc3.sh 油絵的フィルタ効果 入力 演習 Run_Etc3.sh 演習 シェルスクリプトを動かしてみよう 端末にて sh シェルスクリプト名.sh 水彩画的フィルタ効果 入力 演習 シェルスクリプトを変えてみよう Run_TextureByNumbers.shを使って以下の画像に対し て処理してみよう! A Run_ArtisticFilter.sh Run_EdgePreserving.sh Run_EdgeThinning.sh Run_Smoothing.sh Run_Smoothing_Sharpning.sh Run_TextureTransfer.sh Run_TextureByNumbers.sh Run_Etc1.sh Run_Etc2.sh Run_Etc3.sh A B 演習 自分で新しいエフェクトを作ってみよう Run_ArtisticFilter.shを使って以下の画像の様に自分の オリジナルのエフェクトを処理してみよう! 注意点 A, A の画像サイズ は同じでないとダメ ヒント 模様 エフェクトが付い た画像を平滑化するとよい 5
来 週 の 予 定 www.riken.jp/brict/yoshizawa/lectures/index.html 1 画 像 合 成 Inpaintingその3 2 演 習 : 画 像 合 成. Perez et al. SIGGRAPH 2003. 6