robo8080のブログ

ロボット製作や電子工作など。

小型無線LANカメラCS-W07G-CYとmbedで物体追跡をやってみた。

2011年10月03日 | mbed LPC1768

小型無線LANカメラとmbedで物体追跡をやってみた。

無線LANカメラはPLANEXのCS-W07G-CY使用。小さく扱いやすくてなかなか良いのだが、結構熱くなる。

 

カメラ画像はPC(Windows 7)上のOpenCVで処理している。

OpenCVのサンプル”CamShiftDemo”をベースに、C#(OpenCvSharp)に移植して使用。

 

PCとmbed間はBluetooth接続。サーボ指令値だけをmbedに送っている。

無線LANカメラ->無線LAN->PC(OpenCVで画像処理)->Bluetooth(サーボ指令値)->mbed->RCサーボ、という流れ。

 

物体追跡時の動画はこちら。

 

物体追跡時のPC側画面はこちら。
画像の動きがぎこちなく見えるのは、動画を作るための画面キャプチャがコマ落ちしているため。^ ^;)

 

今わかっている問題点。

1.物体の動きが速いと物体の画像がブレて、物体を認識できなくなる。

2.カメラを早く動かすとカメラ画像全体がブレて、上記と同様物体を認識できなくなる。

3.一度追跡を始めた物体がカメラの画面から外れると、画像処理で例外が発生する。<-時間あったら調べる。当面放置中。

 

苦労の割にいろいろ問題が多いのでOpenCvSharp版の物体追跡は開発凍結。

もっとシンプルでOpenCVを使わないProcessing版に移行することにした。(2011.12.24追記)

 

おまけ。

CS-W07G-CYを、SANWAのUSB出力付ポータブルバッテリー電源BTN-DC2Wで動かしてみた。単三エネループが使えるので電池代安上がり。

 

ここを参考にさせて頂いた。

・OpenCVのサンプルプログラム”camshiftdemo.cpp”

OpenCvSharp

電池で動くWi-FiカメラCS-W07G-CY(やっと)到着

プラネックスのネットカメラも試してみる

GAINER Mini と OpenCV で遊んでみよう

OpenCVからネットワークカメラのVideoAPIを利用 <-残念ながらCS-W07G-CYではうまく行かなかった。同じメーカのCS-WMV04NではOK。

―以上―


最新の画像もっと見る

5 コメント

コメント日が  古い順  |   新しい順
Unknown (あいこ)
2011-11-14 16:12:38
興味深く拝見させて頂きました。

もしよろしければ、camshiftdemoをC#(opencvsharp)に移植したソースコードを教えて頂きませんでしょうか?

宜しくお願い致します。
返信する
Unknown (robo8080)
2011-11-15 11:40:39
ブログを見ていただいてありがとうございます。
C#版ソースコードの件ですが、公開を前提に作ってませんので
汚くてとてもお見せできるものではありません。すみません。
しかし、私がC#に移植するためのベースにさせて頂いたC言語版ソースが、
こちらのサイトで公開されていますのでそちらを参考になさってください。
それを見ればどういう処理をしているか分かると思います。
C#版は、これをほぼそのままC#(opencvsharp)に置き換えたものです。
ここの、OpenCV+GAINERmini-0.1.zipの"OpenCV+GainerMini-test.cpp"というファイルです。
http://www.eleki-jack.com/FC/2009/11/gainer-mini-opencv.html
以上、よろしくお願いします。
返信する
Unknown (Unknown)
2011-11-16 15:08:29
早速のご回答ありがとうございます。
opencvsharpの置き換えは、具体的にどのような手順なのかを教えて頂けると幸いです。C#初心者のため、お手数掛けてしまい、申し訳ないのですが、宜しくお願いいたします。
返信する
Unknown (robo8080)
2011-11-16 16:12:36
具体的手順と言っても特にありません。
ただひたすら、C言語版のソースを見ながら、地道に1行ずつC#へ手で書き換える
という原始的な方法です。(^^;)
返信する
Unknown (robo8080)
2011-11-16 16:23:40
opencvsharp付属のサンプルプログラムが参考になります。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。