博舍

机器视觉用什么语言开发 人工智能用什么编程语言

机器视觉用什么语言开发

机器视觉用什么语言开发

目前可以开发机器视觉的相关计算机语言有C++,C#,JAVA,PYTHON等,甚至简单的PHP和JAVASCRIPT也可以开发相关的功能。

机器视觉需要用到图像处理库,有很多免费且开源的第三方图像库可以用,如十分著名的OpenCV,有C++,JAVA,PYTHON的版本,它包含了很多现成的函数,可以处理图像的形状,颜色,大小,图像文件保存,找相似图像,物体边缘(Cannyedge)算法。

机器视觉的另一个方向是神经网络深度学习算法。这里面有代表性的是谷歌的TensorFlow,具有很强大的机器视觉能力。

文字识别方面的代表有谷歌的Tesseract,这也是开源项目。

机器视觉用什么硬件

一个典型的机器视觉系统包括以下五大块:

1.照明

照明是影响机器视觉系统输入的重要因素,它直接影响输入数据的质量和应用效果。由于没有通用的机器视觉光源照明设备,所以针对每个特定的应用实例,要选择相应的照明装置,以达到最佳效果。光源可分为可见光和不可见光。常用的几种可见光源是白帜灯、日光灯、水银灯和钠光灯。可见光的缺点是光能不能保持稳定。如何使光能在一定的程度上保持稳定,是实用化过程中急需要解决的问题。另一方面,环境光有可能影响图像的质量,所以可采用加防护屏的方法来减少环境光的影响。照明系统按其照射方法可分为:背向照明、前向照明、结构光和频闪光照明等。其中,背向照明是被测物放在光源和摄像机之间,它的优点是能获得高对比度的图像。前向照明是光源和摄像机位于被测物的同侧,这种方式便于安装。结构光照明是将光栅或线光源等投射到被测物上,根据它们产生的畸变,解调出被测物的三维信息。频闪光照明是将高频率的光脉冲照射到物体上,摄像机拍摄要求与光源同步。

2.工业镜头

FOV(FieldOfVision)=所需分辨率*亚象素*相机尺寸/PRTM(零件测量公差比)镜头选择应注意:①焦距②目标高度③影像高度④放大倍数⑤影像至目标的距离⑥中心点/节点⑦畸变

3.相机

按照不同标准可分为:标准分辨率数字相机和模拟相机等。要根据不同的实际应用场合选不同的相机和高分辨率相机:线扫描CCD和面阵CCD;单色相机和彩色相机。

4.图像采集卡

图像采集卡只是完整的机器视觉系统的一个部件,但是它扮演一个非常重要的角色。图像采集卡直接决定了摄像头的接口:黑白、彩色、模拟、数字等等。

比较典型的是PCI或AGP兼容的捕获卡,可以将图像迅速地传送到计算机存储器进行处理。有些采集卡有内置的多路开关。例如,可以连接8个不同的摄像机,然后告诉采集卡采用那一个相机抓拍到的信息。有些采集卡有内置的数字输入以触发采集卡进行捕捉,当采集卡抓拍图像时数字输出口就触发闸门。

目前,千兆网口工业相机逐步成为主流,图像采集卡一般采用视觉专用的千兆网卡。

5.视觉处理器

视觉处理器集采集卡与处理器于一体。以往计算机速度较慢时,采用视觉处理器加快视觉处理任务。现在由于采集卡可以快速传输图像到存储器,而且计算机也快多了,所以现在视觉处理器用的较少了。

更多精彩阅读:机器视觉是什么意思_机器视觉应用案例机器视觉的任务_机器视觉的基本工作过程是怎样的机器视觉自学需要学什么_学机器视觉好找工作吗

人工智能ai用什么编程语言

人工智能ai用什么编程语言

AI(人工智能)为应用程序开发人员开辟了无限的可能性。通过利用机器学习或深度学习,您可以产生更好的用户配置文件,个性化设置和推荐,或者合并更智能的搜索,语音界面或智能帮助,或以其他多种方式改进您的应用程序。您甚至可以构建可以看到,听到和应对意外情况的应用程序。

您应该学习哪种编程语言来深入了解AI?当然,您需要一门具有许多良好的机器学习和深度学习库的语言。它还应具有良好的运行时性能,良好的工具支持,大量的程序员社区以及健康的支持包生态系统。这是一长串的要求,但是仍然有很多不错的选择。

[也在InfoWorld上:人工智能,机器学习和深度学习:您需要知道的一切]

以下是我精选的六种用于AI开发的最佳编程语言,以及两个荣誉称号。这些语言中的一些正在上升,而另一些正在下滑。还有其他一些您只需要知道您是否对历史深度学习架构和应用感兴趣。让我们看看它们如何堆叠。

Python

排名第一的仍然是Python。真的,还有什么可能呢?尽管关于Python的事情令人发疯,但如果您从事AI工作,几乎可以肯定的是,您将在某个时候使用Python。而且一些粗糙的斑点已经稍微平滑了。

随着2020年的到来,Python2.x和Python3.x的争论变得越来越重要,因为几乎每个主要的库都支持Python3.x,并且会尽可能地放弃对Python2.x的支持。换句话说,您终于可以认真使用所有新的语言功能。

尽管仍然存在Python的打包梦night(其中每个解决方案都以略有不同的方式打破),但您可以在大约95%的时间内使用Anaconda,而不必担心太多事情。不过,如果Python世界能够一劳永逸地解决这个长期存在的问题,那将是很好的。

也就是说,Python中可用的数学和统计信息库在其他语言中几乎是无与伦比的。NumPy已经变得无处不在,几乎成为张量操作的标准API,而Pandas将R强大而灵活的数据帧引入Python。对于自然语言处理(NLP),您拥有着名的NLTK和超快的SpaCy。对于机器学习,有经过实践检验的Scikit-learn。而且,当涉及到深学习,目前所有的库(的TensorFlow,PyTorch,Chainer,阿帕奇MXNet,Theano等)是有效的Python的第一个项目。

如果您正在阅读关于arXiv的前沿深度学习研究,那么您会发现大多数提供源代码的研究都是使用Python进行的。然后是Python生态系统的其他部分。尽管IPython成为JupyterNotebook,而不再以Python为中心,但您仍然会发现大多数JupyterNotebook用户和大多数在线共享的笔记本都使用Python。至于部署模型,诸如SeldonCore之类的微服务架构和技术的出现意味着如今在生产环境中部署Python模型非常容易。

[也在InfoWorld上:为什么应该使用Python进行机器学习]

没有解决的办法。Python是AI研究的最前沿语言,是您会找到最多的机器学习和深度学习框架的语言,并且AI世界中几乎每个人都在谈论这种语言。由于这些原因,尽管您的作者每天至少处理一次空白问题,但Python还是AI编程语言中的第一名。

相关视频:机器学习和AI破译

通过围绕机器学习和人工智能的炒作,我们的小组讨论了该技术的定义和含义。

C++

在开发AI应用程序时,C++不太可能是您的首选,但是当您需要从系统中获取性能的最后每一点时-随着深度学习的发展,这种情况变得越来越普遍,您需要在模型上运行资源受限的系统-是时候再次回到可怕的指针世界了。

幸运的是,现代C++可以令人愉快地编写(诚实!)。您可以选择一种方法。您可以使用Nvidia的CUDA之类的库来深入研究堆栈的底部,以编写直接在GPU上运行的自己的代码,也可以使用TensorFlow或PyTorch来访问灵活的高级API。PyTorch和TensorFlow都允许您加载以Python(或PyTorch的TorchScript的Python子集)生成的模型,并在C++运行时中直接运行它们,从而使您更接近裸机进行生产,同时保留了开发的灵活性。

简而言之,随着AI应用程序在从最小的嵌入式系统到庞大的集群的所有设备中激增,C++成为工具包的关键部分。边缘的AI意味着它已经不够精确了。你需要又好又快。

[同样在InfoWorld上:为什么C编程语言仍会统治]

Java和其他JVM语言

JVM语言家族(Java,Scala,Kotlin,Clojure等)仍然是AI应用程序开发的理想选择。无论是自然语言处理(CoreNLP),张量运算(ND4J)还是完整的GPU加速的深度学习堆栈(DL4J),您都可以在管道的所有部分使用大量的库。另外,您可以轻松访问大数据平台,例如ApacheSpark和ApacheHadoop。

Java是大多数企业的通用语言,并且在Java8和更高版本中提供了新的语言构造,因此编写Java代码并不是我们许多人都记得的令人讨厌的经历。用Java编写AI应用程序可能会感到无聊,但可以完成工作-您可以将所有现有的Java基础结构用于开发,部署和监视。

JavaScript

您不太可能只为编写AI应用程序而学习JavaScript,但是Google的TensorFlow.js仍在不断改进,并提供了一种有趣的方式,可将您的Keras和TensorFlow模型部署到浏览器或通过使用WebGL进行GPU加速计算的Node.js部署。

但是,自TensorFlow.js推出以来,我们还没有真正看到的一件事是,大量JavaScript开发人员涌入AI领域。我认为这可能是由于与JavaScript之类的语言相比,周围JavaScript生态系统没有可用库的深度。

此外,在服务器端,使用Node.js部署模型与使用Python选项之一相比并没有太大优势,因此我们可能会发现基于JavaScript的AI应用程序在不久的将来仍将主要基于浏览器。但这仍然创造了许多有趣的有趣机会,例如EmojiScavengerHunt。

Swift

在去年的这篇文章中,我提到Swift是一种值得关注的语言。今年,它进入了我的前六名。发生了什么?SwiftforTensorFlow。TensorFlow的最新功能和最强大功能的完全类型化,无残障的绑定,以及使您可以像刚开始使用Python一样导入Python库的深色魔术。

Fastai团队正在开发其流行库的Swift版本,并且我们承诺通过将许多张量智能移至LLVM编译器,在生成和运行模型方面进行许多进一步的优化。现在可以生产了吗?并非如此,但这确实可以为下一代深度学习开发指明道路,因此您绝对应该研究Swift的发展。

R语言

R排在我们列表的底部,并且呈下降趋势。R是数据科学家喜欢的语言。但是,由于以数据框为中心的方法,其他程序员经常会发现R有点混乱。如果您有一组专门的R开发人员,则可以将与TensorFlow,Keras或H2O的集成用于研究,原型开发和实验,但是由于以下原因,我不建议将R用于生产或绿地开发性能和运营问题。尽管您可以编写可以部署在生产服务器上的高性能R代码,但是几乎可以肯定,采用R原型并用Java或Python重新编码它会更加容易。

[通过InfoWorldDaily新闻通讯了解软件开发,云计算,数据分析和机器学习方面的最新发展]

其他AI编程选项

当然,Python,C++,Java,JavaScript,Swift和R不是唯一可用于AI编程的语言。尽管我不认为这是学习的重中之重,但您可能会发现另外两种编程语言可能有趣或有帮助。

a

几年前,由于Torch框架,Lua在人工智能领域处于很高的地位,Torch框架是满足研究和生产需求的最受欢迎的机器学习库之一。如果您深入研究深度学习模型的历史,则经常会在旧的GitHub存储库中找到对Torch和大量Lua源代码的大量引用。

为此,了解TorchAPI可能会很有用,与PyTorch的基本API相距不远。但是,如果像我们大多数人一样,您真的不需要为您的应用程序做大量的历史研究,则可以不必绕着Lua的小怪癖就可以解决问题。

朱莉亚

Julia是一种专注于数值计算的高性能编程语言,使其非常适合大量数学运算的AI。尽管目前还不流行作为语言选择,但TensorFlow.jl和Mocha(受Caffe影响很大)之类的包装器提供了良好的深度学习支持。如果您不介意相对较小的生态系统,并且想从Julia致力于简化和快速执行高性能计算中受益,那么Julia可能值得一看。

翻译自:https://www.infoworld.com/article/3186599/6-best-programming-languages-for-ai-development.html

人工智能ai用什么编程语言

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇