全国服务热线:

15861139266

3D计算机视觉简介,苏州PLC培训,苏州上位机培训,苏州机器视觉培训,苏州工业机器人培训,苏州电工培训
发布时间:2023-04-06 14:19:13 点击次数:283

3D计算机视觉简介

3D格式简介

3D图像比2D图像多一个维度,即深度维度。有两种最广泛使用的3D格式——RGB-D和点云。


RGB-D

使用普通的基于像素的图像,我们可以通过(x,y)坐标定位任何像素,然后可以分别获得三种颜色属性(R,G,B)。使用RGB-D图像时,每个(x,y)坐标将对应于四个属性(深度,R,G,B)。RGB-D和点云之间的唯一区别在于,点云(x,y)坐标反映了现实世界中的实际值,而不是简单的整数值。

31.8.png

点云

点云可以由RGB-D图像构建。如果您有RGB-D扫描并且还知道扫描摄像机的内在参数,您就可以通过使用相机内在函数计算真实世界的(x,y),实现从RGB-D图像创建点云。这被称为相机校准。因此,到目前为止,您知道了RGB-D图像是网格对齐的图像,而点云是更稀疏的结构。

31.9.png

3D视觉

就像2D问题一样,我们想要检测并识别3D扫描中的所有对象。与2D图像不同,为了使用CNN,需要选择最佳的输入格式。


体素网格(Voxel Grid)

体素网格是将3D对象拟合到网格的最直观的方法,使其看起来像像素图像,而我们在这里将其称为体素。在这种情况下,3D图像由(x,y,z)坐标描述,它看起来就像乐高一样。




VoxNet是一种基于深度学习的架构,用于使用占据栅格对3D点云进行分类,这在分类问题上非常有效。




例如,如果我们将点云拟合到32x32x32体素网格,我们可以构建一个填充全为零的32x32x32数组。然后缩放点云以计算每个小体素内的有多少个点。




在获得体素网格后,接下来我们将执行3D卷积,从而有效地在基于体素的图像上滑动立方体。




我们将扫描扩展到相同的基础。我们可以想象,如果我们进行大规模扫描,那么每个物体只是一个体素,这会会导致一些问题。而且,由于那些上采样操作,不容易确定每个体素的RGB颜色。


对于简单的数据集(具有相似的点数,类似的扫描比例),VoxNet可能是一个简而优的方法。但是如果遇到复杂的数据集,它可能不是一个好的选择。

32..png


来自'VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition'的VoxNet架构,作者:Daniel Maturana和Sebastian Schere



点 虽然基于体素的方法在分类问题上可以很好地工作,但它为上采样操作牺牲了大量信息。因此,我们可能希望逐点训练网络。这样做会遇到的第一个问题是点的顺序,我们知道点云的点顺序是无关的。

32.1.png


可以在不更改实际渲染的情况下更改点云文件。

处理此问题(PointNet)有三种策略:


对点进行排序。

输入为RNN序列,这个序列是通过增加具有各种排列实现。

使用对称函数来聚合来自每个点的信息。对称函数是指像+或*是对称的二元函数。

在PointNet的论文中,他们说第一种方法的计算强度有点大,第二种方法不够鲁棒。因此,使用对称函数——最大池化。最大池化是这里的主要操作。整个架构如下所示,您也可以在这里找到算法实现。

32.2.png


通常,它是卷积,全连接和最大池化层的灵活使用。我发现首先可能很难理解,因此我们可以通过代码理解它。




首先,我将给出一个示例点云,它的每行表示为(x,y,z,r,g,b)。每行代表一个点。假设我们在这个例子中有n个点。


...

-38. 17. 54. 149 148 147

-38. 89. 54. 152 153 152

-79. 99. 32. 151 151 148

...

注意:PointNet的实际输入使用标准化的RGB颜色,且x,y值的基点在空间中心对齐。我没有这样做,只是为了不想处理浮点数。


PointNet中的分类

第一个操作是进行2d卷积(内核大小(1,6))来聚合一个点的相关信息(x,y,z,r,g,b;总共六个)。此处的输出为(n,1,64)。


net = tf_util.conv2d(input_image,64,[1,6],padding ='VALID',stride = [1,1],scope ='conv1')

注意:每层都有批量标准化,我将其删除以简化演示。此外,原来的pointnet使用9个特征(x,y,z,r,g,b,normalized_x,normalized_y,normalized_z)作为输入。




然后将有几个1x1卷积运算逐像素检测这些小特征。因此,将在这之后产生一个(n,1,1024)的数组


net = tf_util.conv2d(net,64,[1,1],padding ='VALID',stride = [1,1],scope ='conv2')

net = tf_util.conv2d(net,64,[1,1],padding ='VALID',stride = [1,1],scope ='conv3')

net = tf_util.conv2d(net,128,[1,1],padding ='VALID',stride = [1,1],scope ='conv4')

points_feat1 = tf_util.conv2d(net,1024,[1,1],padding ='VALID',stride = [1,1],scope ='conv5')



接下来是最重要的步骤,使用最大池化选择所有点中最特殊的特征。这就是函数与点的顺序无关的原因。由于我们在先前的层中有1024个滤波器,因此该层将输出1024个特征。


pc_feat1 = tf_util.max_pool2d(points_feat1,[n,1],padding ='VALID',scope ='maxpool1')

然后,所有特征将通过全连接的层完全连接。


pc_feat1 = tf.reshape(pc_feat1,[batch_size,-1])

pc_feat1 = tf_util.fully_connected(pc_feat1,256,bn = True,scope ='fc1')

pc_feat1 = tf_util.fully_connected(pc_feat1,128,bn = True,scope ='fc2')

注意:这里的批量大小是1.虽然PointNet的输入是一个场景的扫描,但它会被分成小批量(每批4096个点)。PointNet将执行特征检测批处理




回到上图,如果您再添加一个全连接的层来输出类标签的数量,这就是PointNet在点云上进行分类的方式。简单地说,


汇总每个点信息,

找到每个点最特别的特征,

然后全连接到分类。

PointNet中的语义分割

分割是分类模型的进化版。不过,我们希望网络能够忽略点的顺序。因此,我们将每个点特征与“全局特征”连接起来,让每个点都知道上下文。


pc_feat1_reshape = tf.reshape(pc_feat1,[batch_size,1,1,-1])

pc_feat1_expand = tf.tile(pc_feat1_reshape,[1,num_point,1,1])

points_feat1_concat = tf.concat(axis = 3,values = [points_feat1,pc_feat1_expand])

然后我们将使用几个1x1卷积内核来提取新的逐点特征。


net = tf_util.conv2d(points_feat1_concat,512,[1,1],padding ='VALID',stride = [1,1],scope ='conv6')

net = tf_util.conv2d(net,256,[1,1],padding ='VALID',stride = [1,1],scope ='conv7')

然后我们就能做出逐点预测。例如,每个点有13个类。


net = tf_util.conv2d(net,13,[1,1],padding ='VALID',stride = [1,1],activation_fn = N



一、课程目标

本公司本着为工控事业培育和输出从电工基础到机器视觉的人才理念,着力于让小白成为工控业专家为目标。

大林上位机视觉软件培训专家特开设从电工基础、PLC、运动控制、上位机、工业机器人、机器视觉培训课程,为实现工业4.0事业而不懈努力。

机构课程全程真实教学、实干为主,不装逼,不扯淡,只唠干货,能做项目!!

二、老师介绍

大林老师

是专业从事上位机视觉软件的开发与培训,多年从事上位机机器视觉相关项目开发,对电气人员学习C#开发视觉软件有独到的见解,即使您是零基础或只要从事过电气自动化相关工作的学员都能够轻松快速学会。

三、校区介绍

大林上位机机器视觉培训机构,分为两个校区,苏州校区(苏州木渎),常州校区(常州新北)

四、硬件设施

校区提供2000多平方的实训基地,完美的设备硬件配套,可以做到边学习边操作,鉴于本机构隶属于某自动化公司,学员可以配合边学习边配合公司开发人员完成项目,这样学习起来事半功倍

五、毕业服务

学业完成后本公司可以择优录取,在我们自动化公司的实习,解决您的后顾之忧

六、课程对象

1.零基础无任何相关知识

2.有电气及PLC编程基础的更容易入手

3.需要系统性提升整体能力

4.跨行业转型

5.想拥有一份体面高收入

6.对自己前途迷茫

7.学历低英语不好

七、课程特色

为您量身提供零基础快速成为上位机及机器视觉软件开发专家的学习方案

承接企事业单位定制个性化学员集体培训。

八、课程内容

小白亦可通过学习成为工业软件开发专家,从电气图,到梯形图,到高级语言SCL,再到C#,突破高级语言难的瓶颈,轻松掌握。

从零开始,从电气基本元件入手,跟随课程递进学习,PLC,工业机器人,数据库,运动控制器,上位机,机器视觉,统统一网打尽。

欢迎亲临现场咨询,老师私人定制课程 ,学习更清晰!

九、授课方式

1、线下现场授课更直观,知识点更易吸收,现场互动更易理解和运用。

      1,赠送老师录制课程随时随地轻松学习

      2,赠送配套书籍不限环境随意学习

      3,课间和课后答疑知识掌握更牢固

      4,现场设备随意使用,人机结合熟练运用,加深知识理解。

      5,老师指导完善简历,轻松上岗。

2、线上视频录播课程-整套

      1,赠送配套书籍不限环境随意学习

      2,售后答疑轻松解答

      3,福利:线下报名课程原价抵扣

3、 线上视频课程+现场设备实操

      1,赠送配套书籍不限环境随意学习

      2,售后答疑轻松解答

      3,现场和课后答疑知识掌握更牢固

      4,现场设备随意使用,人机结合熟练运用,加深知识理解

      5,福利:线下报名课程原价抵扣




苏州机器视觉软件编程培训_苏州视觉深度学习培训_苏州2D机器视觉培训_苏州3D机器视觉编程培训_苏州飞拍视觉编程培训_苏州Halcon机器视觉培训_苏州VisionPro机器视觉培训_苏州海康机器视觉培训_苏州C#联合halcon机器视觉培训_苏州机器人与视觉培训

苏州Halcon视觉培训_苏州视觉与运动控制培训_苏州3D图像处理实操培训_苏州机器人视觉软件开发培训_苏州Halcon深度学习培训_苏州视觉光学分选机实操培训_苏州视觉纠偏实操培训_苏州视觉对位贴合实操培训_苏州ABB机器人视觉实操培训_苏州Epson机器人视觉实操培训


立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
软件开发基础课程
上位机软件开发课
机器视觉软件开发课
专题课
联系方式
电话:15861139266
邮箱:75607082@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1

技术支持: 易动力网络