闲鱼 159元冲全新Intel R200实感相机
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是适合在室外使用的,室内当然也可以使用了~
捕捉 3D 世界,然后编辑、共享并打印 3D 对象。
增强你的摄影。英特尔实感 R200 包括 3D 过滤器,允许重新照明、重新聚焦和背景分割(去除/替代背景)
添加虚拟内容到现实世界的 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 。