※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

備忘録とは名だけの作業記録。 どうせいつかさぼるでしょうが、一応(



2014年

02/06

2013年

12/04

11/26

  • libSVM
    • なんとか読み解いてcppに記述
    • Carmineで撮影したキーボードを見事キーボードと出力してくれた
    • とはいえ,これは「キーボードと歯ブラシとペットボトルの内どれに近い?」という識別関数にかけてるからという説もある
      • 何が言いたいかといえば,もっとモデルデータ増やさないと行けないし,なによりNULLクラス作らないと駄目だと思われ
      • NULLクラスってどうやるんだ……?

11/25

  • 物体領域抽出
    • 机平面推定(OrganizedMultiPlaneSegmentation)と領域分割(OrganizedConnectedComponentSegmentation)を組み合わせたサンプルを動かしてみたが,パラメータ設定が大変な予感+案外処理に時間かかる印象
    • 机平面推定はもはやフィルタリングで事前に除去することにすべきか?
  • Carmine
    • 動いた!
    • でもデモはやりたくない!!(

11/20

  • BoVW and PFPH
    • 色々ありながらもモデルファイル作成までの流れは完成
    • 問題は色々とある.特徴量抽出の時間とかモデルファイルの量とかクラスタリングの時間とかクラス数とか
      • そこらへんの削減指針とかも立てておきたいところだがそんなものは動くものを作ってからである
      • にしても2042-meansで3日で5ループとかどういうことだってばよ
      • UniformedSamplingの間隔を狭くする,学習データを少なくするとかで対応するしかないか……
    • なによりも問題は学習データの収集ですよ.Carmineが動かない現在デモに間に合う気がしないのです

11/15

  • lpsolve導入
    1. lpsolve | Free Development software downloads at SourceForge.netからlp_solve_5.5.2.0_dev_win32をダウンロード
      • OSで選ぶのではなくコンパイラのbit数に合わせる
    2. てきとーに解凍
    3. lpsolve55.dllがあるフォルダにパスを通す
    4. ヘッダファイル群があるフォルダを追加のインクルードフォルダに指定
    5. lpsolve55.libがあるフォルダを追加のライブラリフォルダに指定
    6. lpsolve55.libを読み込む
    • で使えた.個人的に分かりやすいようにlp_solve_5.5.2.0_dev_win32フォルダにbin,lib,includeの3つのフォルダを新たに作成してそれぞれにdllとlibと.hをまとめた上で上記の作業を行った
      • のほうがなんとなーく後々いいかな?というアレ
      • というかdllもlibもhもすべてソリューションのフォルダにまとめて突っ込んでしまったほうが後々はいいと思うけどね.持ち運びの便というか環境非依存なところが
  • VisualWords(CodeBook)の作成
    • UniformSamplingの間隔を0.003(3mm),k-meansのKを5000とするとk-meansの中のvector周りでエラー発生
    • 取り敢えずUniformSamplingの間隔を0.005(5mm),k-meansのKを3000にして再挑戦
    • 昨晩が無駄になった(´・ω・`)

11/14

11/13

  • 手法
    • 局所特徴量+K-NN
      1. シーン点群特徴量記述
      2. モデル点群の特徴量と比較
        これにはkd-treeとかをつかう?
      3. GeometricConsistencyGroupingを使って整合性?がとれているかをチェック
      4. 取れていればそのモデルがシーン上の注目点に存在している
      5. というのを全部のモデルに対して行う
      • 凄まじい計算量になる気しかしない
  • 局所特徴量+Bag of Words+SVM
    1. 特徴点抽出.この手法の場合SIFTとかでなくて一定間隔で抽出する方が精度が良くなるらしい
    2. 局所特徴量を用いて全てのモデルデータに対してBag of Wordsを作成
    3. そのモデルデータの種類(キーボードとか歯ブラシとか)をラベルとしてBag of Wordsを素性としてSVMを用いてモデルデータを作成
    4. シーンデータから物体を抽出する
    5. 抽出された各物体からそれぞれ特徴点と特徴量を求め,それぞれのBag of Wordsを求める
    6. それらをテストデータにしてSVMにかけて,モデルデータに近いと判断されたラベルを取得
    • がなんとなーく論文の見栄え的に良さげな気がするけど,ちょっと古い手法.ISMでやれよとなる予感
  • 局所特徴量+ISM(+kdTree)
    • よくわかっていない
    1. 特徴点と特徴量を抽出
    2. 特徴量を何かしらの処理を経てベクトル量子化
    3. その値?と事前に学習させてあったいろんなモデルデータの特徴点における特徴量のベクトル量子化結果を比較する
    4. 一番近い特徴点と,その特徴点が存在していたモデルデータの重心位置との位置関係を元に,シーンデータの特徴点から同じ位置関係の位置に投票を行う
    5. この投票結果をクラスタリングすると,おおよそのシーンデータ上の重心位置がおおよそ求まる
    • ってことらしいんだが,ベクトル量子化とか重心位置とかどうやってるんだい!って感じ
    • 抽出したパッチがどのコードブックに属するかを如何に精度良く求められるかによって性能が変化する.(via.ここ)とのこと.そのためにRandomForestとかHoughForestとかを使うらしい.うん,意味わからん
  • あたりがキーポイントベースの手法かと
  • C++
    • 宣言と実装は両方共必要.宣言をしたら必ず実装すること.これはメンバ関数だけでなくコンストラクタやデストラクタでも!何時間このエラーで悩まされたんだ!!

11/12

11/11

  • 特徴量記述時間
    • PFH(RGB)……62.364 sec
    • PFH ……32.636 sec
    • SHOT ……0.051 sec
      • ここではぜんぜん違う結果が書かれていたんだが……うーん……
  • MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
    • SIFTについての説明に使えそう
    • というかキーポイント検出と特徴量記述の2つの段階にわけてやっているということは,SIFTKeyPointDetectというのは最初のキーポイント検出のことのみを指すのか
      • つまるところ,tんkさんの質問に対する返答

11/06

10/31

  • ISM
    • 向きとかに大きく依存していそう.各クラスから1つの点群から学習させたらその点群に近いもののみを選択している

10/30

10/29

  • ぐぐったらさくっと見つかったのに何故当時はApplicationクラスに辿りつけなかったんだろうか……

10/25

10/22

  • memo[java]
    • javaでもメソッド引数にconstを使って値は不変であると宣言したい!
    • って思ってfinalで擬似的に代用。したいところだが
       final int[] hoge = {0, 1, 2};
       hoge[0] = 2;
      
    • とか普通にできる(int[]という領域自体は変えてないでしょ!というfinalの言い分。Cだったらconst intの配列が確保できるんだがなあ)。
    • ってことで友人に相談したところ
      1. メソッドにはクローンかラッパを渡す
      2. 渡された引数をメソッド内でfinalなローカル変数にうつす
    • で代用可能らしい。値変えられて困るならコピーした贋作を渡せばいいじゃない、という発想。なるほどなるほど。
    • 欠点はクローン/ラッパで受け取った引数のインスタンスは破棄できないこと、とのこと。

09/20

09/18

08/27

  • AndroidStudio
    • 愛着は湧いてきたが,いかにせん使いづらい感は否めない
    • tipsを別ページにまとめるべきなんじゃないか説

08/23

08/22

  • tomcat7.0におけるlibフォルダ
    • WebContent\WEB-INF\lib
    • 新たにlibフォルダ作ってビルドパス通してもうまくいかなかったので,ここにおいてビルドパス通すのが妥当か