読者です 読者をやめる 読者になる 読者になる

木木木

Swift / Ruby on Railsなどの学習メモ。


今日は史上稀に見る体調の良さなのでその条件をメモ

いつも朝起きるとだいたい気だるくて、ギリギリまでだらだらしてしまうが、
今日は何だかやる気にみなぎっています。
体の奥から生きるエネルギーが無限に湧いてくる感じ!

毎日こんなんだったら生きるの楽だなー!!
という事で、生きるの楽にするために、これをできるだけ毎日再現したく、発生条件をメモしておきます。

1. 夜、クラブで踊った

久々に友人に誘われてクラブに行ってきました。
40代中心のイベントだったので、死ぬほど騒ぐわけでもなく、上がる品のいい曲がずっとかかってる感じで、
2時間ほど踊ってました。
普段通勤の徒歩30分を除けば全く運動していない私にはよかったと思います。

2. 夜、湯船につかった

踊った汗を流してゆっくりするために湯船に。
上がったあとに水シャワー。
これで血行がよくなったのでは。

3. 朝、瞑想をした

瞑想すると心がさっぱりして調子がよくなることは経験上わかっているのですが、
なかなか忘れがちになってしまいます。
これを久々にやったのがよかったんでしょう。

4. 朝、ポケモンGOのために散歩をした

朝散歩をして体を動かしておくと、体も目覚めていい感じです。
朝はおっくうではありますが、ポケモンのためなら歩けます!

5. 朝、水シャワーを浴びた

お湯が出るのを待つのが面倒だったしうっすら汗もかいて暑かったので、
思い切って水のシャワーを浴びました。
結構冷たいので「しゃあああっ!!」って気合入れながらじゃないと無理。
それが生存本能を呼び覚ます感じでよかったのでは

体調いいとマジで気持ちいい!
これを維持するために頑張ります!!

【OpenCV バグ】i2 >= 0 && i2 < static_cast<int>(keypoints2.size()) in function drawMatches

動画からリアルタイムでBruteForceMatcherでオブジェクトを検出しようとしていて、
cv::drawMatchesで以下のエラーが出て困り果てていました。

i2 >= 0 && i2 < static_cast<int>(keypoints2.size()) in function drawMatches

バグとのことでした。 answers.opencv.org

検出対象画像とカメラ画像の順番を入れ替えるとうまくいくとのこと。
私の環境でも無事動きました。

XCode 7.3で黒背景の時でもカーソルを見やすく

7.3からbetter-xcode-ibeam-cursorが使えなくなってしまいました。

カーソルファイルの位置が変わったのが原因のようです。
以下のパスにあるファイルを、以下のファイルAssets.car に差し替えればOKです!

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car

https://github.com/egold/better-xcode-ibeam-cursor/files/185722/Assets.car.zip

参考

iOSで局所特徴量AKAZEを使うまとめ

AKAZEを使って局所特徴量抽出、記述、マッチングをやってみます。
そのための勉強記事まとめ。

qiita.com

dronebiz.net

astertune.com

iOSでのAKAZE最適化

GitHub - pablofdezalc/akaze: Accelerated-KAZE Features

AKAZEで取得したのをfindHomographyでゆがみ取得する

qiita.com

[おまけ]ORBだとこちらが参考になる

pukulab.blog.fc2.com

OpenCV3.0のtraincascadeコマンドでLBP指定できない問題

分類器を作ろうとして./opencv_traincascadeコマンドに -featureType LBP を渡すと、永遠にプロセスが進まない問題。

こちらに解決策が。 github.com

openCVインストール時に、コードを並列実行するためのtbbも一緒にインストールしないといけなかったみたい。
一度OpenCVをアンインストールして、以下で再度インストール。

brew install opencv3 --with-tbb

これでOK。

LBPは学習速度がHAARに比べて非常に早く、ありがたいです。

【OpenCV3】複数の正解画像を自分で集めて物体検出器を作る(Mac)

精度の高い物体検出器の作成をしたくて、色々試しております。

前回の記事

source.hatenadiary.jp

前回は一枚の正解画像から検出器を作成しましたが、
今回は対象を数枚写真に撮り、そちらで検出器をつくります。
また、createsampleやtraincascadeコマンドの別のオプションも試してみます。

複数の正解画像をテキストファイルに書き出す

find pos/ts1 -name '*.png' -exec identify -format '%i 1 0 0 %w %h\n' {} \; > pos_ts1.txt

サンプルファイルの作成

./opencv_createsamples -info pos_ts1.txt -vec vec/ts1.vec -num 6 -w 40 -h 40

分類器の作成

 ./opencv_traincascade -data cascade/ts1/ -vec vec/ts1.vec -bg nglist.txt -numPos 5 -numNeg 2900 -w 40 -h 40

OpenCV3を使って1枚の正解画像から物体検出器を作成する(Mac)

前回のOpenCV3.0インストールに引き続き、
今回はOpen CV 3を使って物体検出器を作っていきます。

以下の記事を参考にさせていただきました。ありがとうございます。
www.pro-s.co.jp

使用しているのが古いバージョンのようで、OpenCV3と比べてパスなどが異なる箇所があったため備忘録としてメモしていきます。

1. 作業ディレクトリを作る

どこでもいいので作業ディレクトリを作ります。

Users/username/Desktop/traincascade/

さらにこの中に以下のディレクトリを作ります。

  • pos(正解画像を保存するフォルダ)
  • vec(正解画像ベクトルファイル用フォルダ)
  • neg(不正解画像を保存するフォルダ)
  • cascade
  • cascade/trained_data (分類器用フォルダ)

2. 必要なファイルをディレクトリに入れる

  • pos/ の中に正解データ画像を入れます。
pos/image.png
  • neg/ の中に不正解画像を入れます。
neg/1.png
neg/2.png
neg/3png
...

3. opencv_createsamples コマンドでベクトルデータ作成

3000枚の画像を作ってみます。

$ ./opencv_createsamples -img ./pos/image.png -vec ./vec/image.vec -num 3000 -bgcolor 255 -maxidev 40 -maxxangle 0.8 -maxyangle 0.8 -maxzangle 0.5

4. 不正解画像一覧ファイルの作成

$ ls neg | xargs -I {} echo neg/{} > nglist.txt

5. 分類器ファイル作成

./opencv_traincascade -data ./cascade/trained_data/ -vec ./vec/image.vec -bg nglist.txt -numPos 2400 -numNeg 100

-numPosにはcreatesamplesで作成した枚数の8割の数を指定。
-numNegにはneg/ に入っている画像の枚数を指定。

以下のデータが分類器になります!

cascade/trained_data/cascade.xml

ちなみに公式ドキュメントはこちらです。

Cascade Classifier Training — OpenCV 3.0.0-dev documentation

より精度の高い分類器を求めて

次回はこちらのスライドを参考に、より精度の高い分類器を作っていきます。

ちなみにこちらを使えば精度が測れるとのこと。 OpenCV Computer Vision Library ()