当前位置: 首页 > 科技观察

Python中的高级图像处理

时间:2023-03-12 02:33:39 科技观察

构建图像搜索引擎并非易事。这里有几个要实施的概念、工具、想法和技术。图像处理的主要概念之一是反向图像查询(RIQ)。谷歌、Cloudera、SumoLogic和Birst等公司在使用逆向图像搜索方面表现最佳。RIQ通过分析图像和使用数据挖掘提供了深刻的见解。顶级公司和逆向图像搜索有许多顶级技术公司使用RIQ来赚钱。示例:2014年,Pinterest首次带来了视觉搜索。2015年发布了一份白皮书,揭示了其架构。逆向图像搜索让Pinterest能够捕捉时尚物品的视觉特征,并可以为类似产品提供推荐。众所周知,GoogleImages使用反向图片搜索让用户上传图片,然后搜索相关图片。提交的图像使用高级算法进行分析和数学建模,然后与谷歌数据库中的无数其他图像进行比较以获得相似的结果。这是OpenCV2.4.9功能比较报告的图表:算法和Python库在我们使用它之前,让我们先了解一下构建图像搜索引擎的Python库的主要元素:专利算法Scale-InvariantFeatureTransform的(SIFT)算法是一项具有非自由功能的专利技术,它使用图像标识符来识别相似的图像,即使是来自不同角度、大小、深度和比例的图像,以包含在搜索结果中。单击此处查看SIFT详细视频。SIFT正确地将搜索条件与从许多图像中提取的特征的大型数据库相匹配。能够从不同的视角匹配同一张图像并匹配不变的特征来获得搜索结果是SIFT的另一个特点。了解有关尺度不变键的更多信息。SpeededUpRobustFeatures(SURF)算法SURF也是一项非自由函数的专利技术,也是SIFT的“加速”版本。与SIFT不同,SURF接近GaussianwithBoxFilter的GaussianLaplacian。SURF取决于Hessian矩阵的位置和规模。在许多应用程序中,旋转不变性不是必需的,因此不朝这个方向看可以加快处理速度。SURF包括几个提高每一步速度的功能。SIFT在旋转和模糊方面做得很好,比SIFT快三倍。然而,它不擅长处理光照和改变视点。OpenCV程序函数库提供了SURF函数,SURF.compute()和SURF.Detect()可以用来寻找描述符和点。要阅读有关SURF的更多信息,请单击此处开源算法KAZE算法KAZE是一种开源算法,用于非线性尺度空间中的2D多尺度和新特征检测和描述。加性运算符分裂(AOS)和可变电导扩散中的有效技术用于构建非线性尺度空间。多尺度图像处理的基本原理很简单:创建图像的尺度空间,同时用正确的函数对原始图像进行滤波,以提高时间或尺度。AcceleratedKAZEAaccelerated-KAZE(AKAZE)Algorithm顾名思义,这是一种更快的搜索图像的方法,可以在两个图像之间找到匹配的关键点。AKAZE使用二进制描述符和非线性尺度空间来平衡准确性和速度。BinaryRobustInvariantScalableKeypoints(BRISK)算法BRISK非常适用于关键点的描述、检测和匹配。是一种基于尺度空间FAST快速检测器和有助于显着加快搜索速度的位串描述符的高度自适应算法。尺度空间关键点检测和关键点描述有助于优化当前相关任务的性能。FastRetinaKeypointFastRetinaKeypoint(FREAK)这种新的关键点描述的灵感来自于人眼。可以通过图像强度比有效地计算二进制字符串连接。与BRISK、SURF和SIFT算法相比,FREAK算法的计算速度更快,内存负载更低。OrientedFASTandRotatedBRIEFOrientedFASTandRotatedBRIEF(ORB)快速二进制描述符,ORB具有抗噪声和旋转不变性。ORB建立在具有低成本、高性能元素属性的FAST关键点检测器和BRIEF描述符之上。除了组件的快速精确定位之外,ORB的另一个特点是高效计算orientedBRIEFs,分析与orientedBRIEF特征的变化和相关性。PythonlibraryOpenCVOpenCV支持学术和商业使用,它是一个开源的机器学习和计算机视觉库,OpenCV易于组织使用和修改代码。超过2500种优化算法,包括最先进的机器学习和计算机视觉算法服务和各种图像搜索——人脸检测、物体识别、相机目标跟踪、从图像数据库中寻找相似图像、眼球运动跟踪、风景识别等。大公司谷歌、IBM、雅虎、索尼、本田、微软和英特尔等公司广泛使用OpenCV。OpenCV有python、java、C、C++和MATLAB接口,支持Windows、Linux、MacOS和Android。Python图像库(PIL)Python图像库(PIL)支持多种文件格式,同时提供图像处理和图形解决方案。开源PIL为您的Python解释器添加了图像处理功能。标准图像处理功能包括图像增强、透明度和遮罩、图像过滤、像素处理等。有关详细数据和图表,请参阅此处的OpenCV2.4.9功能比较报告。构建图像搜索引擎图像搜索引擎可以从预先构建的图像库中选择相似的图像。最受欢迎的搜索引擎之一是Google著名的图像搜索引擎。对于初学者来说,有不同的方法来建立这样的系统。下面提到了一些:使用图像提取、图像描述提取、元数据提取和搜索结果提取来构建图像搜索引擎。定义图像描述符、数据集索引、定义相似性度量,然后进行搜索和排名。选择要搜索的图像,选择要搜索的目录,搜索所有图像的目录,创建图像特征索引,评估搜索图像的相同特征,匹配搜索图像并得到匹配图像。我们的方法基本上从比较灰度版本的图像,发展到复杂的特征匹配算法,如SIFT和SURF,最后发展到开源解决方案BRISK。所有这些算法都提供了高效的结果,但性能和延迟略有不同。基于这些算法构建的引擎有很多应用,例如分析图形数据以获得流行的统计数据、识别图形内容中的对象等等。示例:一家IT公司为其客户构建了一个图像搜索引擎。因此,如果搜索一个品牌的标志图片,所有相关的品牌图片也应该出现在搜索结果中。获得的结果也可用于客户分析,使他们能够按地理位置估计品牌知名度。但它还相对年轻,RIQ(反向图像搜索)的潜力尚未得到充分开发。我们的文章“使用Python构建图像搜索引擎”到此结束。浏览我们的博客部分以查看最新的编程技术。