网站免费观看WordPress多域名无法登录
2026/4/17 13:03:27 网站建设 项目流程
网站免费观看,WordPress多域名无法登录,深圳品牌策划机构,wordpress自定义搜索文件综述 2012年iOS应用商店中发布了一个名为FuelMate的Gas跟踪应用。小伙伴们可以使用该应用程序跟踪汽油行驶里程#xff0c;以及有一些有趣的功能#xff0c;例如Apple Watch应用程序、vin.li集成以及基于趋势mpg的视觉效果。 燃料伴侣 对此我们有一个新想法#xff0c;该如…综述2012年iOS应用商店中发布了一个名为FuelMate的Gas跟踪应用。小伙伴们可以使用该应用程序跟踪汽油行驶里程以及有一些有趣的功能例如Apple Watch应用程序、vin.li集成以及基于趋势mpg的视觉效果。燃料伴侣对此我们有一个新想法该如何添加一个功能帮助我们在泵中扫描燃油并在应用程序中输入燃油信息让我们深入研究如何实现这一目标。代码资料获取代码链接https://github.com/kazmiekr/GasPumpOCR除了本项目我还整理了30CV实战项目以及OpenCV学习资料包还有计算机视觉入门到实战800G人工智能资源全都无偿分享给大家需要的兄弟可以按照这个图的方式免费获取技术对于这个项目的我们首先应该编写一个简单的Python应用程序以拍摄汽油泵的图像然后尝试从中读取数字。OpenCV是用于计算机视觉应用程序的流行的跨平台库。它包括各种图像处理实用程序以及某些机器学习功能。除此之外我们希望可以先使用Python对其进行原型设计然后将处理代码转换为C 以在iOS应用程序上运行。目标我们首先要考虑以下两个问题1.我们可以从图像中分离出数字吗2.我们可以确定图像代表哪个数字吗数字分割如何确定图像中的数字有多种方法但是我提出了使用简单的图像阈值法来尝试查找数字的方法。图像阈值化的基本思想是将图像转换为灰度然后说灰度值小于某个常数的任何像素则该像素为一个值否则为另一个。最后您得到的二进制图像只有两种颜色在大多数情况下只是黑白图像。这个概念在OCR应用中非常有效但是主要问题是决定对该阈值使用什么。我们可以选择一些常量也可以使用OpenCV选择其他一些选项。我们可以使用自适应阈值而不是使用常数这将使用图像的较小部分并确定要使用的不同阈值。这在具有不同照明情况的应用中特别有用特别是在扫描气泵中。将图像设置为阈值后可以使用OpenCV的findContours方法查找图像中连接了白色像素部分的区域。绘制轮廓后便可以裁剪出这些区域并确定它们是否可能是数字以及它是什么数字。基本图像处理流程这是我在测试图像处理中使用的原始图像。它有一些眩光点但是图像相当干净。让我们逐步完成获取此源图像的过程并尝试将其分解为单个数字。原始图片影像准备在开始图像处理流程之前我们决定先调整一些图像属性然后再继续。这有点试验和错误但注意到当我们调整图像的曝光度时可以获得更好的结果。下面是使用Python调整后的图像相当于曝光阿尔法的图像cv::Mat::convertTo这是刚刚在图像垫乘法操作cv2.multiply(some_img, np.array([some_alpha])调整曝光灰阶将图像转换为灰度。转换为灰度模糊模糊图像以减少噪点。我们尝试了许多不同的模糊选项但仅用轻微的模糊就找到了最佳结果。稍微模糊阈值图像转换为黑白图像在下图中使用cv2.adaptiveThreshold带有cv2.ADAPTIVE_THRES_GAUSSIAN_C选项的方法。此方法采用两个参数块大小和要调整的常数。确定这两者需要一些试验和错误更多有关优化部分的内容。阈值为黑/白填补空白由于大多数燃油泵都使用某种7段LCD显示屏因此数字中存在一些细微的间隙无法使用轮廓绘制方法因此我们需要使这些段看起来相连。在这种情况下我们将转到erode图像来弥补这些差距。由于大家可能希望使用所以这似乎向后看dilate但是这些方法通常适用于图像的白色部分。在我们的案例中我们正在“侵蚀”白色背景以使数字看起来更大。侵蚀出来的数字反转图像在尝试在图像中查找轮廓之前我们需要反转颜色因为该findContours方法将找到白色的连接部分而当前的数字是黑色。颜色反转在图像上找到轮廓下图显示了我们的原始图像该图像在上图的每个轮廓上都有包围框。大家可以看到它找到了数字但也找到了一堆不是数字的东西因此我们需要将它们过滤掉。红色框显示所有找到的轮廓轮廓过滤1.现在我们有了许多轮廓我们需要找出我们关心的轮廓。浏览了一堆气泵的显示和场景后使用一套适用于轮廓的快速规则。2.收集所有我们将分类为潜在小数的正方形轮廓。3.扔掉任何不是正方形或高矩形的东西。4.使轮廓与某些长宽比匹配。LCD显示屏中的十个数字中有九个数字的长宽比类似于下面的蓝色框高光之一。该规则的例外是数字“ 1”其长宽比略有不同。通过使用一些样本轮廓我将0–91方面确定为0.6将1方面确定为0.3。它将使用这些比率和/-缓冲区来确定轮廓是否是我们想要的东西并收集这些轮廓。5.对潜在数字应用一组附加规则在这里我们将确定轮廓边界是否偏离所有其他潜在数字的平均高度或垂直位置。由于数字的大小应相同并且在相同的Y上对齐因此我们可以丢弃它认为是数字的任何轮廓但不能像其他轮廓那样将其对齐和调整大小。蓝色矩形显示我们的数字/十进制红色被忽略预测有两个等高线轮廓一个带潜在位数一个带潜在小数位我们可以使用这些轮廓边界裁剪图像并将其输入经过训练的系统中以预测其值。有关此过程的更多信息请参见“数字培训”部分。查找小数在图像中查找小数点是要解决的另一个问题。由于它很小有时会连接到它旁边的手指因此使用我们在手指上使用的方法来确定它似乎有问题。当我们过滤轮廓时我们收集了可能是十进制的正方形轮廓。从上一步获得经过验证的数字轮廓之后我们将找到数字的最左x位置和最右x位置以确定我们期望的小数位数。然后我们将遍历那些潜在的小数确定它是否在该空间以及该空间的下半部分并将其分类为小数。找到小数点后我们可以将其插入到我们上面预测的数字字符串中。只在黄色部分中查找小数数字训练在机器学习的世界中解决OCR问题是一个分类问题。我们建立了一组训练有素的数据例如图像处理中的数字将它们分类为某种东西然后使用该数据来匹配任何新图像。一旦基本的图像隔离功能开始工作我就创建了一个脚本该脚本可以遍历图像文件夹运行数字隔离代码然后将裁剪的数字保存到新文件夹中供我查看。运行完之后我会有一个未经训练的数字文件夹然后可以用来训练系统。由于OpenCV已经包含了k近邻k-NN实现因此无需引入任何其他库。为了进行训练我们浏览了数字作物的文件夹然后将其放入标有0–9的新文件夹中因此每个文件夹中都有一个数字的不同版本的集合。我们没有大量的这些图像但是有足够的证据来证明这是可行的。由于这些数字是相当标准的我认为我不需要大量训练有素的图像就可以相当准确。k-NN工作原理的基础是我们将以黑白方式加载每个图像将该图像存储在每个像素处于打开或关闭状态的数组中然后将这些打开/关闭像素与特定的数字相关联。然后当我们要预测一个新图像时它将找出哪个训练图像与这些像素最匹配然后向我们返回最接近的值。整理好数字后将创建一个新的脚本该脚本将遍历这些文件夹获取每个图像并将该图像与数字关联。到目前为止在大多数代码中一般的图像处理概念在Python和C 中都应用相同但是在这里会有细微的差别。在大多数此类应用程序的Python示例中分类被写入两个文件一个包含分类另一个包含该分类的图像内容。通常使用NumPy和标准文本文件完成此操作。但是由于我想在iOS应用程序上重用该系统因此我需要想出一种可以拥有跨平台分类文件的方式。当时我什么都找不到因此最终编写了一个快速实用程序该实用程序将从Python中获取分类数据并将其序列化为JSON文件我可以在OpenCV的FileStorage系统的C 端使用它。这不漂亮但是我写了一个简单的MatPython中的序列化方法它将为OpenCV创建合适的结构以在iOS端读取。现在当我训练数字时我将获得NumPy文件供我的Python测试使用然后获取一个JSON文档我可以将其拖到我的iOS应用程序中。您可以在此处看到该代码。优化一旦确定了数字隔离和预测的两个目标就需要对算法进行优化以预测泵的新图像上的数字。在优化的初始阶段创建了一个简单的Playground应用程序其中使用了OpenCV提供的一些简单的UI组件。使用这些组件可以创建一些简单的轨迹栏以左右滑动并更改不同的值并重新处理图像。围绕该cv2.imshow方法创建了一个小包装程序该方法可以平铺显示的窗口因为我讨厌总是重新放置它们尝试不同的变量我们可以加载不同的图像并在图像处理中尝试变量的不同变化并确定最佳的组合。自动化在每个图像上测试不同的变量是上手的好方法但是我们想要一种更好的方法来验证是否更改了一个图像的变量是否会对其他任何图像产生影响。为此我们想出了针对这些图像进行一些自动化测试的系统。我拍摄了每个测试图像并将它们放在文件夹中。然后我用图像中期望的数字来命名每个文件并用小数点“ A”表示。应用程序可以加载该目录中的每个图像并预测数字然后将其与文件名中的数字进行比较以确定是否匹配。这使我们可以针对所有不同的图像快速尝试更改。自动测试输出更进一步我创建了此脚本的不同版本该脚本将尝试对这组图像进行模糊阈值等变量的几乎每种组合并找出最优化的变量集将具有最佳的性能。准确性。该脚本在计算机上花费了相当长的时间才能运行大约需要7个小时但是最后提出了一组不同的变量这些变量在我们手动测试时找不到。结论这是否是任何人实际上都会使用的功能尚待确定但这在实现某些机器学习概念和使用OpenCV方面是一个有趣的练习。到目前为止在我们的测试中应用程序最大的问题是泵显示屏上的眩光。根据泵上的照明和手机的角度可能会导致某些扫描失效。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询