Closed YuOhara closed 10 years ago
さくっと実装して追加してみましょう
かしこまりました。やってみます
@aginika が卒論でやっていたPFPHの認識のコードを見つけて使ってみてみましょう.
パラメータやプログラムのせいかもしれないですが、 ポイントクラウド上で認識が実装してもあまりうまくいかないので、 ひとまずjsk_perceptionのpoint_pose_extractionで認識を走らせる感じで、 organized_multiplane_segmentation.launchに特定物体認識を組み込もうと思います。
平面抽出したあとにセグメンテーションかけて色のマッチングしたらそれっぽい感じの特定物体認識になるきもしますね。
セグメンテーション結果はorganizedなんちゃらで出ているので、ColorMatcher(だっけ?)の入力を変えるだけかも
確かに、それでいけてそうです。 (※赤が見つかってるところ、青が見つかってないところです。)
良い感じですね
僕の方で形状ベースな認識を実装しようとしています。=認識対象のモデルが点群で与えられる
が、すでに悩むところはいっぱいあるので段階的にたくさん作って評価していく作戦にしようと思います。
整理しておくと問題は2種類有ります.
1にかんしては I. 何も考えずにセグメンテーション結果をリファレンスにする II. バウンディングボックスの中心とかを減点にする III. 事前に平面検出を走らせるなら、原点は平面の上に置く
2に関しては I. ICPでやるのか II. ParticleFitlerでやるのか III. 他の特徴量を使ってやるのか IV. 6自由度推定するのか V. 平面高速を入れて3自由度推定にするのか
という段階が有りそうです.
また、ICPの場合は事前の位置合わせを3次元点群特徴量でやるというのがありますが、これを入れるべきかどうか、という選択肢もありますね。
とりあえず最も簡単な組み合わせから始めると、、、
シンプル6DOF版 https://github.com/jsk-ros-pkg/jsk_recognition/pull/309
リファレンスとターゲットの点群の原点に脆弱。つまり、初期位置合わせが重要。
ICPを使って物体の位置を合わせるコードをサラっと書いて見ました。
ドリルを見つけています。 左側の画面で僕がセグメンテーション結果をクリックして、その結果に対してリファレンスとして 予め登録しておいたドリルの点群を合わせています。その結果が赤です。
右側の画面はデバッグ用で、白がリファレンス、青がセンサ入力、赤が結果です。 簡単に言うと、青い点群を動かしてなるべく白い点群に合わせようとしていて、合わせた結果が赤い点群です。
結構良い感じだと思います。うまく行っている秘密は事前にPCAと平面検出を使って 初期位置をかなり良い感じに合わせているからですね。
PCAの軸が反転する可能性を考慮するとかなり初期値がバッチリ合うようになりますね
これでとりあえずドリルを掴んでみましょう @YuOhara
.ros
以下に.pcdファイルができる
点群のモデルを管理するシンプルなデータベース的なサーバーを作ろうと思います。
まずはそれでクリックした物体が何に近いかというのをICPで評価するのを今日の目標としておきます
稲垣くんの卒論にそういうことが書いてあった気がします. 稲垣くん,僕のはたいしたことがないから,以外の返事をお願いします.
2014-10-01 12:58 GMT+09:00 Ryohei Ueda notifications@github.com:
点群のモデルを管理するシンプルなデータベース的なサーバーを作ろうと思います。
まずはそれでクリックした物体が何に近いかというのをICPで評価するのを今日の目標としておきます
— Reply to this email directly or view it on GitHub https://github.com/jsk-ros-pkg/jsk_recognition/issues/292#issuecomment-57416192 .
プルリクエスト下さい
2014年10月1日水曜日、Kei Okadanotifications@github.comさんは書きました:
稲垣くんの卒論にそういうことが書いてあった気がします. 稲垣くん,僕のはたいしたことがないから,以外の返事をお願いします.
2014-10-01 12:58 GMT+09:00 Ryohei Ueda <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');>:
点群のモデルを管理するシンプルなデータベース的なサーバーを作ろうと思います。
まずはそれでクリックした物体が何に近いかというのをICPで評価するのを今日の目標としておきます
— Reply to this email directly or view it on GitHub < https://github.com/jsk-ros-pkg/jsk_recognition/issues/292#issuecomment-57416192>
.
— Reply to this email directly or view it on GitHub https://github.com/jsk-ros-pkg/jsk_recognition/issues/292#issuecomment-57416805 .
from iPhone
複数の物体モデルの中から探すようにしてみた。 ICPよりも僕のトラッカで見つけたほうが精度が出そうだが,,,
チケットを切るときはもうちょっと細かいトピックで切ると良いですね
jsk_recognitionのorganized_multi_plane_segmentation.launchで物体に対して、interactive_markerでタッチできるので、 そのときに送られてくる点群を登録して、再び見えたときに、それだよと教えてくれる 機能を追加したいです。
pclを使った認識がチュートリアル http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#correspondence-grouping にあるので、それを組み込めばいいんじゃないかと思ってます。
あるいは、いい感じの方法や既存のプログラムなどがありますでしょうか