hirax.net::Keywords::「画像処理」のブログ



2006-02-12[n年前へ]

斜め配置CCD・CMOの秘密 前編 

 「画素を45度回転させ斜めに配置した」クリアビッドCMOSセンサをSONYが発表した時に、Fast & First 情報掲示板(No.9601, No.9603)で「斜め配置センサと通常配置センサの解像度」について少し書かれています。それを面白く読みながら、書かれていたことを自分なりに整理して、つらつらと考えごとをしてみました。その内容を前編・中編・後編としてまとめてみることにします。あくまで撮像素子の部分だけを考え、後の画像処理の部分については全く考えていません。また、素人のテキトーな自主学習なので、内容について信頼性が全然ないことをお断りしておきます。

撮像素子を45度傾けると高解像度に

Title 通常の撮像素子の画素は垂直・水平方向に綺麗に並んでいます。例えば、撮像素子の画素を適当に描いてみると右のような感じになります。つまり、単位長さ1×1の大きさの正方形状画素が(各画素が垂直・水平方向に並びながら)平面をびっしり埋めている、というイメージです。こんなイメージ画像を描いてみた後に、水平(あるいは垂直)方向の解像度、すなわち「単位長さあたりの画素数」がどうなるかを考えてみることにします。

 この場合、画素の大きさが1なのですから、距離(単位長)1あたり画素が1個あることはすぐにわかります。つまり、水平(垂直)方向の解像度は「単位長さ辺り1画素」となっているわけです。試しに、水平(垂直)線を任意の場所で描いてみると、「長さ1あたり画素を必ず1個横切る(長さ1あたり画素が1個ある)」ということを確認することができます。

Title それでは、この撮像素子中の画素配置を45度傾けた(回転させた)場合、水平(垂直)方向の解像度はどのようになるでしょうか? この場合も、適当なイメージ画像を描いて考えてみることにしましょう。…そこで、右のように、各画素の配置を「45度」回転させた撮像素子を描いてみます。そして、水平(垂直)線を任意の場所で描いてみると、「ほぼ(つまりごく限られた特殊な条件を除き)」全ての箇所で「長さ√2あたり画素を必ず2個横切る(長さ√2あたり画素が2個ある)」ことがわかります。

つまり、水平(垂直)方向に対しては、単位長あたり「2 / √ 2 = √ 2 ≒ 1.4」個の画素があることになるのです。つまり、撮像素子の画素を45度斜めに傾いた配置にすることで、1.4倍の解像度化を実現することができた、ということになります。もちろん、(この状態で)45度斜めの方向に対する解像度は「単位長1あたり1個の画素」ということになっているわけですから、逆に言えば、水平・垂直方向に各画素が綺麗に並んでいる配置の場合には、45度斜めの方向に対する解像度が「水平・垂直方向よりも1.4倍高かった」ということになるわけです。

視覚特性は斜め方向には鈍い

 ところで、人間の視覚特性は斜め方向に対しては感覚が鈍くなっています。ということは、人間が画像を眺める際には、その画像の斜め方向の解像度は低くても構わない、ということになります。斜め方向の解像度は低くても構わないから、その分水平・垂直方向の解像度が高い方が良い(アラが目立たない)というわけです。つまり、「ごくごく単純に考える限りは」画素配置を45度斜めに傾けたタイプの撮像素子の方が、人間の視覚特性と特性が合っていて都合が良い、という風に思えます。

 それでは、現在多く発売されている製品で使われている撮像素子を45度傾ければ高解像度化するか、というとそうはなりません。それは、現状の撮像素子では(本来モノクロの)撮像素子をカラー化する時の手順中において、(多くの場合)すでに45度回転のテクニックが使われているからです。

RGGBフィルタを使ったカラー化の場合

Title 本来「カラー」でない撮像素子をカラー化するためには、色のついたフィルタを撮像素子の前にとりつけることになります。例えば、原色フィルタと呼ばれる「赤・緑・青色のカラーフィルタなどを各画素の前にとりつけるシステム」では、赤色・緑色・青色それぞれの光の割合がわかるように、各画素の前にRGB(Red, Green, Blue)いずれかの色のフィルタをつけます。例えば、右のイメージ図はRGGB配列のベイヤー配列のカラーフィルタのイメージ図です。近隣4画素のうち、1画素ずつに青色と赤色のフィルタを張り、残り2画素に緑色のフィルタが張られています。緑色の画素が青色と赤色の画素の2倍の量にされているのは、人間が感じる視覚特性は緑色の成分によるところが大きいからです。

Title それでは、話を簡単にするために、人間が感じる視覚特性への寄与が大きい緑色に割り当てられた画素だけを抽出して、フィルタ方式のカラー撮像素子における解像度を考えてみることにします。右の画像は、緑色の画素だけを描き、そして各画素間の境界線中心を点線で描いてみたものです。このように、補助線を描いてみると、緑色を担う各画素がどのように配置しているかがわかりやすくイメージできるようになります。この点線で描かれた緑色の画素配置をひとことで大雑把に言ってしまえば、√2×√2の大きさの画素が45度傾いた状態で配置されている、ということになります。つまり、つまり、RGGB型のベイヤー配列のカラーフィルタを使ったカラー撮像素子においては、すでに45度回転配置により高解像度化のテクニックが(視覚特性への寄与が大きい緑色に対して)使われているというわけです。

 実際、右の画像で、水平(垂直)線を任意の場所で描いてみれば、「ほぼ(つまりごく限られた特殊な条件を除き)」全ての箇所で「長さ2あたり画素を必ず2個横切る(長さ2あたり画素が2個ある)」ことがわかります。つまり、単位長さ1に対して水平(垂直)方向には画素が1個の解像度がある、というわけです。本来は「√2×√2の大きさの画素」ですから、もしも45度回転したような配置にしなければ、水平(垂直)方向には長さ√2あたり1画素の解像度しかなかった、ということになります。しかし、緑色が斜めに配置されたRGGB配置にすることで、緑色画素を45度回転させることができて、結果として1.4倍の高解像度化がされていることになります。

RGGBフィルタCCDを45度回転させたらどうなる…?

Title それでは、カラーフィルタがRGGBの配置をしている撮像素子を45度回転させた場合にはどのようなことが起きるのでしょうか? 例えば、右の画像のように回転・配置させてみた場合には、解像度はどのようになるのでしょうか。右の配置は、ちょうど冨士フィルムのハニカムCCD(資料1資料2)と同じような場合なのですが、この場合に人間の視覚特性上重要な水平・垂直方向の解像度はどのようになっているのでしょうか? …上の例と同じように、このRGGBフィルタCCDを45度回転させた場合でも考えてみることにしましょう。

 さきほどと同じく、この右の画像には緑色の画素だけを描いてあり、そして各画素間の境界線中心を示す直線を描いてあります。すると、この場合というのは、「√2×√2の大きさの画素」が水平垂直方向に綺麗に並んでいることがわかります。そして、この画像中で水平(垂直)線を任意の場所で描いてみれば、全ての箇所で「長さ√2あたり画素を必ず1個横切る(長さ√2あたり画素が1個ある)」ことがわかります。長さ√2あたり画素が1個ということは、単位長さ1あたりならば水平(垂直)方向に画素が0.7個の解像度ということになります。

 つまり、RGGBフィルタCCDを45度回転させてしまうと、視覚特性上重要な緑色の水平・垂直方向の解像度が「単位長あたり1画素」から「単位長あたり0.7画素」に低下してしまっている、ということになります。ということは、単純に「人間にとって重要な緑色の解像度」だけを考えるのであれば、(RGGBフィルタを使った場合)斜め配置センサは決して有利とはいえない、ということがわかります。

クリアビッドCMOSセンサの場合

Title 単純に「人間にとって重要な緑色の解像度」だけを考えるのであれば、(RGGBフィルタを使った場合)斜め配置センサは決して有利とはいえないというのであれば、先日発表されたクリアビッドCMOSセンサの場合には一体どうなっているのでしょうか…?謳い文句の「画素を45度回転させ斜めに配置することで、1画素の面積を大きくしながら(高感度にしながら)、解像度は維持」というものは一体どういうことなのでしょうか?

 そこで、SONYのサイトにある情報(右にページ・サムネイルで示したページ)を見てみると、RGGB配置のカラーフィルタを使っているわけではないことがわかります。4画素×4画素中に緑色を12画素を配置し・赤色と青色を2画素ずつ配置するという独自の配列です。つまり、大胆に言ってしまえば、ほとんどの画素を緑色担当にしているわけです。よくあるカラーフィルタの配置とは全く違うわけです。

 ほとんどの画素が緑色担当ということは、非常に大雑把に言ってしまえば、緑色単色のモノクロ撮像素子のようなものですから、一番最初に「撮像素子を45度傾けると高解像度に」で書いたように、45度回転配置による高解像度化の効果が生じます。クリアビッドCMOSセンサの場合、1画素の面積を大きくすることで高感度を実現しようとしています。つまり、通常であれば1×1の大きさの画素の面積を大きくして、√2×√2の大きさにしてあります。そして、その画素を斜め45度に回転させたモノクロ撮像素子のようなものであるわけです。…ということは、結局のところ、上で考えてみた「RGGBフィルタを使ったカラー撮像素子」と全く同じ解像度であることがわかります。なるほど、赤色と青色の画素数を減らし、その分の面積を緑色に回すことで、高感度と高解像度を両立させようという考え方であるようです。

色情報の解像度はどうなる?ハニカムCCDなら…?

 ところで、クリアビッドCMOSセンサの場合には、赤色と青色の画素数を減らしているわけですから、色情報の解像度をある程度低く設定しているわけです。また、「RGGB配置を45度回転させた」富士フィルムのハニカムCCDは(視覚特性上重要な)緑色に関する限り解像度の点で有利には見えないわけですが、やはり何らかのメリットはあるはずです。そこで、そういった点について、中編・後編で考えてみたいと思います。

前編 >> 中編 >> 後編

2006-03-06[n年前へ]

実写動画でミニチュア・ムービーを作る 

	MONTHLY RECOMMEND / 2004.10 / 今月のアート情報synthereal.com  -VFX/CGI Studio-  ミニチュライズ:実写のミニチュア化 以前「普通のカメラで撮影した映像を画像処理によってスローモーションにするサービス」を紹介した会社が「今度は実写動画を(オモチャの世界みたいな)ミニチュアムービーにするサービス」を開始。
 実際の風景がミニチュア模型の写真にしか見えない「本城直季・コンテナターミナル」で紹介した、撮影角度と撮影画角の割に浅い被写界深度の(に上か下をアオリでボカすことで見せかける)テクニックも参考になるかも。

2006-06-22[n年前へ]

「OpenCVによる実践画像処理」 

SourceForge.net: Open Computer Vision Librarydetail of Sato group 木曜・金曜と「OpenCVによる実践画像処理」という講座を受講していた。Intel社が無償で提供しているコンピュータ・ビジョン向けのライブラリOpenCVの概略・使い方紹介を東京工業大学 精密工学研究所nの佐藤教授らが教える、という講座だ。時間のほとんどは、サンプルコードを使いながらの実習として使われていて、なかなか楽しくOpenCVを知ることができた。
 1日目の終わりに、受講者に対し「今日を踏まえて、2日目はどのようにやりたいですか?」というようなことを聞かれた。「実習の時間が短い」という意見が出る一方で、「サンプルコードをコピペしてしまえば済むような実習では身にならず面白くない」という意見も出た(出したのは私だが)。
 …というわけで、2日目は「サンプルコード無しで、長い実習時間を使い、講師に質問しつつプログラムを作る」という実習形式になった。個人的には、実習時間をもっと短くて・課題を増やしてもらいたかったような気もするが、それでもとても身になった。…しかし、その結果、「実習の時間が短い」という意見を出した受講者は実にご機嫌がよろしくなかった。…その怒りの矛先が向いてしまった講師の方には、悪いことをしてしまった。

2007-03-24[n年前へ]

Imagination You Make 

使い方

 Imagination You Makeは画像加工をするためのWEBサイトです。ブラウザ上で画像をさまざまな効果を掛けたり、アニメーション画像を作成することができます。自分用のアカウントを作りログインすることで、手元の画像を他の人には見せずに自由に加工することができます。また、アカウントを作らない場合(ゲスト・モード)でも、サンプルファイルをに対して各種効果をかけることができます。(ただし、ゲスト・モードではサンプルファイル自体を書き換える画像間演算や、サンプルファイルに説明文・属性を付けたりする機能などは制限されています。)

 Imagination You Make で必要な作業は、「画像をマウスでつかんで動かす」「アイコンをクリックする」という2つだけです。たとえば、上・左右に配置されているアイコンをクリックすれば、"Processed Image"に対して、さまざまな画像効果がかかります。もちろん、処理を何回も次々と重ねていくことも可能です("Backup Image"として、処理を掛けている途中の画像を保存しておくこともできます。また、アップロードした画像に戻すこともできます)。

 また、ログインしていて、なおかつ、自分がアップロードしたファイルの場合、画面下部のサムネイル画像を"Processed Image"にドラッグアンドドロップすることで、異なる画像間で処理を行うことができます。

 "Processed Image"も"Backup Image"も自由にドラッグして移動できますから、机の上で絵を描いて遊ぶような感覚で操作することができます。また、他の画像を使って遊んでみたい場合には、画面下部からサムネイル画像を上の領域にドラッグ・アンド・ドロップして下さい。すると、その画像が画面に登場して、処理を行うことができるようになります。

アカウントを作る

 画面右上部の"Create new account"をクリックすると

  • 名前 "Name"
  • パスワード "Passwd"
  • パスワードの確認用 "Passwd"
の入力部が画面に現れます。そこで、適当に「ユーザ名」「パスワード」を入力し、"OK"ボタンを押すと、新しいアカウントが作成され、そのアカウントでログインした状態になります。ログインに失敗"Fail"する場合には、アカウント名を変える・パスワードを確認するなどしてみて下さい。

ログインする

 画面右上部の"Login your account"をクリックすると

  • 名前 "Name"
  • パスワード "Passwd"
の入力部が画面に現れます。そこで、あなたの「ユーザ名」「パスワード」を入力し、"OK"ボタンを押すと、そのアカウントでログインした状態になります。そのアカウントからログアウトしたい場合には、(ログインしている際に)画面上部に表示されている"Logout"をクリックして下さい。

画像をアップロードする

 ログインしている際に、画面上部に表示されている "Upload new image!" という部分をクリックして下さい。すると、画像のタイトル"Title", 説明文"Description"の入力欄とともに画像をアップロードすることができるフォームが画面に現れます。 画像のタイトル"Title", 説明文"Description"は省略可能ですので、この段階で必ず入力しなければならないわけではありません。また、後で入力・修正をすることもできます。なお、画像のタイトル"Title"や 説明文"Description"を使う画像処理機能もあります(吹き出し作成・ポラロイド写真加工・タイトル合成など)。

吹き出しや効果線の位置を決める「ターゲット"Target"」

 吹き出しや集中効果線は、画像中の顔や口を自動検出して自動配置させるようになっています。その位置を手動で決めたい場合には、"Processed Image"の上にある"Target"を好きな位置にドラッグして設定します。なお、Targetはログイン状態で、なおかつ、自分がアップロードした画像でないと見ることができません。

アイコンをクリックしてできること

 画面の上・右・左に並んでいるアイコンをクリックするとさまざまな画像加工を行うことができます。アイコンの機能は大きく分類すると次のようになっています。通常は、画面右上部に配置されているアイコンを使い、(適時、画面の右部のアイコンを使いつつ)反時計回りに順にを追った処理をかけていくと良いでしょう。

  • 画面右:行った処理を元に戻す機能といったヒストリ処理 / 画像間演算機能 / 動画作成機能
  • 画面上部:画像強調・色処理 / マンガ処理 / 絵画処理 / 美人化処理 など
  • 画面左部:写真フレーム・ジグソーパズル化 / 照明効果 / ミニチュア処理化など

 それぞれのアイコンの機能は次のようになります。

上部アイコン

  •  画像を鮮明にします
  •  明暗を強調します
  •  色合いを強調します
  •  画像中の「顔」をズームアップします
  •  画像中の「顔(瞳)」の化粧を落とします
  •  画像中の「顔(瞳)」に化粧をします
  •  アメリカ版画風イラストにします
  •   カラー木版画風にします
  •   白黒木版画風にします
  •  油絵絵画風にします
  •   鉛筆スケッチ風にします
  •   マンガの集中効果線を描きます。画像中の顔に自動的で効果線を集中させることもできますし、Targetを利用して位置を指定した上で、集中線を描かせることもできます
  •   マンガのような吹き出しを描きます。位置は画像中の「口」に自動配置することもできますし、Targetを利用して任意の位置に吹き出しを配置することもできます。吹き出しの内容は画像の説明"description"が使われます
  •  マンガの「タイトル」のように文字を描きます。内容は画像の題名"Title"が利用されます
  •    画像を印象的なセピア風にします
  •   画像を白黒写真にします

左部アイコン

  •  画像をミニチュア撮影風写真に加工します。ピント位置は"Target"を置いた位置になります
  •   画像をジグソーパズルにします
  •   LOMOカメラで撮影した写真風にします
  •  魚眼レンズで撮影したようにします
  •   ポラロイド写真風にします
  •   文字を書き入れたポラロイド写真風にします。文字は画像の説明"desciprion"が利用されます
  •    画像を燃やします
  •    右上から照明が当たっているような効果をかけます

右部アイコン

  •  最後の処理をかけない状態に戻します
  •  "Processed Image"と"Backup Image"をアップロードした画像に戻します
  •  "Processed Image"の内容を"Backup Image"の内容で書き換えます
  •  "Processed Image"と"Backup Image"を入れ替えます(要ログイン)
  •  "Processed Image"と"Backup Image"を合成します
  •  画像の左右反転させます
  •  「顔」のズームアップがされた状態の"Processed Image"と"Backup Image"を合成します
  •  "Processed Image"と"Backup Image"の間のモーフィング動画を作成します

サンプル画像

 Imagination You Make のサンプル画像にあります。

2007-04-07[n年前へ]

Imagination You Make のサンプル画像 

 画像加工をするためのWEBサイトImagination You Make使い方)で処理したサンプル画像(とオリジナル画像)を並べてみたものです。





ワイドレンズ・カラー木版画・集中線・吹き出しの組み合わせ例

 ワイドレンズ効果で顔を強調し、カラー木版画で輪郭線を強調し、さらに集中線で力強さを加え、吹き出しで言葉を付けてみたもの。人の顔やペットの写真にワイドレンズをかけると、とても面白い。

ミニチュア写真・照明効果・ポラロイドフレームの組み合わせ例

 ミニチュア写真で模型の街を撮影したような効果を与え、照明効果でその印象をさらに強調する。ポラロイドフレームは、(処理画像交換で)オリジナル画像にもかけることで、モーフィング動画を自然な感じにしている。高いところから撮影した写真は、ミニチュア写真をかけると面白い。

顔抽出・異画像間の画像演算・顔合成の組み合わせ例

 「模型の顔」と「モナリザ」の画像から顔抽出を行い、異画像間で顔合成を行い、「模型の顔」と「モナリザ」の顔を入れ替えた。顔抽出→顔合成を行った結果はモーフィング画像にしてみた。他の人の顔を色々合成してみると面白いかもしれない。



反転・顔抽出・異画像間合成・顔合成の組み合わせ例

 ビル・ゲイツとスティーブ・ジョブスの顔を合成してみたもの。肌色調整はしないので、適当にコントラスト調整をかけると良い。また、白黒にしてしまえば、色の違いは気にならなくなる。


イラストレーション・画像合成・色変換の組み合わせ例

 イラスト化でアメリカのカラー版画のイラストにしたもの。色がはっきりしている景色にはイラストレーションをかけると、とても綺麗な景色ができあがる。

イラストレーション・色鉛筆・画像合成の組み合わせ例

 イラスト化でアメリカのカラー版画のイラストにしたり、色鉛筆のカラー素描風にしたもの。


美人化・色変換・集中線・吹き出しの組み合わせ例

 モナリザを美人化し、さらに集中線で顔に視線が行くようにしたもの。吹き出しはGIF動画にすると面白い。吹き出し付きの動画によるメッセージを作成することもできる。

イラストレーション・画像合成の組み合わせ例

 80年代に流行ったアメリカ版画風にイラストレーションをかけたもの。エッジがはっきりしている画像には、イラストレーションをかけると驚くほど印象が変わる。

色変換・ジグソーパズルの組み合わせ例

 ジグソーパズル効果をオリジナル画像と処理画像の両方に掛けることで、モーフィング画像が「ジグソーパズルを動かしている感じ」になる。

イラストレーション・集中線・吹き出しの組み合わせ例

 イラスト化でアメリカのカラー版画のイラストにしたもの。色がはっきりしている景色では、アメコミ風に変わる。

集中線・吹き出しの組み合わせ例

 普通の景色も集中線と吹き出しを入れると、いきなりマンガの世界になる。オリジナル画像へも違う場所に吹き出しを入れることで、モーフィング画像が動きのある動画になった。

シャープ・セピアの組み合わせ例

 現代の街景色にシャープをかけ輪郭線を強調し、セピア風味にすることで郷愁感を出したもの。柔らかなソフトフォーカスもかかりつつも、芯のある写真ができあがる。



■Powered by yagm.net