cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

2014-01-01から1年間の記事一覧

ofxGstreamerとofxGstRTPを使ってWindowsでh264ストリーミング配信、と、openCVで受信

Windowsで動画のストリーミング配信をするプログラムを自前で用意するのは、結構大変だ、という話をちょっと前にしました。 1.生の連番画像をOSCや自前のプロトコルを使って送信する方法、 2.HTTP経由でMotionJPGを配信する方法、 3.ffserverやGStream…

OpenFrameworksでWEB上のファイルを受け取る

WEB上のテキストや多種多様なファイルを受け取ることが出来ると、便利ですね。openFrameworksの標準機能で実現できます。 ofHttpResponse intrinsics = ofLoadURL("http://10.254.20.46:7890/intrinsics.yml"); cout << intrinsics.data << endl; 画像配信サ…

ofxHttpを使って、WindowsでMJpegの動画ストリーミングサーバーを作る(その2)libjpeg-turboを使って高速化

OpenFrameworksとても便利なんですけれど、画像処理をするときはOpenCVネイティブに書きたいことがよくあるため、わざわざofImageやofPixelsやofBufferなどを使いたいとは思いません。ofHTTPのofIPVideoServerも画像の受け渡しが基本的にOpenFrameworks用の…

ofxHttpを使って、WindowsでMJpegの動画ストリーミングサーバーを作る

画像配信のノウハウは奥が深くて、理屈は分かっても自分で実装するのはなかなか大変です。Linuxで動画のストリーミング配信を行うのは、ffmpegのffserverなどを使えばいいのでとっても簡単です。しかし、Windows上でストリーミング配信をするアプリケーショ…

Depth From Sequenceのc++コア部分をMSVCで動かしてお勉強

(編集中) twitterで@ginrou799さんの開発されたiPhoneで奥行き推定するプログラム[1][2]、という、とても興味深い記事が紹介されていました。今日の現実逃避活動は、これのお勉強にしてみます。 iPhoneで、とありますが、コア部分はc++で開発されているそ…

RICOH THETAの連番画像ビューア

[1]によると、 RICOH THETAが、携帯アプリ経由の操作でのインターバル撮影に対応したそうです。すぐに本家ビューアで連番画像に対応してくれると思いますが、テンポラリに需要があるかもしれませんので、連番再生に対応したビューアの実行ファイルを置いてお…

ofxCvを介してOpenCV3.0alphaのAKAZE特徴量を使う

OpenCV3.0にSIFTやSURF以上の性能であると評判の高いデスクリプターのAKAZE/KAZE[2][3][4][5]が採用されるそうです。これをopenframeworksのaddonのofxCv経由で動かしてみたいと思います。 opencv3.0alphaのwindows版プリビルド版[1](ダウンロードリンクは[…

3Dお絵描きペン3DDoodlerをロボットに持たせると3次元プリンターになる、か?

写真はまだイメージ図です。 こんなの[1]をつかんでます。 お絵かきロボット 我々のグループの研究、お絵かきロボットドットちゃんを紹介します。 Painting Robot - Manipulation of Paintbrush by Force and Visual Feedback - YouTube 研究概要を簡単に説…

論文は,様式美である.

*1 はじめて論文を書く修士学生向け. 全ての科学論文は,下のような流れで構成されている. この構成を守っている文献を,論文と呼ぶ. この流れから大きく外れる構成の文献は,論文ではない. 研究者が論文を大量に読むことができるのは、 すべての論文が…

アンドロイド端末で習字

ばらかもんを見ていたら習字をしたくなったので、昔携わったアプリの紹介。 フォントロイド | Fontroid - Free Social Font 面白いですよ。

石のセグメンテーションをWatershedアルゴリズムでやってみる

lanczos4で2倍に拡大し、PerspectiveTransformで上から見ているような絵に書き直した石敷き画像の石を一つ一つ領域分けしたいと思います。手作業で領域を切り分けてもいいのですが、面倒くさいので画像処理の助けを借りて、初期解ぐらいは半自動で得られる…

lanczosの比較

openCVのresizeのlanczos4とHexeReinさんの実装[1]との違いを比較してみましょう。(どっちが良い悪いではなく、ね) 関数のインターフェースをcv::Matに書き換えます。 // https://gist.github.com/f3f22fc29953d573cc12.git 左から、 入力画像src cv::resi…

OpenCVでPerspectiveTransform

記事の粒度が安定しませんが、メモ代わり。 斜めに撮影された被写体を、真正面から見据えたい場合の画像処理。 左側が入力画像と、選択領域。右側が出力画像と、見据えた方向の領域。 左画像で4点選び、右画像で4点選ぶ。 warp_matrix = cv::getPerspectiveT…

画像のn倍拡大

遠隔地に画像をネットワーク配信するときに、遅延を少なくフレームレートを上げたい場合、とりあえず画像サイズを小さくして送っておいて、受信側で高解像度化できたらいいな、ということがあります。ざっと画像拡大縮小アルゴリズムを調べてみましょう。 一…

openFrameworksでPDFビューア

お仕事のネタではありませんが、PDFビューアを自作したり、PDFを開いて画像処理してPDFに書き戻すプログラムを書きたいことがあります。とくに、ScanSnapを使って漫画を自炊した時に、埃やノリのせいで縦線が入ってしまったのを修正したい時に・・・。openFr…

姿勢の計算

(メモ) 回転行列とは、座標軸のそれぞれの方向を表す単位ベクトル、そのものである。 x y z : 成分 ------------ 1 0 0 : x軸の方向ベクトル 0 1 0 : y軸の方向ベクトル 0 0 1 : z軸の方向ベクトル の座標系をどのような方向に回転させたいか、を表し…

機械学習アルゴリズムもある行列ライブラリdlibをofxLearnでテスト

(編集中) プロジェクトジェネレータでプロジェクト生成。 ソリューションエクスプローラから、libsの下をすべて消す。 プロパティのインクルードパスで、../../addons/ofxLearn/libsと../../adoons/ofxLearn/src/を登録する。 exampleから、main.cpp, ofApp.…

機械学習ライブラリShogun3.2をWindowsのCygwinで使う

機械学習が花盛りです。数多くの機械学習ライブラリが世に出ていますが、c++インターフェースでWindowsで動く物が、あまり多くないように見えます。更にMSVCで使えるもの、が見つかりません。MSVCで動かすことを妥協して探すと、ShogunというライブラリがCyg…

LeapMotion v2.1に更新したofxLeapMotionでCamera Imagesを使ってステレオ復元

(編集中) ofxCvを導入しておく。 testApp.cppをちょっと編集。 if(on_distortion){ leap.getRectifiedImages(); cv::Mat left, right; left = ofxCv::toCv(leap.distortion[0]); right = ofxCv::toCv(leap.distortion[1]); stereo(left,right); } ステレオ用…

LeapMotion v2.1に更新したofxLeapMotionでCamera Imagesの表示

(メモ) LeapMotionの生画像取得APIがv2.1~公開されたそうなので、テストしてみます。 Dev向けSDKのV2.1のincludeとlibをofxLeapMotionの既存の物と置き換える。 PIなどの定数定義で引っかかるので、#ifndef~#endifで囲む。 ofxLeapMotion.h //Raw Images voi…

研究で使えそうな小型ヒューマノイドロボットとソフトウェアの調査

(編集中) 研究に使えそうな、小型ヒューマノイドロボット関連の情報を適当にまとめます。 マニアックに性能がいいけど、面倒くさい、みたいのは、初心者の学生には扱えないので回避。おすすめ情報があったら、なんでも、ぜひ教えてください。 ヒューマノイ…

ロボットの状態遷移の管理のために、ofxStateMachineを使ってみる

ロボットの上位の動作計画は、しばしば状態遷移図を用いて管理されます。状態遷移の実装は、単に条件分岐を並べてプログラムを書くだけでも構わないので難しく考える必要はないのですが、整理整頓が苦手な人が規模の大きなプログラムを書こうとすると、あっ…

openCVのMatで基本的な画像処理をするために、走査の方法を確認しておく

[1] cv::Mat使用時の画素へのアクセス方法 - minus9d's diary [2] OpenCVからLabeling.hを使ってラベリング - Tech-Sketch [3] 構造解析と形状ディスクリプタ — opencv 2.2 documentation [4] 画像処理ソリューション

時系列データを管理するために、ofxTimelineを試してみる(その3)

便利そうなのは分かったけど、じゃあ自分のプログラムからデータを追加したい時にはどうすればいいのさ、ということで、調べていきましょう。 Curves 先ず、たくさん用意されているTrack Typesの中から使いたい型を検討します。LeapMotionで得られる手や指の…

時系列データを管理するために、ofxTimelineを試してみる(その2)

まだofxTimelineの便利さが良くわかりません。全部入りのデモを試してみましょう。ofxTimelineの下のexample-allTracksです。 Quicktimeのインストール ビデオ再生にQuicktimeが使われていますので、下記リンクからダウンロードしてインストールします。 htt…

時系列データを管理するために、ofxTimelineを試してみる(その1)

obviousjimさんが開発された、時系列データをGUIで編集するための素晴らしいツールがあるということなので、試してみます。いつものようにopenframeworksのaddonで、名前はofxTimeline[1]です。開発環境は、Windows7 64bit, VS2012, openframeworks0.8です。…

OculusRift dk1をopenFrameworksで動かす

おもちゃを動かすシリーズが続いています。埃をかぶったままのOculusRiftが山積みのまま何台もあって勿体ないので、動かして見ます。例によって、Windows7, VisualStudio2012の環境で、openFrameworksを使って先人のaddonを利用して動かします。 1.OculusR…

剽窃チェッカー

もし自分が書いた論文に、意図せずとも他の文献と同じ言い回しが使われていたら嫌な思いをすることになってしまいます。そんな事態を避けるために、論文提出前に自分で原稿チェックしておきましょう。いくつかのツールが公開されています。 [1]デスクトップ…

LeapMotion v2をopenFrameworksで動かす(その1)

LeapMotionがv2になって,指の関節まで推定できるようになり、とても良くなっているそうです。いつものようにwindows7のopenFrameworksで動かしてみましょう。 1.LeapMotionのセットアップ まずは、普通にLeapMotionのドライバーと開発者向けSDKをインストー…

Choreonoidの作例1 ラジオ体操

Choreonoidを使ってhpi GR-001に振付けた作例を紹介します。 GR-001によるラジオ体操(座位バージョン) - YouTube by kawaguchi-kun[1] (人間がマニュアルで)ラジオ体操第一の座位バージョンの動画を見ながら、階層的な動作記述に置き換えて、(人間がマ…