什么是简单灰度符号的好描述符?

数据挖掘 分类 物体识别
2022-03-01 12:56:12

我需要找到一种从绘图符号中提取关键点的好方法,例如 CAD 图纸中的元素(例如,可以放置在平面图上的浴室的 2D 对象)。

我已经尝试过 openCV/accord 中所有可用的类型(FAST、SURF、Harris、..),但它们都没有给我任何意见。

这些图像是空白和白色的(带有某种灰度),我想在包含其他未知对象/形状的更大图像中找到一组有限符号的位置(无论如何我都不感兴趣)。

基本思想是获取我的符号的描述符并检查目标图像是否包含相似的描述符。

如果我有一个好的描述符方法,那么我可以训练一个分类器来检查输入图像中的所有描述符,这样我也可以知道与识别对象相关的位置。

框架可以是任何偏好 OPENCV、Accord.net、tensorflow

2个回答

如果您可以使用 Photoshop 快速查看并获取有关灰色阴影的信息并放大对象并计算像素图案。

您将能够围绕颜色 0-255 以 8 位灰度构建算法,并根据您计算的像素数为每个符号创建一个简单的矩阵。

 110, 0,   0,   0,   0
 110, 0,   0,   0,   0
 0,  110, 110, 110,  0
 0,   0,   110, 110, 0
 0,   0,   110, 110, 0  

您可以看到从矩阵中出现的形状......这就是您训练的内容,但是您可以通过让脚本逐像素读取并创建矩阵来做到这一点。

这将是黑色 (0) 形状上的灰色 (110)。如果你只有几个,你可以进入 Photoshop 并以精确的形状剪下符号,然后将形状输入你的模型并训练它寻找特定的颜色和形状。

您可能需要建立一个方程来放大或缩小它,以便它可以解释在不同大小或具有不同像素深度的文件上使用标识符。

您也可以在 R 或 python 中通过读取文件并本地化该数据来执行此操作,但是将形状准确地作为单独的文件引入会更容易。根据图像进入系统的方式,您可能还需要给模型一些余地,例如从 100 到 120 的黑暗。

如果它们是数字的并且直接从 CAD 中未经修改,这可能是不必要的,但如果它们是在线扫描或抓取的,您将无法获得一致的精确数字颜色深度,并且需要考虑算法中的变化。

对于那种情况,我认为训练像 viola-jones/adaboost 这样的分类器进行分割会导致您可以使用感兴趣的区域。