精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。锐英源软件对经典开源项目有大量翻译,翻译内容技术层次较高,对初学者有深究意义。有幸浏览到的朋友请关注头条号,可以获取最新更新。English
原文链接在:https://www.codeproject.com/Articles/5284219/Deep-Learning-in-Csharp-Coin-Detection-Using-OpenC,本文加上了一些代码使用细节图片,致谢原作者。锐英源软件在人工智能机器学习方面经验丰富,欢迎合作。
本系列随附的代码将使用 Keras.NET 在 C# 中实现,在本系列的最后一篇文章中,我们将简要使用 ML.NET。在所有选项中,为什么要使用 Keras.NET?Keras.NET 非常容易学习,因为它基本上是从用 Python 编写的经典 TensorFlow 到 C# 的直接映射。它使不熟悉机器学习的读者更容易理解该示例,而不是在其他替代方案中创建该示例。
硬币检测过程分为三个阶段:
首先,让我们在 Visual Studio Community 2019 中创建一个 .NET Framework 4.7.2 控制台应用程序。我们将我们的解决方案和项目命名为“CoinRecognitionExample”,并在其中创建一个类为 的检测文件夹CoinDetector。
我们将使用 OpenCVSharp,因此我们可以继续从 Visual Studio 中的 Nuget 包管理器安装依赖项。为此,请转到“工具” >“ Nuget 包管理器”。
我们可以看到我们需要安装的关于 OpenCVSharp 的依赖项。注:下面是我研究代码时添加内容,非作者原稿。
VS提示要还原,进行还原。
还原进行中。
还原后库下载完了,在右侧项目窗口里选择上项目,不选择也可以。
这时候看VS引用还是带感叹号,好像是有错,右侧也是红线,其实没问题,可以编译。
编译后执行有错,发现作者少提供文件了。
注:回到原稿。
实际的识别在CoinDetector类中实现:
在类的构造函数中,我们接收到硬币图像的路径。这个和ImagePreprocessing方法是CoinDetector该类仅有的两个公共实体。所有其他方法都是私有的,并且与上面列出的三个阶段相关。
在该ImageProcessing方法中,我们保存图像的原始 Mat(像素矩阵)对象,并为将要发生的变换制作一个副本。Mat 类和对 Cv2 类的所有调用都来自 OpenCVSharp。每次转换后,我们都会调用new Window以直观地显示转换。
的参数Cv2.HoughCircles取决于您面临的问题,即正在处理的图像。代码中显示的参数是适合我们示例的参数。
为了完成硬币检测示例,我们可以在控制台应用程序项目的 main 方法中添加以下几行并执行。
这是我们将用于测试的图像。它包含塞尔维亚第纳尔硬币等:
最终结果将是我们之前看到的图像:。
正如我们所看到的,在与霍夫变换相对应的中央和最终窗口中的白色圆圈内检测到硬币。
本系列的第一篇文章到此结束。在接下来的文章中,我们将一个进行预处理的数据集被输入到机器学习模型
Nuget 包管理功能非常方便,深度学习底层是用Keras的Sequential,指导特征,训练,评估,然后进行预测。过程简单,但看懂代码要懂些算法。
The code that accompanies this series will be implemented in C# using Keras.NET, and in the last article of the series we will briefly use ML.NET. Out of all the options, why use Keras.NET? Keras.NET is very easy to learn, since it is basically a direct mapping from the classic TensorFlow written in Python into C#. It makes the example much easier for readers unfamiliar with machine learning to follow than if it were created in one of the other alternatives.
The coin detection process is divided into three stages:
To get started, let’s create a .NET Framework 4.7.2 Console Application in Visual Studio Community 2019. We’ll name our solution and project "CoinRecognitionExample" and create a Detection folder in it with the class CoinDetector.
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:A、郑州市芯互联大厦北楼1803A(文化路优胜北路西北角),B、郑州大学北校区院内