depth値について

1,218 views
Skip to first unread message

Hoshito Kudo

unread,
Jul 20, 2015, 7:07:19 AM7/20/15
to ros-jap...@googlegroups.com

いつもお世話になっています、工藤です。

現在、添付画像のような環境のdepth値の抽出及び保存を試みているのですが、不明な点がいくつかあったため、書き込みをさせていただきました。

/camera/depth/imageのトピックの内容をrostopic echoで表示させ、それを保存する手法を取っており、以下のようになりました。

header: 
  seq: 0
  stamp: 
    secs: 1436794310
    nsecs: 383434598
  frame_id: /camera_depth_optical_frame
height: 480
width: 640
encoding: 32FC1
is_bigendian: 0
step: 2560
data: [0, 0, 192, 127, 212, 77, 98, 63, 130, 149, 99, 63, 111, 18, 99, 63, 0, 0, 192, 127, 111, 18, 99, 63, 148, 24, 100, 63, 66, 96, 101, 63, 85, 227, 101, 63, 85, 227, 101, 63, 66, 96, 101, 63, 85, 227, 101, 63, 48, 221, 100, 63, 48, 221, 100, 63, 148, 24, 100, 63, 48, 221, 100, 63, 148, 24, 100, 63, 148, 24, 100, 63, 48, 221, 100, 63, 48, 221, 100, 63, 66, 96, 101, 63, 66, 96, 101, 63, 85, 227, 101, 63, 85, 227, 101, 63, 240, 167, 102, 63, 240, 167, 102, 63, 240, 167, 102, 63, 85, 227, 101, 63, 240, 167, 102, 63, 85, 227, 101, 63, 177, 114, 104, 63, 66, 96, 101, 63, 66, 96, 101, 63, 3, 43, 103, 63, 177, 114, 104, 63, 177, 114, 104, 63, 177, 114, 104, 63, 177, 114, 104, 63, 240, 167, 102, 63, 21, 174, 103, 63, 21, 174, 103, 63, 21, 174, 103, 63, 3, 43, 103, 63, 240, 167, 102, 63, 240, 167, 102, 63, 240, 167, 102, 63, 177, 114, 104, 63, 3, 43, 103, 63, 0, 0, 192, 127, 0, 0, 192, (以下略)

これについてご質問があります。
①このdepth値は画面全体のdepth値を表示しているのでしょうか。
②実距離の値ではないようですが、そもそもdepth値はどのような値なのでしょうか。
③どこからどこまでがワンシーンのdepth値を表しているのでしょうか。
④画像のような1フレームのdepth値のみを抽出する方法はあるのでしょうか

主な質問は以上の4つです。
稚拙な質問ばかりで申し訳ございません。
抽出の手法にも問題があると思われるため、より良い手法がございましたら、ご教示願います。

うまく説明が出来ず申し訳ございません。
このグループでお聞きする内容ではないかもしれませんが、ご助力いただけたら幸いです。

よろしくお願いいたします。

Ubuntu:12.04
Distribution:Hydro
Kinect:v1
depth2.png

Takashi Ogura

unread,
Jul 21, 2015, 9:54:28 AM7/21/15
to ros-jap...@googlegroups.com
結論からいうと、rostopicではどうしようもありません。

http://wiki.ros.org/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages

などを参考にcv_bridgeを使ってOpenCV形式に変換するのが早いと思います。
(もしdepthにしたいのであればですが。やりたいことによってはpoint cloudにするという手もあります。)

以下質問に対する返信

>①このdepth値は画面全体のdepth値を表示しているのでしょうか。
1つのメッセージ(headerで始まる1区切り)で1画面分ですが、
そもそも、この数字はdepth値を直接表していません。(4つ合わせて1つのdepth値になるバイナリなので数字には意味がありません(4つ並べたビット配列に意味があります))
encoding: 32FC1の部分がそれを表しています。(32ビットのfloatの値という意味です)


>②実距離の値ではないようですが、そもそもdepth値はどのような値なのでしょうか。
確か距離([m] ? )だったような気がします。(自信ありません。)

>③どこからどこまでがワンシーンのdepth値を表しているのでしょうか。
1つのメッセージでワンシーンです。

>④画像のような1フレームのdepth値のみを抽出する方法はあるのでしょうか
1つのメッセージが1フレームです。

道のりはまだ遠いかと思いますが頑張ってみてください!


2015年7月20日 20:07 Hoshito Kudo <flood...@gmail.com>:

--
このメールは Google グループのグループ「ROS JAPAN Users Group」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには ros-japan-use...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
/*************************
Takashi Ogura (小倉 崇)

t.o...@gmail.com
http://youtube.com/ogutti
twitter: @OTL
*************************/

Akiyoshi "akio" Ochiai

unread,
Jul 21, 2015, 11:44:05 AM7/21/15
to ros-jap...@googlegroups.com
こんにちは

②ですが、REP-118によればメートルでいいっぽいですよ。

Depth images are published as sensor_msgs/Image encoded as 32-bit float. Each pixel is a depth (along the camera Z axis) in meters.


2015年7月21日 22:54 Takashi Ogura <t.o...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages