WebCameraSnap」カテゴリーアーカイブ

フォーム上でのマウス操作

WebCameraSnapの最新版v1.19を5月下旬以降にリリースする目標でぼちぼち進めている。
数日前に動き検出の動作を確認していたら、検出領域のサイズ変更ができなくなっていた。これまで静止画撮影の機能のみチェックしており、動き検出機能の確認は後回しにしたので、今になって不具合が判明した。最新版のモニター表示フォーム上で線分を描画できる機能を追加したのが原因である。今回は、時間がないので、修正せずリリースする。こういうリリースもある。
当初は動き検出の領域設定しか使っていなかったが、いくつも機能を追加した今のコードが読みにくい。フォーム上でのマウス操作の機能は整理する必要があると思う。当初は想定していなかった問題が出てきているので、ぼちぼちやりましょうか。
2020/04/22,16min

3種類のバナナのシュガースポット撮影を開始

WebCameraSnap(以下wcsと記す)の活用例作成の一環でバナナのシュガースポットを撮影している。冬場の撮影は室温が低く撮影時間が長くなっているので、今回はバナナの種類を3倍に増やすことにした。
バナナはハローズが充実していたので、夕方行ってバナナ売り場を見てみた。6種類以上あり思った通り充実していた。 全種類を同時に試したい気持ちはあるが、設置面積とスタッフの胃袋には限界があるので、今日は次の3種類にした。
●ごほうびバナナ (フィリピン産)
● 有機栽培バナナ(メキシコ産)
● 朝のしあわせバナナ(フィリピン産)
1本だと寂しいので、各種類毎に2本にして、以下の写真のように配置して撮影を開始した。今回の撮影では60WのLED電球スタンドを2台使っている。

左上:ごほうびバナナ (フィリピン産) 、右上: 有機栽培バナナ(メキシコ産)、手前: 朝のしあわせバナナ(フィリピン産)

wcsは最新開発版にしたので、撮影までの残り時間がモニター画面上でわかるため、バナナを取替中を撮影されることなく、熟成したバナナを移動できる予定である。
今回は画面全体にバナナを配置して、見たい部分の面積が広いので、Webカメラの解像度を2304×1536にして撮影している。モニターできる速度は4fps程度に落ちるが、定点での撮影であること、多少は画質が良くなるので、そのようにした。
長くて6日程度は撮影する予定だが、熟成したバナナは食してしまうので早く終了することはある。どんな感じのシュガースポットの変化が現れるか楽しみである。気温が低いので、全体が褐色に変化するだけかもしれないが、撮影したことはないので、やってみましょう。

余談だが、私が撮影ボタンを押して撮影するわけではなく、wcsが自動的に撮影してくれるので、私の主な作業は、
・バナナを買って来る
・撮影を開始する
・静止画を作業用マシンにコピーする
・毎日動画を作って変化を確認
・熟成したら食す
・文書を作成(気になることをメモ、ブログを書く)
となる。前回の撮影を始めた頃は、動画を作る際にフレーム数計算をやってffmpegコマンドに渡すパラメータを決めて実行させていたが、面倒なので、 バッチファイルで自動的にコマンドラインを生成してバッチファイルをダブルクリックすると自動的にffmpegコマンドが走るようにしたので(動作確認などで数時間かかったが)、静止画を作業用マシンにコピー(これもそのうちバッチにする)する作業が手間かなと思う程度である。
撮影中に気が付いたことをメモにする時間と、ブログを書く時間はこれまでどおり相当の時間がかかっているが、自分が書くことにしているので、問題ないだろう。内容に集中できるのはよいと思う。
定点撮影して何かしら変化を観察できるのは面白いし、食しておいしいのは、いいでしょう。

「あと何秒で次の撮影を行います」のような表示を付けた


WebCameraSnap(以下wcsと記す)のモニター画面に「撮影まであと ◯ ◯秒」の表示ができるようにした。これで60秒(1分)周期でバナナのシュガースポット定点撮影中にバナナを入れ替えたりすることができる。2019/12/08から始めた撮影も6日目に入り食べ頃を少し過ぎてしまったので、今日あたり他のバナナと入れ替えを行えようと思う。忘れずにwcsのバージョンアップもしないといけませんね。

撮影まであと◯ ◯ 秒

写真は開発PCにつないだWebカメラ(Qcam Pro for Notebooks)から 1600×1200ピクセル で撮影中のモニター画面をキャプチャーしたもの。ホコリが見えますな。長期の定点観測を部屋でやると必ずホコリが積もる。今は気にしないことにしているが、他の人は 何か対策をやっているのだろうか。

次回は、他のバナナの撮影を開始した様子を投稿しようと思う。

【追記】2019/12/14 21:37
本日、夕方におよそ6日間の撮影を終了したので、撮影開始、途中、最後の写真を掲載します。室温が低いせいか、全体的に茶褐色になってしまいました。バナナはおいしくいただきました。

(1)撮影を開始した最初の写真です。
(2)開始してからおよそ3日後の写真です。
(3)さらに3日後、終了時の写真です。

異なる種類のバナナでシュガースポット撮影をしたい

WebCameraSnap(以下wcsと記す)の活用例として(趣味と言われるが)バナナのシュガースポット撮影をしている。バナナの黄色い皮の表面に褐色の点(スポット)が全く無い状態から撮影を始め、褐色の点が多くなり全体が褐色になるより前、食べ頃まで撮影を続ける。撮影は、1分毎に1枚自動的に撮影する。写真の枚数は1日24時間で1440枚、多いようだが、この枚数は問題ではない。問題は、 撮影場所が1箇所しかなくて、1種類のバナナの撮影に、日数がかかることである。撮影期間は短くても2-3日くらい、近頃は室温が低くなり5-7日とかかかる。シュガースポットの出現、変化の様子はバナナによっても異なるので、この季節にどんな様子で変化するのかをより多くのバナナで見てみたい。毎日1本以上のバナナを食べるので食べ頃のバナナが2-3本あっても問題はない。異なる種類のバナナを同時に撮影したことはなかったが、撮影場所にバナナを3本置くことはできそうなので、3種類のバナナを同時に撮影してみてはどうだろうか。試してみようと思う。

冬のシュガースポット撮影

1本の撮影だとこんな感じである。この撮影場所に3本を重ならないように並べて撮影ができるではないかと考えている。アナログ時計は端っこに避けないといけないとは思う。

同時に3本を置けるとして、気になるのは、食べ頃のタイミングがバナナによって異なると予想されること。撮影を開始した時の見た目が仮に同じだとしても、バナナの特性の違いで、全てのバナナが同時に撮影終了とはならないであろう。早めに食べ頃になったバナナがあれば、おいしいうちにバナナを取って食するつもりである。つまり、撮影中にバナナを画面から移動させる必要がある。その時、当然に手が映りこむ。映ってもよさそうだが、私は映らないほうがいいので、1分毎の撮影した直後に移動させたいと思う。そのためには、撮影が実施されていないのがいつなのか知りたい。そう、「あと何秒で次の撮影を行います」表示が欲しい。今はその機能はない。自分が欲しいので作ろうと思う。それを作ってからバナナの3本同時撮影を始めたいと思う。2019/12/08から始めた撮影がまだ続いていて(5日目に入った)、おそらく2日後の朝まで続けると思うので、その機能を作る猶予が1日以上ある。

パネポンのプレイを静止画で連続撮影した、動画にして見たら酔った

パネポンのプレイが素晴らしくて酔いしれた、という話ではないのだね。プレイの動画を確認で見ていたら酔って気分が悪くなったお話とこれからの話である。

自作のWebカメラ撮影ソフト(WebCameraSnap)を発売して11年が経過した。この夏は大幅機能アップならぬ、キャプチャーフレーム数を増量させるため、プログラムを相当手入れした。本投稿では、評価版と呼ぶことにする。
評価版にはバグがある、また、これまで使えた機能が動かなくなっているので、公開版としては出していない(2020年春には出したいなぁ)。
キャプチャーフレーム数は、ほどよく増えたので、もしかすると、使いたい人が100人くらいはいるかもしれない(と勝手に思っている)。使えなくなってしまっている機能はあるし、バグがある、という前提で評価版を世間に出すのはありかもしれないと思っている。

評価版の何がよくなったのか。作者は以下の3つくらいかな、と思っている。

(1)非力なWindowsPCでも、もしかすると使えるようになったかもしれない。

(2)Windows10のupdateでハードウェアオーバーレイ表示ができなくなったケースがある。この状況に対応できそう。キャプチャーフレーム数が多くなったので、キャプチャー画像を表示してモニターができるようになった。

(3)キャプチャー解像度を下げて、高速なSSDを静止画の保存先にすると、キャプチャー周期を短くして沢山静止画を保存して、なんちゃって動画を作れる。

(1)(2)はまあいいこととでしょう。(3)について解説する。

(3)は今までは毎秒数コマでは動きがカクカクしていて見られたものではなかったのです。高速なPCでSSDを使えばまあまあ撮影はできていたのですが、CPU使用率が跳ね上がって、気軽に撮影する、という感じではなかったので、やりたいとは思えなかった。
評価版ではCPU利用率は(決して低くは無いけど)それほど上がらなくなったので、 静止画を沢山撮影して 動画的な再生ができそうかな思えるようになった。前から試してみようと思っていた、どうぶつの森パネポンのプレイしている様子を静止画撮影して、(自作のsnapviewerという)静止画連続再生ソフトで連続再生させて、プレイの様子を確認してみることにした。

結果は、960×720ピクセルの静止画を毎秒13-14コマくらいファイルを保存できた。そして、下手なプレイだが、まあまあいい感じの動きをみることができた。画面へのカメラの設置角度の関係と、操作の時に3DSがとにかく揺れるので、画面が揺れまくって脳が酔ってしまい気分は悪くなったが、「あなた、下手ねぇ、こっちを先に動かした方がよかったんじゃないの?」ということが言える程度の動画にはなっている。上達するには、分析は欠かせないと感じているので、このくらい見られたら、使えると実感しているところである。
画面が斜めで見辛い、画面が揺れて酔うのは気分が悪い。画面が斜めなのはまあ、辛抱できそうだが、揺れはどうにかしないと、体によくない。揺れを低減するソフトを探してみるが、なければ、簡易的に揺れを低減させる機能を(自作のsnapviewerという)静止画連続再生ソフトに組み込んでみたいと思う。奥行き方法の揺れはとりあえず無視して、上下左右の揺れだけでも少し低減してみてどうなるか、興味を持っている。
自分がソフトを書けるかわからないのでは、解決まで時間がかかるので、プランBを考えてみた。できそうな方法は、3DSにWebカメラを固定することである。重さが増すのと、接続する道具を今は持っていないので、まあ、そのうちに興味がわいたらやってみようか、と思っている。

5月下旬晴天なり

前回の記事は1/15だったようだ。4ヶ月が経過している。今日は、近況を書いておこうと思う。今月5月は数日かかけて、プッシュボタンボックス、受信側Arduinoボックスを作成した。ArduinoをUSBケーブルでWindowsPCにつないで接点情報が容易に得られるようになった。Webカメラの撮影ソフトの「撮影」ボタンを外部のプッシュボタンで撮影できるようになったので、当初のミニマムの目標は達成できた。5月に作ったものは、プッシュボタンボックスを6個、受信ボックスを3個。相当の失敗をしたが、次回はもう少しうまくやりたいと思っている。

WindowsPCのソフト機能の充実は必要と考えていて、接点(スイッチ)に応じてバッチや実行ファイルを実行できるようにしたい。そういったコードは書けるのでよいとして、並行して、プッシュボタンスイッチを無線化しようと考えている。ソフト作成の敷居は低いですが、ハードウェアは敷居が高い。何をどうしたらよいのか知識がほとんどないため、時間をかけるしかなと思っています。無線化もWiFiの1種類だけで済ませる気はなくて、Bluetooth、省電力無線など、入手可能な方法を、やってみようと思っている。原理を理解したいので、できるだけモジュールを使ってマイコン側のプログラムも書かないといけないので、シンプルに作れるものを始めてみようと思っています。

無線化にあたりバッテリをボックスに仕込みますが、14500サイズ(AA,単三型)のLiFePO4バッテリを4本入れて、DCジャック(メス)をつけて、ソーラーパネルをつないで電源を確保できないかなと考え中。チャージコントローラを使うのがよさげと思ってますが、構成部品が増えますね。とりあえずは、DC12Vアダプタを使って商用電源で電源を確保します。

自作ソフトのUIを拡張、趣味の栽培を支援、日常生活を支援、するためのハードウェア工作ですので、慌てることはないのですが、工作には相当の時間がかかるので、まあ急ぎつつやっていきませう。

WebCameraSnapについて2018年雑文

新年2018年になったらWebCameraSnap(以後wcsと略す)について書こうと思っていたのでいくつか考えていることを書いてみます。

(1)設定ファイルのこと

長らく「C:\Program Files (x86)\ONE CREATION\WebCameraSnap」の下に配置していましたが、管理者権限で起動しないと設定ファイルが書き込めないのは、何かと不便です。アプリ用の領域に設定ファイルを移動させることで、そろそろ解決しようと思います。

また、複数のWebCameraSnapを起動するのにコマンドラインの引数でprofile番号を指定して設定ファイルを切替できるのは、設定さえすれば問題なく使えるものではありますが、少し手間だなぁと感じることがあります。引数オプションは残しますが、ファイル名を変更するといった簡易な方法でも対応できるようにしようかと考え始めています。(既にwcs_buttonではファイル名ごとに設定ファイルを持てるようにしています)

(2)PRO版のこと

1年あればPRO版を作れるだろうと思って始めましたが、結果は、実現していません。ハードウェアオーバーレイ表示の取り扱いができるようになった程度で、計測機能とか入れたかったものがまだ設定画面しかできていない状況です。それらはまとまった時間があればできそうではありますので問題とはおもっていないです。問題は、既存のwcsのバグフィックス、仕様の見直しをした時に、別バージョンで開発しているPRO版に反映するのが、思ったより、しんどかったことです。同じことを2回やるのは苦痛でした。PRO版を別バージョンにすることを決断しましたが、計測機能、オーバーレイ機能を既存のwcsに組み込む方が楽しいと思いますので、既存のwcsを改良しながら、PRO版の機能を統合した方がよいのではないかと考え始めています。

(3)複数個のWebカメラ(USBカメラ)を使えるようにすること

複数個のWebカメラを使った静止画像の撮影がしやすくなるよう、1個のアプリを起動して複数台のWebカメラを扱えるようにしたいですね。2個アプリを起動する方法もありなのですが、今の利用方法から判断すると、1台で2個程度のカメラが標準設定で扱えたら嬉しい。5個も10個もキビキビ同時に動かす、という凄そうなことは考えていなくて、PCにつながっているカメラを、何秒か何十秒かわからないですが、1個ずつ切り替えて順番に撮影できたらいいなぁ、その程度の思いです。USBカメラをON/OFFする回数が増えてカメラに悪影響がないわけがないと思っているのでカメラには優しくない使い方かもしれない。USBケーブルの抜き差しを頻繁にするよりは優しいのではないか、とは思っていますが。とりあえず開発マシンに6台カメラをつないでいるので、昔撮影した氷が融ける様子の第2版としてインターバル撮影するのも面白いかもと思ったりしています、あ、これは「(5)その他」のネタの1つでした。撮影は暑くなって、午後ではなく午前中から実施する予定です。

(4)wcsの性能のこと

マシンパワーが上がっていることで当初リリースした時ほどは、強く意識することはなくなりましたが、画像処理を加えると、遅いなと感じます。現在予定している計測機能のコードは速度的には問題ないレベルで仕上がると思っていますが、将来的には画像処理の機能をいくつか入れたい、その時は、もう少し高速動作するようにしたいと思います。現在vb.netで書いているプログラムをC++に書き換えることは考えていませんが、処理性能をあげる具体的な方法を検討したいなと思い始めています。

(5)その他

wcsで撮影した静止画像を他の仕組みと連携して、実際に動く応用例を1個以上公開したいと思います。何個かネタは用意していますので、状況を見ながら、作っていきましょう。

産業用USB3カメラへの対応方法を追っかけていきたいと思っています。

静止画像撮影多機能ソフト「WebCameraSnap」v1.12を公開しました

静止画像撮影多機能ソフト「WebCameraSnap」v1.12を公開しました。

【変更点】

■共用コマンドファイルを使った撮影においてポーリング周期を「ミリ秒」として設定できるようにしました。
この変更により周期を「1~60秒」から「1~1000秒」に拡張しました。
既定値は「秒」です。
これまでの最短周期は「1秒」でしたが、今回の変更により最短周期は1ミリ秒となります。
ただし、実際にポーリング周期で必ずしも撮影できるわけではありませんので、ご了承ください。

WebCameraSnap PRO近況その1:モニター表示はハードウェアオーバーレイで

前回のブログから8ヶ月が経過してますね、報告ブログを書くまでに随分と時間がかかりましたが近況を報告します。

 

まず、昨日までにWebCameraSnap PRO(以下、PRO版と書きます)で、ハードウェアオーバーレイをモニター画面に標準表示できるようにしました。

VMR9を使ってオーバーレイ画像に文字や画像を合成できるようになりましたので、動作感はかなりよくなっています。

ハードウェアオーバーレイ表示の動画表示と静止画像では色味が少し異なるので、その点が(私は気になる)相違点でしょうか。

フィルターが違うので、しょうがないのかな。

(★)従来どおり静止画像をモニター画面フォームに表示できるようにしていますので、差異が気になる方も使えます。

 

モニター画面について:

従来のWebCameraSnap(以下、従来版)でもオーバーレイ表示はできていましたが、ほんのオマケという扱いでした。

従来版では、モニター画面に表示する画像と静止画で保存する画像は同じものにしたい、その方針で作成していましたので。

つまり、静止画像を常にキャプチャーしてそれを連続表示させていたわけです。

この方法は、CPUパワーを必要とするため、PCによってモニター画面の動画表示が遅くてピント合わせをしずらい問題がありました。

 

PRO版では、基本的な考え方を改めることにしました。

モニターはハードウェアオーバーレイ表示を基本、手動でキャプチャーする時と、定期的にキャプチャーする時だけ、静止画を撮影します。

つまり、常時は静止画のキャプチャーはしません。CPUパワーはそれほど必要ありません。

この方法が自然な感じがしますが、従来版は、当初から、静止画像をとりまくることを前提で作っていたので、基本的な考え方が違っていました。

定期的なキャプチャー設定でミリ秒単位で指定ができますので、従来版同様のモニター表示もできますので、差異はそれほど感じられないと思います。

 

基本的な考え方はコード全体に影響を与えています。安易にコードを追加することはしたくないので、既存のコードを生かし、あまりコードを書き直さずにボチボチと進めています。(新しく書いたコードはテストに時間がかかりますので、新しいコードを書けば書くほどしんどくなります)

wcs-proの基本的な機能はできましたが、ハードウェアオーバーレイを基本にすることで、解決すべき問題がいくつか増えてしまいました。

初めて使う機能なので、問題を解決するのに何かと時間がかかっています。まあ、大体はいけそうな感じではありますが。

あ、1つ問題がありました。それは、力技でコードを書くことなく、オーバーレイの表示速度を落とさず90度、270度回転させる方法が不明なことです。

調べましたが、簡単な方法を発見できていません。とりあえず、静止画キャプチャーをモニター画面で見ればどうにかなるので、保留です。

 

まだ試用できるバージョンを公開するには至りませんが、PRO版は首を長くしてお待ちください。2017年11月頃には何か出したいとは思っています。

従来版にいくつかバグを見つけましたので、PRO版リリース後には修正しようと思っています。とりあえず、通常利用には支障がなさそうです。

では、またお目にかかりましょう。

WebCameraSnap PRO版を作成することにしました

皆さん、お元気にお過ごしですか。

近頃の朝晩は本当に寒く、おそらく秋はもう終わり、そろそろ冬かなと思います。

さて、私は毎年11月になるとWebCameraSnapをリリースした月だなぁと思います。

初版をリリースしたのが2008年11月、それからおよそ8年が経過しました。

当時、Windowsで使えるWebカメラ(USBカメラ)はいっぱいあるけれども、静止画の撮影がカンタンにできるWindowsのソフトがないなぁって思って作りました。

最初の頃にいろいろな機能を付けて、(一時的に付けたテスト機能を除き)どの機能も削除することなく最新版までリリースしていますので、

どなたかが何かしらの機能を利用されていると思います。

誰かが使っている機能は必要とは思うのですが、新バージョンをリリースするたびに、設定や操作画面が複雑ゆえに、基本機能だけにしたいなぁ、とずっと思っていました。

私の考える基本機能は、

○Webカメラ(USBカメラ)の映像を簡単にモニターできて、

○定期的に静止画を撮影できて、手動でも撮影できて、

○静止画は画像ファイルに保存できる。

それだけです。

基本機能だけにしてしまうと、ソフト単体でできることは減りますが、何かしらやりたい時は、

□他のアプリケーションを活用する

□Webサービスを使う

などなど。

まあ、何かしら解決策はあるわけで、従来のバージョンはそのまま継続して、別にシンプル版を作ればいいわけです。

シンプル版の機能は従来のバージョンより数こそ少ないですが、

別に作り直すわけですので、これまで作り辛かった専門家向けの高度な機能を備えたバージョンをリリースできそうです。

専門家向けということで、名前は「WebCameraSnap PRO」として、新たなソフトの作成を開始することにします。

これまでリリースしてきたバージョンはPRO版の作成で得た知見を適用して継続リリースしたいと思っています。

まずは、ソースコードを読み直して、全体を理解しなおしてから始めないといけないので、首を長~くしてお待ちください。

ブログやTwitterなどで、進捗状況やら開発者の方々の役に立ちそうな情報を時々お知らせするかもしれません。

現時点では、PRO版の機能、価格、時期は未定です。