Python 高级图像处理
构建图像搜索引擎并不是一件容易的任务。这里有几个概念、工具、想法和技术需要实现。主要的图像处理概念之一是 逆图像查询 ( reverse image querying ) (RIQ)。Google、Cloudera、Sumo Logic 和 Birst 等公司在使用逆图像搜索中名列前茅。通过分析图像和使用数据挖掘 RIQ 提供了很好的洞察分析能力。
顶级公司与逆图像搜索
有很多顶级的技术公司使用 RIQ 来取得了不错的收益。例如:在 2014 年 Pinterest 第一次带来了视觉搜索。随后在 2015 年发布了一份白皮书,披露了其架构。逆图像搜索让 Pinterest 获得了时尚品的视觉特征,并可以显示相似产品的推荐。
众所周知,谷歌图片使用逆图像搜索允许用户上传一张图片然后搜索相关联的图片。通过使用先进的算法对提交的图片进行分析和数学建模,然后和谷歌数据库中无数的其他图片进行比较得到相似的结果。
这是 OpenCV 2.4.9 特征比较报告一个图表:
算法 & Python库
在我们使用它工作之前,让我们过一遍构建图像搜索引擎的 Python 库的主要元素:
专利算法
尺度不变特征变换 ( Scale-Invariant Feature Transform ) (SIFT)算法
加速鲁棒特征 ( Speeded Up Robust Features ) (SURF)算法
开源算法
KAZE 算法
加速的 KAZE ( Accelerated-KAZE ) (AKAZE) 算法
二进制鲁棒性不变尺度可变关键点 ( Binary Robust Invariant Scalable Keypoints ) (BRISK)算法
快速视网膜关键点 ( Fast Retina Keypoint ) (FREAK)
定向 FAST 和旋转 BRIEF ( Oriented FAST and Rotated BRIEF ) (ORB)
Python库
OpenCV
Python 图像库 (PIL)
详细的数据和图表,请看这里的 OpenCV 2.4.9 特征比较报告。
构建图像搜索引擎
图像搜索引擎可以从预置的图像库选择相似的图像。其中最受欢迎的是谷歌的著名的图像搜索引擎。对于初学者来说,有不同的方法来建立这样的系统。提几个如下:
我们的方法基本上从比较灰度版本的图像,逐渐演变到复杂的特征匹配算法如 SIFT 和 SURF,最后采用的是开源的解决方案 BRISK 。所有这些算法都提供了有效的结果,但在性能和延迟有细微变化。建立在这些算法上的引擎有许多应用,如分析流行统计的图形数据,在图形内容中识别对象,等等。
举例:一个 IT 公司为其客户建立了一个图像搜索引擎。因此,如果如果搜索一个品牌的标志图像,所有相关的品牌形象也应该显示在搜索结果。所得到的结果也能够被客户用于分析,使他们能够根据地理位置估计品牌知名度。但它还比较年轻,RIQ(反向图像搜索)的潜力尚未被完全挖掘利用。
这就结束了我们的文章,使用 Python 构建图像搜索引擎。浏览我们的博客部分来查看最新的编程技术。
数据来源:OpenCV 2.4.9 特征比较报告(computer-vision-talks.com)
(感谢 Ananthu Nair 的指导与补充)
via: http://www.cuelogic.com/blog/advanced-image-processing-with-python/
作者:Snehith Kumbla 译者:Johnny-Liao 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出