まだ画像認識

最大の課題は数字や記号を正しく読み取れること。

カメラで撮ったものを認識させる関係上、多少の傾きでも平気なアルゴリズムを使う必要がある。なので、認識ベクトルに「認識対象の外周の法線の方向のフーリエ係数」を使うアプローチを使う。これなら、傾いていても同じ方向のベクトルになる。

ところが問題があって、この方法だと「6」と「9」がうまく認識できない。また「2」と「5」も誤認識しやすい。「|」と「ー」もダメ。向きが重要なものって少なくないのだ。

まぁいろいろな工夫を使えば出来る見通しはたっているのだけど、あんまりアドホックなものを並べるのもなぁ。

と言えば、「クサ」の報告によれば、某所でのQRコードの認識のデモはコケたらしい。資料とか見るといろいろ言い訳があったようだが、資料見る限り、「そりゃーダメでしょ」だな。いや、頑張ってるとは思うけどさ。どこが根本的な問題かってのは、きっとやってる奴等わかってないんだろな。

画像処理は大昔にもやってたし、今回は認識までやったのだけど、それでわかったことは「ロバストにやらせるには、プログラムの見通しが大事」ってことだな。最近は良質のライブラリが多いんだけど、まだまだブラックボックスだと思って使えるものじゃない。アルゴリズムとコードを理解しつつ、一歩一歩作って行くのがロバストへの近道のようだ。もちろん速度の点ではライブラリの方が一日の長があるのだけど、そこに至るまでは理解しつつやらないといけないようだ。

USBカメラを試す

UVCで画像認識するプログラムができたので、いろいろカメラを試してみた。

カメラ評価そのものが仕事ではないので、細かいことは書かないが、そこまでしなくてもはっきり「使える」「使えない」ということがあるので、確認した範囲で。

買って来たのは、

maxell pm10, Microsoft LifeCam NX-6000, NET cowboy DC-NCP130, BUFFALO BWC-130MS03A/SV, Logicool QVX-13NS, Net cowboy BBCAM 130 NightVision2

いずれも「true 130万画素」のもの
続きを読む

Linux USB Video Camera

またビデオなお仕事が来たので、いろいろ実験をする。

最近はUSBカメラも標準プロトコルができたらしく、それに対応したカメラはLinuxでも何とか使えるらしい。まぁドライバの完成度が低いのは、御愛嬌だけど。

スクリーンショット

一応画像が取れるようになったので、いろいろ調整しつつ見れるようにプログラムを作る。いつものことながら、不完全なドキュメント不完全なプラットフォームの上でプログラムを書くのは、余計な手間がかかってしょうがない。この程度のものを作るのに、8時間くらいかかる。

Logitechの最近のカメラなので、1280×960で取れる。まぁ多分USBのバンドはパンパンになってしまっているのだろうが。伝送には M-JPEGも使えるらしいのだが、jpegのところを書くのが面倒なんで、とりあえず、これでいいことにしておく。実用的には高解像度で取らなきゃいけない方は低速でいいし、full motionで取らなきゃいけない方は低解像度でもいいので、まぁ問題はないでしょう。

ちゃんと調整してやると、意外にも綺麗に撮れていることに感心する。今時のカメラってなかなか凄いね。

いまだEmacsをありがたがるのか…

あるWebプログラマーの作業環境——豪傑の三種の神器【前編】 (1/2)

Emacsは便利だ。おまけに何でもできる。もう20年くらい使っていて指がEmacsになっているから、少なくともエディタとしては離れられないし、キーバインドもできればEmacsでありたいと願う。
続きを読む

XenでWindowsを動かす

ちと思うところがあって、Windows Terminalの実験をしたくなる。

とりあえずRDPでリモートデスクトップが動いて、ノートにつながる。まるっきり普通に動いて、WMPやらGoogle Earthなんかも普通に使えることがわかり、「RDP使えるじゃん」と納得する。

次は、リモートデスクトップじゃないWindows Terminalを試そうと思って、Windows 2003 Serverの評価版を落として来る。180日間の限定とゆーことだけど、試せりゃいいんだからこれで十分だ。
続きを読む