processingで動画を流したい

メモ書き。

あまりに重い動画を再生しようとするとメモリを確保出来ずエラーが出たり落ちる。
NyARToolKitと組み合わせて動画を再生するなら、OpenGLを使うのが良さそう。
下記のエントリが参考になりそうだ。
Processingで手抜きプロジェクションマッピング - Imaginable Reality

モバイルプロジェクタを使ってみるのも面白いかも。目新しいし。

[追記]
メモリ不足で落ちる問題、IDEのメモリ使用量を増やす設定をしないとダメかも。
下記を参考にやってみよう。
Reco memo: Processing: IDEからアプリ実行時のメモリ確保量の変更

[追々記]
メモリ容量、1.5.1だとテキストファイルではなくメニューから設定出来るようになってた。
ひとまず1024MBを設定してみた。落ちなくなったみたい。

processingでARToolKitを使ってみる

NyARToolkit for processingを使えば良いみたい。
NyARToolkit for processing | NyARToolkit project

Readme.txtに書いてある通りにサンプルを動かすと(当たり前だが)うまくいった。
またUSBカメラを接続した場合、特に設定を書かなくても自動的に選択された。
(デフォルトだとFacetimeのカメラ)

NyARToolkitではMultiMarkerというクラスを使えば複数マーカもそれぞれ別のものとして認識してくれるらしい。
リファレンスは下記の通り。
http://nyatla.jp/nyartoolkit/doc/nyar4psg/api/1.1.6/index.html?jp/nyatla/nyar4psg/package-summary.html

[追記]
IDを指定出来るNyIDマーカというものがあるらしい。
下記のサイトで任意のIDのマーカを作ることが出来る。感謝です。
NyID Marker Maker / FLARToolKit / The Sixwish project

電子工作で音声を再生する方法を考える

やりたいこと

ボタンを押す→音声が流れる
ということをしたい。

方法を考える

APR9600を使う

APR9600という再生/録音が出来るICがある。秋月のキットを買ってやってみた。
音質はプツプツ・・・。ビットレート上げたり回路を改善したら良くなるだろうか?
最有力だけどもうちょっと調査が必要。
http://akizukidenshi.com/catalog/g/gK-02060/

ArduinoのWave Shieldを使う

これを使う。SDカード内のwaveファイルが再生出来るみたい。
http://www.adafruit.com/products/94

MP3プレーヤーを使う

秋葉原で売ってる安いMP3プレーヤーを流用する。
一番簡単だけど最後の手段かな・・・。

音声流すだけ、と思っていたけど意外と大変。
バンダイのおもちゃとかどうやってんだーー。

「うわっ・・・私の年収低すぎ・・・?」シミュレータをProcessing+OpenCVで作ってみた

概要

「うわっ……私の年収、低すぎ……?」のモデルを公募! →編集部でもやってみた - ねとらぼ

「うわっ……私の年収、低すぎ……?」――ネットユーザーなら1度は見たことがあるであろう“あの”バナー広告のモデルを、転職サイト「@type」が4月19日〜5月21日まで募集する。

あのバナーを自分の顔で飾れるなんて!なにこれ応募したい!

女性なら誰でもOKで、年齢や国籍は不問だ。

オワタ・・・。
あまりにも悔しいので、それっぽい写真を撮れるシミュレータをProcessingで書きました。
これから応募予定の女性の皆様はこれで良い構図を決めてみてはいかがでしょうか。

実行例

こんな感じになります。

使い方

利用にはProcessingとOpenCVが必要です。
環境がない方は以前書いたエントリを参考にすれば出来るかとは思います。
Processing+OpenCVで顔検出を使ったり強いられたりする方法 - むだな ものを つくる

ソースはgithubに置きましたので、各自でDLしていただければ。
https://github.com/stamefusa/face_nensyu

face_nensyu.pdeを実行すると上の例のままの画面が立ち上がります。
何かキーを押すと3秒後に撮影します(シャッター音が鳴ります)。
3秒の間に片手か両手で口を押さえてポーズをキメましょう。

撮影されたファイルはface_nensyu/imagesフォルダに置かれます。

簡単ですね。
jpgに圧縮した際の劣化が逆にそれっぽくなりました。

謝辞

カメラのシャッター音は下記のサイトよりお借りしました。
カメラのシャッター音 | フリー効果音のページ

Processing+OpenCVで顔検出を使ったり強いられたりする方法

一昨日のエントリ(http://d.hatena.ne.jp/stamefusa/20120115/1326636719)で追記した内容があまりにも不親切なので、こちらでまとめます。
※これでも動くかわからないので、もしダメだったらごめんなさい。
以下の手順はWindows XPMac OS X Lionでテスト済みです。

Processingのインストール

下記のURLからProcessing 1.5.1をダウンロードし、解凍します。
Download \ Processing.org

  • Windows:Cドライブ直下に置きます。たぶん日本語が入らないパスなら大丈夫。
  • Mac:普通にアプリケーションディレクトリに置けばOKかと。

ここでSketchbookの場所を確認。Processingを起動して、

  • Windows:File→Preference
  • Mac:Processing→環境設定

を選択し、一番上に出ている「Sketchbook location」を確認します。
ここではデフォルトのまま、

  • Windows:C:\Documents and Settings\ユーザ名)\My Documents\Processing
  • Mac:/Users/(ユーザ名)/Documents/Processing

であるとします。以降ここを便宜上「Sketchbookフォルダ」と呼びます。

OpenCVのインストール

下記を参考にしながら進めます。
OPENCV \ library

まずはOpenCV本体のインストール。

次にOpenCVのライブラリをインストール。
の前に、先ほど確認したSketchbookフォルダの下に「libraries」というフォルダを作成します。
http://ubaa.net/shared/processing/opencv/download/opencv_01.zipをダウンロードし、展開してできた「OpenCV」という名前のフォルダを「libraries」フォルダに移動します。

Processingを起動して、「Sketch→Import library...」を選択した一番最後に「OpenCV」が出ていればOKです。

OpenCVのサンプルファイルを実行してみる

http://ubaa.net/shared/processing/opencv/download/opencv_examples.zipから持ってきます。
解凍して出来る「OpenCV examples」フォルダをSketchbookフォルダに移動します。
これでサンプルファイルが実行出来るはずです。pdeファイルを開いて実行してみましょう。

Windowsのみ必要な作業?※
Windowsでは肝心の「face_detection」のみ準備が必要です。
「face_detection」フォルダにhaarcascade_frontalface_alt.xmlをコピーします。
このファイルはC:\Program Files\OpenCV\data\haarcascadesに置いてあります。
この作業はMacでは必要なかったのですが、Windowsだと必要みたいです。

強いられてみる

ここまで問題なく動作すれば大丈夫なはずです。
強いられるプログラムを下記からダウンロードし、Sketchbookフォルダに移動します。
http://www1.axfc.net/uploader/File/so/74118.zip

pdeファイルと先ほどのhaarcascade_frontalface_alt.xmlを入れてあります。
実行してみてください。これできっと出来るはず。

非高専生が新春・高専カンファレンス2012 in 東京に行って来ました。

新春・高専カンファレンス2012 in 東京(kosenconf-038tokyo)

にてブース展示がありましたので、拙作「リアルslコマンド」「顔認識で強いられてみた」を展示してきました。
2つともジャンル的に高専クラスタには受け入れてくれるだろうと思っていたので、リジェクトの可能性もあったのにMTM07のあとに「次は#kosenconfで展示します!」などとpostしてしまいました。

勇み足でした。

実際の展示はこんな感じでした。これが本当に社会人の展示風景なのでしょうか。

展示中はいろんな方に笑ってもらって良かったです。高専の先生とは真面目なVRの話も出来て有意義に過ごせました。
他の方の展示も見てみたかったですね。

謎だった高専をちょっとだけ見れた

元々僕は普通の高校から総合大学に進学したのでほとんど高専とは関わりがなく、高1のときに部活の試合で神戸高専に行って「校舎でけー、マンションみたい」という浅い感想を抱いたくらいでした。
あとは高専卒の研究室の先輩とか編入生とかと話して「やべーみんなめっちゃデキる」とか思ってました。

たまたまカンファレンスの実行委員長が会社の同期で誘ってもらったのですが、行ってよかったです。
LTも面白い発表が多かったし、楽しんで参加出来ました。

LTの時に特に感じたんですが、高専の先生方も含めて盛り上がっていたのが印象的でした。
高専カンファレンスは学生だけじゃなくて、高専全体でやっているんだなーというのを感じましたね。

今回のテーマが「つながり」ということだったそうですが、まさにそんな感じでした。

僕が大学生の時に一番良かったと思っていることはいろんな所から来た人と仲良くなれたことなんですが、
それぞれの高専の規模が大きくない分こういった機会で全国に広がるネットワークを感じられるのはとても良いことだと思います。

なんだか小学生の作文みたいになってきた・・・。

あ、LTとかでもっと化学とか数学とかの人の話も聞いてみたいなーと思いました。やっぱり情報系とかに寄ってるように思ったので・・・。
転学科された方の発表が面白かったですね!

あとプレゼン厨としてはOB・OGの素晴らしいプレゼンを見られるのは現役の方にとってはすごく良い機会になっていると思います!
僕も高校生のときにこういった機会があれば良かったのに・・・とちょっと悔しく思います笑

これ以降ももっともっとつながりを広げて、深めて開催していってほしいなーと思いました。
何はともあれスタッフ・参加者の皆さんお疲れさまでした!
id:Akiu063さん、また仕事頑張りましょう笑

顔認識で「強いられているんだ!(集中線)」をやってみた(プログラム配布します→出来ませんでした→追記しました)

処理について

顔認識

OpenCVの顔認識のサンプルをそのまま持って来ました。
下記のエントリにある通りに実行すると顔を赤い枠で囲んでくれます。
http://blog.degoo.org/2011/06/processing%E3%81%A8opencv%E3%81%A7%E3%83%92%E3%83%80%E3%82%AB%E3%83%88%E3%82%AA%E3%83%AB/

集中線描画

簡単に描画するならこれ、ということでProcessingを使いました。
アルゴリズムとしては、
1. 画面枠の1辺上の任意の点Aと顔認識で得た顔の中心Fを通る直線上に、任意の割合を掛けた点Cを設定します。
2. ランダムに底辺の長さを設定し、点Bを決めます。
3. 3点A、B、Cを通る三角形を描画します。
4. これを4辺全てに適用し、点Aの間隔を適切に調整して繰り返し描画すれば完成です。
ただし集中線っぽく描画するコツ(?)として、

  • 三角形は交互にアルファ値を100、70、100、・・・とし、メリハリをつける
  • 点滅させることで集中線っぽさを出す

この2点を加えています。

感想

OpenCVを初めて触ったのは5年前の大学2年生のとき。
そのときはドキュメントは英語ばかり、実行環境もC++など限られていたため涙を流していましたが、
今は日本語のドキュメントも豊富でProcessingなど敷居の低い言語でも動作出来るとあって隔世の感ですね。
「ちょっとOpenCVの顔認識で遊んでみよう」という軽い気持ちでサクッと書けるのは素晴らしいです。

プログラム

WindowsMac OS Xで動作するプログラムを下記に置きました。
Windows版:http://www1.axfc.net/uploader/File/so/74014
Mac OS X版:http://www1.axfc.net/uploader/File/so/74015
自分の開発環境(MBAMac OS X Lion)でしか試せていないので動作しなかったらすみません(サポートとかも特にしないです)。

※ちゃんと動かないみたいです。あとでfixします。

zipファイルをDL後に展開し、フォルダ内にあるファイルを実行してください。

です。
動きませんでした(白目)
いろいろとすみません。OpenCVをインストールしないとダメかも?
ソースファイルはsoruceフォルダの中に入っていますので、Processingからビルドしてみてください。

  • Processingは1.5.1を使う。WindowsならCドライブ直下に置く
  • http://ubaa.net/shared/processing/opencv/を見つつOpenCV1.0とOpenCVライブラリをインストール。
  • この段階でOpenCVをProcessingからインポートすることができ、サンプルが実行出来るはずです。
  • OpenCV\data\haarcascades\haarcascade_frontalface_alt.xmlをpdeファイルと同じ場所に置く。

これで上手くいくかもしれないです。http://www.iamas.ac.jp/~hrr/Lecture/Processing09/proc05.pdf(pdf注意)が参考になりました。

【2011/01/17 追記】
下記のエントリに手順をまとめました。おそらくこれでいけると思いますが・・・。

Processing+OpenCVで顔検出を使ったり強いられたりする方法 - むだな ものを つくる

リファクタリングは全くしていない上にProcessing1.5は日本語でコメントが打てないのでロクにコメントもありませんが・・・。
もうちょっとスマートに書く方法があるとは思いますがお許し下さい。