データセットの記録:
使用されるカメラは両眼深度バージョンです。最初にlaunch
ファイルを開始します
roslaunch mynteye_wrapper_d display.launch
次に、RGB
画像によってrosbag
ファイルが大きくなりすぎることを考慮して、画像とimuデータを記録し、グレースケール画像を記録します。
rosbag record /mynteye/left/image_mono /mynteye/right/image_mono /mynteye/imu/data_raw
カメラのデフォルトのフレームレートが高いため、bag
ファイルが大きくなりすぎます。カメラのフレームレートは10hz
次のように設定できます。
rosrun topic_tools throttle messages /mynteye/left/image_raw 10 /left
rosrun topic_tools throttle messages /mynteye/right/image_raw 10 /right
この命令はROS
命令です。その効果は、サブスクライブして/mynteye/left/image_mono
から、サンプリング頻度を10Hz
に減らし、サンプリング頻度を減らした後、画像データの/left
topicという名前の新しいトピックを公開することです。
最後に、rosbag
関心のある3つのトピックを使用して記録します
rosbag record /left /right /mynteye/imu/data_raw
rosbag
画像の抽出から:
新規extract_images.py
# coding:utf-8
#!/usr/bin/python
# Extract images from a bag file.
import roslib #roslib.load_manifest(PKG)
import rosbag
import rospy
import decimal
import cv2
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
from cv_bridge import CvBridgeError
left_path = '/home/wb/MYNT-EYE-S-SDK/dataset/left/' # 左目图像的路径,需提前手动创建,也可以使用程序自动创建
right_path = '/home/wb/MYNT-EYE-S-SDK/dataset/right/'
class ImageCreator():
def __init__(self):
self.bridge = CvBridge()
with rosbag.Bag('/home/wb/MYNT-EYE-S-SDK/2020-08-05-23-05-50.bag', 'r') as bag: # 读取bag文件,注意设置正确的bag文件路径
for topic,msg,t in bag.read_messages():
if topic == "/left": # 左目图像的topic
try:
cv_image = self.bridge.imgmsg_to_cv2(msg,"bgr8")
except CvBridgeError as e:
print e
# %.6f表示小数点后带有6位,可根据精确度需要修改
timestr = "%.6f" % msg.header.stamp.to_sec()
image_name = timestr + ".png" #图像命名:时间戳.png
cv2.imwrite(left_path + image_name, cv_image) # 保存图像
elif topic == "/right": # 右目图像的topic
try:
cv_image = self.bridge.imgmsg_to_cv2(msg,"bgr8")
except CvBridgeError as e:
print e
# %.6f表示小数点后带有6位,可根据精确度需要修改
timestr = "%.6f" % msg.header.stamp.to_sec()
image_name = timestr + ".png" #图像命名:时间戳.png
cv2.imwrite(right_path + image_name, cv_image) # 保存图像
if __name__ == '__main__':
try:
image_creator = ImageCreator()
except rospy.ROSInterruptException:
pass
近視カメラの白い斑点は、IRモードが原因でオフにでき、MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch
途中でオフにできます。変更点は次のとおりです。
<!-- IR intensity -->
<arg name="ir_intensity" default="4" />
にdefault="4"
変更されますdefault="0"