2007年01月08日

背景だけを合成するWebカメラソフト「ミカエル」

[一行紹介]
Webカメラの映像を、リアルタイムで人物の背景だけを別の背景に置き換え表示する

[説明]
Webカメラの映像を、リアルタイムで人物の背景だけを別の背景に置き換え表示する

windows media エンコーダ等を使い、その映像を配信や録画する事で、楽しめます。

ゴミ屋敷でも、二次元の綺麗な世界へ現実逃避できます。


[実演動画]

http://freestory.cocolog-nifty.com/soft/ketyappu/test2.wmv

http://freestory.cocolog-nifty.com/soft/ketyappu/test3.wmv

[ソフトウェアのダウンロード記事]
http://haijindiary.seesaa.net/article/31802263.html


//*****ソフトウェア開発日誌

最初の製作動機は既に忘れてる・・・

正月で酒飲んで酔っ払って、家帰ったらそのまま作り始めて、

翌朝には基本システム完成(後日 計算が明らかに違う事が判明)

やっちまうかぁ みたいなノリだったりもする('A`)


作ったモノは公開作業が面倒だし、

気に入らない所あるんでまだ公開してない


内容は

Webカメラを制御し、背景と人物(動体)を切り分け、

リアルタイムで、別の背景と人物を合成する。




気に入らない点は、Webカメラが自動で補正をしてくれる事

最初に背景の認識をしているのだが、補正でかわったら意味がない


ソフトで制御ではなく、完全にハード依存なのか

自動補正の無効化ができれば、たぶんもっと合成の品質が上げられる


もしくは、自動補正にも耐えられるように、

色の最低値・最大値の設定ではなく、平均値+誤差とする

もしくは、端の色をとり、自動補正のレベルを調べ、自動補正を無効化させる


色々な手段があるが、考えるの苦手なんだよなぁ('A`)



ソフト名 変なのばっかりつけてたからか、

「ソフトに愛着があるのか?w」とか言われたんだよね


ソフトに対して感情はありまくりですよ


スキーズブラズニルなんて、ある事すると、

「残念だったね」と隠しメッセージが表示されるとか

モノスゲー 腹立つからwww

っていうか、一般公開してないなら仕掛ける必要ないじゃん!!

なんで俺だけがトラップに引っかからなきゃいけないんだ!w



このWebカメラの制御機能だって、初めてやるってことで問題が多く、

「このWebカメラ ツンなんだけど・・・ 言う事聞いてくれない」

と、言った直後、フリーズ  データクラッシュ 巻き戻り


「デレの欠片もないよ!!!」 と叫ぶ俺


気持ち 込めまくってますw



ソフトの名前は生活関係がイヤなので、

Lokiは北欧の神の名だし、北欧関係でそれらしいの選んでつけてる


未公開の情報収集ソフト(BOT)「スキーズブラズニル」はちょうど良かったんだが、

今回のソフトにピタリと来るもんがない


友達から、「ケチャップ オン スクランブルエッグ」「KoSe(コーズ)」

とか勧められたんだよね

だからマヨネーズ(MOE)でこりたから、生活ネタはイヤだと(ry


おまけにケチャップもスクランブルエッグも食べてねーよ

最近はようやく脱お茶漬けできて、 卵かけご飯オンリーだ


関係者各位
 たくさんの卵 本当にありがとうございました
 今では貴重なタンパク質の栄養源です



仮でケチャップ(ry にしておいたけど、

ソフト名どうするかなぁ('A`)

//*****追記

例のWebカメラでのリアルタイム人物と背景合成ソフトについて



どうしても精度を上げたい

現状では 動いてるモノだけ映る 基本システムは完璧

だが、やはり認識が甘い


ドット単体だけでなく、その周辺の変化情報を読み取る事で、認識能力が大幅に向上した。


しかし、まだポツポツと映像にノイズが入ってしまう(Webカメラと設定次第だが)

やはりノイズ除去をつけたい

だが、そういう専門的な事は学んでいないし、ぱっと思いついたやり方は、とても処理に負担がかかるであろう


ためしに、その周辺認識を二重にかける実験をした所、

僅かな向上は見られたモノの、処理落ちを感じる

少しは高速化を考えて、色んな技術を使ったのだが、残念な結果だ

効率を考えたら、このような小細工ではなく、別のものを作ったほうがいいだろう


解決しなきゃならない問題はまだある 「Webカメラの自動補正」

背景の最低値〜最大値を取得するより、背景の平均色を取得し、±誤差という形に変えた

これにより、自動補正後でも常に背景の平均色が取得できる・・・

しかし、その時には人物もいる

人物と背景を認識しつつ、背景のみ平均色を更新するという事になる

不完全な認識の結果を元にするという事は、それもまた不完全になるのではないだろうか


ああ、頭が割れそうだ  ここら辺が私の限界なのかもしれない


今日か明日には、そのWebカメラソフトのムービーを公開します


//*****追記

例のWebカメラの背景と人物を合成するWebカメラソフト



この方法なら、軽量化&少しは補正対応できるんじゃね? っていう改良をしてみた


で、Webカメラソフト改良後のムービー
http://freestory.cocolog-nifty.com/soft/ketyappu/Video.asx
顔が少し見えてるが、まぁこの程度なら問題ないだろう('A`)

影が相変わらず問題だが、場所次第ってことでいいかなw
and
Webカメラの性能・設定もかなり影響するので注意が必要


あと、この宣伝用動画製作の際に驚いた事

太 陽 っ て 動 い て る ん だ ね


日の光が当たる場所では使えないかもwww


//*****追記

気合入れてやりすぎか 幻覚見ちまったよorz


あと、ケチャップ オン スクランブルエッグだっけ?

長い割りに意外と覚えにくい名前だな


バグ仕様を書き忘れていたので、ここで発表w



Webカメラのデータ取得がうまくいかず、

クリップボード経由でデータを取得しているため、

背景合成中に、クリップボードを使用した場合、エラーが発生します



また、現在の状態では加工後、映像を表示するだけなので、

windows media エンコーダなどを使い
http://www.forest.impress.co.jp/lib/pic/video/vdoenc/winmediaenc.html

画面の取り込みで配信するのがオススメです

(っていうかそれ目的で作ったので、ほか考えていない)



ああ、今書いてて思ったが、その場合、

画面だけを表示するように作ったほうがいいか


//*****追記

Webカメラのソフトについて



名前変更  ケチャップ オン スクランブルエッグ → ミカエル

スッキリー!



・・・なんか前 神話ネタで行くとか言ってたような気がするけど、

神話から名づける事ができたのは、IRCのソフトだけだったわwwwww


//**********追記

なんで保存機能をつけなかったのですか?という基本的な機能に突っ込まれ、、

終了時に設定保存 起動時に設定読み込み機能を追加

更に、初期状態では管理人オススメ設定になるようにしました

フォルダ選択用ダイアログを設置 これで背景選択が楽に!


//**********追記

ああ、そういや、要望案を出してくれた人に、Windows Media エンコーダの導入方法とかものすげーわかりやすく説明したので、

その時のログを加工し、Windows Media エンコーダの導入方法として、記事にするかもしれません


//**********追記

本ソフト ミカエルを、

MSNやヤフーなどのライブチャットの機能で使う事はできませんが、


自分で、配信映像が見れるサーバーをつくり、

「mms://127.0.0.1:8080 でライブします」と、相手側に配信映像が見れる自分のサーバーへ案内する事により、

自分の映像を見せる事ができます。(複数対応)



これを実現するのが「Windows Media エンコーダ」です

Windows Media エンコーダは、パソコンの画面などの映像をネットで配信するフリーソフトです。

それとミカエルを組み合わせる事により、ライブを実現しております。


//Windows Media エンコーダでミカエルの映像配信

まずWindows Media エンコーダをダウンロードしてください。

Windows Media エンコーダ  --窓の杜
http://www.forest.impress.co.jp/lib/pic/video/vdoenc/winmediaenc.html


起動後、

「新規作成(ユーザー設定)」の「プロパティ」を開き、

「ソース」タブにある「ビデオ」のボックスを、「画面の取り込み」にし、「構成」を押します。



取り込み元を「画面の領域」にし、

「左上隅」に、ミカエルに表示されている「動画の位置」

「幅X高さ」に、ミカエルで表示されている「動画のサイズ」

を入力します


これで、ミカエルの映像部分のみが配信されるようになります。


オーディオは、適切なモノを選んでください。


次は配信のための設定ですが、

「出力」タブの「エンコーダからプル」にチェックを入れ、ポートを設定します

これで、設定が完了しました。


あとは、エンコードの開始を押し、「mms://自分のIP:ポート番号」で配信を見ることができます


自分のIPを 127.0.0.1 にしても映像は見れますが、他の人には見えません。


//**********追記  4月9日

磯野 ClipStar と他のソフトどんどん改良できたんで、

ついにミカエルの改良なわけだが、


イマイチ乗る気がしない('A')




映像ウィンドウと操作ウィンドウ(表示非表示切り替え可能)にわけ、映像の設定しやすくすると共に、

配信の設定もしやすくする

という、改良案があるんだが・・・



まぁ、やる気が出ない理由はたぶん、






Webカメラがどこかへ旅立った事だな


//*****追記 4/15

背景を動画にするのは、なんとかなりそうなんだけど、

それよりもやっぱり、質を上げたい

質を上げるために色々考え中


//*****追記 4/16
とりあえず、

背景をムービーにしてみた
http://freestory.cocolog-nifty.com/soft/ketyappu/test3.wmv

今テンション低いんだよね'A`


わかっている問題点

人物と背景認識の質と効率が悪く、背景の動画もゆっくりになる


//*****追記 4/16

ミカエルVer1.3完成?

処理の方法が大幅にかわり、

品質が向上  速度も向上(意外だった)

ただし、ギザギザが目立つようになったので、

アンチエイリアスや、境界をぼかすような処理を加えると、Good


動画は、別ソフトを作り、AVIを連番JPGに変更し、

背景を自動切り替えっていうやり方でやったが、

どうもカクカク  全ての画像をMemorystreamを使って処理したりしても、カクカク


どうやらソフト全体が重いっぽい

( '3')<やれやれだぜ


背景合成

この記事へのコメント
wktk
Posted by kalas at 2007年01月08日 21:22
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/31041201

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。