2010年09月29日

自宅サーバの監視カメラ機能追加その後のその後のさらにその後

一度はxawtvを入れて監視カメラ出来た〜!と喜んでいたのですが、うちには諸事情あってWebカメラが4台あります。
xawtvだと常時プロセス起動で写真を取るので、4台起動したければ4プロセスでバチバチ撮りまくることになるかな〜
じゃあそんなに頻繁に撮らなくていいから他の方法はないかな、ということで、結局fswebcamを使うことにしました。
LinuxにWebカメラを3台接続し、1台はWindowsマシンでSkype用に。3台のWebカメラのうち、普通に撮影できる2台は昼間の監視用、赤外線で撮影できる1台(GroovyのGR-CAM130N2)は夜の監視用にして、昼と夜の撮影用スクリプトを書いてcrontabで8時〜18時は昼用スクリプト、18時〜翌8時は夜用スクリプトが起動するようにしました。

あ、ちょっと大変だったのは、カメラごとにカラーパレット(-pオプション)が必要だったり不要だったりするので、撮影できないときはpオプションをいろいろ変えてみること。
あと、(--fontオプションで)フォントのパスを指定しないと画面下部に撮影日時のバナーが出ないので注意。
posted by 岩永 at 23:46| Comment(0) | TrackBack(0) | パソコン | このブログの読者になる | 更新情報をチェックする

2010年09月25日

自宅サーバの監視カメラ機能追加その後のその後

さてその後、motionを起動してみたわけですが”capture error calling vid_start”とかエラーが出て起動しません。
英語のフォーラムとか見ても状況がさっぱり分からず。

結局、ここを参考にxawtvをインストールし、定期的にカメラの画像を撮影して、動態検知はあきらめました。
どなたかいい方法を知ってたら教えてください。

あ、参考サイトではxaswtvのソースをダウンロードしてパッチを当てたりいろいろ操作したうえでビルドしてますが、うちはyumでインストールしてます。
リポジトリにRPMForgeを追加しないとインストールできないかもしれません。
posted by 岩永 at 15:45| Comment(0) | TrackBack(0) | パソコン | このブログの読者になる | 更新情報をチェックする

2010年09月24日

自宅サーバの監視カメラ機能追加その後

自宅サーバに監視カメラ機能を持たせようとして、うまくいってませんでしたが、その後の状況です。

ここを参考に、Video for Linuxドライバのソースダウンロードとコンパイルはうまくいった
・しかし、Webカメラを接続しても正しく認識しない

kernel: usb 1-1: new high speed USB device using ehci_hcd and adress 4
kernel: uvcvideo: Found UVC 1.00 device (046d:0825)
kernel: input: UVC Camera (046d:0825) as /class/input/input5
kernel: 4:3:1: cannot set freq 16000 to ep 0x86
kernel: usbcore: registered new interface driver snd-usb-audio


と出て、カメラとは認識しているようだけどカメラ機能の方はうまくつながってない模様。
ちょっと調べた限りだと”4:3:1: cannot set freq 16000 to ep 0x86”に似たメッセージが出るトラブルは他の人も経験しているようだけど、解決はしてない感じ。
(どの例も海外のLinuxフォーラムの話。日本語情報は見つけられず)

さてどうしたものか。
いよいよMac mini PPCサーバの出番だろうか。


追記:
なんかLogitecの情報によると、これはWebカメラのオーディオ部分が原因となって出力されているが、悪さはしないらしい。
だけど、/var/log/message のログを見る限りWebカメラとしては認識されてないみたいなんだよね。
/dev の下にも v4l とか uvc というデバイスは見当たらないし。
一応 motion を起動して試してみるか。
posted by 岩永 at 12:45| Comment(0) | TrackBack(0) | パソコン | このブログの読者になる | 更新情報をチェックする

2010年09月22日

自宅サーバに監視カメラ機能追加中

自宅のメインマシンはWindowsですが、ファイルサーバとしてLinux(CentOS5.5)を運用しています。
(本当はいろいろサーバ機能を持たせてるけど、活用できてるのはファイルサーバのみ)

WindowsマシンにWebカメラをつないで、LiveCapture2というソフトで自室の監視をさせていました。
しかしWindowsマシンもLinuxマシンも24時間起動しっぱなしはやだな〜と思い、LinuxマシンにWebカメラをつないで監視させればいいじゃないか!ということにしました。

ちょっと調べてみると、motionというソフトが高機能で便利らしい。
最近のWebカメラはUVC(USB Video Device Class)という統一規格に対応していれば、どのメーカーのWebカメラでも同じドライバで動くらしい。
Linuxの場合、カーネル2.6.26以上ならUVCドライバが入っているとのこと。
うちのマシンのCentOS5.5は…カーネル2.6.18でした。

まずやったこと。
カーネルアップデート。
2.6.35にしたけど、なんかダメっぽい。
USBに何か刺さったのは認識してるけど、Webカメラを認識しない。

次。
UVCドライバをダウンロードして直接インストール。
しかし、CentOS(や他のLinux)でUVCドライバをダウンロードしたというサイト
http://linuxtv.org/hg/~pinchartl/uvcvideo/
は今は存在しないっぽい。
さらに調べて、Video for Linux(V4L)というドライバ?をここからダウンロードしてみるが、コンパイルが通らない。
なんかいろいろ足りないって言われるんだよね。
どうもパスが通ってないくさい。


さてどうしたものか?
1.頑張ってコンパイルを通す
2.別マシンをWebカメラサーバにしてしまう


1が王道でしょう。ただ気になるのは、CentOSをCUIで動かしているので、それでそもそもVideo関連のいろいろが入ってないのではないかという懸念。
motionをyumでインストールしてみたけど追加のパッケージは何もなかったし。

2は、全く使ってないMac mini(PPC初代)があるので、これにLinuxを入れてサーバにするという手。
もともとWindowsマシンを常時起動するのが嫌でまとめてしまおうとしていたので、本末転倒気味。
消費電力は少ないだろうけどね。

ということでここ2、3日ほど困り中。
posted by 岩永 at 22:54| Comment(0) | TrackBack(0) | パソコン | このブログの読者になる | 更新情報をチェックする

2010年09月10日

7年8か月で受信した10万通のspamを調べてみた

メインで使っているメールアカウントは確か1999年に契約したもので、10年以上使っています。
そのアカウントに届くspamがうっとうしくなってきた2003年の1月から、spamを保存するようになりました。
そして、2010年の8月にspamの数が10万通を超えたので、ちょっと調べてみた結果を書きます。

最初はspamの内容の分類や割合(アダルトとかブランドコピー品とかバイアグラみたいなドラッグ販売とか)や推移も調べようと思ったのですが、さすがに10万通を時系列で見ていくのは大変だったので断念。
コーパスを調べて割合の確認ぐらいは後日やるかもしれません。
(私の能力的に可能であったら、の話ですが)

やったことは以下のような感じです。

・対象は2003年1月から2010年8月までに受信した100479通のspam
・受信日時はDateヘッダではなく、自SMTPサーバへの到着時刻とした
・本文をひらがなで正規表現検索して検索できたメールを「日本語メール」として分類
 (そのため、本文の日本語が化けていたりURLのみの場合は日本語メールとしてカウントしていない)
・「未承諾広告※」のメールも数を数えた。ただし表記のゆれ(「未承認広告※」「未承諾広告 ※」など)も含む
・メールの送信元を国別にカウントした。カウントの方法は秀丸メールの機能を使用した
 送信元偽装は完全にはチェックできていない

ということで、今回の作業のかなりの部分を秀丸メールの機能に頼ってます。ありがとう!秀丸メール!

で、ざっと以下のような結果になりました。
・受信したspamのうち、日本語spamは50947通(50.7%)
・送信元は173カ国。
・送信数が多いTop12は中国、日本、アメリカ、韓国、台湾、ブラジル、インド、ロシア、タイ、トルコ、ポーランド、イギリス。
・送信元不明が1192通、ドメインを偽装していると思われるものが3610通。

月ごとの受信数の推移をグラフにしたのが以下の図。
メール受信数.JPG

送信数が多い国のTop12を表にしたらこんな感じ
国名 ドメイン 送信数
中国 CN 33390
日本 JP 13003
アメリカ合衆国 US 7126
韓国 KR 4818
台湾 TW 3528
ブラジル BR 3295
インド IN 2808
ロシア連邦 RU 2463
タイ TH 2396
トルコ TR 1970
ポーランド PL 1362
イギリス GB 1247

ということで、中国がぶっちぎりでトップ、次いで日本という結果になりました。
上位(10カ国)の推移をグラフにするとこんな感じ。
送信元別受信数(Top10).JPG

2010年7月14日に発表されたソフォスによる「スパム送信国ワースト12」によると、トップ12は米国、インド、ブラジル、英国、韓国、フランス、ドイツ、イタリア、ロシア、ベトナム、ポーランド、ルーマニアとなっており、ちょっと差分があります。
この差分は、私のメールアカウントが日本のものであること、私が受信しているメールの大半が日本語メールであることによると思われます。
以下のグラフを見てください。

日本語メールと上位2カ国.JPG

中国からのspam受信数と日本語SPAMの受信数が2006年ぐらいからほぼ連動しており、中国が日本語spamの送信拠点になっていることがうかがえます。
日本からのspamは2007年ぐらいから日本語spamとあまり関係がない動きになっているのがちょっと意外でした。

意外というか、思い違いは他にもあって、ずっと受信しているspamの主体は海外からの(英文の)メールだと思っていたのですが、月ごとの日本語spamの割合を確認してみると、2007年まではほとんどが日本語spamで、英文spamの割合が増えてきたのは2009年に入ってからなんですね。
こんな感じ。
日本語メール推移.JPG

あとはおまけで、2002年7月に施行された「特定電子メール法」って覚えてますか?受け手の承諾を得てない広告メールのSubjectには「未承諾広告※」を付けるとかいうの。
あの「未承諾広告※」の付いたspam数の推移も確認してみました。
未承諾広告.JPG
「未承諾広告※」の付いたメールは2005年にはほぼ消滅しています。
(この規定は2008年には見直しが行われています)

簡単にここまでで分かったことをまとめると、
・spamメール受信数は確実に増えている
・日本語spamを多数含む場合のspam送信国は世界のspam送信国トレンドと異なる可能性が高い
・日本語spamの送信国は特定の国に集中しているかもしれない

あとは細かく個別にspamを分析したら分かることがあると思いますが、10万通を一人で相手するのは疲れました。月ごとの送信元をチェックするのも大変。
本当はメールをチェックして面白spamとかspamの傾向とか出そうと思ったのだけど断念しました。要望があれば考えます。
posted by 岩永 at 00:14| Comment(0) | TrackBack(0) | SPAM | このブログの読者になる | 更新情報をチェックする

2010年09月06日

金銭教育ワークショップ(値段の変わるカレー屋さん)

私の参加している金融活動グループのワークショップに参加してきました。
講師は久しぶりにマネーじゅくの陣内さんに来ていただき、「値段の変わるカレー屋さん」という内容でした。

内容は、子供たちのグループにカレー屋さんになってもらい、材料の価格、光熱費、人件費を決めて原価を出し、売値と自分たちのカレーのアピールポイントを決めてお客さん(保護者)に売り込んで買ってもらう、というものです。
(実際にカレーを作るわけではない)
で、私(や他のメンバー)は子供たちのグループのアドバイザーになって、原価の仕組みや値段の設定の考え方などを教えたりしてました。

材料や光熱費はじゃんけんでほぼ強制的に値段が決まるのですが、人件費は自分たちで決める、ということで、子供たちはまずここで悩みます。
「材料費が安くできたからこれは高くていいんじゃない?」「ん〜でも…中くらいの値段にしようよ」なんて真剣に話し合ってます。
値段は、私の担当したグループの子らは「赤字にならなければいい」という考え方みたいで、他よりかなり安く設定。
その結果、完売はしましたが超薄利でごくわずかの黒字でした。
最後に、お客さんからどのカレーを買ったのか、それはなぜかを話してもらいました。

同じセッション(材料を決めて売値、アピールポイントを決め、売り込む)をもう一回繰り返して終わりました。
これで子供たちは「お店が物を売るには材料だけでなく人件費などもかかっている」「お客さんに買ってもらうには、売るためのポイント作りが大切」といったことを学べたと思います。
もうちょっと利益をたくさん出すと次の仕入れにも影響するとか、そう言ったことも子供たちに説明したい気がしました。(自分の子供たちには話しました)

今までワークショップや勉強会でお金の使い方の話はしたことがありましたが、原価と売値とかモノの値段の仕組みは話したことがなかったので、とても勉強になりました。


ちなみに、今回のワークショップの宣伝のために地元のケーブルテレビの番組に出ました。
とっても緊張して、自分がカメラに写ってる間、しゃべりながらもカチカチになって身動きとれませんでした。
これもいい経験。
posted by 岩永 at 01:05| Comment(0) | TrackBack(0) | 子供の金銭教育 | このブログの読者になる | 更新情報をチェックする

2010年09月05日

ETロボコン2010参戦記(合同練習会、試走会その2、そして本番)

ちょっと記事を書かない間に本番まで終わってしまいました。
その間に何をしたかをざっと書いていきます。

前回の公式試走会後、@IT MONOISTの記事などを参考にPID制御を組み込みました。
ほかにもオリジナルのPID制御を開発し、ソースを公開している方もいらっしゃると言う噂ですが(たぶんこれ)、オーソドックスそうなやつを組み込みました。


合同練習会
その後、同じ佐賀県で登録しているチームの合同練習会に呼んでいただき、PID制御を組み込んだソフトを試してみたりしました。
(ちなみにそのチームは九州地区総合優勝のSAGA組込ソフト研究会さんです。おめでとうございます!)
この時、PCは持って行ったけど電源ケーブルを忘れ、さらにUSBケーブルも忘れたていたため、NXTに入れているソフトを走らせるのと、そのログをBluetoothで取得するしかできなかったのが残念でしたが、調整していたPID制御のパラメータでコース全体を一周はできたので、とりあえず安心でした。


試走会その2
実は試走会1の後(7月末〜8月中旬)ってほとんど作業しなかったんですよ。
しなかったというかできなかったというか微妙なところですが、会社の夏休みにモデル書いたりいろいろするぞ〜!という野望はあったのですが、実家に帰ったり子供の相手をしたり日常の生活に追われて夏休み明けもブランクから復帰できず、「あれ、次の試走会目前じゃん、どうする?」状態。
とりあえずやっつけで難所攻略ロジックを組み、テスト環境がないのでぶっつけで試せば何か分かるだろうと思って走らせてみたらやっぱり難所はクリアできず、しかも階段横のインコースのヘアピンでコースアウトするという事実が発覚(練習会では走れたのに!)。
急遽PID制御のパラメータを調整するも、根本的に合ってないらしく修正ができず、しかたなくスピードを落とせば走れることが分かりました。
結局この現象は解消できず、というか試走できる環境がないのでパラメータを調整しても確認できないため、コース前半は全速力で走り、後半は若干スピードを落として走らざるを得ませんでした。
あと、シーソーや階段は段差に垂直に入らず斜めに入るので登れない、登れてもあさっての方向を向いて転落する、という状況だったので、課題をつかんで(つもりになって)それを解消しようと試行錯誤してました。

シーソー、階段攻略法として、以下のような方針を立て、テスト環境(雑誌を重ねて簡易階段を作った)で確認をしました。
・ゆっくり近づけば段差に対して垂直に行けるのではないか、それならばマーカーを検出したらスピードを落とそう
→スピードを落としてもダメ、登れないし登ろうとじたばたして結局斜めになってしまう
・ならスピードを落とさずに行けばいいんじゃね?
→あっさり登れた!
というところまで確認して九州地区大会に臨みました。
あ、モデルは(モデルも?)検討時間が十分に取れず、こっちもやっつけで作って提出しました。内容は推して知るべし。


九州地区大会
上に書いたように、不安は残るものの当日の試走で確認するつもりで本番に臨みました。

で、本コースを走らせてみたら、
シーソーや階段に登った後、勢いが付きすぎて転倒する
・じゃあ登った後停止しよう、ジャイロセンサの変動を検知して数秒間停止だ
→停止後、フルスピードで走ろうとしてシーソーの下りの勢いを殺せず転倒
・じゃあ停止後再スタートのスピードはゆっくり、そしてフルスピードだ
→降りた後にラインを見失い迷走することがある

ということで、インコースは問題ないものの、アウトコースは難所に挑戦したらかなりの確率で失敗するという状況でした。
ここで
・アウトコースの難所に果敢に挑戦する(そして多分リタイヤする)
・無難にライントレースだけする
という選択を迫られます。

最初は「ダメもとで難所に挑戦したらいいじゃん!」と思ってたのですが、各チームが次々とリタイヤする状況を見ていると(うちのチームは走行順が23組中22組目だったので)「ここで少しでもいいタイムだったらまあまあの順位になるのでは?」というスケベ心が頭をもたげます。
冷静に考えればチャンピオンシップに行けないのはほぼ決まりなので順位なんて関係ないはずなのにね。
ということで、アウトコースでは走行エッジが右側だったのを左側に切り替えて、インコースもアウトコースも難所に挑戦せず、無難にライントレースをするだけという方針になりました。

そして、自分たちの出走順を迎えます。一走目はアウトコース。
オペレーターは私。
(なぜなら、みんな実装も試走もさせたことがなく、実際に設計実装テストを私一人でやってたからです。試走会とかには来て課題の解決アイデアをくれたんだけどね)
いつも通り起動してプログラムを実行してキャリブレーションしてあとはタッチセンサーを押して走らせるだけ。

3、2、1、スタート!

あれ、いきなり迷走??

コースアウト?

もうダメだ、リタイヤ…

呆然としてNXTを回収してみんなのところに戻り、土下座して謝りました。
この時は何が悪かったのか分かりませんでした。
スタートさせるときに前傾させすぎててスタート即転倒とか、ラインに対して垂直に立ってなくて迷走とかはありましたが、少なくともそんな状態ではなく、走り出してラインを見失うという今までとは異なるコースアウトの仕方だったからです。

で、戻ってからのメンバーの一言。
「最初にラインに乗せるときのエッジ、左になってました?」

………それだ!

プログラムを修正してからサンプルコースで試走はしていたのですが、本番ではあまりにもいつも通りの操作をしたため、さっき入れた修正のことを忘れていつも通りの手順で走行スタートしてしまったのでした。
そのせいで、NXTはラインを見失って迷走してしまったのです。
これなら、シーソーに挑戦して転倒した方がましでした。今さらどうしようもありませんが。

2走目のインコースは右エッジだったし、絶対オペミスしないという覚悟で臨んだのでなんとか完走しました。1分10秒ぐらいだったかな?

こうしてETロボコン1年目の挑戦は終わりました。
ちなみに、同じ組で出走したライバルチームは高専生で、ピットとか走行前の待ち時間とかにめちゃくちゃ不安そうな顔をしていたのに、インコースではエニグマクリア、ガレージインクリア(多分インコースのガレージインクリアは初めて)、アウトコースは難所には挑戦しなかったものの、ショートカットと高速走行で40秒ぐらいでゴールしてました。
悩むレベルが違うじゃん!


感想
まあメンバーが8名もいたのにみんな仕事の片手間で実働は一人だったとか、初めてで右も左も分からない状態で始めたとか、言い訳はいくらでも思いつきますが、いい大人がそんなことを言っててはダメですね。
来年も参加できたら、もうちょっとテスト時間を取って検討と調整に時間をかけた上で試走会に臨めるようにしたいと思います。
posted by 岩永 at 23:55| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする
×

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