【連載】

コンピュータビジョンのセカイ - 今そこにあるミライ

39 iPhoneアプリ「漫画カメラ」に見るコンピュータビジョンの実応用例

39/85

こんにちは、林昌希です。今回から数回に分けて、以前、反響が大きかった「人工知能で用いるコンピュータビジョン技術」のように、本編からは一旦離れて、コンピュータビジョンの中でも「基礎的な画像処理」を応用したものである「漫画風画像生成処理」というアプリケーションを紹介します。そして「漫画カメラ」というiPhoneのアプリを通して、基礎的な画像処理を用いてどのように漫画風画像生成処理が実現されるかをみていくことにします。

漫画カメラとは?

「漫画カメラ」は2012年9月11日のiTunes Storeでのアプリ公開から、非常に短い期間でユーザー数を飛躍的に伸ばしており、すでに全世界で300万ダウンロードを達成した人気アプリです。このアプリは日本のスーパーソフトウエアがリリースしたもので、TumblerのCEOであるデビッド・カープ氏が自身のTumblrに漫画カメラで処理した画像を投稿したことで海外でも話題になり、日本以外の国でも人気が出て来ているもようです。

漫画カメラは、その名の通り「漫画風の画像を撮影できるカメラ」アプリです。あらかじめ用意されている「漫画フレーム(下図)」を設定画面においてあらかじめ選択しておくことにより、撮影時にその設定したフレームを用いて撮影した写真を漫画風のモノクロ写真に変換して、漫画風の画像を生成してくれるというアプリです。

漫画カメラの概要

漫画カメラの画像処理の基本手順を理解する

漫画カメラの画像処理を理解するために、まずは「撮影した写真を漫画風のモノクロ写真に変換する」という処理がどのような手順を踏むかについて考えていきましょう。

実際の漫画の原稿では、漫画家は黒のペンを用いて輪郭を描きます。ただ、このままだと黒で塗りつぶすか、各領域を自分で細かく描いていくことになり、このまま黒ペンだけで描き込んでいくと労力が高くつくので、漫画家は「スクリーントーン」を各領域に貼り付けていきます。スクリーントーンは細かい編み模様や洋服の模様に使えるものなど様々な模様のものがあり、これを貼ることによりそのスクリーントーンの模様で、各領域を短時間でバラエティ豊かに埋めることができるわけです。

また、スクリーントーンの再現に加えて、漫画風の画像に自動編集するためには「エッジ検出」という処理により、輪郭の自動抽出を行う必要があります。「エッジ」とは、デジタル画像中の輝度の変化が激しい境界線のことをさします。もっと直感的に言えば「人間がペンで描いた輪郭に相当するような、細いエッジ領域を抽出した画像をつくり出す処理」がエッジ検出であるとも言えるでしょう。

つまり、このエッジ処理した結果の画像が「人間の視覚に感じる境界線に近いエッジを持つ画像」であればあるほど、漫画家が黒ペンで描いた輪郭線のような輪郭線だけをうまく抽出できていると言えます。エッジ抽出で生成した輪郭と、スクリーントーンを自動的に貼る処理という2つの処理結果があれば、漫画風の画像が自動的に画像処理で生成できることになります。

それではまず、エッジ検出の代表的な手法であり、漫画カメラでも使われているであろうと思われる「Canny エッジ検出器」というエッジ検出手法の仕組みを紹介していきます。その紹介が終わったのち、スクリーントーンを貼る処理をどのように行うかを紹介し、これにより漫画風画像を生成する処理の全体像を説明します。

Cannyエッジ検出器を使うと、漫画カメラのように漫画のような輪郭を抽出できることができますが、本当の漫画家の原稿レベルでエッジを検出できるものではないことには注意してください。あくまで、おおまかにエッジを抽出してくるだけで、人間が知覚しているようなエッジが抽出されるわけではないことには注意です。(※ より人間の知覚に近い境界線を自動抽出してくれる、もっと発展的な境界検出手法は存在しているのですが、今回は基本的な画像処理の紹介が焦点なので割愛します)。

「Canny エッジ検出器」の処理

Cannyエッジ検出は以下の3つの処理を順に行います

  1. 入力画像のDoG画像(Difference of Gaussian)を生成
  2. Non-maximal suppression(局所的に最大値以外を0に抑える)
  3. ヒステリシスしきい値処理

3つの処理の説明をする前に、まずはエッジ検出の基本的な概念を説明します。エッジは、ある狭い領域で画素値が急激に変化している場所が「境界線」であるとして、これを「エッジ部での画素値の急激な変化」とみなすことができます(エッジ処理は、グレースケール画像を用いた処理である点に注意してください)。

画像中のあるエッジ(輪郭)の境界線に垂直な方向(法線方向)において、その法線方向の直線上での各画素値の変化を考えてみましょう。このとき、そのエッジを超えたときの画素値の急激な変化を自動的に取得するには、もとの画像の値を微分した画像(微分画像)上の最大値(=山。最も白に近い値)と最小値(=谷。最も黒に近い値)を狭い領域ごとに検出することで、その場所をエッジとして検出することができます。つまりは微分画像でのピーク値を取る場所が、元の画像での画素の値の変化(勾配)が最も急なところであるので、その場所をエッジと見なすことができるのです。したがって、元画像を微分した1次微分画像を更にもう一度微分して「2次微分画像」を作成すれば、2次微分画像上で値が0である場所が「1次微分画像での山もしくは谷」に相当するとみなす処理を行うことができます。

39/85

インデックス

連載目次
第85回 点群応用(建築編) - LIDARを用いた高精度/広域3Dスキャン
第84回 点群応用(建築編) - 3Dスキャンが活きる建築物の規模
第83回 点群応用(建築編) - 高精度かつ広域な建築物の3Dスキャン
第82回 まだまだ使える人が少ない3D点群処理
第81回 3Dデータで処理を行う利点とは?
第80回 点群データを取得・解析する技術「3D点群」はデプスセンサと何が違うのか?
第79回 動きに反応して映像が変わるインタラクティブなプロジェクションマッピング
第78回 プロジェクションマッピングの原理
第77回 「プロジェクションマッピング」とはどういったものか?
第76回 顔や視線でコントロール
第75回 手や指の動きだけでコントロール
第74回 3Dジェスチャー認識のおおまかな原理
第73回 全身の人物姿勢情報を活用したアプリ例 - 腕の動きからのジェスチャー認識
第72回 Kinectはどのように人物姿勢推定の性能を向上させたのか?
第71回 Kinectの人物姿勢推定手法は学習時にどのような処理を行っているのか?
第70回 どうやってKinectは人体パーツを識別しているのか?
第69回 「人体パーツ識別技術」により実現されているKinect向け人物姿勢推定技術
第68回 まだ完全には解けていない人物姿勢推定の問題
第67回 3D人物姿勢推定の仕組みとナチュラルユーザーインタフェース
第66回 3Dデプスセンサーーを用いた注目の新ベンチャー企業(後編)
第65回 3Dデプスセンサーを用いた注目の新ベンチャー企業(前編)
第64回 アクティブステレオ方式とは違う3D形状の動画計測方式 - ToF形式
第63回 Kinectで3D撮影を行うための条件
第62回 モーションセンサとして見た場合のKinect
第61回 Kinectセンサの動作原理を読み解く
第60回 kinectを用いたビジネスのアイデアを競う「Kinect for Windows Contest」
第59回 Kinectがもたらしたセンシング革命
第58回 Kinectの登場がもたらしたコンピュータビジョン革命
第57回 Kinectなどで使われるデプスセンサを用いた3Dコンピュータビジョン技術
第56回 組込分野でのコンピュータビジョンは使いやすくなったのか(後編)
第55回 組込分野でのコンピュータビジョンは使いやすくなったのか(前編)
第54回 デジタルビデオの安定化処理の注意点
第53回 デジタルビデオの安定化処理の手順
第52回 デジタルビデオの安定化技術の概要
第51回 2種類のオプティカルフローの計算手法
第50回 画素ごと独立した移動量パラメータを割り当てる「オプティカルフロー」
第49回 パラメトリックモーション - 特定の1つの動き表現モデル
第48回 デジタルビデオ安定化技術
第47回 動画に対するシーム・カービング
第46回 メッシュ変形ベースのリターゲティング手法
第45回 重要度マップへの「主観」の追加
第44回 自動作成を行うために用いられることの多い3つの重要度マップ手法
第43回 元画像を「縮小」する時に自然にリサイズする技術 - リターゲティング
第42回 漫画カメラで使われる漫画風画像生成とトゥーンシェーディングの違い
第41回 iPhoneアプリ「漫画カメラ」で使われている画像処理手法その2
第40回 iPhoneアプリ「漫画カメラ」で使われている画像処理手法その1
第39回 iPhoneアプリ「漫画カメラ」に見るコンピュータビジョンの実応用例
第38回 パッチマッチによる画像編集の1つ - リシャッフリング
第37回 パッチ探索をランダムに実行することで高速化を目指す「パッチマッチ」
第36回 インペインティングの手法の1つ - パッチベースの手法
第35回 2つの目的で使われるコンピュータビジョンのインペインティング
第34回 人工知能/ロボット応用で使われるコンピュータビジョン技術(後編)
第33回 人工知能/ロボット応用で使われるコンピュータビジョン技術(前編)
第32回 ホモグラフィ変換における画像間のレジストレーション処理
第31回 張り合わせ先の座標系モデルと移動量の算出
第30回 各画像の「移動量」と「変形量」の算出による特徴点の対応づけ
第29回 キーポイントの検出とSIFT記述子の計算
第28回 パノラマ画像の生成手順
第27回 "画像の張り合わせ"で手軽に作れるようになったパノラマ画像
第26回 身近になったコンピュータビジョン技術を用いた写真・映像の編集技術
第25回 進むステレオカメラのDepth Mapを用いた3D道路表面モデリングの研究
第24回 車線逸脱警告システムにおけるレーン検出の仕組み
第23回 パーティクルフィルタによる観測技術
第22回 前方衝突防止システム - 人物をトラッキングする手法
第21回 前方衝突防止システム - 「平行等位ステレオ」による3次元形状復元
第20回 ビジョンべースの自動車運転手支援システム - 前方衝突防止システム
第19回 MAP推定はどのように行われるのか
第18回 超解像の計算アルゴリズム「MAP推定」
第17回 超解像で高画質化処理を担当する「ボケ補正」
第16回 入力画像が2枚以上(動画)の場合における画像レジストレーション
第15回 1枚画の静止画における画像レジストレーション
第14回 画像の劣化に対する「高解像度化」と「高画質化」のための3つの技術
第13回 超解像における劣化関数で改善すべき2種類の劣化
第12回 高解像かつ高画質の映像を作り出す技術 - 超解像
第11回 「顔検出」を高速化する技術
第10回 顔検出の主流アルゴリズム「Viola-Jones法」
第9回 人間の顔があるかを判断する「顔検出」技術(2) - テンプレートマッチング
第8回 人間の顔があるかを判断する「顔検出」技術(1) - 「顔検出」と「顔認識」
第7回 拡張現実感「AR」(3) - 「ARToolkit」の登場によりARが一気に普及期へ
第6回 拡張現実感「AR」(2) - マーカ有りARとマーカレスARの仕組み
第5回 拡張現実感「AR」(1)
第4回 動画編集技術「マッチムーブ」(3)
第3回 動画編集技術「マッチムーブ」(2)
第2回 動画編集技術「マッチムーブ」(1)
第1回 身近なものとなってきたコンピュータビジョンの世界

もっと見る

関連キーワード


人気記事

一覧

イチオシ記事

新着記事