今年も Laval Virtual 紀行の季節となりました。例によって、期間中は起床-展示(準備)-夕食-意識途絶の毎日を送るため、リアルタイムでの更新は不可能です。日を改めて更新します。
さかのぼって3月28日、メモリリークもふさいで完璧!と悦に入りながら長期負荷テストを仕掛けて帰ろうとしたところ、ブルースクリーンで落ちる。20分~30分に1回くらいの頻度で落ちるが、再現性がまったくなく、原因追求に時間を消費する。このまま展示に臨めば「すみません、今再起動中です」を連発することになるのは明らかで、展示としてこれは絶対に認められない。ましてや今回は招待展示なので、その場で切腹モノである。
落ちるタイミングをじっくり観察すると、ウェブカメラのアクセスランプが点滅する瞬間に停止する。なるほど。このシステムは、2台のウェブカメラから差分画像を構成し、指示位置の検出後に文字キャプチャを行うが、速度を稼ぐために、差分画像は QVGA の小さな画像を使用し、文字キャプチャの寸前に最大解像度にその場で切り替えるという技法を用いている。が、何回かに1回、その解像度切り替え命令でブルースクリーンとなっていた。これはどうしようもない。
苦肉の策として、1台のカメラを最高解像度に固定し、差分画像をとるときには縮小して使うことにした。フレームレートが一気に落ちるため、高解像度カメラの画像は、必要になったとき(基準は内緒)だけ取りに行くことにして、速度低下を緩和した。CVideoCapture クラスをきれいに設計しておいて救われた。
3月30日、開発をファイナライズして、動作環境のバックアップを取る。今回は、いくつかのツール(mecab, nhocr, sed)が個別インストールになっているのと、そろそろ Vaio のハードディスクが気持ち悪くなっているのとで、DVD に加えて、ハードディスク丸ごとバックアップも作った。予定通り、3月31日に荷造りを終了して、出発準備完了。