掌桥专利:专业的专利平台
掌桥专利
首页

一种基于HoloLens 2自处理的装配零部件识别方法

文献发布时间:2023-06-19 18:35:48


一种基于HoloLens 2自处理的装配零部件识别方法

技术领域

本发明属于图像识别技术领域,具体涉及一种基于HoloLens 2自处理的装配零部件识别方法,实现直接在HoloLens 2上使用机器学习模型进行实时零件识别。

背景技术

在智能制造的时代背景下,航空发动机等重大复杂产品数字化、信息化、智能化的高性能装配引起了国内外学者广泛研究。固定火箭发动机芯模装配目前以人工装配为主,且具有零部件数量众多、纸质工序文件信息冗杂的特点。为了保证发动机装配的质量和效率,新员工的装配培训和认知操作非常重要。当下,航空发动机认知培训主要采取“老带新”的传统模式,该模式需要较大的人工成本和学习周期。

中国专利公开CN114648900A公开了一种VR结合下的沉浸式交互培训方法及系统,该发明专利通过构建虚拟数字化平台来保障员工的安全和减少实操设备损耗的技术效果。然而该虚拟培训系统构建了一个完全数字化的虚拟环境,缺乏对真实场景的感知,所使用的数字化模型与装配零部件实体模型存在较大差异,并且在沉浸学习过程中会有眩晕、交互不适等问题。

目前以HoloLens 2为客户端和工作站为服务端的远程通信方法有效的解决了上述存在的问题,HoloLens 2作为采集图像和可视化的设备,工作站负责处理深度学习模块,满足了现场感知和可视化的培训需求,但采用“客户端-服务器”的远程模式存在较高时间延迟和设备多线程传输等问题,导致无法实现实时零件识别。

发明内容

为解决现有技术存在的问题,本发明在图像识别和机器学习基础上,提出一种基于HoloLens 2自处理的装配零部件识别方法,直接应用HoloLens2内置处理器进行图像采集和目标识别,对零件自然特征进行实时检测,并将输出结果叠加到现实场景中,以智能更新装配引导信息界面,突破了“客户端-服务器”远程通信的限制与弊端,解决了AR远程识别过程的信息延迟与多设备传输问题,实现了复杂结构零部件实时检测。

本发明的技术方案为:

一种基于HoloLens 2自处理的装配零部件识别方法,包括以下步骤:

步骤1:利用工业相机对现场零部件进行自动连续拍摄,得到图像识别所需数据集的原始图片;

步骤2:对步骤1所采集的原始图片进行模糊阈值判断,并进行图像补帧处理,从而得到有效可用的图片集;

步骤3:对步骤2得到的有效可用的图片集进行一次性多张存储图像排布、缩放和随机裁剪处理,实现图片集数据增强;

步骤4:对图片集进行物体位置与名称的标注,完成数据集的构建;

步骤5:对步骤4得到的数据集进行抽取,随机划分得到测试集和验证集;

步骤6:利用已经预先训练的YOLO权重模型对数据集进行迁移学习,通过设置模型迭代次数、步长、学习率和种类数进行训练模型,得到包含若干装配零部件类别的TensorFlow模型;

步骤7:将步骤6训练好的TensorFlow模型转换为ONNX格式模型;

步骤8:使用Window ML API将ONNX格式模型集成到Windows应用中;

步骤9:将步骤8集成到Windows应用中后构建的应用程序代码集成到HoloLens设备的UWP平台上,并在HoloLens设备上部署;

步骤10:开启HoloLens 2的研究模式,创建并初始化媒体捕获器、媒体帧读取器,通过HoloLens 2以所需分辨率实时捕获装配零部件当前图像,并将获取的媒体位图转化为BRGA8格式;

步骤11:调用TryAcquireLatestFrame方法从媒体帧阅读器中获取最新的视频帧,并将其作为网络模型的输入数据;同时等待媒体捕获停止时释放资源;

步骤12:创建网络模型新实例,所述新实例包括:模型文件,标签文件、网络模型输入与输出和检测阈值;

步骤13:对标签文件进行解析,读取字符串,并拆分原有字符串,得到便于后续索引的字符串数组;

步骤14:设置网络模型输入大小,并调用步骤11获取适合网络模型输入大小的最新帧;

步骤15:将步骤14获取的最新视频帧作为步骤12创建的网络模型的输入,使用输入数据张量、缓存输出和时间操作来执行网络模型推理,得到网络模型检测结果,包括检测边界框的坐标:X、Y、Width、Hight、标签和置信度;

步骤16:根据步骤15检测结果中的检测边界框坐标,在目标物周围构建一个带有标签和置信度的边界框;

步骤17:利用提取的标签信息来检索装配零件物料库中的零部件信息,获取当前检测零部件的相关信息,并将其更新显示到HoloLens 2全息端中的UI界面上。

进一步的,步骤1中,在装配零部件所处装配位置处架设具有高分辨率RGBD工业级摄相机,该相机所处位置可圆周旋转并进行姿态调整;在后端处理计算机上搭建自动图像采集程序,所述自动图像采集程序具有现场环境自动调参与人工微调功能,能适应不同现场环境的装配图像采集;装配零部件处于装配物料区,所述RGBD工业级摄像机通过自动图像采集程序连续拍摄视频帧,并将图像传输至后端计算机,并将每帧视频流以图片形式存储于计算机指定位置处。

进一步的,步骤2中,采用ffmpeg自带的插帧算法进行补帧处理;步骤3中利用Mosaic数据增强方法进行数据增强,得到增强图片集;步骤4中采用Labelimg图像标注工具对图片按照装配工序所需零部件进行区域选择与人工标定;步骤5中,利用留出法,自定义抽取图片比例,根据比例值进行测试集和验证集的随机划分。

进一步的,步骤8中,集成处理包括:加载网络模型、创建会话、绑定模型和评估模型:

步骤8.1:加载所述步骤7得到的ONNX模型,将ONNX模型文件放入Windows应用的APPX包中;

步骤8.2:通过LearningModelSession类创建会话,将ONNX模型绑定到当前设备中;

步骤8.3:将ONNX模型通过步骤8.2创建的会话绑定到Windows应用程序中;

步骤8.4:调用异步评估方法EvaluateAsync类,对步骤8.3中绑定模型的输入进行评估并输出预测结果。

进一步的,步骤10的具体步骤包括:

步骤10.1:创建媒体捕获器MediaCapture和媒体帧读取器;MediaCapture类允许启动HoloLens2内置相机应用,并且接收捕获的照片或视频文件;检查媒体捕获器当前的状态,判断条件并集为:媒体捕获是否为空、相机当前是否为流式传输、相机流是否已关闭;若判断结果为真,则转到步骤10.2,否则说明当前媒体帧正常运行,转到步骤11;

步骤10.2:初始化步骤10.1中捕获器和帧读取器:包括:1:判断媒体捕获是否为空,若不为空则进行销毁;2:创建用于初始化的MediaCapture的MediaCaptureInitializationSettings对象,使用DeviceInformation类列出所有VideoCapture设备,然后查看他们的EnclosureLocation,获取相应的设备ID;3:初始化MediaCapture对象,实例化帧阅读器,使用静态方法Convert将软件位图转换为BRGA8格式。

进一步的,步骤12中,设置检测阈值为0.5,并通过异步加载步骤7中ONNX机器学习模型和标签文件“Labels.json”,实现自定义网络模型新实例的创建。

进一步的,步骤13的具体过程为:

步骤13.1:使用Resources.Load读取Labels.json文件,得到一个Object对象;并将Object对象转换为TextAsset格式文件;

步骤13.2:使用TextReader从步骤13.1中的TextAsset格式文件读取字符串;并使用Trim函数从字符串中删除指定字符;随后通过Split方法按照“:”字符来拆分原有字符串,并返回拆分后得到的字符串数组,用于后续字符串索引操作。

进一步的,步骤14的具体过程为:根据步骤10判断当前媒体捕获状态,进行视频流的初始化操作;当视频流正常工作后,接收所述步骤11中TryAcquireLatestFrame方法的返回值,得到视频流最新帧。

进一步的,步骤15的具体过程为;

步骤15.1:检查当前网络模型和网络模型输入帧的状态,若为空,则返回无目标检测、置信度为0的检测结果;若都不为空,则转到步骤15.2;

步骤15.2:将步骤14的最新帧作为网络模型的输入,使用输入数据张量、缓存输出和时间操作来执行网络模型推理,等待并接收步骤8.4中异步评估的网络输出结果,并通过Stopwatch函数对网络模型推理过程进行系统计时,并将其作为检测时间进行存储;

步骤15.3:将步骤15.2中网络输出结果通过GetAsVectorView函数转换为数据类型,该数据类型包括:最高概率对应数字、检测框的左上角和宽、高;并且判断最高概率是否大于步骤12中的设定阈值,若大于设定阈值,则转到步骤15.4;

步骤15.4:通过LINQ查询方法对步骤13得到的字符串数组的标签文件进行检索,获得最大概率值所对应的索引标签;

步骤15.5:异步评估后返回检测结果,包括检测边界框的坐标:X、Y、Width、Hight、标签和置信度,以及所述步骤15.2中的检测时间。

进一步的,步骤16的具体过程为;

步骤16.1:对所述步骤15.5中检测框进行边界检查,得到适合当前画布的边界框信息,包括左上角坐标点x1,y1,右下角坐标点x2,y2;

步骤16.2:根据步骤16.1中的得到的x1,y1,x2,y2的坐标,在Texture2D画布上绘制矩形:

(1)在指定两向量p1,p2间画线:使用Unity Vector2.Lerp方法按指定的增量frac在两个矢量之间进行线性插值;其中增量frac的表达式如下:

(2)在while循环中使用frac值;在每个循环增量下,增加插值分数以增量方式更改线性插值的值,直到达到最终边界条件;在每次迭代中,将所选的局部区域内的像素将设置为Texture2D上所需的颜色;

(3)对所述步骤16.1中左上角坐标点x1,y1,右下角坐标点x2,y2进行坐标转换,得到矩形的四个向量坐标,在四个向量之间依次使用Unity Vector2.Lerp进行插值绘制线条,从而绘制一个完全连接的矩形;

步骤16.3:创建具有类和置信度值的标签:在左上角坐标点对应的世界坐标处实例化预制件,并通过画布缩放比例将像素坐标转到本地相机坐标,同时设置边界框组件的标签和颜色,然后根据步骤15.5中的标签和置信度更新边界框组件的文本信息。

有益效果

本发明在图像识别和机器学习基础上,通过HoloLens 2直接对零件自然特征进行实时检测,并将输出结果叠加到现实场景中,以智能更新装配引导信息界面,解决了AR远程识别过程的信息延迟与多设备传输问题,实现了复杂结构零部件实时检测。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1:本发明的原理框图;

图2:在HoloLens 2端绘制检测框的原理框图。

具体实施方式

本发明针对目前采用以HoloLens 2为客户端和工作站为服务端的远程模式的零件识别方法存在较高时间延迟和设备多线程传输等问题,提出基于HoloLens 2自处理的装配零部件识别方法,通过HoloLens 2直接对零件自然特征进行实时检测,并将输出结果叠加到现实场景中,以智能更新装配引导信息界面,具体包括以下步骤:

步骤1:基于已有的公知技术搭建自动图像采集程序,利用工业相机对现场零部件进行连续拍摄,并将视频帧自动存储到指定远程计算机位置,从而得到图像识别所需数据集的原始图片。

步骤2:对步骤1所采集的原始图片进行模糊阈值判断,并进行图像补帧处理,从而得到有效可用的图片集;例如可直接采用ffmpeg软件自带的插帧算法进行图像补帧处理。

步骤3:对步骤2得到的有效可用的图片集进行一次性多张存储图像排布、缩放和随机裁剪等处理,丰富了检测物体的背景,提高了图片集的可靠性;例如使用Mosaic数据增强方法,对有效可用的图片集进行一次性四张存储图像排布、缩放和随机裁剪等处理。

步骤4:对图片集进行物体位置与名称的标注,完成数据集的构建。例如可采用labelimg工具对图片集进行物体位置与名称的标注,构建YOLOv5网络数据集。

步骤5:对步骤4得到的数据集进行抽取,随机划分得到测试集和验证集;例如可采用留出法,自定义抽取图片比例值,从而随机划分得到测试集和验证集。

步骤6:利用现有技术中已经预先训练的YOLO权重对数据集进行迁移学习,通过设置模型迭代次数、步长、学习率和种类数等相关参数进行训练模型,得到包含若干装配零部件类别的TensorFlow模型。

步骤7:将步骤6训练好的TensorFlow模型转换为ONNX格式,得到ONNX机器学习模型。这里可以采用tf2onnx工具进行转换。

步骤8:使用Window ML API将ONNX格式的模型集成到Windows应用中。集成处理包括:加载网络模型、创建会话、绑定模型和评估模型。

步骤9:将步骤8中的Windows应用的程序代码集成到HoloLens设备的UWP平台上并在HoloLens设备上部署;具体而言,将步骤8中的Windows应用的程序代码位于ENABLE_WINMD_SUPPORT定义之下,并集成到HoloLens设备的UWP平台进行部署。

步骤10:开启HoloLens 2的研究模式,初始化媒体捕获器、媒体帧读取器,通过HoloLens 2以所需分辨率实时捕获装配零部件当前图像,并将获取的媒体位图转化为BRGA8格式。

步骤11:调用TryAcquireLatestFrame方法从媒体帧阅读器中获取最新的视频帧,并将其作为网络模型的输入数据;同时等待媒体捕获停止时释放资源。

步骤12:创建网络模型新实例,所述新实例包括:模型文件,标签文件、网络模型输入与输出和检测阈值。

步骤13:对标签文件进行解析,读取字符串,并通过Split方法拆分原有字符串,得到便于后续索引的字符串数组。

步骤14:设置网络模型输入大小,并调用步骤11获取适合网络模型输入大小的最新帧。

步骤15:将步骤14获取的最新视频帧作为步骤12创建的网络模型的输入,使用输入数据张量、缓存输出和时间操作来执行网络模型推理,得到网络模型检测结果,包括检测边界框的坐标:X、Y、Width、Hight、标签和置信度。

步骤16:根据步骤15检测结果中的检测边界框坐标,在目标物周围构建一个带有标签和置信度的边界框。

步骤17:利用提取的标签信息来检索装配零件物料库中的零部件信息,获取当前检测零部件的相关信息,并将其更新显示到HoloLens 2全息端中的UI界面上。

基于上述步骤,接下来详细描述本发明的实施例,所述实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如附图1所示,目前“客户端-服务器”的远程网络传输过程中存在信息延迟高、网络连接不稳定和数据丢失泄露等问题,为此本实施例在通用Windows平台(UWP)中,应用WinML API在本地运行机器学习模型并进行实时评估,实现了直接在HoloLens 2头戴显示设备上实时进行装配零部件识别及评估处理:

步骤1:现场图像采集。在现场装配零部件所处装配位置处架设具有高分辨率RGBD工业级摄相机,该相机所处位置可圆周旋转并进行姿态调整。在后端处理计算机上搭建自动图像采集程序,所述自动图像采集程序具有现场环境自动调参与人工微调功能,能适应不同现场环境的装配图像采集。装配零部件处于装配物料区,所述RGBD工业级摄像机通过自动图像采集程序连续拍摄视频帧,并将图像传输至后端计算机,并将每帧视频流以图片形式存储于计算机指定位置处。

步骤2:图像帧处理。由于现场工作条件限制和图像采集中在姿态调整和旋转过程中的抖动和采集延迟,连续视频帧采集后的部分图像会出现跳帧与图像模糊的情况,基于上述问题的出现,本实施例具体处理方式如下:

步骤2.1:针对所述问题中的图像模糊问题,在所述步骤1中后端处理计算机中的自动图像采集程序设置图像数据模糊阈值,对采集后的图像进行模糊值求解与判断,将图像阈值符合要求的视频帧采集图像进行存储,获得分析有效图像。

步骤2.2:针对所述问题中的跳帧现象,利用ffmpeg自带的插帧算法,对步骤2.1中有效图像进行补帧处理,得到完整的有效可用视频流图片集。

步骤3:Mosaic数据增强。

针对现场采集图像位姿和数量的有限性,Mosaic数据增强在处理后能够丰富检测物体的背景,并且可以对装配现场零部件小目标数据进行扩展,提高小目标零部件的检测效果。利用Mosaic数据增强对所述步骤2.2所获得的完整的视频流图片集进行处理得到增强图片集。具体实施方案如下:一次性对四张存储图像进行排布、缩放和随机裁剪等处理,丰富了数据集,提高YOLO网络训练模型的鲁棒性。

步骤4:对所述步骤3中Mosaic数据增强图像集进行数据标注。具体实施方案如下:将数据增强后的图像集导入到Labelimg图像标注工具中,根据装配工序所需零部件进行区域选择与人工标定,标注完成后数据以YOLO格式保存到指定位置,从而完成YOLOv5网络数据集的构建。

步骤5:针对所述步骤4中构建完成后的YOLOv5网络数据集进行训练集和验证集的划分,具体的实施方案为:利用留出法,根据构建完成后的网络数据集与现场图片采集情况,进行自定义抽取图片比例值的设定,随后根据该抽取图片比例值进行测试集和验证集的随机划分,从而为后续网络模型训练提供数据输入支持。

步骤6:利用步骤5得到的数据集训练YOLOv5物体检测模型。YOLO网络是一种每秒可处理超过60帧的神经网络,具有识别效率快且识别准确率高的特点。具体而言就是:利用步骤5得到的数据集进行迁移学习。迁移学习使用预先训练的网络模型作为基础来训练相关任务的模型,能够适应本实施例中识别的场景和零部件特征映射。本实施例使用官方包含80个类的预先训练YOLOv5权重模型,然后加载步骤5中训练集和验证集,通过设置模型迭代次数、步长、学习率和种类数等相关参数进行训练模型,得到包含20个零部件的TensorFlow网络模型。

步骤7:由于Windows ML仅允许开发人员将ONNX文件添加到其UWP应用中,因此本发明专利通过使用tf2onnx工具转换模型,将所述步骤6中TensorFlow模型转换为ONNX格式。

步骤8:使用Window ML API将所述步骤7中ONNX格式的模型集成到Windows应用中。集成处理包括:加载网络模型、创建会话、绑定模型和评估模型。

步骤8.1:加载所述步骤7得到的ONNX模型,将ONNX模型文件放入Windows应用的APPX包中;其中可以通过使用LearningModel类的静态方法来加载模型。

步骤8.2:通过LearningModelSession类创建会话,将ONNX模型绑定到当前设备中,本实施例中HoloLens2设备的高通骁龙850计算模块功能强大达到计算要求,所以使用该计算平台创建会话。

步骤8.3:将ONNX模型通过步骤8.2创建的会话绑定到Windows应用程序中。机器学习ONNX模型具有输入和输出特征,用于将信息传入和传出。本发明专利使用ImageFeatureValue函数设置该机器学习模型的预期输入和输出特征,从而构建基于步骤7的ONNX模型的应用程序。

步骤8.4:调用异步评估方法EvaluateAsync类,用来对所述步骤8.3中绑定模型的输入进行评估并输出预测结果。

步骤9:将步骤8中Windows程序集成到HoloLens设备的UWP平台上。具体操作如下,为了能在unity脚本中直接使用Win ML API,需要启用unity中Windows运行支持,本实施例使用#define指令用于检查项目是否启用了运行时支持,将步骤8所得的Windows应用程序代码都位于ENABLE_WINMD_SUPPORT定义之下并在HoloLens设备上部署。

步骤10:通过HoloLens 2以所需分辨率实时捕获装配零部件当前图像。

在HoloLens 2的研究模式下,研究人员可以访问设备的原始图像数据流,并且该数据流可以由设备进行本地处理或存储,为在HoloLens 2设备直接读取图像并本地处理提供可靠的图像输入。

步骤10.1:创建媒体捕获器MediaCapture和媒体帧读取器。MediaCapture类允许启动HoloLens2内置相机应用,并且接收捕获的照片或视频文件。检查媒体捕获当前的状态,判断条件并集为:媒体捕获是否为空、相机当前是否流式传输、相机流已关闭。若判断结果为真,则转到步骤10.2,否则说明当前媒体帧正常运行,转到步骤11。

步骤10.2:初始化步骤10.1中捕获器和帧读取器。1:判断媒体捕获是否为空,若不为空则进行销毁。2:创建用于初始化的MediaCapture的MediaCaptureInitializationSettings对象,使用DeviceInformation类列出所有VideoCapture设备,然后查看他们的EnclosureLocation,获取相应的设备ID。3:初始化MediaCapture对象,实例化帧阅读器,使用静态方法Convert将软件位图转换为BRGA8格式。

步骤11:调用TryAcquireLatestFrame方法从媒体帧读取器中获取最新的视频帧,将其作为网络模型的输入数据,并返回VideoFrame对象与当前帧的软件位图;异步停止媒体捕获并释放资源。当媒体阅读帧停止时,销毁帧阅读器,并将媒体捕获值设为空。

步骤12:在应用程序中创建自定义网络模型的新实例,所述新实例主要包括:模型文件,标签文件、网络模型输入与输出和检测阈值。本实施例在实施过程中设置检测阈值为0.5,并且通过异步加载步骤7中ONNX机器学习模型和标签文件“Labels.json”,实现自定义网络模型新实例的创建。

步骤13:从步骤12中的Labels.json文件中解析imagenet标签,得到字符串数组的标签文件。具体实施方案如下:

步骤13.1:使用Resources.Load读取Labels.json文件,得到一个Object对象。为了获得该对象中的字符,则将Object对象转换为TextAsset格式。

步骤13.2:使用TextReader从所述步骤13.1中的TextAsset读取字符串。并使用Trim函数从当前字符串中删除逗号、空格换行等指定字符。随后通过Split方法按照“:”字符来拆分原有字符串,并返回拆分后得到的字符串数组,所述字符串可以用于后续字符串索引操作。

步骤14:设置网络模型输入大小,并调用步骤11获取适合网络模型输入大小的最新帧。

具体实施方式为:1:根据所述步骤10判断当前媒体捕获状态,进行视频流的初始化操作。2:当视频流正常工作后,接收所述步骤11中TryAcquireLatestFrame方法的返回值,得到视频流最新帧。

步骤15:使用步骤12中自定义的网络模型的输入接口对步骤14中获取的最新帧进行不断接收,并通过步骤8.4中EvaluateAsync方法进行异步评估,从而得到网络模型预测结果。具体实施方案如下:

步骤15.1:检查当前网络模型和网络模型输入帧的状态,若为空,则返回无目标检测、置信度为0的检测结果。若都不为空,则转到步骤15.2。

步骤15.2:将所述步骤14的最新视频帧作为网络模型的输入,使用输入数据张量、缓存输出和时间操作来执行网络模型推理,等待并接收步骤8.4中异步评估的网络输出结果,并通过Stopwatch函数对网络模型推理过程进行系统计时,并将其作为检测时间进行存储。

步骤15.3:将所述步骤15.2中网络输出结果通过GetAsVectorView函数转换为数据类型,该数据类型包括:最高概率对应数字、检测框的左上角和宽、高。并且判断最高概率是否大于步骤12中设定阈值0.5,若大于设定阈值,则转到步骤15.4。

步骤15.4:通过LINQ查询方法对所述步骤13中的字符串数组的标签文件进行检索,获得最大概率值所对应的索引标签。

步骤15.5:异步评估后返回检测结果,包括检测边界框的坐标:X、Y、Width、Hight、标签和置信度,以及所述步骤15.2中的检测时间。

步骤16:在HoloLens 2端绘制检测框,如图2所示。由于Unity中没有合适的方法可以在画布上绘制矩形(或边界框)。因此本实施例根据所述步骤15.5返回检测结果中的检测框坐标,扩展了Unity中的Texture2D方法,实现了在画布上指定的2D坐标之间绘制线条,并在目标物周围构建一个带有标签和置信度的边界框。具体实施方案如下:

步骤16.1:对所述步骤15.5中检测框进行边界检查,得到适合当前画布的边界框信息,主要包括左上角坐标点x1,y1,右下角坐标点x2,y2。具体方法为采用三元运算符判断步骤15.5中的X是否大于0,若大于0则对X进行int类型强制转换得到左上角坐标点x1,否则向边界额外添加3个像素,即x1取3。同理得到经过边界检查的y1,x2,y2。

步骤16.2:根据所述步骤16.1中的得到的x1,y1,x2,y2的坐标,在Texture2D画布上绘制矩形,本发明专利创建Texture2Dextension方法可以在给定左上角,右下角坐标时快速自动绘制矩形。具体实施方案如下:

(1)在指定两向量p1,p2间画线。具体使用Unity Vector2.Lerp方法按指定的增量frac在两个矢量之间进行线性插值。其中。增量frac的表达式如下:

(2)在while循环中使用frac值。在每个循环增量下,增加插值分数以增量方式更改线性插值的值,直到达到最终边界条件。在每次迭代中,将所选的局部区域内的像素将设置为Texture2D上所需的颜色。

(3)对所述步骤16.1中左上角坐标点x1,y1,右下角坐标点x2,y2进行坐标转换,得到矩形的四个向量坐标,在四个向量之间依次使用Unity Vector2.Lerp进行插值绘制线条,从而绘制一个完全连接的矩形。

步骤16.3:创建具有类和置信度值的标签。在左上角坐标点对应的世界坐标处实例化预制件,并通过画布缩放比例将像素坐标转到本地相机坐标,同时设置边界框组件的标签和颜色。然后根据所述步骤15.5中的标签和置信度更新边界框组件的文本信息。

步骤17:搭建UI界面,对识别结果进行拾取,并更新UI界面的内容。

根据所述步骤15.5中的标签信息检索装配零件物料库,获取当前检测零部件的相关信息,并将其更新显示到HoloLens 2的全息端。

装配零件物料库构建过程如下:针对固体火箭发动机装配工序复杂,装配零部件繁多且以手工装配为主的情况,结合虚拟现实平台的零件识别与培训系统的数字化要求,从而构建零部件物料库。1.使用Solidworks对装配零部件及辅助工装进行物理建模,所述物理模型主要考虑装配尺寸、装配公差带、配合精度及工装拆卸的方式,并通过3dmax转换为fbx格式,为后续三维可视化表达提供可用的、有效的物理模型。2.根据装配工序文件,将原有程序性工序流程通过视听触等多感知融合进行可视化表达,具体包括装配动画、文字信息和语音提示,从而建立三维工艺指令库。3.对所构建的物理模型和工艺指令库进行分类和整合,搭建装配零件物料库,主要包括零件属性信息、装配引导、关联零部件三部分,为现场零部件识别后的信息检索提供了数据支撑。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术分类

06120115628864