おべんきょうwiki内検索 / 「Fern」で検索した結果

検索 :
  • Fern
    Fern 画像中の特徴点マッチングを行うための手法. SIFT,SURFとは異なり, 学習によって画像パッチをランダムに変形させたときの特徴を覚えておき, 照合時には画像変形を行わない.そのため高速にマッチングすることができる. OpenCV2における実装 sample/c/find_obj_ferns.cpp にサンプルがある. 下準備 GaussianBlurで平滑化 BuildPyramidで画像ピラミッド構築 学習 LDetectorは特徴点抽出? PatchGeneratorはパッチの変形にかかわるパラメータ? PlanarObjectDetector train() マッチング PlanarObjectDetector operator() 参考サイト 作者サイト http //cvlab.epfl....
  • OpenCV:画像特徴点
    ...を使える. なお,Fernはこのフレームワークに収まらないため別の実装になる. 特徴点抽出 http //docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html 特徴点抽出では FeatureDetectorという基底クラスを元にしている. FeatureDetector create()に文字列を与えて色々作れる. "FAST" "STAR" "SIFT" "SURF" "ORB" "BRISK" "MSER" "GFTT" "HARRIS&quo...
  • Tamura features
    Tamura features 画像処理における特徴量. 特徴量の詳細 以下の六つの要素から特徴ベクトルを構成する. Coarsness まず各点の サイズの近傍の平均を求める. 1-32あたりまでを使う? 点 の 近傍の平均は以下のように求められる. は点 のグレーレベル. 次に自分の点を中心として対称となる位置にある 重なり合うことの無い領域同士の平均の差分を 各方向において各点で計算する. 水平の場合は (???何方向くらいいるだろうか???) 次に各点において を最大化する を求め,ベストなウインドウサイズを求める. 1-Lはkの範囲. 最後に画像中の各ピクセルのの平均をとる. m,nは有効な画素範囲を示す. (???Fとfの違いは何???) ...
  • DeepLearning
    Deep Learning 日本語だと「深層学習」. ニューラルネットワークベースの手法. 非常に強力な識別器であり,もうあいつひとりでいいんじゃないかな状態. 何がすごいのか 従来だと,識別器の設計は 人間が適当な特徴検出を考える 検出された特徴量を適当な次元のベクトルになおす その特徴量を数学的に適当に分割する という形で行われてきていた. ところがDeep Learningだと, 特徴検出も特徴ベクトルも空間分割も自動でできる しかも高性能 というところがすごい. 構造 多層ニューラルネットワーク. Pre Training (事前学習)とFine Tuningの二段階で学習を行う. 事前学習では教師なし学習を各層で行い,特徴抽出を行う. Fine Tuningでは教師あり学習を全体について行い,識別器としての構...
  • プログラミング:C
    プログラミング C# MSDNのリファレンス重過ぎない? 覚書程度に. TIPS 手動で描画イベントハンドラの設定 IDEを使わないケース. private void test_paint(Object sender, PaintEventArgs e){ Graphics g=e.Graphics; g.DrawHogeHoge(); //なんか描画する } あとはコンストラクタで this.Paint+=new PaintEventHandler(test_paint); クライアントサイズの設定とリサイズ禁止 Javaと違ってクライアントサイズが使えるのがうれしい. リサイズ禁止属性はぱっとみ見当たらないが, FormBorderStyleを指定するとリサイズできなくなる. 最大最小サイズを設...
  • ツェルニケモーメント
    ツェルニケモーメント 画像に対する回転不変特徴量. 回転および反転には強いが中心がずれるのと拡大縮小には弱い. ので位置合わせとスケール合わせは重要. 定義式 ツェルニケ多項式 は偶数 ツェルニケモーメント を画素値として, なので とする. ツェルニケモーメントの大きさは回転不変である. あたりまでを使って類似度評価ができる. 高速化 ツェルニケ多項式は画素値に依存しないためあらかじめ計算しておくことが可能. はm=0のとき常に1. 参考文献 Mukundan, Ramakrishman "FAST COMPUTATION OF LEGENDRE AND ZERNIKE MOMENTS", Pattern Recogi...
  • クォータニオン
    クォータニオン 「四元数」とも呼ばれる. 三次元回転をコンパクトに表現できる,補間がやりやすいなどの利点があるが, 結局同次座標変換行列に落とさないと使えなかったりする. 直感的でないという最大の欠点がある. 回転を表すクォータニオン 普通のクォータニオンは とかあらわされる.は虚部. 回転を表すクォータニオンの場合,大きさが1のクォータニオンとなる. 回転量を,回転軸をとしたときこれをあらわすクォータニオンは 当然,全要素の符号を反転させても同じ回転を表現できる. なお, これは同じ回転を意味し これは逆回転を意味する 基本的な演算 クォータニオンの乗算の定義は ちなみに 回転を表すクォータニオンを合成するときは単純に乗算すればよい. クォータニオンaをbで回転させてクォータニオンcをつくる場合. コー...
  • 三次元点群の姿勢あわせ
    三次元点群の姿勢あわせ 対応が取れている三次元点群同士の姿勢あわせを一発で解く方法 定義 文献中のクォータニオン表現は虚部,実部の順になっている. 以下この表現に合わせる. クォータニオンを行列に変換する式を定義する. ただしここでは三次元ベクトルの外積行列である. また,位置ベクトルに対応するクォータニオンを以下のように定義する. 座標変換計算 点対応の取れている二つの点群が与えられたとき,座標系0から1への変換行列を求める. まず,以下の行列を計算する. ここでは各点に対する重み. 次に,を固有値分解し最大固有値に対応する固有ベクトルを求める. 最後に求めたから回転行列と並進ベクトル(のクォータニオン表現であることに注意)を求める. なお, である. 参考文献 Walker, Shao, Vo...
  • TSR
    TSR Task Space Region エンドエフェクタの拘束条件を記述する. TSR 3つのパートからなる. 世界座標系oからTSR座標系wへの座標変換 TSR座標系wからエンドエフェクタeへの座標変換 TSR座標系における拘束条件 回転はRPYで表される. (この後の検算の結果,おそらく元論文ではRPY = と思われる.) TSRに対する距離の定義 コンフィグレーション空間 に対応するエンドエフェクタの座標を とする. このときのTSR座標系を とすると,次のように逆算できる. 初期のTSR座標系との差分は以下のように計算される. これを拘束 に合わせた形になおすと, 拘束に対する距離に直すと,各要素は以下のようになる. すな...
  • Blender
    Blender http //blender.jp/ フリー且つオープンソースの3Dモデリングツール. これ系のツールのお約束で,操作に慣れが必要. 内部はPythonで書かれていて,PluginもPythonで書ける. チュートリアルやリファレンスを公開しているところ http //www.forest.impress.co.jp/article/dojo.html http //www.usennet.ne.jp/~kiyoshi/manual/blenderTips.html また,youtubeにも動画多数. 操作 行う操作 キー 基本 選択 右クリック 複数選択 Shift + 右クリック 範囲選択(リージョン) B 範囲選択(ブラシ) BB 操作中断 ESC Undo Ctrl + Z Redo Ctrl + Y メニュー呼び出...
  • RRT
    RRT Rapidly exploring Random Tree 探索手法の一つ. ランダムに樹状探索を行う. 始点と終点双方向から木を伸ばす方法もある. BiRRT, RRT-Connectと呼ばれる. (RRT-Connectは微妙にアルゴリズムが異なる?) RRTアルゴリズム 元論文から少しわかりやすくした擬似コードは以下の通り. BuildRRT(x_init) { tree.Init(x_init); // 初期値x_initをツリーのルートに登録する for (k = 1 to K) { // ゴールに到達したかどうかもここで判定する x_rand = RandomState(); // ランダムに目標値を入れる // Extend(tree, x_rand); // 目標に対してツリーを延長する...
  • Bag-of-Features
    Bag-of-Features Bag-of-Keypointsとも. SIFTの特徴記述子である128次元ベクトルを単語とみなし, 複数枚の画像から抽出された特徴ベクトル群をクラスタリングする. このときの各クラスタの中心をVisual Wordsとして辞書を作成する. この辞書を使ってある画像から抽出された特徴ベクトル群をVisual Wordsにマッチさせ, その出現頻度のヒストグラムを作る. 利用する画像は正負合わせて数千枚 辞書中の単語数は数百から数千 とされるが,数学的根拠はまだ調べてない. ちなみに,画像一枚から一つのヒストグラムが作られる. 作られたヒストグラムの次元数は辞書中の単語数と等しい. 参考 柳井先生の解説が詳しい http //www.vision.cs.chubu.ac.jp/ssii08/ssii08-ya...
  • COLLADA
    collada_dom 準備 2.4.0-libsrc,2.4.0は10.04でコンパイル通らず 2.3.1は2.3からいくつかディレクトリを移植しないとコンパイル通らず fx,rx,dom/testをまるまるコピー コンパイル方法 MakefileはなぜかデフォルトでPS3になっている. かといってMakefile.linuxも微妙に怪しい. 正解?はcmakeを使うことらしい. 例) mkdir build cd build cmake .. make sudo make install 自作プログラムからの呼び出し pkg-configもcmakeのfind_packageもつかえる. cmakeの場合 find_packageの場合COLLADA_DOMはすべて大文字でないといけない. COLLADAのバージョンはCO...
  • 平均値シフト法
    平均値シフト法 平均シフト,平均値シフト,ミーンシフト.法がついたりつかなかったり. Mean shiftをどう訳すかでこうなったと思われる. 何をするもの? 何らかの分布が得られた時にそのピークを求める. クラスタリングにも用いられる. アルゴリズム データがn個あったとして, まず確率密度分布をカーネル密度推定で近似. カーネルはガウス関数なら これをなんやかんやして更新式は次のようになる. 注意点 更新式のについては,別に元のデータセットを使う必要はない. 適当に撒いたサンプル点から始まってもちゃんと収束してくれる. という観点ではパーティクルフィルタに近い. K-meansのようにクラスタ数を決める必要はないが, ラベリングか何かは収束後に必要になる. の決め方とイテレーシ...
  • SIFT
    SIFT Scale Invariant Feature Transformation. ガウシアンの差分を用いた特徴量.一つの特徴点を128次元の特徴ベクトルであらわす. まったく異なる時刻,カメラ姿勢において取得された画像同士のマッチングを行うことができる. 考案者により特許が取得されている. 参考 作者のページ http //www.cs.ubc.ca/~lowe/keypoints/
  • SURF
    SURF Speeded Up Robust Feature. SIFTと同様の機能を提供する. 64次元ベクトルで特徴ベクトルを構成する. OpenCV1.1pre1から使えるようになり超便利. OpenCVではSIFTと同じく128次元の特徴ベクトルで一つの特徴点を表す. ただし互換性はなく,さらにラプラシアンの符号も考慮する必要がある. 参考リスト 作者サイト http //www.vision.ee.ethz.ch/~surf/ OpenCV1.1pre1以降のsamples/find_obj.cppに使い方が書いてある.
  • Inkscape
    Inkscape フリーのドローツール。 公式サイト http //inkscape.org/index.php?lang=ja extension pythonスクリプトによるextensionが作れる。 情報が非常に少ない。 スクリプトの置き場所 Inkscape/share/extensionsに各種サンプルあり。 実行するにはInkscapeのメニューのextension(日本語版だとエクステンション)から選択。 スクリプトの書き方 extensionはSVGをstdinから受け取り、stdoutから出力する。 つまり単体で動作するpythonスクリプトであり、別プロセスとなる。 スクリプトの登録 .inx形式(中身はXML)の設定ファイルを作る。 参考ページ http //wiki.inkscape.or...
  • C++で使える行列演算ライブラリ
    C++で使える行列演算ライブラリ ちょろっと調べてみたものなので間違いあるかもしれません. 名称 ライセンス BLASの知識 逆行列計算 固有値分解 Windows対応 uBLAS (boost) Boost Software License いる LUを使う 単体ではできない? OK CLAPACK BSD いる LUを使う できる OK LAPACK++ BSD いる LUを使う できる OK BLITZ++ GPL いらない できない できない 制限あり tvmet GPL いらない できない できない OK gsl GPL いる ...
  • LSH
    LSH Locality Sensitive Hashing. 高速な最近傍探索手法のひとつ. ハッシュ関数を用いて探索を高速化する. 参考リンク http //www.slideshare.net/yaruki_nil/lsh http //people.csail.mit.edu/indyk/mmds.pdf http //imlab.jp/publication_data/1054/paper.pdf
  • CyclicCoordinateDescent
    Cyclic Coordinate Descent 略してCCD(紛らわしい!). 逆運動学の解法の一つだが, 目標位置のみに追従し,回転姿勢を与えることができない. MMDはこれを用いているらしい. 参考文献 CCD-IK and Particle-IK http //mukai-lab.org/wp-content/uploads/2014/04/CcdParticleInverseKinematics.pdf MMD on WebGL 踊れるようになった(あと IK について) http //d.hatena.ne.jp/edvakf/20111102/1320268602
  • ロバスト推定
    ロバスト推定 通常測定値には必ず誤差が含まれる. 測定値の中で想定される誤差範囲内にあるものをインライア, 明らかに誤りであるものをアウトライア,外れ値と呼ぶ. 外れ値が存在することで測定結果からのフィッティングに影響がでるため, 外れ値を排除する必要がある. このような手法がロバスト推定である. 最小二乗法(LMS) 二乗誤差を最小化する方法. 外れ値に対してロバストではない. M推定法 二乗誤差基準では誤差が大きいほど値が大きくなるが, ある一定以上の誤差で値の上昇を抑えることで 外れ値による影響を小さくする手法. RANSAC RANdom SAmple Consensus. ランダムに幾つかのサンプルを抽出し, LMSに当てはめることを繰り返す. 抽出したサンプルに外れ値が含まれなければ より確からしい推定が得られ, 且つ...
  • 運動学
    運動学 ロボットやCGキャラクターのポーズづけに用いられる. 要するに,関節角度空間と三次元姿勢の対応付けをとるものである. 順運動学(Forward Kinematics, FK) 関節角度空間から三次元姿勢への写像. モデルがきちんと構築されていればなんの問題もなく解ける. 逆運動学(Inverse Kinematics, IK) 三次元姿勢から関節角度空間への写像. 条件付きで解析的に解くことは可能だが, 一般的には簡単に解けない. ヤコビ行列,ヤコビアン ヤコビアンを用いると,関節角度列と三次元姿勢のそれぞれの微分の関係を次のように表せる. ヤコビアンに逆行列が存在する場合 i.e. 関節角度空間と三次元姿勢の自由度が一致する場合, この逆変換は逆行列で表せる. 一般的には関節角度空...
  • GraphSLAM
    GraphSLAM 各時刻において取得されたデータから相対姿勢を計算して得られるポーズグラフを最適化する手法. ここでは例によって使うために必要な情報だけまとめる. 初期姿勢列 まず各時系列での姿勢を推定しておく.ICPなどでよい. この時の姿勢列を次のように定める. 三次元で考えると並進ベクトルとクォータニオンをおいて, ポーズグラフ生成 時刻間の相対姿勢が推定できるとき,次のように表す. この相対姿勢は例えばSIFTなどで直接計測値から求めることができる. 一方で最初に作った姿勢列をたどれば同様に求めることができ, この2つの間には計測誤差や累積誤差などにより差が生じる. この差を次のように表すことができる. ここでは姿勢変換を表す.つまり間の相対姿勢を2つの方法で求めたものの誤差を...
  • パーティクルフィルタ
    パーティクルフィルタ 時系列フィルタの一種. 最適解を求めるためにモンテカルロ法を用いるのが特徴. 分野によっては別の名前で呼ばれたりする. 理論については下の北川先生の解説が詳しい. http //www.ism.ac.jp/editsec/toukei/pdf/44-1-031.pdf が,理論を説明するよりも実装がかなり簡単である. 実装例としては例えば下記のページ. http //mist.suenaga.cse.nagoya-u.ac.jp/trac/wiki/Tutorial/Practice0 単純なアルゴリズムでありながら適用できる問題が多いので各方面で大人気. アルゴリズム アルゴリズムは非常に簡単. リサンプリング パーティクルを撒きなおす. 初期状態では一様に撒く. 前の状態である重み付きパーティク...
  • カルマンフィルタ
    カルマンフィルタ 誤差が正規分布であると考えられるときに現在の状態と誤差分布を求めることができる. ここでは構成法にのみ注目する. 詳しい解説についてはWikipediaか関連書籍を読むとよい. カルマンフィルター - Wikipedia http //ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC 利用するために必要な定式化 とりあえず決めなければならないことは, 状態ベクトル と計測ベクトル の構成である. それができたら,状態方程式を構成する. は入力ベクトル,は誤差ベクトルである. だが,ここで注目すべきはは誤差項なので計算に直接は関わらないこと. 決めなければいけないの...
  • @wiki全体から「Fern」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

人気記事ランキング
目安箱バナー