初探图像识别与自动生成模型
你好,这里是牛侃BIM。
3月份在牛侃群里也有朋友介绍了CAD图纸中只有线没有图层区分的图纸通过机器学习自动将cad图纸转化为模型。
其实这里绕不开的一个东西就是图像识别,今天简单介绍一个通过Dynamo和Aforge结合的图像识别的例子,演示视频如下:
Aforge是一个强大的库,它提供了从图像处理到人工智能的一系列功能。我们将在AForge中引用图像处理类,下面进行一些简单的图像处理练习。
需要准备的软件:
➤Revit&dynamo(版本我们自己匹配)。
➤下载安装Aforge(下载链接见评论区置顶)
安装Aforge,双击安装文件.exe即可,之后导入AForge.Imaging.dll(文件目录在C:\ Program Files(x86)\ Aforge.NET \ Framework \ Release ,找到我们要的dll点击打开即可,我们可以看到安装AForge之后有很多的dll文件,我们本案例中只要这一个dll文件),之后便可在Dynamo界面的左侧看到AForge,并可以使用其中的节点。
案例介绍,我们将介绍的是边缘检测:
打开案例文件中的01-EdgeDetection.dyn
1.导入图像
2.将Grayscale.Grayscale节点添加到画布。这是一个AForge滤镜,可将灰度滤镜应用于图像。再使用IFilter.Apply。将图像分别连接到图像输入和灰度。将灰度连接到iFilter输入,可以看到如下的图像。
3.我们使用另外一个滤镜节点SobelEdgeDetector.SobelEdgeDetector,可以看到原图像的边缘突出显示出来了。
4.去网上随便找一张图片测试一下如下(有点PS那个味儿了):
案例介绍,我们将介绍的简单的创建矩形。
接下来开始第一个案例(案例文件见评论区置顶,文件名称ZeroTouchImages.zip)
介绍如何使用图像驱动Dynamo中的几何图形,打开案例文件中的
02-RectangleCreation.dyn
1.使用“文件路径”节点,找到练习文件夹中的图像文件,并显示出图像
2.接下来我们要将上图中的方块通过图像识别转化为Dynamo图形,使用了一个Python节点,使用此代码处理导入的图像。
3.连接到BlobCounterBase.GetObjectRectangles,从像素空间中提取矩形。
4.过滤筛选矩形如下:
5.数据处理获取到矩形的位置以及长宽数据,方便我们在Dynamo中创建图形。
6.接下来就是创建矩形,这里不细说,参照下图:
7.前面视频中我使用ppt创建图片并导出不断覆盖源文件,将ppt中创建的图像及时转化到Dynamo中。
总结与思考:本文只介绍了Aorge最简单的几个功能,是否可以使用电脑连接画板,通过绘制图形,通过图像识别,提取关键数据,再使用dynamo将这些数据转化为Revit中的模型?有兴趣的朋友可以对Aforge深入研究,欢迎交流探讨!
文章完……
注:图片仅供交流学习使用,严禁用于商业用途。
牛侃BIM投稿通道正式开启,关于这个行业,你想知道的的或是你们想说的都可以告诉我们,我们将一起进行创作,把最真诚的内容推送给大家。欢迎小伙伴扫描下方的二维码投稿。