cvl-robot's diary

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

自分用読むべき論文メモ 2018年08月版

[1808.00769] Sparse and Dense Data with CNNs: Depth Completion and Semantic Segmentation 疎なデプスデータをそのままネットワークに突っ込んでも綺麗なデータは得られる NASA/JPLがキュリオシティやオポチュニティのようなローバーを作るためのDIYマニ…

安価なIMU(AHRS)センサのBosch BNO055USBStickを試す(その3)

前回、BNO055USBStickのデータを自前のプログラムで取得することはできるようになりました。でも、数値だけを見ていても正しいかどうか判断できませんので、いつものようにopenFrameworksで可視化していきたいと思います。 ofxBNO055USBStick 外部addonとし…

安価なIMU(AHRS)センサのBosch BNO055USBStickを試す(その2)

BNO055USBStickを自分のプログラムから使う方法が良く分からなくて途方に暮れていた時に、GitHub先生に聞いてみたら、yoshito-n-studentssさんのすごくきれいなソースコードのROS向けライブラリが見つかりました。MITライセンスとのことなので、ありがたく遠…

安価なIMU(AHRS)センサのBosch BNO055USBStickを試す(その1)

今まで姿勢センサとして、SparkFunのRazor 9DOFシリーズを愛用してきましたが、廃版になってしまい代替品を探していました。欲しい仕様は、 基板面積が小さいこと 簡単にWindowsPCにつながること 方位が取れる6自由度出力であること です。 姿勢センサ探し …

せっかくインストールしたのでOpenVINOのサンプルを実行してみる

このページのサンプルを試してみます。 software.intel.com 画像分類 AlexNetモデルの変換 OpenCV-extraのAlexNetのモデルをOpenVINO向けに変換して使います。 モデル変換用コードは、C:\Intel\computer_vision_sdk_2018.2.304\deployment_tools\model_optim…

OpenCV3.4.2で始める浅いディープラーニング (その3 物体検出)

example_dnn_object_detectionは、画像中の物体の矩形領域を見つけてラベル付けした答えを返してくれる物体検出プログラムです。opencv/samples/dnn at master · opencv/opencv · GitHubのModel Zooに挙げられているモデルが使えます。 モデル名と使用するパ…

OpenCV3.4.2で始める浅いディープラーニング (その8 遅いのでOpenVINO有効化)

前回、OpenCV-dnnのHalideはまだ早すぎたんだ、ということが分かりました。今回は、手間を掛けずに高速化できそうなもう一方の手段OpenVINOを試してみたいと思います。基本的にはIntelCPU限定で使うことができます。github.com 準備 事前にPython3.5以降とIn…

OpenCV3.4.2で始める浅いディープラーニング (その7 遅いのでHalide有効化)

テストプログラムを実行してみましたが、実行速度が遅いという不満があります。テストプログラムの引数のいくつかに、使ってこなかったものの気になるパラメータがありました。backendと、targetです。 backend (value:0) Choose one of computation backend…

OpenCV3.4.2で始める浅いディープラーニング (その4 セマンティックセグメンテーション)

2.example_dnn_segmentation.exe 意味づけ領域塗分け Use this script to run classification deep learning networks using OpenCV. Usage: example_dnn_classification.exe [params] --backend (value:0) Choose one of computation backends: 0: automa…

OpenCV3.4.2で始める浅いディープラーニング (その5 クラス分類)

(編集中) 3.example_dnn_classification 物体のクラス分類 Use this script to run classification deep learning networks using OpenCV. Usage: example_dnn_classification.exe [params] --backend (value:0) Choose one of computation backends: 0: a…

OpenCV3.4.2で始める浅いディープラーニング (その6 その他のexample)

(編集中) 順番がいきなり(その6)になってますが、気にしないでください。 その他のexampleの実行方法を確認していきます。 4.example_dnn_openpose.exe 人体の骨格認識をしてくれます。入力は2次元画像で、出力も2次元です。 A sample app to demonstrate …

OpenCV3.4.2で始める浅いディープラーニング (その1 インストールからexample_dnn_object_detection.exeを動かすまで)

最近はDeep Learningを使うと、オシャレなんだそうです。でも面倒くさい勉強は極力したくありません。OpenCVのdnnモジュールが、3.4.2ぐらいからレギュラー扱いで本体に吸収されたそうなので、お手軽にこれを使ってみたいと思います。 1.インストール Open…

xmlrpc for c and c++(xmlrpc-c)をWindows10, openFrameworks環境で使う

XML-RPCは古いインターフェースですが、Pythonの標準ライブラリでサーバーが簡単に作れるので、C++からPythonを呼び出したい時など、時と場合によっては便利に使えます。以前libxmlrpc++を紹介したことがありますが、今回のはxmlrpc for c and c++(xmlrpc-c)…

自分用読むべき論文メモ 2018年07月版

nuitrack. RealSenseD400シリーズと組み合わせてKinect2の人体認識の代替に使えそうな有料ライブラリ。30$/センサーなので十分安い。 qiita.com 画像処理を高速化できる(2~10倍ぐらい見込める)Halide言語について。 [1807.05520] Deep Clustering for Uns…

メモ:OpenGLの描画結果のデプスバッファから距離情報を復元する方法

OpenGLの描画結果のデプス値を単位を直して画像データとして取得するサンプル。詳細は[1]を参照のこと。 1. glReadPixelsでデプスバッファのデータを読み込み 2. nearClipとfarClipでデプス値を正規化 3. 上下反転されているので入れ替え ofPixels pix; pix…

Open3DのReconstruction systemをC++に移植(その3-1 integrate_scene)

integrate_scene.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> void integrate_scene_main(std::string path_dataset, std::string path_in</visualization/visualization.h></io/io.h></core/core.h>…

Open3DのReconstruction systemをC++に移植(その2-1 register_fragment)

register_fragments.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> void register_fragments_main(std::string path_dataset_); register_fr</visualization/visualization.h></io/io.h></core/core.h>…

Open3DのReconstruction systemをC++に移植(その1-3 make_fragment)

openFrameworksの呼び出し部分の例と実行結果。 ofApp.cpp // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include "ofApp.h" #include "make_fragments.h" #pragma comment(lib, "Open3D.l…

Open3DのReconstruction systemをC++に移植(その1-2 make_fragment)

make_fragmentのc++移植の続き opencv_pose_estimation.h #pragma once // Open3D: www.open3d.org // The MIT License (MIT) // See license file or visit www.open3d.org for details #include <Core/Core.h> #include <IO/IO.h> #include <Visualization/Visualization.h> #include <opencv/cv.h> std::tuple</opencv/cv.h></visualization/visualization.h></io/io.h></core/core.h>

Open3DのReconstruction systemをC++に移植(その1-1 make_fragment)

Open3DのReconstruction Systetmは,距離画像とカラー画像の動画シーケンスから立体モデルを復元するためのPythonチュートリアルです。 詳細はこちらにあります。 Reconstruction system — Open3D 0.1 dev documentation テストデータは、上記で紹介されてい…

c++版Open3DのVisualizationは、openFrameworks0.10.0で自前で作ると便利。

Open3Dは、3次元点群処理が簡単に出来て便利です。ですが、いくつか弱点があって ・Visualizationが便利なようで自由が利かず不便 ・フォーマットが良く分からなくなることがある。ex. PointCloudとTriangleMeshの違いは? ・他のライブラリとのリンクが不便…

自分用読むべき論文メモ 2018年06月版

Optimal and Autonomous Control Using Reinforcement Learning: A Survey - IEEE Journals & Magazine 機械学習は、制御の自動化の方向へ進んでいくのは間違いない。 Dex-Net by BerkeleyAutomation 自動ビンピッキング Kinematic and Dynamic Solvers | Th…

動力学シミュレータofxBulletを静的な衝突判定ライブラリとしてだけ使う方法 (その2)任意のメッシュ形状でも衝突判定したい

三角ポリゴンの集合で表現された任意形状をofxBulletで扱うためには, ofxBulletCustomShape()クラスを使います。 普通に動力学シミュレーションで使うだけなら、Exampleに倣って実行すれば問題ないかと思います。 github.com ofxBullletCustomShapeクラスの…

動力学シミュレータofxBulletを静的な衝突判定ライブラリとしてだけ使う方法

OMPLが自由に使えるようになって経路計画がお手軽で楽しいのですが、衝突判定を自分で書くのが億劫です。プリミティブな形状同士の衝突判定は一つ一つであればたいして難しくもありませんが、効率的に、さまざまな形状の、複数物体同士を、衝突するものとし…

openFrameworksでOMPLを動かしたい(その5)

また[1]を参考に、修正を加えてみます。 1.障害物を追加 2.cboundsの値を調整 3.アニメーションを追加 #pragma once #include "ofxOMPL.h" #include "ofMain.h" class Scheduler : public ofThread { public: unsigned long counter = 0; std::vector<double> </double>…

openFrameworksでOMPLを動かしたい(その4)

omplのdemo_RigidBodyPlanningWithControlsをopenFrameworksに移植していきます。 ofxOMPL.hの更新 必要なヘッダーファイルを足していきます。 ofxOMPL.h #pragma once // Plaease add these settings manually // #include path example: D:\workspace\ompl…

openFrameworksでOMPLを動かしたい(その3)

障害物を追加してみましょう。参考文献1を参考に、障害物を置きます。変更点を抜粋して説明していきます。 1.障害物オブジェクトobstacleをofApp.hで定義します。 ofAppクラスに物体を定義します。 ofBoxPrimitive obstacle; 2.isStateValid関数に判別…

openFrameworksでOMPLを動かしたい(その2)

ビルドの準備が整いましたので、ompl.slnを開いてビルドをしていきます。 ハマリポイント4 omplのEigenのパスが一部おかしい。 そのままビルドにかけると、Eigenのインクルードパスがおかしいとエラーが出ます。Linuxとかだと多分大丈夫なんでしょうけど、 …

openFrameworksでOMPLを動かしたい(その1)

ロボットの経路計画や動作計画用ライブラリとして有名なOMPL(OpenMotionPlanningLibrary)をWindows10MSVC環境のopenFrameworksで動かせるようにしたいと思います。 The Open Motion Planning Library 当初は、C++できれいに書かれているし単に.libをリン…

自分用読むべき論文メモ 2018年04月版

github.com MotionCaptureデータのビューアやアノテーションなどに使えるopenFrameworksアドオン。VRM対応誰かやってくれないかな。 nico-opendata.jp openpose.pyの出力を元に3次元位置推定. ロボット-カメラキャリブレーション (robot camera calibratio…