分享

闲鱼 159元冲全新Intel R200实感相机

 云深无际 2021-11-03

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 streamingpipe = realsense.pipeline();define point cloud objectpcl_obj = realsense.pointcloud();define colorizer to give point cloud colorcolorizer = realsense.colorizer();% Start streaming on an arbitrary camera with default settingsprofile = pipe.start();% Get frames. We discard the first couple to allow% the camera time to settlefor i = 1:5frames = pipe.wait_for_frames();end% Stop streamingpipe.stop();% Select depth framedepth = frames.get_depth_frame();% get point cloud points without colorpoints = pcl_obj.calculate(depth);% get texture mappingcolor = frames.get_color_frame();% map point cloud to colorpcl_obj.map_to(color);% get vertices (nx3)vertices = points.get_vertices();% get texture coordinates (nx2)tex_coords = points.get_texture_coordinates();
import pyrealsense2 as rsimport numpy as npimport 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是适合在室外使用的,室内当然也可以使用了~

  1. 捕捉 3D 世界,然后编辑、共享并打印 3D 对象。

  2. 增强你的摄影。英特尔实感 R200 包括 3D 过滤器,允许重新照明、重新聚焦和背景分割(去除/替代背景)

  3. 添加虚拟内容到现实世界的 3D 捕捉版本中。在称为“场景感知”的特性中,你可将虚拟对象添加到捕捉的现实世界场景中,因为 R200 摄像头了解表面以及对象和运动,并可通过预估摄像头在场景中的位置/方向来创建场景。

这些用例基于 R200 摄像头的两个功能区。

  • 跟踪/定位:使用深度、RGB 和 IMU 数据,实时预估摄像头的位置和方位。

  • 这里说明了IMU,真的有传感器吗?

  • 三维体积/表面重建:构建摄像头观察到的 3D 场景的实时数字表现

关于 R200 摄像头,最令人兴奋的是更大范围的扫描能力,这是测量深度的新方法。R200 包括立体摄像头和 RGB 摄像头。由于此摄像头不太依赖于红外线,因此它可在户外使用。彩色摄像头可提供人类影像,2 个深度摄像头可提供数据供算法使用。此外,如果系统内建有 IMU(惯性测量单元),则 SDK 可以调整对添加到场景的对象产生的重力影响。不过这里又写如果了,也不知道是不是有IMU。

通过立体摄影,可使用三角测量,通过 2 个“单独”摄像头之间的视差(像素偏移)来计算深度/三维,从而得出深度测量。注意,这基于并行平面(不是与摄像头的绝对范围)。SDK 中包含一个实用程序,用于帮助进行平面检测。确保摄像头在初始化期间可以看到地平线,这对于扫描目标的方向至关重要。

R200 可采用 6 DOF(自由度)跟踪摄像头在三维空间中的移动。与前/后/上/下/左/右呈 3 度,与偏航/俯仰/滚动运动呈 3 度。

要获得最佳三维扫描结果:

  • 使用一个 2m(立方)的 FOV,至少 5000 像素 (640x480)。为了正确检测,使用此图表:
    距离/分钟 矩形对象大小
     30 厘米 4.5 厘米 x 3.5 厘米
    100 厘米 16 厘米 x 11 厘米
    180 厘米 28 厘米 x 21 厘米

  • 不要堵塞对象超过 20%。

  • 移动摄像头,但尽可能保持真实场景对象的位置。

  • 以 30 FPS 或 60 FPS 运行。使用较高的 FPS 获得更小的帧间位移

  • 不要使用普通的非结构化表面。红外发射器会发送随机的不均匀光模式,以将纹理添加到场景中,并通过红外波段中的过滤器运行数据。此外,RGB 输入被添加到立体深度计算。

  • 以中到慢速移动摄像头,请记住,以 60 FPS 拍摄意味着每秒 18M 的深度计算。

  • 留出摄像机初始化的时间(显示在屏幕的左下方),其中包括将目标置于绿线的中心。

彩色摄像头能够以 1080p @60FPS 进行 32 位 RGBA,使用定焦和 16:3 的宽高比。RGB 摄像头拥有比双摄像头略大的 FOV,但这并不意味着可用作独立摄像头。这里我们可以看到即使不用深度功能,也可以使用RGB的图像,USB3.0哦~

再看看这些摄像头

双深度摄像头使用定焦 4:3 宽高比和 70x59x46 度视界。
IR 是 850 纳米范围的 1 级激光,


可用分辨率:

@60FPS,深度为 320x240;颜色为 640x480
@60FPS,深度为 480x360,颜色为 320x240 或 640x480
@30FPS,深度为 320x240;颜色为 640x480、1280x720 或 1920x1080
@30FPS,深度为 480x360;颜色为 320x240、640x480、1280x720 或 1920x1080

实感SDK 可提供与项目深度到颜色的对接,反之亦然。

R200 的功耗范围为 0 至 100mw(空闲)到 1.0-1.6 瓦(活跃)(取决于使用的模块)。它有多项节能特性,包括使用 USB3 。 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多