Intel家的东西,第一个特点就是有点“贵”(大概率是我穷)。 Intel RealSense 相机介绍.上,我以前写过一些关于这个相机的。 现在最新的版本是D455i,最有性价比可能的D435,但是价钱都是1000开外了,我也不是说贵,我只是用不到而已。所以我就考虑别的可能性,intel家的东西是SDK好,demo丰富,支持的语言丰富。 Matlab可以控制,是不是很酷 最新的相机了,我用不到也穷~ 然后今天晚上冲浪的时候,看到一个店家出R200,才159!!!我的妈,问了下还是全新的,等啥呢! 冲!!! 大概机器长这样 因为咱们要这个东西,也不是干嘛,是学习┗|`O′|┛ 嗷~~ https://github.com/IntelRealSense/librealsense/tree/v1.12.1 上个最重要的GitHub的地址 看见没有R200 https://github.com/IntelRealSense/librealsense 事实上最新的SDK是这个,但是R200太老了,不支持这个了~ 看我绘图的地方 因为贫穷,好多的都不写着不支持R200 我觉得是可以支持的,等机器回来看我操作~ 找到一篇文章,大致看看: https://blog.csdn.net/jy1023408440/article/details/105732098?utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.wap_blog_relevant_pic 标题 https://github.com/IntelRealSense/librealsense/releases/tag/v2.34.0 这里也没有写支持R200 这篇文章写于 2020-04-24 可惜现在都2020-09-21了 版本已经很旧了 这个是文章中成功的图 pip install pyrealsense2 在一个文章里面找到了运行相机的最低要求 https://www.intel.cn/content/www/cn/zh/support/products/92256/emerging-technologies/intel-realsense-technology/intel-realsense-cameras/intel-realsense-camera-r200.html v10的SDK不可以再下载 https://www.intelrealsense.com/ 这是推荐的新的SDK的位置 github.com/IntelRealSense/librealsense/blob/master/doc/sample-data.md 然后SDK支持深度图像的录制 各种各样的,可以在没有相机的情况下看 接下来试试看 在我们的viwer内打开 2D和3D全部打开 也可以看看我们的视频参数 日后研究 这个我不小心调出来的,不知道是什么 还有参数 立体的点云图 测量图 可能很多人,不知道这个东西的意义在哪里,我想意义就是在于真实~ 以下给出Matlab和Python的处理代码: % 使管道对象管理流式处理 管道 = 实感.管道(); % 定义点云对象 pcl_obj = 实感.点云(); % 使用默认设置在任意摄像机上开始流式传输 管道.开始(); % 获取帧。我们抛弃了第一对夫妇 摄像机结算时间的百分比 对于 i = 1:5 帧 = 管道.wait_for_帧(); 结束 % 选择深度帧 深度 = 帧.get_深度_帧(); % 获得不带颜色的点云点 pnts = pcl_obj.计算(深度); 顶点 = pnts.get_vertice(); % 可选:填充 MATLAB 点云对象 pCloud = 点云(顶点); %显示点云 pcshow(pCloud); 管道.停止(); 只获得点云图 这些代码适合这些产品 R200在其中,其实也可以说明 其实新老产品就是性能的区别,软件栈是通用的 MATLAB: % Make Pipeline object to manage streaming pipe = realsense.pipeline(); % define point cloud object pcl_obj = realsense.pointcloud(); % define colorizer to give point cloud color colorizer = realsense.colorizer(); % Start streaming on an arbitrary camera with default settings profile = pipe.start(); % Get frames. We discard the first couple to allow % the camera time to settle for i = 1:5 frames = pipe.wait_for_frames(); end % Stop streaming pipe.stop(); % Select depth frame depth = frames.get_depth_frame(); % get point cloud points without color points = pcl_obj.calculate(depth); % get texture mapping color = frames.get_color_frame(); % map point cloud to color pcl_obj.map_to(color); % get vertices (nx3) vertices = points.get_vertices(); % get texture coordinates (nx2) tex_coords = points.get_texture_coordinates(); import pyrealsense2 as rs import numpy as np import cv2
if __name__ == "__main__": # Configure depth and color streams pipeline = rs.pipeline() config = rs.config() config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) # Start streaming pipeline.start(config) try: while True: # Wait for a coherent pair of frames: depth and color frames = pipeline.wait_for_frames() depth_frame = frames.get_depth_frame() color_frame = frames.get_color_frame() if not depth_frame or not color_frame: continue # Convert images to numpy arrays
depth_image = np.asanyarray(depth_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
# Apply colormap on depth image (image must be converted to 8-bit per pixel first) depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET) # Stack both images horizontally images = np.hstack((color_image, depth_colormap)) # Show images cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE) cv2.imshow('RealSense', images) key = cv2.waitKey(1) # Press esc or 'q' to close the image window if key & 0xFF == ord('q') or key == 27: cv2.destroyAllWindows() break finally: # Stop streaming pipeline.stop()
三个摄像头 R200 实际有 3 个摄像头,可提供 RGB(彩色)和立体红外图像,以生成深度。借助激光投影仪,该摄像头可进行三维扫描,获取场景感知和增强的摄影。内部范围约 0.5-3.5 米,外部范围可达 10 米。注:范围在很大程度上取决于模块和照明。 不同于英特尔® 实感™ F200 摄像头,R200 面向世界,而非对着用户。因此,实感 SDK 侧重于 R200 的以下用例。 也就是说R200是适合在室外使用的,室内当然也可以使用了~
这些用例基于 R200 摄像头的两个功能区。
关于 R200 摄像头,最令人兴奋的是更大范围的扫描能力,这是测量深度的新方法。R200 包括立体摄像头和 RGB 摄像头。由于此摄像头不太依赖于红外线,因此它可在户外使用。彩色摄像头可提供人类影像,2 个深度摄像头可提供数据供算法使用。此外,如果系统内建有 IMU(惯性测量单元),则 SDK 可以调整对添加到场景的对象产生的重力影响。不过这里又写如果了,也不知道是不是有IMU。 通过立体摄影,可使用三角测量,通过 2 个“单独”摄像头之间的视差(像素偏移)来计算深度/三维,从而得出深度测量。注意,这基于并行平面(不是与摄像头的绝对范围)。SDK 中包含一个实用程序,用于帮助进行平面检测。确保摄像头在初始化期间可以看到地平线,这对于扫描目标的方向至关重要。 R200 可采用 6 DOF(自由度)跟踪摄像头在三维空间中的移动。与前/后/上/下/左/右呈 3 度,与偏航/俯仰/滚动运动呈 3 度。 要获得最佳三维扫描结果:
彩色摄像头能够以 1080p @60FPS 进行 32 位 RGBA,使用定焦和 16:3 的宽高比。RGB 摄像头拥有比双摄像头略大的 FOV,但这并不意味着可用作独立摄像头。这里我们可以看到即使不用深度功能,也可以使用RGB的图像,USB3.0哦~ 再看看这些摄像头 双深度摄像头使用定焦 4:3 宽高比和 70x59x46 度视界。
@60FPS,深度为 320x240;颜色为 640x480 实感SDK 可提供与项目深度到颜色的对接,反之亦然。 R200 的功耗范围为 0 至 100mw(空闲)到 1.0-1.6 瓦(活跃)(取决于使用的模块)。它有多项节能特性,包括使用 USB3 。 |
|