CN110347868B - 用于图像搜索的方法和系统 - Google Patents
用于图像搜索的方法和系统 Download PDFInfo
- Publication number
- CN110347868B CN110347868B CN201910164954.9A CN201910164954A CN110347868B CN 110347868 B CN110347868 B CN 110347868B CN 201910164954 A CN201910164954 A CN 201910164954A CN 110347868 B CN110347868 B CN 110347868B
- Authority
- CN
- China
- Prior art keywords
- images
- frame
- vectors
- representative frame
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 50
- 239000013598 vector Substances 0.000 claims abstract description 147
- 230000002441 reversible effect Effects 0.000 claims abstract description 36
- 238000013527 convolutional neural network Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 7
- 238000000513 principal component analysis Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000010191 image analysis Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009131 signaling function Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/732—Query formulation
- G06F16/7328—Query by example, e.g. a complete video frame or video sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/732—Query formulation
- G06F16/7335—Graphical querying, e.g. query-by-region, query-by-sketch, query-by-trajectory, GUIs for designating a person/face/object as a query predicate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/20—Linear translation of whole images or parts thereof, e.g. panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biophysics (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种对类似于具有图案的帧的图像进行的实时反向图像搜索,所述实时反向图像搜索使用连接到网络并且可访问数字库的处理器来执行,该数字库存储多个矢量库以及与多个矢量中的每个相关联的相应图像/视频,该实时反向图像搜索包括:计算所述帧中的图案中的每个的表示以形成矢量,所述表示对应于矢量的维度;通过将所述维度的数量减少到约8%以及减少到图像的质量和矢量的大小之间的最大权衡中的一个来减小矢量的大小;在数字库中检测与所述帧的矢量最相似的多个矢量;并且经由网络实时地提供与所选择的多个矢量相关联的图像/视频,其中预先确定所提供的图像和视频的数量。
Description
相关申请的交叉引用
本申请要求2018年4月2日提交的名称为“METHOD AND SYSTEM FOR IMAGESEARCHING”的美国临时申请序列号62/651,304的权益,其通过引用整体并入本文。
技术领域
本发明的系统大体上涉及反向图像搜索,并且具体地涉及在搜索字符串图像的代表帧中使用最小数量的对象维度来形成矢量,以及另外,在代表图像和视频的数字库或数据库中的图像和视频的矢量的聚类的子空间内执行反向图像搜索。
背景技术
通常通过使用被称为“搜索引擎”的计算机程序在因特网上搜索图像和视频。搜索引擎需要输入描述图像的一些关键字以找到与描述有关的结果。例如,响应于所收到的关键字,诸如“苹果”,搜索引擎可以返回水果、苹果以及它可能识别为苹果的任何其他内容(诸如名称为“苹果”的公司的徽标)的图像。
为了搜索图像,一些搜索引擎使用先进的技术。一种这样的技术是“反向图像搜索”。取代了关键字,反向图像搜索接受图像上传以用于搜索类似图像。例如,不是键入单词“苹果”而是上传水果“苹果”的图像,以便找到水果“苹果”的额外图像。
通过图像识别技术的最新发展,这些技术已经得到了增强。增强功能识别静止图像或动态图像的形状、颜色等,确定哪些元素是主焦点,并从图像和视频或数据库的数字库中返回相关的“视觉上相似”的结果。然而,现有技术受限于关键字和图像搜索。因此,希望提供进一步增强和改善反向图像搜索的新技术。
发明内容
提供了对与具有一个或多个图案的代表帧类似的一个或多个图像的实时反向图像搜索,使用处理器来执行该搜索,该处理器连接到网络并且可访问至少一个数字库,该数字库存储多个矢量以及与多个矢量中的每个相关联的相应图像和视频,包括:在连接到网络并且具有至少一个视频摄像机的计算设备上,通过对感兴趣的对象训练至少一个视频摄像机和/或上传一个或多个图像来实时捕获;将所捕获的一个或多个图像中的至少一个确认为用作反向搜索中的输入的代表帧。
在处理器上:为代表帧中的一个或多个图案中的每个计算一个或多个数学表示以形成代表矢量,该一个或多个数学表示对应于矢量的维度;通过将维度的数量减少到约8%以及减少到图像的质量和矢量的大小之间的最大权衡中的一个来减小矢量的大小;在至少一个数字库中检测与代表帧的矢量最相似的多个矢量中的一个或多个;并且经由网络实时提供与所选择的多个矢量中的一个或多个相关联的图像和视频,其中预先确定所提供的图像和视频的数量。
根据本发明的反向图像搜索系统,接收动态图像或视频作为搜索输入。通过将算法加权应用于每个代表帧来确定搜索输入内的代表帧或多个代表帧。此外基于代表帧中包括的图案来确定搜索焦点。此后,执行反向搜索以确定具有类似图案的图像,并且将结果显示在用户设备上。搜索在图像和视频或数据库的数字库中执行。
为了执行搜索,本发明系统的实施方式形成描述代表帧中的对象或图案的搜索矢量。其是代表一组或一系列图像的帧,或视频流中的序列帧。然后,例如通过使用卷积神经网络技术来减小搜索矢量的大小。然后,使用计算的、缩小的搜索矢量来反向搜索对应于与代表帧相似的图像和视频的数字库中的图像或视频的聚类矢量。
对应于数字库中的图像或视频的聚类矢量可以以与搜索矢量相同的方式形成,其通过从卷积神经网络(CNN)提取矢量然后将维度数量减少到约40个维度。发明人通过实验发现,使用CNN减少到40个维度优于主成分分析(PCA),因为使用PCA将维度减少到96个维度以下导致表示质量的显著损失。
基于矢量彼此的接近度或相似性将数字库中的矢量分组成聚类。因此,例如,代表汽车图像的矢量被分组在一起,并且代表卡车图像的矢量被分组在一起。随后,这些聚类实现了增强的图像搜索。
此外,为了避免彻底搜索对应于每个数字库中的所有图像或视频的矢量,对矢量进行聚类以创建可搜索的子空间。在搜索时,可能存在远离其聚类中心的矢量,并且实际上与附近聚类中的矢量具有比中心附近的矢量更多的共同点。因此,本发明的系统对矢量进行重新聚类以创建不同的、更高数量的聚类,这为新聚类创建了不同的中心。
在一个实施方式中,本发明的系统使用处理器来接收一个或多个静止图像和形成预先录制的或现场视频的图像。处理器可以从静止图像和/或视频中选择代表帧,并生成与相应代表帧中的图像对应的搜索矢量。然后可以将生成的搜索矢量与对应于其他图像的其他先前计算的和聚类的矢量进行比较,并存储在一个或多个数字库或数据库中。该比较(也称为搜索)可以返回代表在视觉上相似于所选择的代表帧的图像的矢量。
在本发明的系统的另一实施方式中,在生成搜索矢量之前,可以编辑代表帧。首先,分析代表帧以确定或识别对象或图案。然后,可以删除识别的对象或图案,并且可以将附加的、先前不存在的对象或图案添加到代表图像。在编辑完成之后,生成对应于代表帧的矢量。
如上所述,根据本发明的系统,静止和动态图像或视频可用于选择代表帧以便形成对应的矢量。这允许使用例如直接从视频摄像机捕获的现场视频流来实时地执行反向图像搜索。另外,本发明的系统提供的编辑能力使得能够增强和校正失焦的图像的部分。
本发明的系统包括从一个或多个图像中的至少一个中确认代表帧和代表帧中的一个或多个图案;计算对应于代表帧的一个或多个图案中的每个的矢量,其中代表帧中的图案由数学表示(例如,具有减小的大小的矢量)代表。
根据对下面描述的实施方式的讨论,这些和其他优点将是显而易见的。前述内容是简化的概述,用于提供对本发明系统的一些实施方式的理解。该概述不是对本发明的系统及其各种实施方式的公开的广泛或详尽的总结。该概述以简化的形式呈现了本发明的系统的实施方式所选择的概念,作为对以下更详细描述的介绍。如将理解的,本公开的其他实施方式可以单独地或组合地利用以上阐述的或下面详细描述的特征中的一个或多个。
附图说明
考虑到以下对本发明的实施方式的详细描述,特别是当结合随附附图时,本发明的系统的上述和其它特征和优点将变得显而易见,其中在各个附图中使用相同的参考标记来指定相同的组件,并且其中:
图1是根据本发明的系统的优选实施方式的用于执行反向图像搜索的系统的示意图;
图2是根据本发明的系统的优选实施方式的形成代表帧或图像的图案信息的矢量以及构建相应图像的图案信息的矢量的数字库或数据库的方法的流程图;
图3A和图3B是示出根据本发明的系统的优选实施方式的用于形成矢量的卷积神经网络(CNN)过程的序列;
图4是根据本发明的系统的优选实施方式的示例性图像及其矢量;
图5是根据本发明的系统的优选实施方式的将图4的初始矢量减小为输出矢量的示例;
图6A是图像矢量分布的示例的2-维和3-维表示;
图6B是示出根据本发明的系统的优选实施方式的图像的矢量的聚类的示意图;
图7是根据本发明的系统的优选实施方式的矢量的分布、它们的聚类、通过使用不同数量的聚类对矢量进行重新聚类而校正“边缘问题”的图示说明;
图8A-图8C是根据本发明的系统的优选实施方式的对应于图7中示出的示例性聚类中的矢量的图像的示例;
图9是示出了根据本发明的系统的优选实施方式的用于从视频中选择一个或多个代表帧的方法的步骤的流程图;
图10是示出根据本发明的系统的优选实施方式的用于执行反向图像搜索的方法的步骤的流程图;
图11是根据本发明的系统的优选实施方式的用于执行反向图像搜索的方法的用户界面的屏幕截图;
图12A-图12C是根据本发明的系统的优选实施方式的用于根据视频执行反向图像搜索的方法的用户界面(包括结果)的屏幕截图;
图13是根据本发明的系统的优选实施方式的用于执行反向图像搜索的方法的流程图;
图14是根据本发明的系统的优选实施方式的用于执行反向图像搜索的方法的用户界面的屏幕截图,包括图像;
图15是根据本发明的系统的优选实施方式的用于执行反向图像搜索的方法的用户界面(包括图像和开始搜索的提示)的屏幕截图;
图16A是具有图像的用户界面的屏幕截图,并且图16B是根据本发明的系统的优选实施方式的在对图16A的图像执行反向图像搜索之后的搜索结果的屏幕截图;
图17A是具有修改/编辑的图像的用户界面的屏幕截图,并且图17B是根据本发明的系统的优选实施方式的在对图17A的图像执行反向图像搜索之后的搜索结果的屏幕截图;
图18A是具有修改/编辑的图像的用户界面的屏幕截图,并且图18B是根据本发明的系统的优选实施方式的在对图18A的图像执行反向图像搜索之后的搜索结果的屏幕截图;以及
图19是用于实现根据本发明的系统的各种示例性实施方式的计算机系统。
虽然本文通过使用若干说明性附图的示例描述了本公开的实施方式,但是本领域技术人员将认识到,本发明的系统不限于所描述的实施方式或附图。应当理解,附图及其详细描述并非旨在将本公开限制于所公开的特定形式,而相反,本公开将涵盖落入本发明的系统的实施方式的精神和范围内的所有修改、等同物和替代物。
具体实施方式
在以下详细描述中,阐述了许多具体细节以便提供对本文描述的实施方式或其他示例的透彻理解。在某些情况下,没有详细描述众所周知的方法、过程、组件和电路,以免使以下描述模糊。
此外,所公开的示例仅用于示例性目的,并且可以采用其他示例来代替所公开的示例或与所公开的示例组合。还应注意,本文呈现的示例不应被解释为限制本公开的实施方式的范围,因为其他同等有效的示例是可能的且适合的。
图1示出了系统100,其使得能够基于从图像或动态图像(即,视频)导出的作为搜索输入的代表帧来搜索图像。处理器108处理代表帧以创建对应的矢量,该对应的矢量存储在数据库116中。如所示,系统100包括处理器或服务器108,该处理器或服务器具有在其上实行的一个或多个搜索引擎112。搜索引擎112彻底搜索图像和视频或数据库114a-n的数字库的内容。尽管图1示出了数据库114a-n直接连接到处理器108,但数据库也可以经由通信网络110连接。服务器或处理器108向多个用户提供搜索服务,每个用户使用可经由通信网络110连接到处理器108的一个或多个设备102。
设备102可以是任何移动或桌面设备,不限于计算机、膝上型电脑、个人数字助理(PDA)、平板电脑、智能电话、掌上电脑、笔记本电脑、移动电话或任何其他计算设备。还预期设备102可以支持任何类型的用户界面以支持数据的视觉和音频呈现。另外,设备102可以有助于各种输入装置来具有,包括但不限于触摸屏功能、键盘和小键盘数据输入、基于语音的输入机制、基于摄像机的视频输入等。如所示,设备102可以包括应用程序104、各种操作系统(OS)106和摄像机118。应用程序104可以是任何web应用程序或移动应用程序或服务,例如但不限于web浏览器、浏览器扩展或插件、web应用程序、搜索软件等。OS 106可以为设备102上的应用程序104提供基本的执行环境。
通信网络110可以是但不限于电话网络、无线网络、数据网络、服务提供商数据网络等。例如,电话网络可以包括但不限于电路交换网络,诸如公共交换电话网络(PSTN)、综合业务数字网(ISDN)、用户小交换机(PBX),或者其他类似网络。服务提供商网络可以体现电路交换和/或分组交换网络,所述电路交换和/或分组交换网络可以包括用于提供电路交换和/或基于分组的通信的传输的设施。还预期通信网络110可以包括用于在系统100的各种组件或设施之间提供信令和/或承载通信的组件和设施。以这种方式,通信网络110可以体现或包括信令系统7(Signaling System 7,SS7)网络的部分或其他合适的基础设施,以支持控制和信令功能。另外,系统100可以作为分离的部件操作,其周期性地会合并同步以形成具有类似特性的更大的系统。另外,数据网络可以是任何局域网(LAN)、城域网(MAN)、广域网(WAN)、因特网或任何其他合适的分组交换网络,诸如商业上拥有的专有分组-交换网络,诸如专用线缆或光纤网络。另外,无线网络可以采用各种技术,包括例如码分多址(CDMA)、全球演进的增强数据速率(EDGE)、通用分组无线业务(GPRS)、移动自组织网络(MANET)、全球移动通信系统(GSM)、4G长期演进(LTE)、互联网协议多媒体子系统(IMS)、通用移动通信系统(UMTS)等,以及任何其他合适的无线介质,例如微波接入(WiMAX))、无线保真(WiFi)、卫星等。服务器108可以在用户设备102上本地实现。例如,用户设备102可以是在服务器108上运行的软件应用程序,用于发送查询以检索数据。
用户通过针对一些感兴趣的对象在设备102上简单地拍摄或训练摄像机118来发起搜索。将摄像机118的焦点保持在对象上,将对象确定为感兴趣的,从而将对象的捕获图像确认为用户想要找到的代表帧。或者,代表帧可由用户在处理器108上的某些视频馈送中确定。在两种情况下,设备102和处理器108都将代表帧转换成对应的矢量并将这些矢量及这些矢量对应的图像存储在数据库116/114中。
搜索引擎112接收对应的矢量作为请求或查询,并在本地连接或网络连接的数据库114中发起搜索。通常,数据库114包括矢量及矢量对应的图像。为了确认或近似于最近邻的,即,为了搜索空间中接近给定查询“近似于最近邻噢耶”干扰)的矢量或点,可以使用C++库。或者,对于实际距离计算,可以使用Apache Solr。这和其他相似的产品将对聚类进行过滤,且然后根据与作为输入给出的矢量的距离来对结果进行排序。
此外,可以通过使用结构化查询语言(Structured Query Language,SQL)来查询SQL数据集。查询语言可以是JavaScript对象简谱(JavaScript Object Notation,JSON)数据交换格式。然而,本领域技术人员将理解,可以使用任何其他数据交换格式,例如但不限于可扩展标记语言(eXtensible Markup Language,XML)。搜索引擎112处理所接收的查询以确定查询的结构和组分。例如,在JSON查询的情况下可以确定属性-值对。
另外,系统100使用神经网络和机器学习技术来进行图像识别。图像识别使得可以在反向图像搜索中找到视觉上相似的图像。使用预训练卷积神经网络(ConvolutionalNeural Network,CNN)来执行图像分析和分类。CNN是一类深度的、前馈人工神经网络,其可用于分析图像。CNN可以例如在www.image-net.org上的ImageNet上预先训练,ImageNet是一个具有标签的超过1400万张图像的公共数据集。
搜索引擎112可以:
1.接收代表帧作为用于搜索的输入图像;
2.分析所述代表帧以得到图案;并将所述图案转换成矢量,该多个矢量是图像的数学表示;
3.然后,这些矢量用来搜索具有相关联图像的预先存储的矢量,使用最近邻技术来确认具有相似图案的存储的矢量。
4.此后,从数据库116/114中选择匹配的结果或图像,并在用户所对应的设备102上向用户显示。
下面结合其他图来详细解释分析和搜索图像的方法。
图2、图3A和图3B示出了根据本发明系统的示例性实施方式的用于形成或生成具有图像图案信息的矢量的方法200。如上所述,可以使用CNN来进行图像分类。给定代表帧,例如船和/或汽车的图像,如图3A和图3B所示,作为输入,CNN返回图像中所有可分类对象的概率列表。
在步骤202处(图2),计算图像的初始矢量。该矢量是图像的数学表示。矢量具有多个维度,例如CNN中的512,这些维度对应于图像的不同属性。在计算概率的层之前获取代表帧的矢量信息,因为在该层(例如,完全连接的层)处可获得更多信息。概率范围为从0到1。例如,如图3A所示,通过诸如卷积和池化之类的各种处理来分析包含船的图像,以输出概率,该概率为,对象是狗为0.01、猫为0.04、船为0.94,和最后一层中的鸟为0.02。因此,在该示例中,CNN提供图像包含船的概率为0.94的预测。图3B示出了可以从包含汽车的图像中提取的低级、中级和高级特征的矩阵。
返回图2,在步骤204处,减小从图像402(图4)生成的矢量例如矢量404(图4)的大小。需要减少矢量的维度,因为大量的维度对处理速度来说是繁重的。因此,减少维度的数量是非常重要的,以便有助于在不损失精度的情况下加速处理。可以通过使用神经网络或自动编码器来减少矢量维度的数量。此外,主成分分析(PCA)可用于减少维度。
维度的减少在图5中示出,这里,矢量502,其形成为来自图像402(图4)的矢量404(图4),被减少为矢量504。如所示,与初始矢量502中的维度相比,输出矢量504中的维度减少。训练网络以返还与其输入相同的输出,并且在输入矢量502和输出矢量504之间存在若干较小的隐藏层或步骤。
因此,神经网络被迫通过更小的层来减少来自矢量的信息,但仍试图尽可能多地保持信息。最小的隐藏层被用作输出。例如,对于CNN,确定维度的数量可以减少到大约8%。换句话说,发明人已经确定图像质量和矢量大小之间的最大权衡,换言之,最小的大小可以是大约40个维度。
例如,可以包括7个密集层(从输入到输出),其为以下大小:512、256、128、40、128、256、512。其中编码器部分是大小为512、256、128和40的层,并且解码器部分是层40、128、256和512。激活函数可以是任何常用的激活函数,例如线性整流函数(relu)、双曲正切函数(tanh)或sigmoid函数。在训练网络之后,可以丢弃解码器部分,因此将仅使用编码器部分,即大小为512、256、128和40的层。因此,大小为40的层将是新的输出,且因此矢量层从大小512减小到大小40。
使用通过卷积神经网络生成的矢量的子集来实现上述网络训练,例如可以使用0.5-1百万个矢量来训练自动编码器以确保足够的变化。
再次返回图2,要注意的是,对大集合的图像执行步骤202和204,以生成巨大的矢量数据信息。例如,可能存在超过1400万个具有待处理的矢量信息的图像。为了处理这种大的集合,在步骤206处,对图像的矢量进行聚类,并在步骤208处存储在矢量数据库116(图1)中。
聚类
聚类通过减少要彻底搜索的矢量的数量来实现增强的性能。例如,可能存在数百万个具有待处理的矢量信息的图像,因此聚类可以生成可用于搜索图像的子集。可使用K均值算法来执行聚类。本领域技术人员将了解,可以使用其他聚类算法,诸如但不限于EM聚类、亲和传播聚类(Affinity Propagation,AP),来执行聚类。图6A示出了图像的矢量的2-维和3-维表示。可以针对照片、视频、插图而不同地生成或计算聚类,因为这些在视觉上是完全不同的。图6B示出了根据图像的矢量生成的聚类。例如,具有相似信息的矢量602可以被分组以形成聚类604。
用于聚类的算法可以动态地调整以确定聚类的数量。例如,对于照片,可以提供初始条件以从120个聚类开始,然后让算法或软件计算并确保没有聚类包含不少于30,000个矢量项或照片且不超过500,000个矢量项。因此,如果存在超过500,000个矢量项,则算法可以从121个聚类开始,然后重新计算。如果算法在聚类中达到少于30,000个矢量项,不管聚类中是否仍有超过500,000个矢量项,它会停止。该算法可以只拆分最大的聚类,而不是重新计算所有聚类。该聚类计算可以仅执行一次,并且由图6B的每个聚类的中心处的粗点指示的聚类中心在初始计算之后不会更新。
重要的是,矢量项可以位于聚类的边缘处,在这种情况下,它可以具有更多的与相邻聚类中的矢量项(而不是其所属的同一聚类中的矢量项)共同的特征。图7示出了四个不同的聚类集,其具有八个、十个、十一个和十三个聚类。聚类被显示为不同大小的空间分区,其中矢量项在聚类内显示为点。如所示,矢量项702可以在聚类704的边缘。
重新计算若干其他聚类集以减少位于聚类的边缘的矢量项。例如,如果第一集合可能具有140个聚类,则第二集合将具有141个聚类。此外,第二集合可以具有不同的起始点或矢量以开始计算。类似地,第三集合可以具有142个聚类且第四集合具有143个聚类。因此,对于每个集合,聚类中的矢量项可能略有不同,因为聚类的数量不相同并且计算的方式略有不同。
因此,在图7的示例中计算了四个集合。因此,当彻底搜索集合的并集时,并集将包括附近的所有矢量,包括那些将在不同聚类中的矢量,例如,如果未计算聚类的若干集合的话。因此,使用聚类的集合解决了边缘问题。例如,样本搜索查询可以为“获取聚类[A,B,C,D]中任一个的所有矢量项,并根据与矢量X的接近程度对它们进行排序”。这极大地改善了搜索引擎112(图1)的性能,因为减少了搜索所需计算的数量。
为了确定照片的新矢量项属于哪个聚类,计算矢量并与存储的矢量进行比较,并且选择最接近的现有矢量或最近邻的。例如,图像的140个聚类可以具有140个矢量,这些矢量在每个聚类的中心。因此,可以仅将新项的矢量与这140个聚类或矢量进行比较以选择最接近的匹配。相同图像集的多个聚类可以存储在数据库114(图1)中。因此,可以如上面结合图7所解释的那样搜索多个聚类。
图8A-图8C示出了包括如上所述生成的示例性聚类的图像。图8A描绘了图像的聚类,其中每个图像具有对应的点(参见图7)。图8B描绘了矢量代表建筑物或城市天际线的图像的聚类。图8C描绘了矢量代表植物或叶子的图像的聚类。
代表帧
图9示出了用于从视频中选择代表帧的方法900。首先,在步骤902处选择视频或动态图像的多个帧。例如,可以选择十个帧或图像。然后在步骤904处,处理每个帧以计算每个颜色值的像素数量。例如,计算RGB、YUV、LAB或其他色彩空间。R、G和B分量完全分开对待和处理。此后,在步骤906处,基于R、G、B计数和缩放比例来计算每个帧的分数。通过使用以下公式而基于帧中的像素总数来计算缩放比例:缩放比例=100/像素数量。
例如,对于大小为10×20像素的图像,缩放比例将为100/(10×20),即0.5。可以使用以下公式来计算分数:
score=log2(1.0+缩放比例×贮体(bucket)中的像素数量)。
对数函数不利于相同颜色的大区域,因此选择具有最多样性的代表帧。贮体是R、G或B颜色。可以使用R、G、B中的每一个颜色的64个色度,因此每个将有64个贮体。将所有贮体的分数相加以获得每帧的总分数。例如,考虑具有10个像素的图像,包括:
3个红色像素(即r=1,g=0,b=0);
3个白色像素(即r=1,g=1,b=1);
4个黑色像素(即r=0,g=0,b=0)。
图像的缩放比例将是10(即,100/10)。假设只有两个贮体,一个包含零而另一个包含一,每个贮体中的像素数量可以确定为:
红色:3+3,4=6,4(即6个像素具有一且4个具有零);
绿色:3,3+4=3,7;
蓝色:3,3+4=3,7。
每个贮体的分数可以计算为:
#red
#score_r1=log2(1.0+缩放比例*贮体中的像素数量_r1)
score_r1=log2(1.0+10*6)
#score_r2=分数+log2(1.0+缩放比例*贮体中的像素数量_r2)
score_r2=log2(1.0+10*4)
#green
score_g1=log2(1.0+10*3)
score_g2=log2(1.0+10*7)
#blue
score_b1=log2(1.0+10*3)
score_b2=log2(1.0+10*7)
总分数可以计算为所有分数的总和:
Total score=score_r1+score_r2+score_g1+score_g2+score_b1+score_b2
随后,在步骤908处,将每帧的总分数与其他帧的进行比较,以选择具有最高分数的帧作为代表帧。可以在该代表帧上执行如上所述的图像识别处理,以确认用于反向图像搜索的图像。因此,本发明的系统可用于根据在移动设备或其他摄像机上拍摄的现场照片或视频进行实时图像识别,识别图像或视频的主焦点,并返回视觉上相似的结果。
视频通常包括许多帧,一般是每秒24帧或更多帧。本发明的系统通过来自视频的实时背景确定和实时搜索视觉上类似的结果,提供了图像识别和搜索技术的显著增强。
搜索
图10示出了用于执行反向图像搜索的方法1000。在步骤1002处,从用户设备捕获现场图像或视频。例如,使用设备102(图1)的摄像机118(图1)来捕获视频。例如,可以从移动电话上的摄像机捕获视频。可以上载视频以确定代表帧并执行搜索。因此,在步骤1004处,分析视频帧以确定图案。如上面详细讨论的,图案可以基于视频的代表帧的分数或矢量。当摄像机118通过设备102上的应用程序104(图1)捕获视频时,实时确定视频的代表帧。例如,应用程序软件可以是移动应用程序、web应用程序或者web浏览器。应用程序软件可以是web浏览器扩展。该分析由搜索引擎112(图1)执行。
此后,在步骤1006处,例如在数据库116/114(图1)中执行对结果的搜索,即搜索代表具有相似视觉图案的图像的矢量。随后,搜索结果可以显示在设备102(图1)上。搜索结果基于代表帧的背景或焦点的变化自动更新。设备102的用户可以开始、停止和继续现场搜索以查看结果以及代表帧的参考图像。另外,用户还可以浏览和折叠/展开现场搜索。获取结果集后,现场搜索自动停止。例如,可以停止搜索以显示10个结果,且然后如果用户选择查看更多结果则自动开始。此后,在步骤1008处,可以由搜索引擎112显示具有最佳匹配的搜索结果。因此,提高了搜索的速度和性能。
可替代地,可以在搜索中确定并使用多于一个的代表帧。实际上,可以根据各种同时或后续的视频流或图像来确定许多代表帧。所确定的多个代表帧可以全部用于执行搜索或者可以作为选择来呈现。类似地,一个或多个代表帧可以被预先确定或预先选择,并在具有根据现场流确定的代表帧的搜索中使用。
现场搜索界面
图11示出了用于执行反向图像搜索的设备102上的应用程序104(图1)的用户界面。如所示,用户界面可以包括现场视频显示1102,其呈现由设备102的摄像机捕获的现场视频流。当视频被捕获时,搜索的结果被实时显示为搜索结果1104。用户界面还示出于图12A-图12C中,图中显示了从捕获的现场视频中反向图像搜索的结果。图12A示出了由设备102的摄像机捕获的现场视频显示1202a。如所示,现场视频显示1202a中的帧显示持有时钟的男人,因此搜索结果图像显示1204a包括人。
如在图12A中那样,当视频显示1202b聚焦于时钟时,作为搜索结果1204b,时钟开始更主导地占主要地位,其中人仍然存在。然后,一旦应用程序104感测到人不再在现场视频显示1202c的代表帧中占主要地位,则人不再存在并且时钟在搜索结果1204c中占主导。这就是如何在现场视频捕获期间提供本发明的系统的一个实施方式的实时搜索结果。
编辑代表帧
图13示出了用于执行反向图像搜索的方法1300。在步骤1302处,可以选择图像的代表帧作为输入以搜索视觉上相似的图像、插图或视频。可以从任何页面或URL中选择图像并显示在诸如web浏览器之类的应用程序上。另外,可以选择显示图像的一部分以用于搜索。此后,在步骤1304处,可以修改图像。例如,可以修改图像以添加或移除对象,或者在图像上叠加另一图像或对象。该修改由应用程序104(图1)实现,诸如设备102(图1)上的浏览器扩展。
在步骤1306处,对用户选择或修改的图像执行搜索。如上面详细讨论的,通过确定和匹配图案来对视觉上相似的图像、插图或视频执行搜索。随后,在步骤1308处,可以在设备102上向用户显示搜索结果。搜索结果还可以显示在连接到预定义的网站上,所述网站连接到处理器108(图1)和/或设备102。此外,可以在预定义的网站上显示与搜索结果相关联的各种属性。例如,该属性可以包括但不限于显示图像的大小、图像的相似度值、图像的颜色值、它们的价格、它们所属的组集等等。系统提供处理属性的能力以进一步细化搜索,且甚至允许从搜索结果中直接选择任何图像以重复搜索过程。
图14示出了能够选择、修改和编辑图像或代表帧的界面。如所示,在web浏览器上选择并显示图像。图15示出了交互,其中要求用户(图1)选择图像的区域以用于反向图像搜索。可以将浏览器扩展1502添加到任何常用的网络浏览程序以执行本发明的系统的反向图像搜索功能。图16A示出了可以添加到浏览器程序以执行搜索的各种功能。如上面详细讨论的,照片搜索选项1602指导应用程序针对所选择的图像1604(其可以被认为是代表帧)执行反向图像搜索。随后,可以在预定义的网站上显示搜索结果。图16B示出了代表帧1604(图16A)的反向图像搜索的预定义的网站和结果1606。
图17A显示了如何编辑所选图像1702以移除对象1704。此后,在选择照片搜索选项1706时,应用程序被指导执行反向图像搜索。如图17B所示,显示基于修改的图像1702的搜索结果,该修改的图像现在不包括对象1704(即,伞或椅子)。本领域技术人员将理解,可以对图像进行任何量的修改,例如但不限于颜色、色调、饱和度、大小等的改变。如显示在图16B和图17B的显示的左下侧,提供这种修改的选项。
在移除对象时,本发明的系统确保不重现移除的对象。例如,使用修复策略并不理想,因为对象可能未被完全移除,并且修复算法实际上可能重现被移除的对象。如果发生这种情况,“移除的”对象将再次被包括在视觉搜索中。
为了避免这个问题,本发明的系统的实施方式获取移除区域的左侧和右侧的颜色值,且然后进行跨越线性渐变。然后,移除的区域将包括不同渐变颜色的线。由于这些线仍然可以被理解为某种结构,例如构造块、盒子或类似物,因此需要分解这种结构。可以采用并随机交替使用几种不同分解这种结构的方法。例如,获取移除区域1704中的像素及其周围的像素,且然后随机化这些像素的排序。获取上和下三个像素的像素值,随机选择两个,执行渐变,并将该值分配给像素以及其他类似方式以随机选择像素值。结果将是移除区域由没有任何实际结构的像素组成,且因此CNN将其理解为对象的可能性很小。
图18A显示了如何通过在图像上叠加一个或多个图像来修改所选图像。例如,如所示,用户可以通过在搜索框1802中输入关键字来搜索男人的图像。随后,找到并显示男人的图像1804。可以拖动图像1804并在所选图像1806上释放以叠加图像。可以对图像1804进行处理以改变在所选图像1806上的大小、角度或位置。所选图像1806可以叠加多个图像。此后,可以选择照片搜索选项1808以指导应用程序执行反向图像搜索。对代表帧1806叠加图像1804的搜索结果在图18B中显示。如所示,搜索结果现在包括水附近的马和男人的图像。
图19示出了计算系统1900。本发明系统的实施方式可以在具有至少下面描述的计算系统1900的组件子集的计算系统上实现。计算系统1900包括:总线1902,用于在计算系统1900的所有组件之间传送信息,总线1902连接到处理器1904;主存储器1906,诸如随机存取存储器(RAM)或其他动态存储设备,用于存储(a)由处理器1904实行的信息和指令,以及(b)在处理器1904实行指令期间的临时变量或其他中间信息;只读存储器(ROM)1908或其他静态存储设备,用于存储处理器1904的静态信息和指令;存储设备1910,诸如磁盘或光盘,用于持久地存储信息和指令;显示器1912,诸如阴极射线管(CRT)、液晶显示器、有源矩阵显示器或等离子体显示器,用于向用户显示信息;输入设备1914,诸如包括字母数字键和其他键的键盘,用于将信息和命令选择传送到处理器1904;用户输入设备1916,诸如光标控制、鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器1902并用于控制显示器1912上的光标移动;通信接口1918,例如,数字用户线(Digital Subscriber Line,DSL)卡或调制解调器、综合业务数字网(Integrated Services Digital Network,ISDN)卡、电缆调制解调器、电话调制解调器、局域网(Local Area Network,LAN)卡(例如,用于以太网TM或异步传输模式(Asynchronous Transfer Mode,ATM)网络)、用于提供到兼容的LAN的数据通信连接、无线链接、或任何其他用于提供经由网络链路1920耦合到局域网(Local AreaNetwork,LAN)1922的双向数据通信的通信接口、诸如通用串行总线(USB)接口、个人计算机存储卡国际协会(Personal Computer Memory Card International Association,PCMCIA)接口之类的外围接口设备等。尽管图19中描绘了每种类型的单个组件,但可以采用多个组件,或者可以根据需要省略组件。
网络链路1920通常通过网络向其他数据设备提供数据通信。例如,网络链路1920可以提供通过LAN 1922到主计算机1924的连接,该主计算机具有到网络1926(例如,广域网(Wide Area Network,WAN)或现在通常称为“因特网”的全球分组数据通信网络)或由服务提供商运营的数据装置的连接。LAN 1922和网络1926都使用电信号、电磁信号或光信号来传达信息和指令。
本文使用的术语“计算机可读介质”是指参与向处理器1904提供指令以供实行的任何介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质可以包括例如光盘或磁盘,诸如存储设备1910。易失性介质可以包括动态存储器,诸如主存储器1906。传输介质可以包括同轴电缆、铜线和光纤,包括包含总线1902的线。传输介质还可以采用声波、光波或电磁波的形式,诸如在射频(RF)和红外(IR)数据通信期间生成的那些。常见形式的计算机可读介质可包括例如软盘、软磁盘、硬盘、磁带、任何其他磁介质、CD-ROM、可擦写光盘(CDRW)、数字视频光盘(DVD)、任何其他光学介质、穿孔卡、纸带、光学标记板、任何其他具有孔或其他光学可识别标记的图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或盒式磁带、载波或计算机可以读取的任何其他介质。在某些情况下,计算机可读介质可以包括未知的物理组件,其中信息由特定的数字唯一标识符唯一地定义,并且可同时或排他地通过多个物理信道获得。
已经出于说明和描述的目的呈现了本发明的前述讨论。不旨在将本发明限制于本文所公开的一种或多种形式。在前面的具体描述中,例如,出于组织本公开的目的,本发明的各种特征在一个或多个实施方式、配置或方面中被组合在一起。可以在除了上面讨论的实施方式、配置或方面之外的替代物中对实施方式、配置或方面的特征进行组合。而且,本发明系统的许多变化和修改对于本领域技术人员是显而易见的。
本公开的实施方式中的各个元件可以实现为硬件、软件/程序或其任何组合。软件代码的全部或部分可以存储在非暂时性计算机可读介质或存储器中(例如,为RAM、ROM,例如非易失性存储器,诸如闪存、CDROM、DVD ROM、Blu-rayTM、半导体ROM、USB或磁记录介质,例如硬盘)。程序可以是以下形式:源代码、目标代码、代码中间源和诸如部分编译形式的目标代码,或者任何其他形式。
所公开的方法可以容易地用软件实现,诸如通过使用对象或面向对象的软件开发环境,其提供可以在各种计算机或工作站平台上使用的便携式源代码。可替代地,所公开的系统可以部分或完全用硬件实现,诸如通过使用标准逻辑电路或VLSI设计。是否可以使用软件或硬件来实现根据本发明的各种实施方式的系统可以取决于各种考虑,诸如系统的速度或效率要求、特定功能以及所使用的特定软件或硬件系统。
Claims (13)
1.一种对被确认为具有一个或多个图案的代表帧的一个或多个图像进行实时反向图像搜索的方法,所述方法包括以下步骤:
提供连接到网络的计算设备,所述计算设备:
实时捕获一个或多个图像;以及
通过以下方式将所捕获的一个或多个图像中的至少一个确认为所述代表帧,用作反向搜索中的输入:
选择视频的第一多个帧;
对于每帧,计算每个颜色值的像素数量,所述颜色值选自RGB、YUV和LAB中的一个,其中,所述颜色值的分量被单独处理,并且基于所述分量的所述颜色值的贮体中的像素数量和缩放比例利用公式来计算分数,所述缩放比例基于帧中的像素总数,所述公式为分数=log2(1.0+缩放比例×贮体中的像素数量);以及
将每帧中的所有分数的总和与所有所述第一多个帧的所有分数的总和进行比较,其中,选择具有所有分数的总和最高的所述第一多个帧的帧作为所述代表帧;
提供处理器,所述处理器连接到所述网络并且可访问至少一个数字库,所述数字库存储多个矢量以及与所述多个矢量中的每个相关联的相应图像和视频,所述处理器:
确认所述代表帧中的一个或多个图案并且计算所述代表帧的矢量,所述代表帧的矢量对应于所述代表帧中的所述一个或多个图案中的每个图案;
通过使用神经网络和选择最小的隐藏层来减小所述代表帧的矢量的大小;
在所述至少一个数字库中检测与所述代表帧的矢量最相似的所述多个矢量中的一个或多个;以及
经由所述网络实时提供与所选择的多个矢量中的一个或多个相关联的图像和视频,其中预先确定所提供的图像和视频的数量。
2.根据权利要求1所述的方法,其中,所述计算设备包括至少一个视频摄像机,并且所述捕获选自以下中的一个:针对感兴趣的对象训练所述至少一个视频摄像机,和/或上载图像和视频。
3.根据权利要求2所述的方法,其中,响应于所述代表帧的背景的改变而自动更新所捕获的一个或多个图像。
4.根据权利要求1所述的方法,其中,所述代表帧包括多个代表帧,并且所述多个代表帧中的至少一个是预先选择的代表帧和实时选择的代表帧中的一个。
5.根据权利要求1所述的方法,其中,确认所述代表帧的步骤还包括以下步骤:
接收所捕获的一个或多个图像中的至少一个作为静止图像和/或视频,所捕获的一个或多个图像选自2-维图像和3-维图像;以及
通过将所述一个或多个图案的部分从所述代表帧中移除和/或将一个或多个图案添加到所述代表帧来编辑所述代表帧。
6.根据权利要求5所述的方法,还包括确认对应于所检测的所述多个矢量中的一个或多个的图像的一个或多个属性的步骤,其中所述属性选自大小、与所述代表帧的相似度、颜色、值和所述至少一个数字库的特定数字库的成员中的至少一个。
7.根据权利要求5所述的方法,其中,将一个或多个图案添加到所述代表帧的步骤包括以下步骤:
将一个或多个附加图案叠加到所述代表帧上,以及
改变所叠加的一个或多个附加图案在所编辑的代表帧中的大小、角度和位置中的任一个。
8.根据权利要求1所述的方法,还包括以下步骤:
将所述至少一个数字库中的所述多个矢量聚类以形成第一数量的聚类;以及
重新聚类所述多个矢量以形成与所述第一数量不同的第二数量的聚类,其中动态地确定聚类的数量以校正边缘问题。
9.根据权利要求8所述的方法,其中,在所述反向搜索中使用重新聚类集的并集,并且由于所述代表帧的改变而自动更新所述聚类和重新聚类。
10.根据权利要求1所述的方法,其中,
为所述代表帧中的所述一个或多个图案中的每个图案计算数学表示,所述数学表示是一个或多个图案中的每个图案出现在所述代表帧中的在0到1范围内的概率,以及
减小所述代表帧的矢量的大小的步骤利用神经网络技术、自动编码器和主成分分析(PCA)中的至少一种。
11.根据权利要求1所述的方法,其中,所述一个或多个矢量的组集由在ImageNet上预训练的卷积神经网络(CNN)形成,以执行所述图像的图像分析和分类,以及
其中,根据k均值、EM聚类和亲和传播聚类算法中的一个,将具有相似图案的所述一个或多个矢量的组集中的矢量分组以形成聚类,并且动态地调整聚类的大小以产生预先确定的聚类的数量。
12.一种对被确认为具有一个或多个图案的代表帧的一个或多个图像进行实时反向图像搜索的系统,所述系统包括:
连接到网络的计算设备,所述计算设备被配置为:
实时捕获一个或多个图像;以及
通过以下方式将所述捕获的一个或多个图像中的至少一个确认为所述代表帧,用作反向搜索中的输入:
选择视频的第一多个帧;
对于每帧,计算每个颜色值的像素数量,所述颜色值选自RGB、YUV和LAB中的一个,其中,所述颜色值的分量被单独处理,并且基于所述分量的所述颜色值的贮体中的像素数量和缩放比例利用公式来计算分数,所述缩放比例基于帧中的像素总数,所述公式为分数=log2(1.0+缩放比例×贮体中的像素数量);以及
将每帧中的所有分数的总和与所有所述第一多个帧的所有分数的总和进行比较,其中,选择具有所有分数的总和最高的所述第一多个帧的帧作为所述代表帧;
处理器,连接到所述网络并且可访问至少一个数字库,所述数字库存储多个矢量以及与所述多个矢量中的每个相关联的相应图像和视频,所述处理器被配置为:
确认所述代表帧中的一个或多个图案并且计算所述代表帧的矢量,所述代表帧的矢量对应于所述代表帧中的所述一个或多个图案中的每个图案;
通过使用神经网络和选择最小的隐藏层来减小所述代表帧的矢量的大小;
在所述至少一个数字库中检测与所述代表帧的矢量最相似的所述多个矢量中的一个或多个;以及
经由所述网络实时提供与所选择的多个矢量中的一个或多个相关联的图像和视频,其中预先确定所提供的图像和视频的数量。
13.根据权利要求12所述的系统,其中,所述计算设备包括至少一个视频摄像机,并且所述捕获选自以下中的一个:针对感兴趣的对象训练所述至少一个视频摄像机,和/或上载图像和视频;并且其中,响应于所述代表帧的背景的改变而自动更新所捕获的一个或多个图像。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862651304P | 2018-04-02 | 2018-04-02 | |
US62/651,304 | 2018-04-02 | ||
US16/133,754 US10242035B1 (en) | 2018-04-02 | 2018-09-18 | Method and system for image searching |
US16/133,754 | 2018-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347868A CN110347868A (zh) | 2019-10-18 |
CN110347868B true CN110347868B (zh) | 2021-03-02 |
Family
ID=65811632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910164954.9A Active CN110347868B (zh) | 2018-04-02 | 2019-03-05 | 用于图像搜索的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10242035B1 (zh) |
EP (1) | EP3550474A1 (zh) |
CN (1) | CN110347868B (zh) |
AU (1) | AU2019200336B2 (zh) |
CA (1) | CA3031114C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10062015B2 (en) * | 2015-06-25 | 2018-08-28 | The Nielsen Company (Us), Llc | Methods and apparatus for identifying objects depicted in a video using extracted video frames in combination with a reverse image search engine |
CN111353585A (zh) * | 2020-02-25 | 2020-06-30 | 北京百度网讯科技有限公司 | 神经网络模型的结构搜索方法和装置 |
US11461594B2 (en) | 2020-03-23 | 2022-10-04 | Raytheon Company | Transform disentangling auto-encoder and related methods |
US11475153B2 (en) * | 2021-01-21 | 2022-10-18 | Godunov Enterprises, Llc | Online platform for unique items |
CN114708449B (zh) * | 2022-06-02 | 2022-08-23 | 腾讯科技(深圳)有限公司 | 相似视频的确定方法、实例表征模型的训练方法及设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631001B2 (en) * | 2004-03-31 | 2014-01-14 | Google Inc. | Systems and methods for weighting a search query result |
US7921309B1 (en) * | 2007-05-21 | 2011-04-05 | Amazon Technologies | Systems and methods for determining and managing the power remaining in a handheld electronic device |
JP4623201B2 (ja) * | 2008-10-27 | 2011-02-02 | ソニー株式会社 | 画像処理装置、画像処理方法およびプログラム |
JP5113929B1 (ja) * | 2011-06-24 | 2013-01-09 | 楽天株式会社 | 画像提供装置、画像処理方法、画像処理プログラム及び記録媒体 |
US9904866B1 (en) * | 2012-06-21 | 2018-02-27 | Amazon Technologies, Inc. | Architectures for object recognition |
CN103198162B (zh) * | 2013-04-28 | 2016-08-31 | 冠捷显示科技(厦门)有限公司 | 一种图像浏览交互方法 |
CN105531995B (zh) * | 2013-05-10 | 2019-01-08 | 罗伯特·博世有限公司 | 用于使用多个摄像机进行对象和事件识别的系统和方法 |
US9529824B2 (en) * | 2013-06-05 | 2016-12-27 | Digitalglobe, Inc. | System and method for multi resolution and multi temporal image search |
EP3065067A1 (en) * | 2015-03-06 | 2016-09-07 | Captoria Ltd | Anonymous live image search |
US20160350336A1 (en) * | 2015-05-31 | 2016-12-01 | Allyke, Inc. | Automated image searching, exploration and discovery |
US10062015B2 (en) * | 2015-06-25 | 2018-08-28 | The Nielsen Company (Us), Llc | Methods and apparatus for identifying objects depicted in a video using extracted video frames in combination with a reverse image search engine |
CN106803055B (zh) * | 2015-11-26 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 人脸识别方法和装置 |
CN105701784A (zh) * | 2016-02-14 | 2016-06-22 | 华浩博达(北京)科技股份有限公司 | 实时可视化图像处理方法 |
-
2018
- 2018-09-18 US US16/133,754 patent/US10242035B1/en active Active
-
2019
- 2019-01-18 AU AU2019200336A patent/AU2019200336B2/en active Active
- 2019-01-23 CA CA3031114A patent/CA3031114C/en active Active
- 2019-01-30 EP EP19154379.2A patent/EP3550474A1/en not_active Withdrawn
- 2019-03-05 CN CN201910164954.9A patent/CN110347868B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10242035B1 (en) | 2019-03-26 |
AU2019200336A1 (en) | 2019-10-17 |
CA3031114C (en) | 2019-07-30 |
CN110347868A (zh) | 2019-10-18 |
EP3550474A1 (en) | 2019-10-09 |
CA3031114A1 (en) | 2019-04-01 |
AU2019200336B2 (en) | 2020-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347868B (zh) | 用于图像搜索的方法和系统 | |
CN108509465B (zh) | 一种视频数据的推荐方法、装置和服务器 | |
Ogawa et al. | Object detection for comics using manga109 annotations | |
JP7000468B2 (ja) | 重複ビデオの判定方法及び装置 | |
US9298682B2 (en) | Annotating images | |
JP4545641B2 (ja) | 類似画像検索方法,類似画像検索システム,類似画像検索プログラム及び記録媒体 | |
US20110085739A1 (en) | System and method for similarity search of images | |
JP6069419B2 (ja) | データベース検索方法、システムおよびコントローラ | |
US20090263014A1 (en) | Content fingerprinting for video and/or image | |
Wang et al. | Aspect-ratio-preserving multi-patch image aesthetics score prediction | |
US10713830B1 (en) | Artificial intelligence based image caption creation systems and methods thereof | |
Lee et al. | Property-specific aesthetic assessment with unsupervised aesthetic property discovery | |
US20230072445A1 (en) | Self-supervised video representation learning by exploring spatiotemporal continuity | |
CN114187558A (zh) | 一种视频场景识别方法、装置、计算机设备及存储介质 | |
Kuzovkin et al. | Context in photo albums: Understanding and modeling user behavior in clustering and selection | |
JP2006060796A (ja) | 映像検索装置,方法及びプログラム並びにプログラムを記録した記録媒体 | |
US10346461B1 (en) | Method and system for image searching by color | |
CN111144469A (zh) | 基于多维关联时序分类神经网络的端到端多序列文本识别方法 | |
CN115272768A (zh) | 内容识别方法、装置、设备、存储介质及计算机程序产品 | |
Celona et al. | A grid anchor based cropping approach exploiting image aesthetics, geometric composition, and semantics | |
Balasundaram et al. | Unsupervised learning‐based recognition and extraction for intelligent automatic video retrieval | |
Adly et al. | Development of an Effective Bootleg Videos Retrieval System as a Part of Content-Based Video Search Engine | |
Zhuang et al. | Pose prediction of textureless objects for robot bin picking with deep learning approach | |
Bosco et al. | Content-based image retrieval (CBIR): Using combined color and texture features (TriCLR and HistLBP) | |
KR20200101643A (ko) | 인공지능 기반의 유사 디자인 검색 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |