日記帳だ! with Tux on Libserver

二度目の大改造!! 日記帳…か?を継承し、より柔軟でパワフルなBlogに変身しました。

RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。
RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。

<< 過去

未来 >>

ゼロクロス点を見つけろ!

今日もインターンシップ、気付けばもう折り返し地点である。

実習でなにやってるかということを書いておこうと。


この実習では画像処理機能とイメージセンサが一体となったビジョンチップを使って画像処理を行うと言うことをやっている。

チップ内で画像処理されたものを後処理して意味のある画像を得ようという話ですね。

その処理をまずはソフトウェアで、その後、FPGAで実装してということをこの実習では行う。


具体的には輪郭強調画像とフレーム間差分画像を取り扱っていた。

輪郭強調画像は二次微分になってるからこれのゼロクロス点を見つければそれが輪郭だと知ることが出来る。

フレーム間差分画像は動いていることを知ることが出来る。

これを組み合わせると動きの方向を見いだすことが出来るよう。

こういうことを知るための後処理を実装していたのね。


輪郭強調画像からゼロクロス点を発見するというのは意外にめんどくさいことである。

まずゼロが問題である。

画素値は0~255の値を取り、負の値を表すことが出来ない。そのため0を128とかにオフセットして表されている。

二次微分の値が+なら128よりも大きな画素値、-なら128より小さな画素値を取るということね。

ところがどうも動作がおかしい。なんでだろと調べてみたら0にあたる部分の画素値が128よりも大きかった。

なんでだろと聞いてみると、ビジョンチップの内部ではアナログで演算しているのでぴったり128になるわけではないと返された。

それってチップごとにばらつきあるってことなんでしょうね。このへんアナログの弱いところよね。

ともかく実際オフセットされている数値がどんなもんかというのを調べて、その値を基準とすることに。


さて、これで符号が変わっているところを探してやればそこがゼロクロス点だと分かりそうだが、これではうまくいかなかった。

輪郭じゃないところが輪郭と出たり、輪郭が欠落したり。うーんと。

隣接する画素同士を比較するんじゃなくて1画素空けて比較すれば、とアドバイスされたのでやってみることに。

ある画素の左と右、上と下を比較して符号が変わっているか調べたと言うことですね。

するときれいに出てきた。こうすればうまくいくのかと。


まずはこういうことをソフトウェアでやってたのだが、今はFPGAへの実装をやっているところである。

FPGAで実装するにあたってはゼロクロス点を求めるとき、比較する他の画素の情報を記憶しておかないといけないのが問題で、

そのためFIFOを追加したり、といろいろ工夫をしていた。

まぁこのへんは本科の卒業研究でもやったことですからね。

もう1人の実習生はFPGA使ったことないようで、そのへんまずはお勉強といったところ。

1週間の中でそれはきついなとおもったけど、なんとか一部の機能は実装したいなと言っていた。


インターンシップ中に、この研究室の学生が取り組んでいる研究テーマの紹介を受けているのだが、

そこでやってることというのは結局のところ、ビジョンチップの出力から意味のあるものを得るということも多いよう。

出力はかなりいろいろなところで使えるものらしく、こんな用途にも使えるのかと話を聞いて驚いたもの。

このインターンシップでの課題というのはそのもっとも基本的な機能を実装してみようということのようで。

この辺は研究紹介を受けて見えてくる話ですわな。


Author : Hidemaro
Date : 2012/03/28(Wed) 23:59
研究・実験 | Comment | trackback (0)
blog comments powered by Disqus

トラックバック

トラックバックURL取得

Tools