Coding Memorandum

プログラミングに関する備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LifeCam HD-5000 その2

4月に買ったLifeCam HD-5000 ですが,その後時間を見つけながら少しずつ触ってみています。OpenCVを試すということで,DirectShow環境でOpenCVと接続するようなものを作ってみました。

OpenCVのDirectShowフィルタ・ラッパーを作り,カメラまたはファイルからの映像に対してOpenCVの各種処理を行えるようにしました。まずはOpenCVのサンプルに従って顔認識を試作してみましたが,なかなか良好に動作しています。当面の目標としては,マーカー認識を行ってAR的な何かを作ってみようかと思っています。

さて本題である LifeCam HD-5000 についてですが, いろいろと動かしてみて次のことが分かりました。

このカメラデバイスはドライバを入れたときと,入れていないときとでキャプチャできるデータ形式が異なるようです。以前の記事はドライバを入れた状態でのCapability情報でしたが,ドライバを入れていない状態では次のようになります。

MediaType

MajorType : MEDIATYPE_Video
SubType : MEDIASUBTYPE_YUY2, MEDIASUBTYPE_MJPG
FormatType : FORMAT_VideoInfo, FORMAT_VideoInfo2

SubTypeがRGBではなく,YUY2になってしまう点が要注意です。

VIDEO_STREAM_CONFIG_CAPS

[MEDIASUBTYPE_YUY2]

Size :
640x480, 640x360, 424x240, 352x288, 320x240, 176x144, 160x120
MinFrameInterval : 333333 (30fps)
MaxFrameInterval : 1333333 (7.5fps)
---------------------------------------------------------------
Size :
800x448
MinFrameInterval : 500000 (20fps)
MaxFrameInterval : 1333333 (7.5fps)
---------------------------------------------------------------
Size :
960x544, 800x600
MinFrameInterval : 666666 (15fps)
MaxFrameInterval : 1333333 (7.5fps)
---------------------------------------------------------------
Size :
1280x720
MinFrameInterval : 1000000 (10fps)
MaxFrameInterval : 1333333 (7.5fps)
---------------------------------------------------------------
Size :
1280x800
MinFrameInterval : 1000000 (10fps)
MaxFrameInterval : 1000000 (10fps)

[MEDIASUBTYPE_MJPG]

Size :
640x480, 640x360, 424x240, 352x288, 320x240, 176x144, 160x120,
1280x720, 960x544, 800x448, 800x600
MinFrameInterval : 333333 (30fps)
MaxFrameInterval : 1333333 (7.5fps)

YUY2形式の場合は,VGAサイズを超えるとフレームレートが落ちてしまいます。

Motion JPEG形式では30fpsを出せるところを見ると,ドライバを入れた場合には一旦圧縮データ(MJPG)でキャプチャし,ドライバがデコードして非圧縮(RGB)データを生成しているのではないかと思います。USB2.0の帯域ですと,非圧縮ではなく一旦圧縮されたデータをキャプチャするのだろうなぁとは思っていたのですが。どうやらMotion JPEGで圧縮されるようです。

スポンサーサイト

Arduino

オライリーの新着情報で「Arduino」というものを知りました。

Prototyping Lab――「作りながら考える」ためのArduino実践レシピ

これはちょっと面白そうと思っていたところで,今度は「大人の科学」で"8ビットマイコン"というキーワードを見つけ,昔AKI-80でZ80のコードを書いたなぁということを思い出しながら,惹かれるままに公式サイトを見てみました。

大人の科学 vol.27

偶然にも,ここでも「Arduino」という単語が!これはもう買うしかないかなと。しかも昨日が発売日とのこと。
しかしながら,いまAmazonを見たら,まだ注文受付が開始されていませんでした。orz
明日あたり,ちょっと本屋を覗いてこようかと思います。


5/17追記
とりあえず地元の本屋で買いました。まだ開けていません。
amazonは売り切れのようですね。

Lifecam HD-5000

OpenCVを弄ってみようと思い,カメラ+キャプチャの簡易な環境としてWebカメラを物色していたところ,Microsoftから安価なHD対応のWebカメラLifeCam HD-5000が発売されたので購入してみました。

1280x720 30fpsでのキャプチャが申し分なく動作し,画質はハンディカム等のカメラと比べると若干解像感が足りないように見えますが,(安価な)Webカメラとしては十分に綺麗だと思います。

いくつかの記事・ブログで書かれていた通り,オートフォーカスの調整が頻繁に入ります。画像認識用に使う際には,何か影響を受けないか若干不安に思うところです。

HD-5000について,DirectShowのキャプチャデバイスとしてのCapabilityを調べたのでメモしておきます。(購入前にこの情報が欲しかったのですが,残念ながら見つかりませんでした。)

MediaType

MajorType : MEDIATYPE_Video
SubType : MEDIASUBTYPE_RGB24, MEDIASUBTYPE_I420
FormatType : FORMAT_VideoInfo, FORMAT_VideoInfo2

FormatTypeは,各フレーム画像サイズについてFORMAT_VideoInfoとFORMAT_VideoInfo2の2つが指定可能となっています。

VIDEO_STREAM_CONFIG_CAPS

[MEDIASUBTYPE_RGB24]

Size ※1 :
640x480, 640x360, 424x240, 352x288, 320x240, 176x144, 160x120,
1280x720, 960x544, 800x448, 800x600
MinFrameInterval : 333333 (30fps)
MaxFrameInterval : 666666 (15fps)
---------------------------------------------------------------

[MEDIASUBTYPE_I420]

Size ※1 : 352x288, 320x240, 176x144, 160x120, 640x480
MinFrameInterval : 333333 (30fps)
MaxFrameInterval : 666666 (15fps)

※1 MinCroppingSize, MaxCroppingSize, MinOutputSize, MaxOutputSizeともに同じ値である


LifeCam HD-5000 その2を書きました。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。