CN113366542A - 用于实现基于扩充的规范化分类图像分析计算事件的技术 - Google Patents
用于实现基于扩充的规范化分类图像分析计算事件的技术 Download PDFInfo
- Publication number
- CN113366542A CN113366542A CN201980072038.0A CN201980072038A CN113366542A CN 113366542 A CN113366542 A CN 113366542A CN 201980072038 A CN201980072038 A CN 201980072038A CN 113366542 A CN113366542 A CN 113366542A
- Authority
- CN
- China
- Prior art keywords
- image
- metadata
- computer
- event
- classification
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 170
- 230000003190 augmentative effect Effects 0.000 title claims description 48
- 238000010191 image analysis Methods 0.000 title description 2
- 238000003860 storage Methods 0.000 claims description 98
- 238000007781 pre-processing Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 28
- 238000013515 script Methods 0.000 claims description 25
- 238000010606 normalization Methods 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 13
- 241000282414 Homo sapiens Species 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 42
- 238000012549 training Methods 0.000 description 36
- 239000000047 product Substances 0.000 description 27
- 230000015654 memory Effects 0.000 description 26
- 238000004458 analytical method Methods 0.000 description 15
- 230000006399 behavior Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 11
- 230000001815 facial effect Effects 0.000 description 10
- 238000010200 validation analysis Methods 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 10
- 230000003416 augmentation Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 210000003811 finger Anatomy 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000032297 kinesis Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013079 data visualisation Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000013502 data validation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 235000013305 food Nutrition 0.000 description 3
- 238000011068 loading method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013526 transfer learning Methods 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 210000003414 extremity Anatomy 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000010223 real-time analysis Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 241000533950 Leucojum Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003623 enhancer Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000037308 hair color Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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/55—Clustering; Classification
-
- 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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- 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/53—Querying
- G06F16/535—Filtering based on additional data, e.g. user or group profiles
-
- 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/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- 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/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/5866—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2431—Multiple classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- 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
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/165—Detection; Localisation; Normalisation using facial parts and geometric relationships
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/179—Human faces, e.g. facial parts, sketches or expressions metadata assisted face recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Medical Informatics (AREA)
- Architecture (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开内容公开了各种计算技术,这些计算技术使得用户能够操作浏览器来浏览托管一组图像的网页,并且使得网页的操作者能够基于该一组图像中描述的各种上下文信息,相对于该一组图像来粒度地跟踪用户如何操作浏览器。注意,本公开内容不限于浏览器,并且可以应用于诸如域专用应用等的其他类型的软件应用,例如电子商务应用、图片库应用、百科全书应用、库存应用、视频游戏应用、教育应用、社交媒体应用、视频流应用等。
Description
相关申请的交叉引用
本申请要求美国临时专利申请第62/724,905号的优先权,该申请于2018年8月30日提交,标题为“TECHNOLOGIES FOR ENABLING ANALYTICS OF COMPUTING EVENTS BASEDON AUGMENTED CANONICALIZATION OF CLASSIFIED IMAGES”,通过引用将其并入本文,如同在此完整阐述一样。
技术领域
通常,本公开内容涉及基于网络的计算。更具体地,本公开内容涉及分类图像的扩充规范化。
背景技术
用户可以操作浏览器来浏览包括一组图像的网页。然而,不存在以下技术,其使得网页的操作者能够基于该组图像中描述的各种上下文信息,相对于该组图像来粒度地跟踪用户如何操作浏览器。因此,本公开内容实现了这样的技术。
发明内容
在本公开内容的各种实现方式中,提供了一种方法,包括:经由服务器生成图像的多个副本;经由所述服务器将多个预处理技术应用于所述副本,使得基于所述预处理技术来修改所述副本;经由所述服务器,基于所述预处理技术使修改的所述副本被存储在多个虚拟化存储单元中,其中,所述处理技术与所述虚拟化存储单元一一对应;经由所述服务器,检索与多个分类引擎一一对应的多个配置文件;经由所述服务器,基于所述配置文件使所述副本从所述虚拟化存储单元被发送到所述分类引擎,使得所述分类引擎能够对所述副本进行分类并且由此针对所述副本中的每个副本生成多个分类结果集,其中,所述分类引擎在操作中彼此不同,使得对于所述副本中的每个副本,所述分类结果集在内容上彼此不同;经由所述服务器从所述分类引擎接收所述分类结果集;经由所述服务器访问与所述分类引擎一一对应的多个分类法文档;经由所述服务器,基于所述分类法文档规范化所述分类结果集,使得形成多个规范化的数据集;经由所述服务器将所述规范化的数据集合并到数据结构中;经由所述服务器,利用从所述分类结果集得出的一组元数据来扩充所述数据结构;以及经由所述服务器,基于扩充的所述数据结构采取动作。
在本公开内容的进一步实现方式中,描述了一种方法,包括:经由服务器接收经由在浏览器中打开的网页的脚本生成的光标事件,使得所述光标事件与所述网页上示出的图像相关联,其中,所述光标事件包括网页标识符和网络地址;经由所述服务器验证所述网页标识符;经由所述服务器,基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器;经由所述服务器,基于所述网页标识符将所述光标事件推送到流,使得所述流将所述光标事件流送到虚拟化存储单元并且使所述光标事件从所述虚拟化存储单元被复制到数据仓库;经由所述服务器访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的并且所述数据结构利用从多个分类结果集得出的一组元数据来扩充;经由所述服务器,基于所述光标事件和所述数据结构来识别模式;经由所述服务器,基于所述数据结构采取动作。
在其他实现方式中,公开了一种用于生成图像的扩充数据结构的计算机实现的方法。所述方法可以包括经由具有一个或更多个处理器的计算装置生成所述图像的多个副本。可以将多个预处理技术应用于所述副本以生成修改的副本。所述修改的副本可以与基于所述预处理技术修改的所述副本的版本相对应。所述方法还可以包括经由所述计算装置,使每个修改的副本被存储在多个虚拟化存储单元中的特殊虚拟化存储单元中。为每个修改图像选择所述特定虚拟化存储单元可以基于用于获得所述修改图像的所述预处理技术。所述方法也可以包括经由所述计算装置检索用于多个分类引擎的多个分类器设置。所述多个分类器设置中的每个分类器设置可以对应于特定分类引擎并且指定要由所述特定分类引擎分类的图像的类型。所述计算装置可以基于所述分类器设置使所述修改副本从所述多个虚拟化存储单元被发送到所述分类引擎。所述方法可以附加地包括经由所述计算装置从所述分类引擎接收所述修改副本的多个分类结果集,其中所述多个分类结果集已经由所述多个分类引擎生成。此外,所述方法可以包括经由所述计算装置访问多个分类法标签集,其中每个特定分类法标签集可以对应于特定分类引擎并且可以包括所述图像的特定知识或技术领域的类别或属性。所述方法还可以包括经由所述计算装置,基于所述分类法标签集来规范化所述分类结果集,以生成多个规范化的数据集;以及经由所述计算装置将所述多个规范化的数据集合并到单个数据结构中。根据所述方法,所述计算装置还可以利用从所述分类结果集得出的一组元数据来扩充所述数据结构,以获得所述图像的扩充的数据结构。
在本公开内容的进一步实现方式中,描述了一种用于生成图像特征的推荐的方法。所述方法可以包括经由具有一个或更多个处理器的计算装置,接收经由在浏览器中打开的网页的脚本生成的计算事件。所述计算事件可以与所述网页上示出的图像相关联并且与所述浏览器的用户对所述图像的参与有关,并且所述计算事件可以包括网页标识符和网络地址。可以经由所述计算装置验证所述网页标识符以确认所述网页在所述浏览器中打开,并且所述计算装置可以基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器。所述方法还可以包括经由所述计算装置,基于所述网页标识符将所述计算事件推送到流以存储在虚拟化存储单元处,并且从所述虚拟化存储单元复制到数据仓库。所述方法还可以包括经由所述计算装置访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的并且所述数据结构利用从多个分类结果集得出的一组元数据来扩充。所述计算装置可以基于所述计算事件和所述数据结构来识别模式,其中所述模式与同用户对图像的参与相对应的一个或更多个图像特征相关联。所述方法可以附加地包括经由所述计算装置,基于所述模式生成对图像特征的所述推荐。
附图说明
图1示出了根据本公开内容的用于基于扩充的规范化分类图像来提供应用行为的分析的系统的实施方式的图。
图2示出了根据本公开内容的用于基于扩充的规范化分类图像来提供应用行为的分析的全过程的实施方式的流程图。
图3示出了根据本公开内容的用于预处理图像的系统的实施方式的图。
图4示出了根据本公开内容的预建的深度学习视觉模型的实施方式的图。
图5示出了根据本公开内容的用于图像分类的系统的实施方式的图。
图6示出了根据本公开内容的分类法的实施方式的图。
图7示出了根据本公开内容的具有一组标记的面部的实施方式的图。
图8示出了根据本公开内容的具有从鼻子到嘴唇以及从嘴唇到下巴的一组距离的面部的实施方式的图。
图9示出了根据本公开内容的用于规范化和扩充的系统的实施方式的图。
图10示出了根据本公开内容的用于选择分类器的系统的实施方式的图。
图11示出了根据本公开内容的用于图像元数据的数据库模式的实施方式的图。
图12示出了根据本公开内容的用于捕获计算事件的系统的实施方式的图。
图13示出了根据本公开内容的数据集市的模式的实施方式的图。
图14示出了根据本公开内容的用于执行提取、变换和加载(ETL)作业的系统的实施方式的图。
图15示出了根据本公开内容的认证用于访问仪表板的应用编程接口(API)请求的系统的实施方式的图。
图16示出了根据本公开内容的web应用的仪表板的实施方式的屏幕截图。
图17示出了根据本公开内容的用于扩充基于来自多个基于网络的分类引擎的多个结果而获得的一组规范数据的处理的实施方式的流程图。
图18示出了根据本公开内容的用于交换多个基于网络的分类引擎的处理的实施方式的流程图。
具体实施方式
通常,本公开内容实现了各种计算技术,这些计算技术使得用户能够操作浏览器来浏览包括一组图像的网页,并且使得网页的操作者能够基于该组图像中描述的各种上下文信息,相对于该组图像来粒度地跟踪用户如何操作浏览器。本公开内容还描述了图像的摄取、摄取图像的分类以及表示摄取图像的特征、元素和其他方面的数据结构的创建,以形成“视觉计算人种学”系统。这样的视觉计算人种学系统可以具有(或者被用于或被利用去)执行与图像、视频、GIF和其他视觉媒体(为了简单起见,这里通常称为“图像”)的捕获、分类和归类相关的各种任务的能力。在其他功能中,这样的技术可以使得网页的操作者能够将图像参与度映射到图像元数据,并且确定各种趋势和模式以构建推荐引擎,该推荐引擎可以通知创造性处理以创建图像。仅作为示例,网页的操作者可以确定来自第一网络地址范围或地理区域的网页的第一组访问者可以或不可以以同来自第二网络地址范围或地理区域的网页的第二组访问者类似或不同的方式与该图像及中的至少一个图像交互。推荐引擎可以基于捕获、观察或分析的趋势和模式,通知创造过程以对诸如服装或其他的物体或诸如人类或其他的生物进行成像。仅作为示例,粒度跟踪可以基于所显示的图像、光标事件、缩放事件、单击事件、当时显示的其他图像等。注意,本公开内容不限于浏览器,并且可以应用于诸如域专用应用等其他类型的软件应用,例如电子商务应用、图片库应用、百科全书应用、库存应用、视频游戏应用、教育应用、社交媒体应用、视频流应用等。
现在参照图1至图18更全面地描述本公开内容,图中示出了本公开内容的一些实施方式。然而,可以以许多不同的形式来实施本公开内容,并且不应当被解释为必须仅限于本文所公开的实施方式。相反,提供这些实施方式使得本公开内容是彻底和完整的,并且将本公开内容的各种概念完全传达给技术人员。
注意,本文使用的各种术语可以暗示直接或间接、全部或部分、临时或永久、作用或不作用。例如,当元件被称为在另一元件“上”、“连接”或“耦接”到另一元件时,则该元件可以直接在另一元件上、直接连接或耦接到另一元件,或者可以存在中间元件,包括间接或直接的变型。相反,当元件被称为“直接连接”或“直接耦接”到另一元件时,不存在中间元件。
同样,如本文中所使用的,术语“或”旨在表示包含性的“或”而非排他性的“或”。即,除非另有指定或根据上下文是清楚的,否则“X采用A或B”旨在表示任何自然的包含性排列。即,如果X采用A、X采用B、或者X采用A和B二者,则在任何前述情况下都满足“X采用A或B”。
类似地,如本文中所使用的,除非上下文另外明确指出,否则各种单数形式“一(a)”、“一个(an)”和“该(the)”旨在还包括复数形式。例如,即使本文中也使用短语“一个或更多个”,术语“一(a)”或“一个(an)”也应表示“一个或更多个”。
此外,当在本说明书中使用时,术语“包括(comprises)”、“包含(includes)”或“包括(comprising)”、“包含(including)指定所陈述的特征、整数、步骤、操作、元件或组件的存在,但不排除一个或更多个其他特征、整数、步骤、操作、元件、组件或其群组的存在和/或添加。此外,当本公开内容陈述某物“基于”其他某物时,那么此陈述指代也可以基于一个或更多个其他事物的基础。换言之,除非另有明确指示,否则本文所使用的“基于”包含性地表示“至少部分基于(based at least in part on)”或“至少部分地基于(based at leastpartially on)”。
附加地,尽管术语第一、第二和其他术语在本文中可以用于描述各种元件、组件、区域、层或部分,但是这些元件、组件、区域、层或部分不应当必然地受这些术语限制。相反,这些术语用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开。这样,在不脱离本公开内容的情况下,以下讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分。
此外,除非另外定义,否则本文所使用的所有术语(包括技术术语和科学术语)具有与本公开内容所属领域的普通技术人员通常理解的含义相同的含义。因此,诸如在常用词典中定义的那些术语应当被解释为具有与其在相关技术的上下文中的含义一致的含义,并且除非在本文中明确定义,否则不应当以理想化或过于正式的意义来解释。
因此,本公开内容中提及的所有已公布的专利、已公开的专利申请和非专利公开(包括超链接文章、网页和网站)出于所有目的通过引用整体并入本文,其程度如同具体地和单独地指示通过引用并入每个单独的已公布的专利、已公开的专利申请或非专利公开。如果任何公开内容通过引用并入本文,并且这样的公开内容与本公开内容部分和/或全部冲突,则在冲突的程度、和/或更广泛的公开内容、和/或更广泛的术语定义上,以本公开内容为准。如果这些公开内容部分和/或全部彼此冲突,则在冲突的程度上,以日期较晚的公开内容为准。
图1示出了根据本公开内容的用于基于扩充的规范化分类图像来提供应用行为的分析的系统的实施方式的图。特别地,系统100包括:网络102、计算平台104以及多个客户端106、108和110。计算平台104以及客户端106、108和110与网络102通信。
网络102包括经由多个通信信道互连的多个计算节点,其使得能够共享资源、应用、服务、文件、流、记录、信息等。网络102可以经由网络协议来操作,例如以太网协议、传输控制协议(TCP)/互联网协议(IP)等。网络102可以具有任何规模,例如个人区域网(PAN)、局域网(LAN)、家庭区域网、存储区域网(SAN)、校园区域网、骨干网、城域网、广域网(WAN)、企业私有网、虚拟专用网(VPN)、虚拟网络、卫星网络、计算机云网络、互联网络、蜂窝网络等。网络102可以包括内联网、外联网等。网络102可以包括因特网。网络102可以包括其他网络,或者使得能够与其他网络通信,无论是子网络还是不同的网络。
计算平台104包括经由多个服务器(无论是硬件还是虚拟的)定义的云计算环境,其中服务器例如经由服务器集群、服务器网格、服务器组或其他协同操作以执行计算任务,例如读取数据、写入数据、删除数据、收集数据、分类数据等。在一些实施方式中,计算平台104可以包括大型机、超级计算机等。服务器可以被容纳在数据中心、服务器场等中。计算平台104可以按需提供多个计算服务,例如基础设施即服务(IaaS)、平台即服务(PaaS)、打包软件即服务(SaaS)等。例如,计算平台104可以从分布在全球各个区域中的多个可用区(AZ)上的多个数据中心提供计算服务,其中AZ是包含多个数据中心的位置,而区域是通过低延迟网络链路连接的地理上邻近的AZ的集合。例如,计算平台104可以使得用户能够在不同的AZ启动多个虚拟机(VM)并复制数据,以实现高度可靠的基础设施,该基础设施能够抵抗单个服务器或整个数据中心的故障。例如,计算平台104可以包括亚马逊网络服务(AWS)、微软Azure、谷歌云、IBM云或其他。
无论是以有线、无线还是波导方式,客户端106、108和110中的每个客户端包括通过网络102与计算平台104通信的逻辑。当逻辑是基于硬件的时,则客户端106、108和110中的至少一个客户端可以包括台式机、终端、信息亭、平板电脑、智能电话、可穿戴设备、交通工具(陆地/海上/空中)、物理服务器、大型机、视频游戏控制台等。例如,当逻辑是基于硬件的时,则客户端106、108和110中的至少一个客户端可以包括输入装置,该输入装置例如是鼠标、键盘、相机(无论是面向前和/或面向后的)、加速度计、触摸屏、生物识别读取器、点击器、操纵杆、视频游戏控制器、麦克风等。同样,当逻辑是基于硬件的时,则客户端106、108和110中的至少一个客户端可以包括输出装置,该输出装置例如是显示器、扬声器、耳机、操纵杆、视频游戏控制器、打印机等。在一些实施方式中,输入装置和输出装置可以体现在一个单元中。当逻辑是基于软件的时,则客户端106、108和110中的至少一个客户端可以包括软件应用、浏览器、软件模块、可执行文件或数据文件、数据库管理系统(DBMS)、浏览器扩展、移动应用程序等。无论逻辑是基于硬件的还是基于软件的,客户端106、108和110都可以以任何排列方式彼此相同或不同地实施,并且因此,逻辑可以相应地以任何排列方式相同或不同地实现。无论如何实现该逻辑,该逻辑使得客户端106、108和110中的每个客户端能够与计算平台104通信,例如经由公共框架(例如超文本传输协议(HTTP)、HTTP安全(HTTPS)协议、文件传输协议(FTP)或其他)从计算平台104请求或接收资源/服务。在一些实施方式中,逻辑使得客户端106、108和110能够彼此通信。
客户端106由应用管理员操作,该应用管理员具有对在计算平台104上运行的应用实例的一组应用管理权限。客户端108由网页管理员操作,该网页管理员具有在计算平台104上运行的或可访问的网页的一组网页管理权限。客户端110由可能正在浏览网页的终端用户操作。注意,这些功能中的至少一些可以交叠,例如当应用管理员、网页管理员或终端用户客户端中的至少两个是同一用户时。
在一种操作模式中,如以下进一步说明的,系统100被配置成使得用户能够操作浏览器来浏览描绘一组图像的网页,并且使得网页的操作者能够基于该组图像中描绘的各种上下文信息,相对于该组图像粒度地跟踪用户如何操作浏览器。
图2示出了根据本公开内容的用于基于分类图像的扩充规范化来提供应用行为的分析的总体处理的实施方式的流程图。特别地,处理200包括多个块202至236,所述块描述了用于基于分类图像的扩充规范化来提供应用行为的分析的总体技术。可以经由系统100执行处理200。
在块202中,计算平台104通过网络102从在客户端108的操作系统(OS)上运行的浏览器接收图像。图像可以包括光栅或矢量格式的数字图像,但也可以是模拟格式(可能需要转换)的数字图像。例如,图像可以描绘人的面部或肢体或躯干或整个人、正在销售的产品或物品或服务等。图像可以包括静止照片、漫画、计算机辅助设计(CAD)图像、图表、流程图、手绘或计算机绘制的图像、经由诸如声纳装置、X射线装置、雷达装置、激光雷达装置或其他的非光学图像捕获装置捕获的图像等。图像可以被二值化、灰度化、单色化、彩色化(红色、绿色、蓝色)等。例如,浏览器可以包括Firefox、Chrome、Safari、Internet Explorer、Edge、Silk等。例如,OS可以包括Windows、MacOS、Android、iOS、Unix、Linux等。
在块204中,计算平台104对图像进行预处理,并且对副本进行预处理。预处理可以包括裁剪、二值化、调整色调、调整对比度、调整亮度、过滤、反扭曲等。在一些方面中,生成图像的多个副本并且将预处理技术应用于所述副本以便生成图像的修改副本。图像的修改副本对应于图像的副本的修改版本,因为如本文所述,修改副本已经被预处理。以这种方式,原始图像和图像的修改副本(如通过预处理技术修改的)可以被链接,并且如以下更充分地描述的,图像的修改副本可以被分类。
在块206中,计算平台104对图像进行分类,这可以包括将用于分类的图像提交到分类引擎中,无论是本地到计算平台104还是远程到计算平台104。可以基于图像中描绘的各种特征(例如面部特征、服装特征或其他)对图像进行分类,并且存储这样的分类的原始结果。
在块208中,计算平台104对从正被分类的图像获得的数据集进行规范化。这种规范化可以基于计算平台104可用的分类法。例如,分类法可以被存储在诸如文件、数组、数据库或其他的数据结构中,并且包含诸如时尚摄影、食品摄影、服装摄影、装备摄影、产品摄影或其他的特定知识或技术领域的各种类别和属性。结果,计算平台104基于将来自分类引擎的结果映射到归一化格式来对数据集进行规范化。
在块210中,计算平台104扩充经规范化的数据集。基于从来自分类器引擎的各种输出得出的附加元数据的插入来扩充数据集。例如,当处理时尚摄影时,则可以基于时装模型轮廓增强、面部属性比率确定、负空间确定等来扩充数据集。
在块212中,计算平台104存储经扩充的数据集。
在块214中,计算平台104通过网络102将逻辑发送给在客户端110的OS上运行的浏览器。该逻辑可以包括脚本、信标、跟踪器等。例如,代码可以包括JavaScript代码。计算平台104可以在终端用户客户端110浏览描绘在块202中经由计算平台接收的图像的网页之前或时发送逻辑。例如,浏览器可以包括Firefox、Chrome、Safari、Internet Explorer、Edge、Silk或其他。例如,OS可以包括Windows、MacOS、Android、iOS、Unix、Linux或其他。
在块216中,计算平台104基于通过网络102传送的来自终端用户客户端110的浏览器的图像来捕获计算事件,例如光标事件、键盘事件或其他。例如,光标事件可以基于经由终端用户客户端110的终端用户操作光标。光标可以经由输入装置来操作,该输入装置例如运动跟踪指示装置、位置跟踪指示装置、压力跟踪指示装置等。运动跟踪指示装置可以包括鼠标、跟踪球、操纵杆、指示棒、手柄(Wii Mote)或遥控器(Wii Remote)、手指跟踪装置(在不接触屏幕的情况下,在3D空间或接近表面的地方跟踪手指——手指通过诸如立体相机、飞行时间、激光器的技术进行三角测量)等。位置跟踪指示装置可以包括图形输入板、手写笔、触摸板、触摸屏等。压力跟踪装置可以包括等距操纵杆等。注意,计算事件可以包括非光标或非键盘事件,例如眼睛跟踪事件、拨盘或旋钮事件、加速度计事件、惯性测量单元(IMU)事件、陀螺仪事件等。可以在该事件发生时、在一组计算事件、事件流等中发送计算事件。
在块218中,计算平台104参照存储在计算平台104上或对计算平台104可用的一组规则来验证计算事件。该组规则可以存储在诸如表、数组或其他的数据结构中。例如,计算平台104可以验证以查看字段是否存在、字段是否已用变量填充、有效字母数字值是否被存储等。例如,计算平台104基于这种验证未能满足预定阈值而丢弃请求并记录错误消息。
在块220中,无论数据仓库存储在计算平台104上还是对计算平台104可用,计算平台104都将计算事件流送至数据仓库。
在块222中,计算平台104基于数据仓库运行ETL作业。例如,ETL作业可以包括存储在数据仓库上的计算事件。
在块224中,计算平台104基于ETL作业将记录加载到数据集市的租户表中。数据集市基于数据仓库。租户表与如上所述的网页的操作者相关联。
在块226中,计算平台104运行可以查询租户表的web应用。当经由应用管理员操作客户端106时,可以经由在客户端106的OS上运行的浏览器通过网络102管理web应用。web应用可以包括管理员图形用户界面(GUI),其使得能够管理web应用。web应用可以包括网页操作者GUI,其使得能够基于计算事件来分析图像。例如,浏览器可以包括Firefox、Chrome、Safari、Internet Explorer、Edge、Silk或其他。例如,OS可以包括Windows、MacOS、Android、iOS、Unix、Linux或其他。
在块228中,计算平台104通过网络102从客户端108接收具有租户要求的令牌。客户端108通过网络102登录到计算平台104中以便通过网络102访问网页操作者GUI可以基于令牌。在验证时,租户要求使得网页操作者GUI能够基于存储在租户表中的计算事件来通过网络102向客户端108提供对图像的分析。
在块230中,计算平台104使得网页操作者GUI能够基于被验证的令牌通过网络102提交对租户表的查询。
在块232中,计算平台104对客户端108的服务的查询结果进行序列化。例如,计算平台104可以基于以下操作来序列化:将数据结构或对象状态转换成可以存储在例如文件、存储器缓冲区、数据结构、数据库等中或者可以例如跨网络连接链路传送并稍后重建(这可以在不同的计算机环境中进行)的格式。
在块234中,计算平台104通过网络102将经序列化的结果发送到客户端108,以在客户端108的OS上运行的浏览器内呈现。
在块236中,计算平台104通过网络102从客户端108接收来自网页操作者GUI的输入。该输入可以响应于在客户端108的OS上运行的浏览器内呈现的结果。例如,该输入可以包括以下中的至少一个:将数据保存到客户端108上、将数据从计算平台108发送到另一客户端、重新格式化数据、打印数据、共享数据、加密数据、存档数据、压缩数据等。
如以下进一步描述的,处理200通过组合基于一组图像分类器和分类服务的不同分类器来基于分类法列表标识图像的各种属性,从而实现图像分类。分类法列表包括特定于诸如时尚摄影、食品摄影、服装摄影、装备摄影、产品摄影或其他的知识或技术领域的属性。如下所述,使用时尚摄影,但是注意,这种使用是说明性的,并且其他知识或技术领域是可能的并且可以被使用。图像分类包括预处理、图像分类、规范化以及扩充,所有这些都将在下面进一步描述。
图3示出了根据本公开内容的用于预处理图像的系统的实施方式的图。特别地,系统300经由计算平台104和客户端108实现。系统300执行图2的块202至204。注意,尽管在AWS的上下文中描述了系统300,但是系统300并不限于AWS,而是可以以其他方式实现(无论是替选地还是附加地)。例如,可以经由微软Azure、谷歌云、IBM云或其他来实现系统300。
系统300包括作为按需计算单元或实例操作的虚拟服务器组302。例如,虚拟服务器组302可以被实现为亚马逊弹性计算云(EG2)或用于提供按需计算能力的其他云。如本文所公开的,虚拟服务器集302针对计算能力和大小实例化,根据特定工作负载类型和应用(例如存储器密集型和加速计算作业)而定制,同时还自动缩放以动态缩放容量来维持实例状况和性能。当实现为EC2时,虚拟服务器集302可以托管AWS EC2容器服务,并且EC2容器注册表使得能够与虚拟服务器集302上的Docker容器和一组二值图像一起工作。
虚拟服务器集302包含web API 304,该Web API可以与表述性状态转移(REST)风格兼容,并且可以包括用于开发服务器端应用和网络应用的跨平台运行时环境。例如,webAPI 304可以包括Node JS web API等。注意,可以很好地使用非JavaScript代码方法。例如,web API 304可以是异步的(非阻塞的),并且事件驱动服务器不等待API返回数据,并且服务器在调用API之后移动到API,并且事件的通知机制帮助服务器从先前的API调用中获得响应。此外,虚拟服务器集302可以包括具有事件循环的单线程模型(事件机制帮助服务器以非阻塞方式响应,并且使服务器具有高度可缩放性,而传统服务器创建有限线程来处理请求——与比传统服务器相比,单线程程序可以为更多的请求提供服务)。此外,虚拟服务器集302可以被配置成不以块的形式缓冲数据和输出数据。
web API 304与托管或访问Docker容器308(可以执行操作系统级的虚拟化/容器化的软件逻辑)的web服务308通信。web服务306托管在计算平台104上或可供计算平台104访问。Docker容器308托管包含逻辑标准化单元的软件包(容器),该逻辑标准化单元包括与要运行或实例化的逻辑标准化单元相关的库、系统工具、代码和运行时间。例如,web服务304可以包括AWS弹性容器服务(ECS)等。Docker容器308托管或访问微web框架310,例如以Python或其他语言编写的Flask微框架。微web框架310支持扩展,该扩展可以添加应用特征,就像这些特征在微web框架310本身中实现一样。微web框架310托管用于对象关系映射器、表单验证、上传处理、各种开放式认证技术和若干常见的框架相关工具的扩展。
web API 304与存储服务312通信,该存储服务被配置成经由web服务接口(例如REST接口、简单对象访问协议(SOAP)、比特流协议等)用于对象存储、文件存储或块存储中的至少一个。例如,存储服务312可以包括AWS S3服务,其中基本存储单元是以下对象,该对象被组织到存储桶中并且在存储桶内由唯一的用户分配的字母数字标识符或键来标识。存储服务312托管在计算平台104上或可供计算平台104访问。存储服务312包括第一存储桶330、第二存储桶332和第三存储桶334,它们中的每一个都被配置成用于存储图像,如以下进一步说明的。
web API 304与数据库服务314通信,该数据库服务可以在多个AZ上部署并且可以实现读取副本。数据库服务使得管理过程(例如修补数据库软件、备份数据库、以及启用时间点(PIT)恢复等)能够例如经由客户端106被自动管理。例如,数据库服务可以包括诸如AWS RDS服务或其他的关系数据库。数据库服务314托管或访问可以用作数据库服务器的对象关系数据库管理系统336(ORDBMS),例如PostgreSQL等。ORDBMS 336符合原子性、一致性、隔离性和持久性(ACID)兼容性,并且具有可更新的视图和物化视图、触发器、外键;支持功能和存储过程以及其他可扩展性。注意,数据库服务314可以是非关系的,例如后关系数据库、内存数据库、混合数据库、可扩展标记语言(XML)数据库、并行数据库、分布式数据库、图形数据库、移动数据库、操作数据库、概率性数据库、实时数据库、空间数据库、时间数据库、面向对象的数据库、非结构化数据的数据库、面向术语的数据库等。数据库服务314托管在计算平台104上或可供计算平台104访问。
web API 304托管或访问图像处理逻辑316,以创建、编辑或合成位图图像。图像处理逻辑316可以以多种格式读取、转换和写入图像,例如GIF、JPEG、JPEG-2000、PNG、PDF、PhotoCD、TIFF、DPX或其他格式。图像处理逻辑316可以使得图像能够被裁剪,颜色能够被改变,各种效果能够被应用,图像能够被旋转和组合,并且文本、线、多边形、椭圆和贝塞尔曲线(Bezier curves)能够被添加到图像并且被拉伸和旋转,等等。例如,图像处理逻辑316可以被配置成将图像从一种格式转换为另一种格式(例如,从TIFF到JPEG),对图像调整尺寸、旋转、锐化、减少颜色或添加特殊效果,创建图像缩略图的蒙太奇,创建适合web使用的透明图像,将一组图像转换为GIF动画序列,通过组合多个单独的图像创建合成图像,在图像上绘制形状或文本,用边框或框架装饰图像,描述图像的格式和特征,等等。图像处理逻辑316可以是基于网络的。例如,图像处理逻辑316可以包括ImageMagick等。
微web框架310托管或访问机器学习算法库318。例如,机器学习算法库包括用于处理网络、线程、图形用户界面、数据结构、线性代数、机器学习、图像处理、计算机视觉、数据挖掘、XML和文本解析、数值优化、贝叶斯网络(Bayesian networks)、统计工具或其他的软件组件。机器学习算法库318可以是基于网络的。例如,机器学习算法库318包括Dlib工具包。
系统300包括开放标准文件格式的数据结构320,其使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构320可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构320可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。
web API 304托管或访问基于网络的软件开发包(SDK)322,其可以是基于网络的。例如,SDK 322可以包括AWS SDK等。
web API 304托管或访问编辑器324以帮助编写诸如标准查询语言(SQL)查询的数据库查询。编辑器324可以是基于网络的。例如,编辑器325可以包括用于Postgres、MSSQL、MySQL、MariaDB、SQLite3、Oracle、Amazon Redshift等的SQL查询生成器。编辑器324可以包括传统节点样式的回调以及用于更干净的异步流控制的承诺接口、流接口、查询和模式生成器、事务支持(具有保存点)、连接池以及不同查询客户端和方言之间的标准化响应,等等。例如,编辑器324可以包括KNEX.JS查询生成工具等。
web API 304托管或访问优先级作业队列326,其可以是基于网络的。优先级作业队列326可以包括GUI,用于查看和管理排队的、活动的、失败的和完成的作业。优先级作业队列326可以由内存数据库键值存储328支持,该内存数据库键值存储可以支持不同类型的抽象数据结构,例如字符串、列表、映射、集合、排序集合、超日志(hyperloglog)、位图、空间索引等。web API 304可以托管或访问内存数据库键值存储328。例如,优先级作业队列326可以包括由Redis存储支持的Node.JS的Kue优先级作业队列(https://automattic.github.io/kue)。
基于上述系统300的各种组件,系统300被配置成执行图像预处理,例如按照块204执行该处理。特别地,在对图像进行分类之前,对图像进行一些预处理以准备对图像进行分类处理。预处理调整图像大小并压缩图像以确保图像满足各种图像分类服务的各种大小要求和格式要求。例如,可以根据需要裁剪图像以提高分类器性能。例如,当在时尚摄影的上下文中使用时,通过裁剪除了时装模特的面部之外的一切,可以存在改进的面部属性分类器性能和面部识别。这样,计算平台104可以例如经由虚拟服务器集302从客户端108(例如经由图像文件、流、文件共享等)接收图像。这些文件可以在复制和上传到计算平台104之前被存储在客户端108上,或者以其他方式可由客户端108或客户端108的浏览器访问。这些文件还可以从远离客户端108的数据源发送到计算平台104,例如经由基于网络的文件共享服务(无论是基于对等(P2P)还是基于云的),例如Napster、Bit Torrent、Dropbox、Box、Egnyte、Google Drive、Microsoft One Drive、Microsoft SharePoint、Microsoft Teams、Slack、Apple iCloud等。例如,图像文件可以在复制和上传到计算平台104之前本地存储到客户端108,或者在复制和上传到计算平台104之前远程存储到客户端108。例如,在复制和上传到计算平台104之前,可以基于用户对文件的选择从客户端108的浏览器接收经复制的文件,其中经由客户端108做出用户选择。例如,无论是本地还是远程经由客户端108,可以基于用户对文件的选择从远离客户端108的数据源(例如基于网络的文件共享服务)接收经复制的文件。注意,无论密码是否受保护或存档,文件中的至少一个可以是数据文件,例如图像文件、生产力文档文件,例如Microsoft Word文件、Microsoft Excel文件、可移植文档格式(PDF)文件、存档文件等。同样,注意,无论是在Windows环境还是在其他OS环境(包括分布式环境)中都可执行,文件中的至少一个可以是可执行文件,例如.BAT文件、.COM文件、.EXE文件、.BIN文件或其他文件。注意,计算平台104在接收文件时可以检查文件中是否有病毒或其他恶意软件。如果计算平台104检测到文件中的至少一个包含病毒或其他恶意软件,则计算平台104可以将这种情况通知客户端108,并且删除或沙盒化该文件。
因此,当在时尚摄影的上下文中使用时,基于系统300的步骤1,诸如JPG、TIF、PNG、BMP或另一格式的图像可以经由HTTP上传到web API 304,例如在AWS EC2云实例中托管的NodeJS API,其中图像被临时存储在EC2云实例中的物理存储器(缓冲)中。如上所述,在一些方面,将生成图像的副本。基于系统300的步骤2,图像(例如,图像的副本)被预处理,其中(a)图像修改、(b)裁剪、或(c)图像分割中的至少两个可以被并行地执行以生成图像的修改副本。例如,图像修改可以包括复制图像,然后使用GraphicsMagick图像处理系统(http://www.graphicsmagick.org)调整图像大小并进行压缩,其中保持原始纵横比,最长边缘被调整为700像素(px),图像被压缩成JPEG格式,质量值为图像的80%。注意,这些格式、值和参数是说明性的,并且可以根据需要进行修改。同样,例如,如果在图像中检测到面部,则复制图像并且在面部周围裁剪图像的副本。可以经由将图像发送到微web框架310,例如在AWSECS中的Docker容器中托管的Python Flask web API来执行这样的功能。微web框架310可以采用机器学习算法库318,例如Dlib工具包(http://diib.net/)默认frontal_face_detector来检测是否存在面部,然后如果检测到面部,则提取面部的边界框坐标集,并且将其作为JavaScript对象符号(JSON)返回给NodeJS web API。这样,如上所述,如果FlaskAPI返回了面部的边界框坐标集,则NodeJS API使用GraphicsMagick图像处理系统裁剪图像。然后,将经裁剪的图像存储在缓冲器中。类似地,例如,可以执行与上述技术类似的图像分割,但是图像分割可以包括毛发分割、人体分割、肢体分割、服装分割等。基于系统300的步骤3,经上传的、经调整大小的、以及经裁剪的图像(例如,修改的副本)经由HTTP协议从缓冲区被传送,并且被存储到虚拟化存储单元(例如,存储服务312),例如使用AWS SDK 322的AWS S3云存储桶。可以使用多个虚拟化存储单元,其中可以基于用于获得修改副本的预处理技术来选择其中图像或其修改副本的特定虚拟存储单元。仅作为示例,图像/修改副本可以存储在第一存储桶330(原始图像)、第二存储桶332(调整大小的图像)和第三存储桶334(剪裁的图像)中。基于系统300的步骤4,对于第一存储桶330、第二存储桶332和第三存储桶334中的每一个,使用诸如RFC4122(版本4)通用唯一标识符(UUID)的唯一标识符技术来命名图像,并且然后将用于图像的每个版本的诸如UUID的唯一标识符作为单个图像记录的一部分存储在AWS RDS实例中托管的PostgreSGL数据库中。注意,使用编辑器324(例如KNEX.JS查询生成器工具(https://knexjs.org))执行针对数据库服务314(例如PostgreSQL数据库等)的一些、大部分或全部查询(选择、插入、更新、删除或其他)。基于系统300的步骤5,查询单个图像记录以将其中的至少一个图像放入优先级作业队列328中以随后进行分类。需要优先级作业队列326来保证提交的每个图像被进行分类,并且优先作业队列326减轻分类处理上的背压,并且允许对作业执行进行粒度控制。背压是流数据的一个症状,其中生成数据的速度快于刷新数据的速度(分类过程可能比预处理花费更长的时间)。
如以下进一步说明的,在图像已经被预处理之后,图像已准备好进行分类。然而,注意,图像也可以在不进行预处理的情况下准备好进行分类。无论如何,分类过程使用由第三方基于web的分类服务提供的各种基于网络的分类器和自定义开发的分类器,例如用于跨任务范围的数据流编程的软件库,其中该软件库可以是符号数学库或者被配置用于机器学习应用,例如神经网络等。例如,自定义开发的分类器可以包括TensorFlow分类器。分类器可以被分成各种组。
这些分类器中的一些是基于网络的通用分类器服务,例如Google图像分类器API、Microsoft Azure计算机视觉API、Amazon AWS SageMaker API、Ciarisai API等。通用分类器是多用途分类器,其可以输出各种各样的结果,例如在图像中识别的各种对象、在图像中描绘的人的性别、在图像中描绘的人的年龄、在图像中描绘的人的情绪等。通用分类器不输出时装模特特定属性,但确实包含可以用于帮助通知某些属性分类的某些有价值的属性。
一些这样的分类器是基于网络的可定制分类器服务。这些分类器类似于通用分类器,但是允许对特定属性进行自定义训练,并且允许终端用户上传具有标签的训练集以利用机器学习,以便训练这些分类器来检测感兴趣的属性。
一些这样的分类器是基于网络的自定义分类器。例如,可以基于软件库开发这些分类器用于跨任务范围的数据流编程,其中该软件库可以是符号数学库或者被配置用于机器学习应用,例如神经网络等。例如,该软件库可以包括TensorFlow SDK(https://www.tensorflow.org),并且可以类似于自定义的训练分类服务,训练集被用于训练分类器以检测特定属性。例如,诸如Inception v3的图像分类器可以用作基础模型,其中该模型使用具有大约1,000类手动标记的实体的接近120万个图像的imagenet数据集。计算平台104使用转移学习方法来通过从诸如TensorFlow GitHub存储库等数据源下载预训练模型来对图像进行分类,并且根据需要以编程方式重新训练该卷积网络的特定层。卷积网络具有重新训练的最后一层,即,预测一组自定义属性的推理/分类层。例如,如以下进一步所述,可以修改Inception v3的最后一层。
可以采用自定义训练过程来提高准确性。特别地,计算机视觉、神经网络和深度学习是复杂的主题。在较高的水平上,计算机视觉基于由人类训练的神经网络模型,利用像素的颜色和图案识别来检测对象。这些神经网络模型使用成千上万的图像进行训练,但仅限于这些模型已经训练过的主题。为了检测分类器未知的属性,可以提供自定义的训练集来构建或扩展模型。这种自定义的训练集可以用于基于至少两种不同的自定义分类方法(例如微软自定义视觉服务API和TensorFlow API)来构建或扩展模型。例如,微软自定义视觉服务API是用于构建自定义图像分类器的工具,并且简化了图像分类器的快速构建、部署和改进。微软自定义视觉服务API提供了REST API和用于训练的web接口工具。当前,当项目在图像中突出时,微软自定义视觉服务API工作良好,因为微软自定义视觉服务API依赖于图像分类而不是对象检测。然而,当试图检测图像之间非常细微的差别时,微软自定义视觉服务API不能很好地工作(尽管足够好)。同样,例如,使用TensorFlow API或SDK可能会涉及到使用Inception v3作为基础模型,其中该模型使用具有大约1,000类手动标记的实体的接近120万个图像的imagenet数据集。使用这样的技术,计算平台104使用转移学习方法来通过从诸如TensorFlow GitHub存储库等数据源下载预训练模型来对图像进行分类,并且根据需要以编程方式重新训练该卷积网络的特定层。
图4示出了根据本公开内容的预先构建的深度学习视觉模型的实施方式的图。特别地,如在预先构建的深度学习视觉模型中所示,每个有色斑点是具有许多参数的子网络。注意,该模型的最后几层指示一些特定的图像分类正在进行。例如,进行转移学习的一种方式是用两个新的层替换最后两层,然后从0开始到Length-2常数(或接近)重新训练先前层的一些训练参数。例如,卷积网络的最后一层可以被重新训练(即,预测各种自定义属性的推理/分类层),例如修改Inception V3模型的最后一层。因此,由于经训练的模型与用于创建经训练的模型的数据集几乎处于一样水准,所以为了创建该数据集,基于各种指导方针来选择用于训练的准确数据集。例如,一些这样的指导方针涉及学习、收集、训练、验证或其他的范围。例如,学习的范围涉及识别和定义模型的范围,即,模型将预测哪种图像、计算机将如何看到这些图像、模型将为图像预测多个概念还是执行二元分类,等等。例如,该收集涉及获得更多变量和多样化的训练数据集,即,不同的照明条件、可变的对象大小、旋转的图像、具有焦点的高质量的图像、具有在不同距离和颜色处的对象的图像等。例如,使用TensorFlow SDK,可以获得每个属性标签的最少500个图像。例如,对于训练和验证,数据集可以被组织成训练和验证集,其中对于TensorFlow SDK的足够比率将是60%的图像用于训练,40%的图像用于验证。注意,验证数据集应具有不同的图像集,因为验证数据集用于预测模型的初始准确性。
可以经由训练过程来训练模型。如下所述,训练过程采用TensorFlow SDK和Inception V3模型,如https://www.tensorflow.org/tutorials/image_recognition或/image_retraining页面所述,但无论是附加地还是替选地,也可以使用其他SDK、算法和配置。例如,可以创建具有分类类别的图像训练集来教导卷积网络,例如姿势/站立、姿势/跳跃、姿势/行走等。可以调整下面描述的各种参数以提高卷积模型的训练过程的速度或精度。
这样的参数之一是瓶颈值,其中训练过程的第一阶段分析磁盘上的多个图像,例如一组或一簇图像,并且确定每个图像的各种瓶颈值。注意,瓶颈可以指恰好在实际执行分类的最终输出层之前的层。该倒数第二层已经被训练成输出一组足够好的值以供分类器使用,以便区分分类器已被要求识别的一些、大部分或所有类别。因为在训练期间一些、大部分或所有图像可以被重复使用多次,并且因为确定每个瓶颈是耗时的,所以为了提高计算效率或速度,计算平台104可以将这些瓶颈值缓存到磁盘上,使得这些瓶颈值不必被重复地重新确定。
这样的参数之一是训练集。一旦完成如上所述的瓶颈过程,则开始卷积网络的顶层的实际训练步骤。例如,默认地,该脚本可以运行4,000个训练步骤,但是可以运行更少的步骤,例如2,000或更少等(包括中间值),或者可以运行更多的步骤,例如9,000个步骤或更多等(包括中间值)。每个步骤从训练集中随机选择一组图像,例如十个图像,从缓存中为该组的每个成员找到瓶颈值,并且将该组的每个成员馈送到最后一层以得到预测。然后,将这些预测与一组实际标签进行比较,以通过反向传播过程来更新最终层权重的各个权重。注意,增加训练步数可以增加训练速度,并且可以提高准确性或精度。此外,注意,如果卷积网络用特定类型的数据过度训练,则卷积网络可能会开始记忆这些图像以及与这些图像无关的信息,从而导致数据的过拟合,即,对于在训练过程期间看到的一些图像,一些结果可能是正确的,但在较新的图像上可能会失败或不太准确或不太精确。Inception V3的最后一层可以被修改,如以下进一步说明的。
这样的参数之一是失真。在训练期间,可以通过使用各种预先构建的库(例如TensorFlow SDK中的库或其他库)来处理一些图像。例如,通过在脚本中传递%值--random_crop、--random_scale和--random_brightness,可以启用这些失真。这可以帮助增加数据集的大小并且向一些图像添加变化。
这样的参数之一是重新训练。一旦完成训练,就可以调用预定义的函数或子例程来检查测试中错误分类的图像。例如,该函数或子例程可以包括TensorFiow SDK等中的--print_mirrized_images。该函数或子例程调用可以帮助理解可能对该模型最易混淆的各种类型的图像,以及哪些类别最难以区分。这样,可以使用类似的图像来重新训练该模型以提高精度或准确度。
这样的参数之一是部署。计算平台104将训练模型包装到REST API中,该REST API可以被集成到图像分类流水线中。然而,计算平台104也可以使用tensorflow-serving基础架构等以使用远程过程调用(RPC)协议创建生产系统。
图5示出了根据本公开内容的用于图像分类的系统的实施方式的图。特别地,系统500与系统300共享一些组件(类似的编号)。系统300执行图2的块206,并且从块204继续。注意,尽管在AWS的上下文中描述了系统500,但是系统500并不限于AWS,而是无论是替选地还是附加地可以以其他方式实现。例如,可以经由微软Azure、谷歌云、IBM云或其他来实现系统500。
当在时尚摄影的上下文中使用时,基于系统500的步骤1和步骤2,在图像预处理之后,一些图像被从内存数据库键值存储328加载到队列中以进行分类。web API 304从队列中获取这些图像,该队列存储在由优先级作业队列326(例如Kue作业队列服务等)管理的内存数据库键值存储328中。基于系统500的步骤3,队列包含先前存储在PostgreSQL数据库336中的图像记录的主键。该主键用于查询PostgreSQL数据库336,并且检索已经预处理和存储的每个图像的图像UUID。注意,该查询返回开放标准文件格式的数据结构502,其使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构502可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构502可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。这样,查询返回包含该图像或每个图像的UUID的数据结构502。数据结构被存储在web API 304的存储器中,以准备用于随后的分类。
基于系统500的步骤4,计算平台104托管或访问多个分类器设置或配置。每个分类器设置或配置可以对应于特定分类引擎并且指定要由该特定分类引擎分类的图像的类型。因此,可以为每个支持的分类器检索分类器设置或配置。设置或配置可以是开放标准文件格式的数据结构的形式,该开放标准文件格式使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)或其他。例如,设置或配置可以是可以在web API304中引用的JSON文件的形式。如上所述,设置或配置可以包括要提交给分类器的图像类型,例如压缩版本、面部片段、身体片段等。设置或配置可以包括分类器统一资源定位符(URL)等。设置或配置还可以包括标识ID、访问密钥等。附加地或替选地,设置或配置可以包括诸如分类器模型ID、版本或其他的特定参数。
基于系统500的步骤5和步骤6,一旦检索到分类器配置的设置或配置,计算平台104就可以使图像的修改副本(例如,从虚拟化存储单元)被发送到分类引擎,例如分类服务506、508。可以基于分类器设置将每个修改副本发送到特定分类引擎。仅作为示例,计算平台104使用分类器的设置或配置来向分类服务506、508发布(POST)HTTP请求。例如,计算平台104可以检索多个分类服务506、508的多个设置或配置,然后使用这些设置或配置向分类服务506、508并行发布到基于多个HTTP请求执行多个POST动作)。注意,POST请求基于设置或配置使用适当的图像UUID。POST请求包含存储服务312的用于存储桶的多个URL,这些存储桶允许包含在其中的图像被检索,其可以由分类器服务506、508中的每一个从这些存储桶中引导。这种配置避免或最小化了必须在web API 304中缓冲这些图像。
基于系统500的步骤7,分类器服务506、508返回由多个分类器服务生成的修改副本的多个分类结果集。仅作为示例,分类结果集可以包括开放标准文件格式的多个数据结构504,该开放标准文件格式使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构504可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构504可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。例如,分类器服务506、508返回结果作为多个JSON对象,所述多个JSON对象被收集并存储在web API 304的存储器中。
基于系统500的步骤8和步骤9,诸如函数或子例程(例如JavaScript Promise.all函数等)的逻辑被用于等待来自分类器服务506、508中的每个的响应。如果分类器服务506、508中的每个以有效结果响应,则将存储这些结果。如果存在错误或者分类器服务508、508之一未能响应,则将针对特定的一组图像或特定的图像或一组分类器服务506、508或特定的分类器服务508、508重新尝试重新提交过程。在最多3次重试或其他例如2次或5次以上重试之后,这个过程将被标记为失败的过程并被记录下来,使得分类器服务506、508中的至少一个能够得到下一个图像。如果所有分类器都返回有效结果,则这些结果被存储在表中,例如由数据库服务314托管的PostgreSQL数据库336中的另一数据结构或classifier_data表,例如AWS RDS等。例如,classifier_data表可以包含对PostgreSQL数据库336的source_images表的外键引用,每个分类器结果可以被存储为该表中的单独的行,并且一组分类器数据可以被存储为开放标准文件格式的数据结构,该开放标准文件格式使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。例如,如上所述,该组分类器数据可以作为原始JSON存储在数据库表中。
如以下进一步说明的,在图像分类之后,可以发生规范化和扩充。在收集和存储原始分类结果之后,基于用于标记的分类法规范化这样的数据。仅作为示例,可以利用多个分类法标签集,其中,每个特定分类法标签集对应于特定分类引擎。分类法标签集可以包括特定知识或技术领域的各种类别和属性,例如时尚摄影、食品摄影、服装摄影、装备摄影、产品摄影等。图6示出了根据本公开内容的分类法的实施方式的图。可以基于分类法标签集来规范化分类结果集,以生成多个规范化的数据集。特别地,规范化可以包括将来自各种不同分类器的各种结果映射到标准化格式以简化下游处理的处理。此外,多个规范化的数据集可以被合并或以其他方式组合成单个数据结构,其可以如本文进一步描述的那样被扩充。如上所述,以下示出的示例描述了三个不同分类器的性别规范化处理。
属性
性别
示例原始分类器输出
分类器1:{general:{sex:{value:“male”}}
分类器2:{human_detection:{gender:{man:80%,woman:20%}}}
分类器3:{persons_gender:{masculine:90%,feminin:10%}}
规范化映射配置
分类器1:{Gender:root.general.sex.value},
分类器2:{Gender:root.human_detection.gender},
分类器3:{Gender:root.persons_gender}
针对性别的每个分类器输出是唯一的。规范映射配置描述了每个分类器如何输出性别值(如果存在)。在规范化处理期间,这些映射被用于提取每个分类器的一组适当的性别值,并且将该组适当的性别值存储在公共属性名称“性别”下,以存储在每个classifier_data记录的canonicalized_data列中。
例如,使用上述各种基于网络的分类器服务,可以使用一组分类器标识码来标识分类器:AMAZON_REKOGNITION:'AR',BETAFACE:'BF',CLARIFAI:'CF',CUSTOM_CLASSIFIER:'CC',(TensorFlow),DEEPOMATIC:'DM',FACE_PLUS_PLUS:'FP',GOOGLE_VISION:'GV',IBM_VISUAL_REGOGNITION:'IV',IMAGGA:'IM',MICROSOFT_FACE:'MF',MICROSOFT_VISION:'MV',SCALE:'SC',SIGHTHOUND:'SH'。
在规范化处理完成之后(例如通过生成对应于多个规范化数据集的单个数据结构),规范数据可以被扩充以插入从各种分类器输出得出的附加元数据,并且由此获得图像的扩充数据结构。当前,对规范数据集执行三种扩充功能,尽管也可以执行更少或更多的扩充功能。一些这样的扩充功能包括时装模特简档扩充、面部属性比率计算、负空间计算等。
可以使用面部识别技术来执行时装模特简档扩充,其中可以自动地识别各种时装模特。然后可以相应地检索一组详细的模特简档并存储为一组图像元数据。例如,关于时装模特的信息(例如出生日期、种族、体型、头发颜色等)然后可以被准确地存储为一组图像元数据。例如,为时装模特简档扩充添加新的模特简档的一些步骤涉及Microsoft Face API(https://docs.microsoft.com/en~us/azure/cognitive-services/face)。例如,为了执行该处理,需要最少包含40张时装模特的图像的训练集,其中包含各种不同的面部表情和配件,例如太阳镜、帽子等。还需要一组模特简档信息,包括姓名、出生日期、种族等。一旦收集到这样的信息,就可以执行各种步骤。使用Microsoft Face API,创建新的人群并将其添加到人群组。然后,使用Microsoft Face API,Person AddFace函数用于从上一步中生成的Person ID下的训练集中上传一组图像。然后,将新的model_profiles记录插入到SplashTag PostgreSQL数据库338中的model_profiles表。先前产生的Person ID被存储在person_id列中的model_profiles表中,以将该模特简档与Microsoft Face API Person对象相关联。注意,还插入了一些附加的简档数据,例如出生日期、种族等。这样,当在图像中检测到人时,则将在分类器结果中返回该Person ID,该分类器结果然后可以用于查询model_profiles表并且相应地检索详细的简档信息。
面部属性比率计算可以涉及面部属性比率增强器函数或子例程,以计算不同面部标志之间的各种比率,例如眼睛到鼻子的距离、鼻子到嘴的距离或其他。这些比率然后可以被存储为元数据,该元数据可以用于标识具有类似面部特征的模特,和/或标识与这些比率有关的用户行为数据中的趋势。为了计算面部属性比率,将图像上传到基于网络的面部分类器,例如Face++Landmarks分类器(https://www.faceplusplus.com/landmarks)。图7示出了根据本公开内容的具有一组标记的面部的实施方式的图。该组标记包括33个标记。在这33个标记中,28个是出现在面部两侧的14组对称标记。5个其他标记在面部的竖直中心线上,并且基于水平测量定义比例。这样,基于网络的面部分类器可以返回面部标志的阵列作为x像素坐标、y像素坐标:"faces":[{"landmark":{"mouth_upper_lip_left_contour2":{"y":165,"x":276},"mouth_upper_lip_top":{"y":164,"x":287},"mouth_upper_lip_left_contour1":{"y":164,"x":283},"left_eye_upper_left_quarter":{"y":131,"x":260},"left_eyebrow_lower_middle":{"y":126,"x":260}...]。图8示出了根据本公开内容的具有从鼻子到嘴唇以及从嘴唇到下巴的一组距离的面部的实施方式的图。然后使用以下进一步说明的一组计算将这些面部标志转换成比率。
示例:从鼻子到嘴唇的距离和从嘴唇到下巴的距离的比率
令(x1,y1)=鼻尖
令(x2,y2)=嘴唇中心
令(x3,y3)=下巴底部
令a=鼻尖到嘴唇中心之间的距离(以像素为单位)
令b=嘴唇中心到下巴底部之间的距离(以像素为单位)
令c=鼻子到嘴唇与嘴唇到下巴的比率
c=a/b
图9示出了根据本公开内容的用于规范化和扩充的系统的实施方式的图。特别地,系统900与系统300或系统500共享一些组件(类似的编号)。系统900执行图2的块208至块212,并且从块208继续。注意,尽管在AWS的上下文中描述了系统900,但是系统900并不限于AWS,而是可以无论是替选地还是附加地以其他方式实现。例如,可以经由微软Azure、谷歌云、IBM云或其他来实现系统900。当在时尚摄影的上下文中使用时,基于系统900的步骤1,使用数据库服务314中的source_image记录的主键,该图像的原始classifier_data记录的集合被查询、检索并且存储为开放标准文件格式的数据结构902,该开放标准文件格式使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构902可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构902可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。例如,数据结构902可以包括web API 304的存储器中的JSON数组。
如上所述,基于系统900的步骤2,检索每个分类器的分类法映射配置,并将其用于并行地规范化原始分类器数据记录的集合。基于系统900的步骤3,通过对已经被规范化的每个记录的canonical_output JSON列的classifier_data表运行更新命令,将一组规范化的记录存储在PostgreSQL数据库338中。
如上所述,基于系统900的步骤4,一组规范化数据被合并到单个对象中,以通过允许由特定分类器标识码选择属性值来简化扩充处理。如上所述,一些合并的属性可以根据用于标记的分类法通过属性名进行键控。在每个属性键下,可以使用分类器标识码来选择分类器值。例如,如上所述,Gender.AR将从Amazon Rekognition中选择性别分类结果。同样,Gender.CF将从Clarify中选择性别分类结果。
基于系统900的步骤5,将一些、大部分或所有合并结果存储在PostgreSQL数据库338的source_images表的merged_attributes JSON列中。如上所述,基于系统900的步骤6,一旦合并,一些、大部分或所有结果都被扩充。基于系统900的步骤7,通过运行用于正被更新的图像的merged_attributes JSON列的更新,一些、大部分或所有经扩充的结果可以被存储在source_images表的PostgreSQL数据库336中。
图10示出了根据本公开内容的用于选择分类器的系统的实施方式的图。特别地,计算平台104可以自动选择基于网络的分类器。一些属性分类器可以以各种方式不断改变,例如配置、API、准确度、精度、速度等。当分类器被重新训练或修改时,这些分类器在识别图像属性方面可能变得更好或更坏。为了确保一些图像被尽可能准确地标记,分类器可以被自动测试,并且一些最佳执行的分类器可以被自动选择用于标记处理,如本文所说明的。
关于验证集,对于被分类的每个属性,可能需要验证集来测试每个分类器的性能。一些要求对于良好的验证集可能是有价值的,例如图像的数目、图像的变化、与训练集的排他性,等等。例如,对于图像的数目,可以使用每个属性类别的最少10,000幅或更多幅图像。例如,对于模特姿态分类器(Model Pose Classifier),该图像组可以包括a)直立的3,333幅图像,b)步行的3,333幅图像,c)跳跃的3,334幅图像。例如,关于图像的变化,在诸如影棚拍摄、街拍或其他的图像中应当存在合理的变化量。这种变化应当捕获将被分类器标记的图像的一些、大部分或所有可能的变化。例如,关于训练集的排他性,用于测试分类器性能的图像中的一些、大部分或全部应当排除用于训练分类器的一些、大部分或所有图像。如果用于训练的相同图像用于测试,则一些分类器可能记住这些图像并且可能会影响一些、大部分或所有分类结果的准确性。
可以以各种方式自动测试分类器。例如,在计划维护周期期间或者在不活动周期期间,来自各种验证集的图像可以被发送到相应的机器学习分类器以用于分类。由于一次加载最少10,000幅图像(或更少或更多)可能是耗时的并且负面地影响整体系统性能,因此可以以小的子集发出一些、大部分或所有图像,并且分类结果可以被记录在包含时间戳、图像信息、分类结果或其他的数据库中,例如数据库服务314等中。一旦10,000幅图像(或更少或更多)中的一些、大部分或全部已经被分类,这些结果可能会随着时间累积和聚集。在那时,将生成并评估分类器分数。由于对于每个图像已知正确的标签,因此计算平台104可以基于正确分类的图像的数量来对每个分类器进行评分。每个替选分类器可以经历类似的处理,并且一旦已经为每个分类器收集了一些、大部分或所有分数,则可以自动选择最高性能分类器,并且可以实时地或在延迟的基础上相应地更新计算平台104的系统配置。
图11示出了根据本公开内容的用于图像元数据的数据库模式的实施方式的图。特别地,一旦计算平台104完成了图像分类、规范化和扩充,则计算平台104可以将图像元数据存储在图11的数据库模式中。在这样的存储时,计算平台194可以基于图像元数据粒度地跟踪用户行为。例如,可以在电子商务网站上跟踪用户行为,并且将这些计算事件存储在数据仓库中。这种形式的跟踪包括各种组件,例如用于在用户计算装置上运行的逻辑、用于从用户计算装置捕获计算事件的服务器、以及用于存储来自服务器的计算事件并且使得能够对计算事件进行分析的数据仓库。
用于在用户计算装置上运行的逻辑包括脚本、网络信标、小程序等。例如,逻辑可以包括在用户的web浏览器上执行并且跟踪在诸如电子商务网站或其他的网页上的各种用户行为的JavaScript片段。逻辑由操作客户端108的网页管理员配置,并且可以被包括在由操作客户端110的用户的浏览器(例如网页访问者、搜索引擎索引爬虫等)下载的超文本标记语言(HTML)和JavaScript代码中。如基于以上所处理的,逻辑可以在用户的浏览器上执行,并且跟踪用户在网页上的计算行为,尤其当计算行为涉及与图像的参与时。用户的浏览器经由HTTPS或另一通信协议将计算事件发送到捕获计算事件的服务器。例如,浏览器可以以开放标准文件格式将计算事件作为数据结构发送,该开放标准文件格式使用人类可读文本来发送包括属性-值对和数组数据类型(或任何其他可序列化的值)的数据对象。数据结构可以用于异步浏览器-服务器通信,包括在某些AJAX风格的系统中作为XML的替代。例如,数据结构可以包括JavaScript对象符号(JSON)对象、互联网JSON(I-JSON)等。例如,数据结构可以包括包含计算事件的JSON格式的数据。
服务器是web API 304服务器,例如NodeJS web服务器或其他服务器,负责接收、地理定位和验证计算事件。服务器还负责将计算事件推送到用于将实时流数据递送到数据存储的服务,以便实现计算事件的实时分析。用于将实时流数据递送到数据存储的服务可以被配置成批量处理、压缩和加密数据以增加安全性并最小化所需的存储空间量。在传输期间,该服务可以跨AZ区域中的各种设施同步数据以增加冗余。例如,通过控制台或API创建输送流来调用服务,并且该输送流将数据从数据源传送到指定目的地,例如存储服务。注意,数据可以经由API调用被添加到输送流。注意,递送到存储服务的数据的频率基于当创建输送流并且与存储服务的缓冲区大小和缓冲区间隔对准时的配置。例如,用于将实时流数据递送到数据存储的服务可以包括AWS Kinesis Firehose。
数据仓库可以是任何类型的。例如,数据仓库可以包括存储用户生成的事件数据的AWS Redshift数据库,其中用户生成的事件数据由AWS Kinesis Firehose写入。
可以通过在操作客户端110的终端用户的浏览器上执行JavaScript函数来初始化逻辑。该函数可以从内容分发网络(CDN)检索脚本代码,并且将标签函数附接到网页的全局窗口对象。标签函数代理的调用调用了代理对象,该代理对象负责适当地排队和调度计算事件。代理函数的目的是提供到事件脚本功能的通用接口,以及确保在脚本代码被完全初始化之前跟踪的计算事件不被丢弃。逻辑可以实现源标识(Source ID)、用户标识(UserID)、会话标识(Session ID)和事件标识(Event ID)。
Source ID唯一地标识计算平台104的上下文中的网页。Source ID可以包括RFC4122(版本4)通用唯一标识符(UUID)。可以使用Node“uuid”库(https://github.com/kelektiv/node-uuid)生成UUID。当脚本代码被初始化时,包括Source ID,使得能够正确地标识被传送到服务器的一些、大部分或所有数据的源。
逻辑在客户端110的浏览器上保存cookie。cookie编码User ID(另一个v4 UUID)。在加载时,脚本代码检查先前分配的用户ID的存在,如果找不到,则创建一个新的用户ID。User ID伴随被发送到服务器的一些、大部分或所有数据,允许行为数据被链接到返回用户。如果用户在不同的web浏览器或装置上查看网页,则可以生成新的User ID。
逻辑可以创建能够存储在客户端110的浏览器的会话的存储中的Session ID(另一个v4 UUID)。Session ID可以在每次浏览器或浏览器的标签关闭时被丢弃。Session ID可以使得计算平台104能够区分用户对网页的访问,以便从返回的访问者中标识新的访问者。
由于网页的访问者可以通过登录来识别自己,或者可以通过网页电子商务网站本身以前存储在浏览器上的cookie来识别自己,因此该逻辑被配置成传输Event ID或“识别”事件,使得User ID能够与网页标识符相关联。这允许未来将用户行为与诸如人口统计数据等用户特征相关联。
逻辑可以被配置成向web开发者提供以下能力:针对任何网站的任何网页(例如网站的一组网页)自动跟踪特定用户行为。为了开始自动跟踪给定的计算事件,web开发者指定各种信息项,例如跟踪事件、样式表选择器、属性名称等。例如,跟踪事件可以包括web开发者有兴趣跟踪的计算事件。例如,样式表选择器可以包括有效的级联样式表选择器(CSS),该样式表选择器(CSS)标识用于计算事件的相关文档对象模型(DOM)节点,其中CSS选择器被传递给相关函数或子例程,例如document.querySelectorAll等。例如,属性名称可以包括HTML属性名称,其中HTML属性名称或值被传递给element.getAttribute,其中父元素是被自动跟踪的DOM元素。注意,HTML属性名称或值可以在图像的情况下包括对于计算平台104而言是全局的唯一标识符,或者在计算事件涉及产品本身而不是特定图像的情况下包括Product ID,其中该产品是正在网页上销售并且与图像相关联的项目。
例如,下面列举的一段代码由计算平台104提供给客户端110。当被执行时,该段代码启动自动跟踪功能以跟踪在可以销售产品或包含产品列表的网页上查看的图像。代码片段可以包括:splashtag('startAutofrack',[{selector:‘img[data-spl-id]’,idAttribute:'data-spl-id',event:‘img_viewed_plp’}])。当被执行时,该段代码开始跟踪网页上所有图像的图像视图,其形式如下:<img src=”...”data-spl-id=’...”/>。
逻辑可以跟踪许多计算事件。以下描述了一些这样的事件。注意,这些计算事件可以基于处理器、存储器、输入装置、输出装置或其他的操作。例如,输入装置可以包括鼠标、键盘、相机(无论是面向前和/或面向后的)、加速度计、触摸屏、生物识别读取器、点击器、操纵杆、视频游戏控制器、麦克风等。同样,输出装置可以包括显示器、扬声器、耳机、操纵杆、视频游戏控制器、打印机等。在一些实施方式中,输入装置和输出装置可以被包含在一个单元中,例如包含在陀螺仪、IMU、触摸式或触觉式显示器、磁力计等中。这样,计算事件可以包括光标事件、键盘事件、显示事件、扬声器事件、浏览器事件、OS事件、应用事件等。例如,光标事件可以基于正经由终端用户客户端110的终端用户操作的光标。光标可以经由输入装置来操作,该输入装置例如运动跟踪指示装置、位置跟踪指示装置、压力跟踪指示装置等。运动跟踪指示装置可以包括鼠标、跟踪球、操纵杆、指示棒、手柄(Wii Mote)或遥控器(WiiRemote)、手指跟踪装置(在不接触屏幕的情况下,在3D空间或接近表面的地方跟踪手指-手指通过诸如立体相机、飞行时间、激光器的技术进行三角测量)等。位置跟踪指示装置可以包括图形输入板、手写笔、触摸板、触摸屏等。压力跟踪装置可以包括等距操纵杆等。注意,计算事件可以包括非光标或非键盘事件,例如眼睛跟踪事件、拨盘或旋钮事件、加速度计事件、IMU事件、陀螺仪事件等。可以在该事件发生时,在计算事件的组、事件流中发送计算事件。
逻辑可以跟踪查看。特别地,逻辑可以跟踪在网页(如列出产品的网页)上查看的图像。如果沿着图像的Y轴测量,图像的至少50%在当前视口内可见,则认为该图像被"查看"。当用户在网页上向上或向下滚动时,各种图像视图连同图像被查看的次数一起被记录。例如,如果图像被查看,然后滚动出视图,然后滚动回到视图,则认为图像已经被查看了两次。注意,查看中的图像是使用浏览器的Intersection Observer API确定的(如https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API中解释的),其具有poly-filied fallback函数(例如在https://www.npmjs.com/package/intersection-observer中解释的)。此外,该逻辑可以跟踪在列出产品细节的网页上查看的图像。计算平台104可以跟踪在网页上查看哪些图像以及每个图像被查看多少次。这在网页包含可以由用户循环通过的一组产品图像的情况下可能是有用的。注意,通过将事件监听器注册到主图像节点上的“加载”事件来跟踪图像的切换。
逻辑可以跟踪持续时间。特别地,该逻辑可以跟踪网页上的图像持续时间。该逻辑可以跟踪图像已经被查看了多久。持续时间定时器可以在图像查看开始时被初始化(使用与上述类似的方法确定),并且在图像查看结束时被停止。持续时间可以以毫秒为单位来测量,但是也可以使用其他测量单位,例如纳秒、秒、分钟等。在逻辑已经确定用户已经空闲或者网页不再可见的情况下,可以停止持续时间定时器,如以下进一步说明的。如果用户多次查看图像,则这些查看可以被认为是具有单独持续时间的单独查看。注意,可以用唯一的持续时间标识符(ID)来记录单独的持续时间。这种形式的记录可以允许计算平台确定对图像查看持续时间的汇总分析,例如查看单个图像或一组图像的平均持续时间等。此外,该逻辑可以跟踪列出产品细节的网页上的图像持续时间。除了图像查看之外,计算平台104可以以类似于上述技术的方式跟踪列出产品细节的网页上的图像查看持续时间。
逻辑可以跟踪悬停。特别地,该逻辑可以跟踪图像悬停。计算平台104可以在用户用光标装置悬停在图像上时跟踪持续时间和位置。这在具有产品细节的网页上是有用的,其中网页对悬停的图像实现“放大”效果。为了跟踪图像悬停,图像被细分成无论是对称还是不对称、无论是开放型还是闭合型经由多个单元定义的网格,例如10×10矩形网格、正方形网格、三角形网格、椭圆形网格、圆形网格等。在目标元素上注册“鼠标进入”、“鼠标移动”和“鼠标离开”的计算事件处理程序。当用户在图像上移动光标(例如鼠标指针等)时,周期性地(例如每100毫秒、每60毫秒、每130毫秒等)记录包围鼠标指针的网格单元。当光标离开图像(没有覆盖或叠加在图像上)时,组合网格单元的每个单元上的悬停时间,并且将其记录为图像悬停事件的一部分。
逻辑可以跟踪产品级事件,例如在托管产品细节的网页上查看的产品图像、添加到电子购物车或钱包的产品、购买的产品等。特别地,计算平台104可以自动跟踪产品视图并添加到电子购物车,同时可以通过可编程跟踪功能来记录产品购买事件,该可编程跟踪功能可以经由计算平台104的全局对象来调用,例如全局对象splashtag('track','product_purchased',{productld:'...'})。
逻辑可以实现事件排队和批处理。特别地,各种计算事件可以经由HTTP或HTTPS协议通过网络102被发送到服务器,例如事件捕获服务器等。为了减少数据的大小和各个HTTP请求的数量两者,可以使用批处理和排队机制。例如,TransportQueue函数或子例程或对象管理队列构造以及入队和刷新数据(通过网络发送到事件捕获服务器)。周期性地刷新数据,例如以每五秒一次的速率或者当1000个项目已经入队时(无论哪个先发生)刷新数据,等等。注意,不同的事件类型可以以不同的方式组合。例如,同一图像的两个视图可以汇总为一个事件,计数为2。然而,不应聚集同一图像上的两次悬停,因为每次悬停事件已经包含单元识别符和悬停发生的持续时间。相反,这些事件可以组合成包含悬停数据的数组或悬停数据的另一数据结构的单个网络传输,例如,队列、双端队列、堆栈、链表等。为此,可以为每种事件类型创建单独的队列,并且TransportQueue可以根据事件类型管理TransportQueue接收的去往适当的计算事件队列的每个事件的切换。
逻辑可以被配置成储藏计算事件。特别地,计算事件队列可以具有储藏计算事件的附加或替选的职责。由于各种上述机制可以在将数据发送到诸如事件捕获服务器或其他的服务器之前将用户活动保持在存储器中长达五秒或更短或更长,因此存在用户在数据被完全发送之前将关闭、退出当前网页或从当前网页导航离开的可能性。一些浏览器可能不允许诸如JavaScript代码或其他的脚本阻止用户从网页导航离开。例如,在一些行业中,有一个公认的惯例是用户不应当被延迟离开网页以便发送网络请求或以其他方式执行任何计算。为此,该逻辑可以替代地将计算事件序列化并“储藏”在客户端110上的浏览器的本地存储中。如果并且当用户返回到该网页时,则逻辑可以在初始化过程期间从本地存储装置读取。如果存在任何储藏的计算事件,则逻辑可以刷新这些计算事件并将其发送到服务器,例如事件捕获服务器等。
逻辑可能会考虑用户空闲和页面可见性。特别地,当该逻辑跟踪用户正在查看网页上的图像、视频、空白处或文本的持续时间时,该逻辑可以考虑在网页仍然聚焦的情况下用户是否已经停止与客户端110交互,最小化或最大化浏览器的窗口或标签、切换到浏览器的另一标签或另一浏览器或应用、使浏览器的标签静音等。为了完成该功能,该逻辑可以实现事件发送器,每当用户从“活动”状态转换为“非活动”状态或从“非活动”状态转换为“活动”状态时,该事件发送器广播计算变化。例如,该逻辑可以将UserActiveEmitter函数或子例程或对象实现为从https://github.com/primus/eventemitter3提供的事件发送器实现方式的扩展。例如,该逻辑可以在内部跟踪两种状态:用户空闲和页面可见性。
逻辑可以考虑用户空闲。特别地,如果存在一段时间(例如5秒或更短,例如3秒或更多,例如8秒),而浏览器未注册指示用户活动的一组事件中的任何一个,则认为用户空闲。注意,可以用计算平台104的配置设置来调整在认为用户空闲之前的时间段(例如几秒或几毫秒或几分钟)。同样,逻辑可以认为是用户活动的指示的各种计算事件可以包括“鼠标移动”动作、“键盘弹起”动作、“触摸开始”动作、“滚动”动作等。
逻辑可以考虑页面可见性。特别地,为了确定页面可见性,逻辑可以监听各种计算事件并检查各种浏览器属性:
元素 | 事件或属性 |
文件 | 隐藏或可见性改变 |
窗口 | 聚焦或模糊 |
组合这两个内部跟踪的状态使得逻辑能够发出指示用户是否已经从“活动”状态转换为“非活动”状态或从“非活动”状态转换为“活动”状态的计算事件。例如,该逻辑可以包括持续时间自动跟踪器以监听这些计算事件,使得持续时间自动跟踪器能够适当地停止或启动相应的持续时间定时器。
用于从用户计算装置捕获计算事件的服务器可以运行各种处理。例如,服务器可以运行web API 304,例如运行Express web框架API(https://expressjs.com)和内存Redis(https://redis.io)缓存的NodeJS(https://nodejs.org)处理。服务器可以被部署到虚拟服务器集302实例,例如AWS EC2(https://aws.amazon.com/ec2)实例,并且可在弹性负载平衡器(ELB)后面访问(https://aws.amazon.com/elasticloadbalancing),其可以是水平可扩展的,即,可以添加任何数量的服务器以增加用于处理事件流量的可用带宽。例如,操作客户端106的应用管理员可以用AWS负载平衡工具平衡网络流量,包括应用负载平衡器(ALB)、网络负载平衡器(NLB)等。Express web框架API可以处理从包含事件数据的逻辑(例如计算事件脚本)向/收集端点发出的HTTP请求或HTTPS POST请求。Express web框架API负责IP地址匿名化、数据验证、将事件推入正确的服务,例如AWS Kinesis Stream(https://aws.amazon.com/kinesis/data-streams)以将实时流数据递送到数据存储,以便实现对计算事件的实时分析。
图12示出了根据本公开内容的用于捕获计算事件的系统的实施方式的图。特别地,系统1200与系统300或系统500或系统900共享一些组件(类似的编号)。系统1200执行图2的块214至块220(捕获并保持计算事件),并且从块212继续。附加地,计算系统1200可以执行用于基于如本文所讨论的计算事件的捕获来生成图像特征的推荐的方法。注意,尽管在AWS的上下文中描述了系统1200,但是系统1200并不限于AWS,而是可以以其他方式实现(无论是替选地还是附加地)。例如,可以经由微软Azure、谷歌云、IBM云等来实现系统1200。
当在时尚摄影的上下文中使用时,基于步骤1,诸如台式机、膝上型计算机、平板电脑或其他的客户端110通过浏览诸如电子商务网站或其他的网站来生成计算事件。基于步骤2,计算系统1200可以接收经由在客户端110处的浏览器中打开的网页的脚本生成的计算事件。计算事件可以与网页上示出的图像相关联,并且涉及浏览器的用户对图像的参与。如以下更全面地描述的,计算事件可以包括网页标识符、网络地址、用户标识符和/或会话标识符。仅作为示例,计算事件通过HTTP协议、HTTPS协议或其他来传送。计算平台104托管或访问弹性负载平衡器1108(ELB),该弹性负载平衡器可以将一些传入客户端流量分布到多个事件捕获服务器中的至少一个并且缩放资源以满足流量需求。ELB1108可以在单个AZ内或跨多个可用区被启用以维持一致的应用性能。例如,ELB 1108可以检测不健康的弹性计算云(EC2)实例、跨健康信道扩展实例、提供灵活的密码支持、提供安全套接字层(SSL)证书的集中式管理、提供可选的公钥认证、对IPv4和IPv6两者的支持,等等。例如,ELB 1108可以对虚拟服务器集302执行健康检查以确保在向实例发送流量之前该实例仍然在运行。当实例故障或不健康时,ELB 1108可以将流量路由到其他剩余的健康计算实例。如果特定AZ中的所有计算实例都不健康,则ELB 1108可以将通信流量路由到其他AZ,直到至少一个原始计算实例被恢复到健康状态。例如,ELB 1108可以被配置用于自动缩放以确保有足够的计算实例在ELB 1108后面运行(新的计算实例可以基于阈值满足或不满足而自旋向上以满足所需的最小值)。
基于步骤3和步骤4,事件捕获服务器在暴露的/收集端点处接收计算事件视图。在事件捕获服务器的初始化过程期间,诸如关系数据库、后关系数据库、内存数据库、混合数据库、XML数据库、并行数据库、分布式数据库、图形数据库、移动数据库、操作数据库、概率性数据库、实时数据库、空间数据库、时间数据库、面向对象的数据库、非结构化数据的数据库、面向术语的数据库或其他的数据库被加载到计算平台104的存储器中。数据库1106可以包含映射,该映射将一组网络地址(例如IP地址、媒体访问控制地址(MAC)或其他)映射到一组地理数据(例如一组区域名称、一组地理围栏、一组坐标等)。例如,数据库1106可以包括Maxmind IP地址->地理数据映射。从数据仓库1102中提取各种网站和网站访问者位置,并将其加载到内存数据库键值存储328中,例如内存Redis数据存储。
基于步骤5,通过将Source ID与计算平台104门户的数据库中的一组记录进行比较,验证计算事件中包括的网页标识符,例如上述Source ID。基于步骤6,进行诸如IP地址的网络地址的循环,并且如果成功,则将位置ID添加到一组计算事件数据。基于步骤7,验证该组计算事件数据。在验证失败时,丢弃相应的计算事件。基于步骤8,在成功验证时,将计算事件推入用于将实时流数据递送到数据存储1104的服务。例如,用于将实时流数据递送到数据存储1104的服务可以包括AWS Kinesis Firehose(如由该计算事件的Source ID确定的那样选择)。基于步骤8,用于将实时流数据递送到数据存储1104的服务将计算事件存储在存储服务312中,例如AWS S3存储桶等。根据步骤9,用于将实时流数据递送到数据存储1104的服务发出数据仓库拷贝命令,该命令将一组数据从存储服务312的存储桶复制到数据仓库312中。
如上所述,系统1200经由诸如IP地址或其他的网络地址执行地理位置确定。特别地,事件捕获服务器在从一组事件数据移除网络地址用于存储之前尝试将一些、大部分或所有传入请求的网络地址映射到真实位置。例如,可以经由一组第3方库和服务来实现该技术。例如,“request-ip”库(https://github.com/pbojinov/request-ip)可以用于从由服务器接收的HTTP请求中提取用户的IP地址。在检查由节点公开的“req.connection”或“req.socket”属性上可用的“远程地址”属性之前,该库可以检查包含用户的IP地址的一系列HTTP头部。例如,为了将IP地址映射到真实位置,在客户端110的浏览器上运行的逻辑可以使用由Maxmind(https://dev.maxmind.com/geoip/geoip2/geolite2)提供的GeoLite2城市数据库。可以使用由cron作业触发的GeoiP Update程序(https://github.com/maxmind/geoipupdate)每月定期更新该数据库。Maxmind可以支持IPv4和IPv6网络地址,并且可以通过node-maxmind库(https://github.com/runk/node-maxmind)管理从Maxmind数据库中进行的读取。当节点处理开始时,可以将Maxmind数据库的内容读入存储器,并且使用最近最少使用的缓存来缓存查找。例如,如果Maxmind数据库包含客户端110的IP地址的条目,则Maxmind数据库返回包含多个地理数据点的记录,包括国家、分部(例如州、省或其他)、城市、邮政编码等。
数据仓库1102可以存储位置的数据库,其中数据库可以在各种级别上或在各种级别中存储数据,例如3级,例如国家、地区(例如州、省等)、行政边界(例如邮政编码、邮递区号或等)。可以用诸如人口、收入统计、人口统计或其他的附加信息来扩充这些数据集。例如,“位置”可以包括(country_id,region_id,administrative_boundary_id)的元组。例如,当节点处理开始时,从位置的数据库中提取一组位置,并将其加载到内存数据库键值存储328例如AWS Redis等中。然后,来自Maxmind数据库的记录可以通过查找内存数据库键值存储328例如AWS Redis而被转换到特定位置。如果该处理成功,则将解析的“location_id”存储在计算事件记录本身中,否则可以将诸如“location_id”或其他的计算事件记录的字段留空。
如上文所说明的,系统1200被配置成执行数据验证。诸如事件捕获服务器或其他的服务器可以执行数据验证。验证的一些示例可以包括确定所需字段的存在,例如‘userId’、‘sessionId’、‘eventId’、‘sourceId’、‘createdAt’时间戳等的存在。此外,数据验证可以检查数字字段,例如“eventId”、“createdAt”、“count”和“duration”是有效数字,例如整数、十进制数、分数或其他。如果这些验证中的任何验证失败,则服务器可以丢弃该相应请求并记录错误消息。
系统1200被配置成将计算事件推送到服务上以用于将实时流数据递送到数据存储1104。例如,用于将实时流数据递送到数据存储1104的服务可以包括AWS KinesisFirehose。为了确定用于将实时流数据递送到数据存储1104的服务的正确流,web API 304检索包括在一组计算事件数据中的源ID。web API 304检查本地内存缓存中与该源ID有关的元数据。如果没有找到元数据,则web API 304向托管在计算平台104上或可由计算平台104访问的门户API作出网络请求。门户API包含向计算平台104注册了哪些组织、用户和源的权威记录。如果不存在这样的源ID,则丢弃该请求。否则,作为响应从门户API返回针对给定源ID的将实时流数据递送到数据存储1104的服务流的名称。
计算平台104维护将流名称映射到节点可写流的对象。这些节点可写流用于在推送到服务流之前缓冲数据,以将实时流数据递送到数据存储1104。例如,在使用PutRecordBatch函数将一组数据推送到服务以将实时流数据递送到数据存储1104之前,节点流可以将500条记录缓冲3秒钟,该函数是用于将实时流数据递送到数据存储1104的服务的API的一部分(https://docs.aws.amazon.com/firehose/latest/APIReference/APIPutRecordBatch html)。
系统1200被配置成将计算事件存储在诸如Redshift的数据仓库1102中。例如,计算平台104可以采用用于将实时流数据递送到数据存储1104的服务来将数据加载到诸如AWSRedshift(https://aws.amazon.com/redshift)或其他的数据仓库1102中。用于将实时流数据递送到数据存储1104的服务可以使用诸如AWS S3(https://aws.amazon.com/S3)的存储服务312作为中间数据存储。注意,可以为每个数据源创建用于将实时流数据递送到数据存储器1104的单独的服务流。配置数据源可以包括指定存储服务312的存储桶、数据仓库1102的目标数据库、数据仓库1102和拷贝命令的目标数据库表。拷贝命令是数据仓库1102命令的数据库,其将数据从存储服务312中的一个或更多个文件复制到数据库表中。
一旦计算事件数据被存储在数据仓库中,如上所述,计算平台104可以使用提取、变换和加载(ETL)服务来聚集或组合图像数据和计算事件数据。如上所述,在ETL服务中,如上所述由计算平台104捕获的图像元数据被聚集或与由计算平台104收集的用户行为数据组合,其中跟踪事件可以与图像和产品元数据一起周期性地(例如秒、分钟、小时、每天、每周、每年等)汇总,以产生可以由数据科学家或通过视觉分析仪表板分析的各种感兴趣的数据维度。例如,诸如客户端110的单个用户可能在单个会话中生成数千个事件,因此取决于每日活跃用户(Daily Active Users,DAU)的数量,每天生成的事件的数量可能达到数百万。例如,负载测试用例可以包括大约50,000个估计的DAU、每个用户大约1,000个估计的计算事件的数量、大约5,000万个估计的总日常事件以及182.5亿个估计的年度计算事件。基于这样的估计,查询事件表是可能的,但是可能是耗时的,并且对围绕计算事件数据开发的各种分析工具的总体用户体验具有负面影响。ETL服务以周期性的时间表(例如秒、分钟、小时、每天、每周、每月、每年等)运行一系列ETL工作。ETL作业对数据仓库执行复杂的查询,以针对事件类型、创造性属性、产品和用户(受众)的指定组合产生事件的汇总计数。
在一些实现方式中,存储在数据仓库中的计算事件数据与上述扩充数据结构和其他图像数据相结合,可以被用于识别与一个或更多个图像特征相关联的模式,所述一个或更多个图像特征对应于用户对图像的参与。如上所述,扩充数据结构可以包括图像的各种特征或特性,例如基于分类结果集。与用户对图像的参与(例如,在浏览网页时)有关的计算事件数据可以结合扩充数据结构来分析、观察、解析等,以标识图像中与和用户对图像的参与相对应的一个或更多个图像特征相关联的一个或更多个模式。
仅作为示例,并且如本文更全面地描述的,可以以各种方式来确定用户对图像的参与,包括但不限于查看、悬停、查看的持续时间、光标事件、以及产品级别事件。基于这些模式,可以例如通过机器学习或其他计算系统算法来生成针对与图像的一种或更多种类型的参与相对应的图像特征的推荐。如上所述,推荐可以基于捕获、观察或分析的趋势和模式向创造性处理通知对诸如服装或其他的物体或诸如人类或其他的生物进行成像。在一些方面,可以在动态样式指南中使用、组织、总结或以其他方式捕获推荐,该动态样式指南提供了最新的指导方针,以驱动用户参与图像的期望形式。这种类型的动态样式指南可以例如由摄影师、品牌/营销管理者或其他创造性人员用来基于最近获取的数据(计算事件数据和扩充数据结构)来指导对附加图像的捕获。应当理解,模式和/或推荐的其他用途在本公开内容的范围内。
图13示出了根据本公开内容的数据集市的模式的实施方式的图。特别地,将已经由ETL服务从数据仓库1102中提取的各种计算事件记录加载到包含一组汇总表的数据集市中。例如,可以基于特定分析用例来设计该组数据集市汇总表,例如用户想要在给定品牌、部门和时间范围的情况下通过事件类型和特定创造性属性来观看各种表现最佳的图像。这样,模式1300采用星形设计,但是其他模式设计例如反向星形模式、雪花模式等也是可能的。这样,模式1300包括诸如事实表的中心表,并且来自中心表的行通向多个维度表(非归一化)。中心表具有两种类型的列:维度表的外键和测量包含数字事实的表的外键。中心表可以包含有关细节或汇总级别的事实数据。每个维度表都是由对数据进行分类的层次结构组成的结构。如果维度没有层次结构和级别,那么维度表就是平面维度或列表。每个维度表的主键可以是事实表的一部分。维度属性有助于描述维度值,这些值可以是描述性的文本值。至少一个维度表的大小可以小于中心表。因此,中心表是包含已经发生的事件的事件计数的datamart_daily_events_by_images表。维度表是图像表、event_types表、genome_tags表、品牌表和部门表。维度表包含较少的记录,并且用于描述中心表的记录。为了优化查询速度和存储成本,中心表主要存储整数值,并且依赖于维度表来存储字符串描述符。
可以以各种方式来优化模式1300以获得更好的查询性能。例如,模式1300可以是优化的排序键、分配键等。例如,可以在排序键上优化模式1300以提高针对数据集市表的查询性能,使得能够有效地处理范围受限谓词,并且日期列可以用作一些、大部分或所有数据集市表的主排序键。
基于模式1300的数据仓库1102和数据集市基于使用多租户模式将每个参与的网页管理员数据的存储分离到单独的表中,从而启用多租户支持,但是保持该数据包含在数据仓库1102及其数据库的单个集群中。该方法保持操作成本降低,允许简化的维护,并且简化向计算平台104添加新网页管理员。例如,可以为每个参与的网页管理员分配唯一的tenant_id:Under Armour:ua,Target:tg,Victoria’s Secret:vs,等等。然后,唯一的tenant_id被作为前缀添加到数据仓库1102和数据集市模式中的各种表名,例如ua_events、tg_events、vs_events等。当新的网页管理员注册以使用计算平台104时,运行诸如脚本或其他的逻辑,其使用新的tenant_id前缀创建一些、大部分或所有必要的表。该处理称为数据库迁移。
为了从数据仓库1102提取记录,计算平台104从数据仓库1102提取新的事件记录。ETL作业的最后成功运行日期的记录被保存在数据集市的etl_job_tracking表中。该日期将在查询中用于仅包括在最后运行日期之后发生的事件记录。由于该提取可能涉及提取大量记录并且可能必须在可以执行变换功能和加载功能之前将这些记录存储在存储器中,因此可以使得数据仓库1102能够使用诸如来自AWS Redshift的卸载命令或其他的卸载命令来将所提取的行卸载到存储服务312的存储桶以用于临时存储。例如,可以使用来自NodeJS服务的Knex raw命令将来自AWS Redshift(https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html)的UNLOAD命令作为查询发布给Redshift,并且记录可以直接流到存储服务312的存储桶,而不需要通过NodeJS服务,从而减少存储服务312本身的负载。
为了变换已经提取的记录,如上所述,由于数据仓库1102的提取功能将计算事件记录直接传送到存储服务312,所以变换可以在查询级别发生。例如,变换可以涉及通过不同维度的组合对事件记录的汇总计数和排名。
为了将如上所述的已经被变换的记录加载到如上所述的数据集市中,在卸载命令(https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html)完成记录从数据仓库到存储服务312的传送之后,web API 304向数据仓库1102的数据集市发布拷贝命令。如上所述,拷贝命令将计算事件从存储服务312中的临时事件存储器流到数据集市,其中使用模式1300将计算事件存储在各个表中。
图14示出了根据本公开内容的用于执行提取、变换和加载(ETL)作业的系统的实施方式的图。特别地,系统1400与系统300或系统500或系统900或系统1200共享一些组件(类似的编号)。系统1400执行图2的块222至块224,并且从块220继续。注意,尽管在AWS的上下文中描述了系统1400,但是系统1400并不限于AWS,而是可以以其他方式实现(无论是替选地还是附加地)。例如,可以经由微软Azure、谷歌云、IBM云或其他来实现系统1400。
当在时尚摄影的上下文中使用时,基于系统1400的步骤1,ETL作业配置文件定义每个ETL作业的调度。基于系统1400的步骤2,经由ETL作业配置文件,ETL作业调度器自动对来自处理的作业进行排队。例如,可以在内存数据库键值存储328(例如AWS Redis内存数据存储)中对作业进行排队,并且使用诸如Kue.js作业处理器(https://github.com/Automattic/kue)或其他的优先级作业队列328对作业进行管理。基于系统1400的步骤3,ETL作业处理器从队列中获得下一作业并且加载作业配置,该作业配置包含要由ETL作业处理器的process()函数执行的ETL函数。基于系统1400的步骤4,process()函数首先初始化作业,并且从数据集市1402的etl_job_tracking表获得last_run_at值。last_run_at值确保在ETL作业中仅处理新事件。基于系统1400的步骤5,作业处理器然后执行该作业的extract()函数。提取函数包含复杂的选择语句,该语句是用对数据仓库1102的卸载命令执行的,以将一组数据传送到存储服务312的存储桶。选择语句包含附加的转换逻辑,以根据需要执行汇总计数和排名。基于系统1400的步骤6,作业处理器然后执行load()函数。load()函数向数据集市1402发出拷贝命令,并且将各种记录从存储服务312的存储桶复制到数据集市1402的表中。基于系统1400的步骤7,如果作业成功,则利用last_run_at值更新etl_job_tracking表,并且完成作业。基于系统1400的步骤8,如果作业失败,则在记录错误并终止作业之前,该作业将至少重试一次,例如两次、三次或更多次。
一旦至少部分地填充了数据集市1402中的表,则计算平台104可以被配置成使得能够在分析仪表板中进行数据可视化。特别地,一旦至少一些数据已经被汇总到数据集市1402的表中,则可以在包含仪表板的应用中分析该数据,其中通过各种创造性的数据可视化小部件来进行这样的分析。应用可以包括web应用,并且仪表板被设计成允许各种感兴趣的数据可视化和过滤选项,以向创意、市场营销和分析团队提供用户如何与网站上的图像进行交互的有价值的见解,所述网站已经被配置成与计算平台104通信。例如,仪表板可以包括使用React JavaScript库(https://reactjs.org)和NodeJS API(https://nodejs.org/en)构建的基于Web的客户端服务器应用。仪表板可以托管为应用提供服务的web API。web API暴露可以用于从数据集市1402的表请求数据的一系列端点。对数据集市1402的请求可以包括用于过滤数据并返回各种汇总事件的子集的多个不同的查询参数。web API可以使用Express JS API(https://expressjs.com),该API可以启用最小且灵活的Node.js web应用框架,该框架为web应用和移动应用提供了一组鲁棒的特征。web API端点可以使用JSON Web令牌(JWT)进行保护,其中所有请求可以包含利用租户声明编码的有效授权令牌。该租户声明用于查询多租户数据库中的正确租户表。可以使用称为Auth0(https://auth0.com/docs/iwt)的第三方身份服务生成和签名JWT。
图15示出了根据本公开内容的认证用于访问仪表板的API请求的系统的实施方式的图。特别地,系统1500与系统300或系统500或系统900或系统1200或系统1400共享一些组件(类似的编号)。系统1500执行图2的块226至块236,并且从块224继续。注意,尽管在AWS的上下文中描述了系统1500,但是系统1500并不限于AWS,而是可以以其他方式实现(无论是替选地还是附加地)。例如,可以经由微软Azure、谷歌云、IBM云或其他来实现系统1500。
当在时尚摄影的上下文中使用时,基于系统1500的步骤1,操作客户端108的网页操作者通过网络102访问仪表板,并且将凭证输入到诸如Auth0小部件(https://auth0.com/docs/libraries/lock/v11)或其他的锁定小部件中。例如,这可以通过在单个页面应用程序中的可嵌入登录来体现。基于系统1500的步骤2,锁定小部件将凭证发布到诸如Auth0 API或其他的基于网络的API 1502,其中验证可以包括生物识别的用户名和密码。例如,可以在计算平台104或者客户端106、客户端108或客户端110中的至少一个或者另一计算平台或装置的内部或外部托管基于网络的API。基于系统1500的步骤3,如果用户名和密码有效,则API 1502生成编码有该用户的tenant_id的声明的访问令牌。基于系统1500的步骤4,假设凭证有效,则将编码的JWT返回给客户端108。基于系统1500的步骤5,JWT被存储在客户端108的浏览器的本地存储中。基于系统1500的步骤6,如果加载了网页或者修改了过滤器设置,则小部件数据加载器从服务于应用的web API请求数据。基于系统1500的步骤7,小部件数据加载器可以使用客户端API中间件向web API的特定端点做出请求(API中间件将令牌(如果可用的话)注入到请求报头中)。基于系统1500的步骤8,当请求被节点表示API接收时,该节点表示API首先检查请求是否在授权报头中包含有效令牌。注意,可以使用express-JWT(https://github.com/auth0/express-jwt)验证JWT。此外,注意,用于验证JWT的有效性的JWT的签名密钥是使用(https://github.com/auth0/node-jwks-rsa)从基于网络的API 1502加载的。基于系统1500的步骤9,如果JWT有效,则JWT被解码,并且包含tenan_id的用户对象被存储在客户端108的本地存储器中的明确请求(express request)对象中。基于系统1500的步骤10,然后,可以使用tenant_id来生成对数据集市1402中的正确的租户表的查询。基于系统1500的步骤11,来自查询的结果然后被序列化,并且返回给客户端108。
图16示出了根据本公开内容的web应用的仪表板的实施方式的屏幕截图。特别地,计算平台104被配置成使得通过网络102数据能够可视化客户端108上的数据。基于以上内容,从web API 304返回的汇总事件数据集在仪表板样式的web应用中被可视化(例如经由ReactJS库等)。仪表板样式的web应用可以采用基于D3.js JavaScript库(https://d3is.org)、MapBox.js(https://www.mapbox.com)等的各种数据可视化小部件以及一些自定义开发的小部件。
图17示出了根据本公开内容的用于扩充基于来自多个基于网络的分类引擎的多个结果而获得的一组规范数据的处理的实施方式的流程图。特别地,可以基于图1至图16执行处理1700。在框1702中,计算平台104摄取图像。在框1704中,计算平台104可以例如经由裁剪面部、分割毛发、压缩、调整大小(以满足分类要求)、分割身体或其他来预处理图像。在框1706中,计算平台104存储经预处理的图像。例如,这样的存储可以经由存储服务312的存储桶来进行。在框1708中,计算平台104可以提交图像以供经由多个基于网络的分类引擎分类或对图像进行分类。例如,当所述图像是多个图像时,则可以为每个分类引擎选择适当的图像,诸如将面部裁剪图像用于模型检测、目光接触、微笑检测等,或者将人体分割图像用于姿势检测等,等等。在框1710中,计算平台104采用诸如文件或其他的分类法文档来规范化来自基于网络的分类引擎的一组分类结果。在框1712中,计算平台104将规范化结果合并到单个数据结构中,例如JSON对象等。在框1714中,计算平台104通过附加数据和数学(诸如面部数学比率、检测到的模型的模型轮廓、负空间等)来扩充(补充)单个数据结构。在框1716中,计算平台104经由数据库服务314存储该数据。
图18示出了根据本公开内容的用于交换多个基于网络的分类引擎的处理的实施方式的流程图。特别地,可以基于图1至图17执行处理1800。在框1802中,计算平台104将图像上传到多个基于网络的分类引擎。在框1804中,计算平台104从基于网络的分类引擎接收多个结果。在框1806中,计算平台104访问多个配置文件以将结果映射到分类法文档。在框1808中,计算平台104基于分类法文档对结果进行规范化。在框1810中,计算平台104将经规范化的结果合并成单个输出,例如数据结构,例如JSON对象等。这样,计算平台104被配置成为分类法文档中的每个属性选择最优的基于网络的分类引擎。例如,可以通过使用图像选择来验证分类器结果从而确定最优的基于网络的分类引擎(分类器的准确性或精度或速度可能随着时间增加或减少)。例如,处理1800使得能够快速地替换分类器,这可以是实时的。
另外,相对于某些示例实施方式描述的特征可以以任何排列或组合的方式组合在各种其他示例实施方式中或者与各种其他示例实施方式组合。如本文所公开的,可以以类似的方式组合示例实施方式的不同方面或元素。本文所使用的术语“组合(combination)”、“组合的(combinatory)”或“其组合(combinations thereof)”是指在术语之前的所列项目的所有排列和组合。例如,“A、B、C或其组合”旨在包括以下至少一种:A、B、C、AB、AC、BC或ABC,并且如果在特定上下文中顺序是重要的,则BA、CA、CB、CBA、BCA、ACB、BAC或CAB也是如此。继续该示例,明确包括的是包含一个或多个项目或术语的重复项的组合,例如BB、AAA、AB、BBC、AAABCCCC、CBBAAA、CABABB等。技术人员将理解,除非从上下文中另外明显可见,否则通常对任何组合中的项目或术语的数量没有限制。
可以在适合于存储和/或执行程序代码的数据处理系统中实现本公开内容的各种实施方式,该程序代码包括通过系统总线直接或间接耦接至存储器元件的至少一个处理器。存储器元件包括例如在程序代码的实际执行期间采用的本地存储器、大容量存储器和高速缓冲存储器,其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储器检索代码的次数。
I/O装置(包括但不限于键盘、显示器、定点装置、DASD、磁带、CD、DVD、拇指驱动器和其他存储介质等)可以直接或通过中间I/O控制器耦接至系统。网络适配器也可以耦接至系统,以使得数据处理系统能够通过中间私人网络或公共网络耦接至其他数据处理系统或远程打印机或存储装置。调制解调器、电缆调制解调器和以太网卡只是网络适配器的几种可用类型。
可以在系统、方法和/或计算机程序产品中实施本公开内容。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本公开内容的各方面。计算机可读存储介质可以是有形装置,该有形装置可以保留和存储供指令执行装置使用的指令。计算机可读存储介质可以是例如但不限于电子存储装置、磁存储装置、光存储装置、电磁存储装置、半导体存储装置或前述的任何合适的组合。计算机可读存储介质的更特定示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦可编程只读存储器(erasable programmable read-only memory,EPROM或闪速存储器)、静态随机存取存储器(static random access memory,SRAM)、便携式致密盘只读存储器(compact disc read-only memory,CD-ROM)、数字通用盘(digitalversatile disk,DVD)、记忆棒、软盘、机械编码装置(例如其上记录有指令的凹槽中的凸起结构或穿孔卡)、以及前述的任何合适的组合。
本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理装置,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储装置。该网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理装置内的计算机可读存储介质中。
用于执行本公开内容的操作的计算机可读程序指令可以是汇编指令、指令集架构(instruction-set-architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或更多种编程语言的任何组合(包括诸如Smalltalk、C++等的面向对象的编程语言和诸如“C”编程语言或类似的编程语言的常规程序化编程语言)编写的源代码或目标代码。代码段或机器可执行指令可以表示过程、功能、子程序、程序、例程、子例程、模块、软件包、类或者指令、数据结构或程序语句的组合。通过传递和/或接收信息、数据、引数、参数或存储器内容,代码段可以耦接至另一代码段或硬件电路。可以经由包括存储器共享、消息传递、令牌传递、网络传输在内的任何适当的装置传递、转发或发送信息、引数、参数、数据等。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情形下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接至用户的计算机,或者可以与外部计算机连接(例如,通过使用因特网服务提供商的因特网)。在一些实施方式中,包括例如可编程逻辑电路系统、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路系统可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令从而使电子电路系统个性化,以便执行本公开内容的各方面。
本文参照根据本公开内容的实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开内容的各方面。将理解,可以通过计算机可读程序指令来实现流程图图示和/或框图中的每个块以及流程图图示和/或框图中的块的组合。结合本文所公开的实施方式而描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上在其功能方面描述了各种说明性部件、块、模块、电路和步骤。将此功能实现为硬件还是软件取决于施加在整个系统上的特定应用和设计约束。技术人员可以针对每个特定应用以不同方式实现所描述的功能,但是这种实现方式决策不应被解释为导致脱离本公开内容的范围。
附图中的流程图和框图示出了根据本公开内容的各种实施方式的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示包括用于实现(一个或更多个)指定逻辑功能的一个或更多个可执行指令的指令的模块、段或部分。在一些替选实施方式中,框中注明的功能可以不按图中注明的顺序发生。例如,连续示出的两个块实际上可以基本上同时执行,或者这两个块有时可以根据所涉及的功能而按照相反的顺序执行。还将注意到,可以通过执行特定功能或动作或者执行专用硬件和计算机指令的组合的基于硬件的专用系统来实现框图和/或流程图中的每个块以及框图和/或流程图中的块的组合。
诸如“然后”、“接下来”等的词语不旨在限制步骤的顺序;这些词语仅用于通过方法的描述来引导读者。虽然处理流程图可以将操作描述为顺序处理,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。处理可以对应于方法、功能、过程、子例程、子程序等。当处理对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
相对于某些示例实施方式描述的特征或功能可以在各种其他示例实施方式中和/或与各种其他示例实施方式组合和子组合。此外,如本文所公开的,示例实施方式的不同方面和/或元素也可以以类似的方式组合和子组合。此外,一些示例实施方式,无论是单独地还是共同地,可以是更大系统的组件,其中,其他过程可以优先于该组件的应用和/或以其他方式修改它们的应用。附加地,如本文所公开的,在示例实施方式之前、之后和/或与示例性实施方式同时,可能需要多个步骤。注意,可以以任何方式经由至少一个实体或参与者来至少部分地执行至少如本文所公开的任何和/或所有方法和/或处理。
尽管本文已经详细描绘和描述了优选实施方式,但是技术人员知道,在不脱离本公开内容的精神的情况下,可以进行各种修改、添加、替换等。因此,这些被认为是在如所附权利要求中限定的本公开内容的范围内。
Claims (80)
1.一种计算机实现的用于为图像生成扩充数据结构的方法,包括:
经由具有一个或更多个处理器的计算装置生成所述图像的多个副本;
经由所述计算装置将多个预处理技术应用于所述副本以生成修改的副本,所述修改的副本与基于所述预处理技术修改的所述副本的版本相对应;
经由所述计算装置使每个修改的副本被存储在多个虚拟化存储单元中的特定虚拟化存储单元中,其中,为每个修改图像选择所述特定虚拟化存储单元基于用于获得所述修改图像的所述预处理技术;
经由所述计算装置检索用于多个分类引擎的多个分类器设置,所述多个分类器设置中的每个分类器设置对应于特定分类引擎并且指定要由所述特定分类引擎分类的图像的类型;
经由所述计算装置基于所述分类器设置使所述修改的副本从所述多个虚拟化存储单元被发送到所述分类引擎;
经由所述计算装置从所述分类引擎接收所述修改的副本的多个分类结果集,所述多个分类结果集由所述多个分类引擎生成;
经由所述计算装置访问多个分类法标签集,每个特定分类法标签集对应于特定分类引擎并且包括所述图像的特定知识或技术领域的类别或属性;
经由所述计算装置基于所述分类法标签集来规范化所述分类结果集,以生成多个规范化的数据集;
经由所述计算装置将所述多个规范化的数据集合并到单个数据结构中;以及
经由所述计算装置,利用从所述分类结果集得出的一组元数据来扩充所述数据结构,以获得所述图像的扩充的数据结构。
2.根据权利要求1所述的计算机实现的方法,其中,所述多个预处理技术包括调整大小和裁剪。
3.根据权利要求1所述的计算机实现的方法,其中,所述分类器设置中的至少一个分类器设置包括开放标准文件格式的文档,所述文档使用人类可读文本来传输包括属性-值对的数据对象。
4.根据权利要求1所述的计算机实现的方法,其中,所述分类法标签集中的至少一个分类法标签集基于人类的多个特征。
5.根据权利要求1所述的计算机实现的方法,其中,所述单个数据结构是单个对象,使得通过允许按特定分类器标识码选择属性值,而使使用所述一组元数据扩充所述单个数据结构更简单。
6.根据权利要求1所述的计算机实现的方法,其中,规范化所述分类结果集是并行执行的。
7.根据权利要求1所述的计算机实现的方法,其中,所述分类结果集中的至少一个分类结果集在规范化之前被存储为数组。
8.根据权利要求1所述的计算机实现的方法,其中,所述一组元数据基于:识别所述副本中的至少一个副本中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
9.根据权利要求1所述的计算机实现的方法,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
10.根据权利要求1所述的计算机实现的方法,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
11.一种用于为图像生成扩充数据结构的计算系统,包括:
一个或更多个处理器;以及
非暂态计算机可读存储介质,具有存储在其上的多个指令,所述多个指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
生成所述图像的多个副本;
将多个预处理技术应用于所述副本以生成修改的副本,所述修改的副本与基于所述预处理技术修改的所述副本的版本相对应;
使每个修改的副本被存储在多个虚拟化存储单元中的特定虚拟化存储单元中,其中,为每个修改图像选择所述特定虚拟化存储单元基于用于获得所述修改图像的所述预处理技术;
检索用于多个分类引擎的多个分类器设置,所述多个分类器设置中的每个分类器设置对应于特定分类引擎并且指定要由所述特定分类引擎分类的图像的类型;
基于所述分类器设置使所述修改副本从所述多个虚拟化存储单元被发送到所述分类引擎;
从所述分类引擎接收所述修改的副本的多个分类结果集,所述多个分类结果集由所述多个分类引擎生成;
访问多个分类法标签集,每个特定分类法标签集对应于特定分类引擎并且包括所述图像的特定知识或技术领域的类别或属性;
基于所述分类法标签集来规范化所述分类结果集,以生成多个规范化的数据集;
将所述多个规范化的数据集合并到单个数据结构中;以及
利用从所述分类结果集得出的一组元数据来扩充所述数据结构,以获得所述图像的扩充的数据结构。
12.根据权利要求11所述的计算系统,其中,所述多个预处理技术包括调整大小和裁剪。
13.根据权利要求11所述的计算系统,其中,所述分类器设置中的至少一个分类器设置包括开放标准文件格式的文档,所述文档使用人类可读文本来传输包括属性-值对的数据对象。
14.根据权利要求11所述的计算系统,其中,所述分类法标签集中的至少一个分类法标签集基于人类的多个特征。
15.根据权利要求11所述的计算系统,其中,所述单个数据结构是单个对象,使得通过允许按特定分类器标识码选择属性值,而使使用所述一组元数据扩充所述单个数据结构更简单。
16.根据权利要求11所述的计算系统,其中,规范化所述分类结果集是并行执行的。
17.根据权利要求11所述的计算系统,其中,所述分类结果集中的至少一个分类结果集在规范化之前被存储为数组。
18.根据权利要求11所述的计算系统,其中,所述一组元数据基于:识别所述副本中的至少一个副本中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
19.根据权利要求11所述的计算系统,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
20.根据权利要求11所述的计算系统,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
21.一种计算机实现的用于生成针对图像特征的推荐的方法,包括:
经由具有一个或更多个处理器的计算装置,接收经由在浏览器中打开的网页的脚本生成的计算事件,所述计算事件与所述网页上示出的图像相关联并且与所述浏览器的用户对所述图像的参与有关,所述计算事件包括网页标识符和网络地址;
经由所述计算装置验证所述网页标识符以确认所述网页在所述浏览器中是打开的;
经由所述计算装置,基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器;
经由所述计算装置,基于所述网页标识符将所述计算事件推送到流以存储在虚拟化存储单元处,并且从所述虚拟化存储单元复制到数据仓库;
经由所述计算装置访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的并且所述数据结构利用从多个分类结果集得出的一组元数据来扩充;
经由所述计算装置,基于所述计算事件和所述数据结构来识别模式,所述模式与同用户对图像的参与相对应的一个或更多个图像特征相关联;以及
经由所述计算装置,基于所述模式生成针对图像特征的推荐。
22.根据权利要求21所述的计算机实现的方法,其中,所述规范化数据集中的至少一个规范化数据集是基于分类法标签集中的人类的多个特征而形成的。
23.根据权利要求21所述的计算机实现的方法,其中,所述计算事件包括用户标识符,其中,所述模式还基于所述用户标识符。
24.根据权利要求21所述的计算机实现的方法,其中,所述计算事件包括会话标识符,其中,所述模式还基于所述会话标识符。
25.根据权利要求21所述的计算机实现的方法,其中,所述浏览器包括视口,其中,所述图像包括竖直轴,其中,所述计算事件基于所述图像在沿着竖直轴测量的所述视口内至少一半可见。
26.根据权利要求21所述的计算机实现的方法,其中,所述浏览器包括视口,其中,所述脚本被配置成当所述图像在所述视口中至少一半可见时初始化定时器,并且在以下中的至少一个时停止所述定时器:当所述图像不是至少一半可见时、当所述脚本确定所述浏览器空闲或所述网页不再可见时。
27.根据权利要求21所述的计算机实现的方法,其中,所述图像被分割成多个单元,其中,所述计算事件包括光标事件,所述光标事件涉及光标并且基于所述光标被定位在所述单元中的至少两个单元上的多个时间段的总和。
28.根据权利要求21所述的计算机实现的方法,其中,所述一组元数据基于:识别所述图像中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
29.根据权利要求21所述的计算机实现的方法,其中,所述一组元数据基于:确定所述图像中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
30.根据权利要求21所述的计算机实现的方法,其中,所述一组元数据基于:确定所述图像中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
31.一种用于生成针对图像特征的推荐的计算系统,包括:
一个或更多个处理器;以及
非暂态计算机可读存储介质,具有存储在其上的多个指令,所述多个指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
接收经由在浏览器中打开的网页的脚本生成的计算事件,所述计算事件与所述网页上示出的图像相关联并且与所述浏览器的用户对所述图像的参与有关,所述计算事件包括网页标识符和网络地址;
验证所述网页标识符以确认所述网页在所述浏览器中是打开的;
基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器;
基于所述网页标识符将所述计算事件推送到流以存储在虚拟化存储单元处,并且从所述虚拟化存储单元复制到数据仓库;
访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的,并且数据结构利用从多个分类结果集得出的一组元数据来扩充;
基于所述计算事件和所述数据结构来识别模式,所述模式与同用户对图像的参与相对应的一个或更多个图像特征相关联;以及
基于所述模式生成针对图像特征的推荐。
32.根据权利要求31所述的计算系统,其中,所述规范化数据集中的至少一个规范化数据集是基于分类法标签集中的人类的多个特征而形成的。
33.根据权利要求31所述的计算系统,其中,所述计算事件包括用户标识符,其中,所述模式还基于所述用户标识符。
34.根据权利要求31所述的计算系统,其中,所述计算事件包括会话标识符,其中,所述模式还基于所述会话标识符。
35.根据权利要求31所述的计算系统,其中,所述浏览器包括视口,其中,所述图像包括竖直轴,其中,所述计算事件基于所述图像在沿着所述竖直轴测量的所述视口内至少一半可见。
36.根据权利要求31所述的计算系统,其中,所述浏览器包括视口,其中,所述脚本被配置成当所述图像在所述视口中至少一半可见时初始化定时器,并且在以下中的至少一个时停止所述定时器:当所述图像不是至少一半可见时、当所述脚本确定所述浏览器空闲或所述网页不再可见时。
37.根据权利要求31所述的计算系统,其中,所述图像被分割成多个单元,其中,所述计算事件包括光标事件,所述光标事件涉及光标并且基于所述光标被定位在所述单元中的至少两个单元上的多个时间段的总和。
38.根据权利要求31所述的计算系统,其中,所述一组元数据基于:识别所述图像中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
39.根据权利要求31所述的计算系统,其中,所述一组元数据基于确定所述图像中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
40.根据权利要求31所述的计算系统,其中,所述一组元数据基于:确定所述图像中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
41.一种计算机实现的方法,包括:
经由服务器生成图像的多个副本;
经由所述服务器将多个预处理技术应用于所述副本,使得基于所述预处理技术来修改所述副本;
经由所述服务器,基于所述预处理技术使修改的所述副本被存储在多个虚拟化存储单元中,其中,所述处理技术与所述虚拟化存储单元一一对应;
经由所述服务器,检索与多个分类引擎一一对应的多个配置文件;
经由所述服务器,基于所述配置文件使所述副本从所述虚拟化存储单元被发送到所述分类引擎,使得所述分类引擎能够对所述副本进行分类并且由此针对所述副本中的每个副本生成多个分类结果集,其中,所述分类引擎在操作中彼此不同,使得对于所述副本中的每个副本,所述分类结果集在内容上彼此不同;
经由所述服务器从所述分类引擎接收所述分类结果集;
经由所述服务器访问与所述分类引擎一一对应的多个分类法文档;
经由所述服务器,基于所述分类法文档规范化所述分类结果集,使得形成多个规范化的数据集;
经由所述服务器将所述规范化的数据集合并到数据结构中;
经由所述服务器,利用从所述分类结果集得出的一组元数据来扩充所述数据结构;
经由所述服务器,基于扩充的所述数据结构采取动作。
42.根据权利要求41所述的计算机实现的方法,其中,所述预处理技术包括调整大小和裁剪。
43.根据权利要求41所述的计算机实现的方法,其中,所述配置文件中的至少一个配置文件是人类可读文本,以传输包括属性-值对的数据对象。
44.根据权利要求41所述的计算机实现的方法,其中,所述分类法文档中的至少一个分类法文档基于人类的多个特征。
45.根据权利要求41所述的计算机实现的方法,其中,所述数据结构是单个对象,使得通过允许按特定分类器标识码选择属性值,而使使用所述一组元数据扩充所述数据结构更简单。
46.根据权利要求41所述的计算机实现的方法,其中,规范化所述分类结果集是并行的。
47.根据权利要求41所述的计算机实现的方法,其中,所述分类结果集中的至少一个分类结果集在规范化之前被存储为数组。
48.根据权利要求41所述的计算机实现的方法,其中,所述一组元数据基于:识别所述副本中的至少一个副本中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
49.根据权利要求41所述的计算机实现的方法,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
50.根据权利要求41所述的计算机实现的方法,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
51.一种计算系统,包括:
一个或更多个处理器;以及
非暂态计算机可读存储介质,具有存储在其上的多个指令,所述多个指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
生成图像的多个副本;
将多个预处理技术应用于所述副本,使得基于所述预处理技术来修改所述副本;
基于所述预处理技术使修改的所述副本被存储在多个虚拟化存储单元中,其中,所述处理技术与所述虚拟化存储单元一一对应;
检索与多个分类引擎一一对应的多个配置文件;
基于所述配置文件使所述副本从所述虚拟化存储单元被发送到所述分类引擎,使得所述分类引擎能够对所述副本进行分类并且由此针对所述副本中的每个副本生成多个分类结果集,其中,所述分类引擎在操作中彼此不同,使得对于所述副本中的每个副本,所述分类结果集在内容上彼此不同;
从所述分类引擎接收所述分类结果集;
访问与所述分类引擎一一对应的多个分类法文档;
基于所述分类法文档规范化所述分类结果集,使得形成多个规范化的数据集;
将所述规范化的数据集合并到数据结构中;
经由所述服务器,利用从所述分类结果集得出的一组元数据来扩充所述数据结构;
基于扩充的所述数据结构采取动作。
52.根据权利要求51所述的计算系统,其中,所述预处理技术包括调整大小和裁剪。
53.根据权利要求51所述的计算系统,其中,所述配置文件中的至少一个配置文件是人类可读文本,以传输包括属性-值对的数据对象。
54.根据权利要求51所述的计算系统,其中,所述分类法文档中的至少一个分类法文档基于人类的多个特征。
55.根据权利要求51所述的计算系统,其中,所述数据结构是单个对象,使得通过允许按特定分类器标识码选择属性值,而使使用所述一组元数据扩充所述数据结构更简单。
56.根据权利要求51所述的计算系统,其中,规范化所述分类结果集是并行的。
57.根据权利要求51所述的计算系统,其中,所述分类结果集中的至少一个分类结果集在规范化之前被存储为数组。
58.根据权利要求51所述的计算系统,其中,所述一组元数据基于:识别所述副本中的至少一个副本中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
59.根据权利要求51所述的计算系统,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
60.根据权利要求51所述的计算系统,其中,所述一组元数据基于:确定所述副本中的至少一个副本中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
61.一种计算机实现的方法,包括:
经由服务器接收经由在浏览器中打开的网页的脚本生成的光标事件,使得所述光标事件与所述网页上示出的图像相关联,其中,所述光标事件包括网页标识符和网络地址;
经由所述服务器验证所述网页标识符;
经由所述服务器,基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器;
经由所述服务器,基于所述网页标识符将所述光标事件推送到流,使得所述流将所述光标事件流送到虚拟化存储单元并且使所述光标事件从所述虚拟化存储单元被复制到数据仓库;
经由所述服务器访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的并且所述数据结构利用从多个分类结果集得出的一组元数据来扩充;
经由所述服务器,基于所述光标事件和所述数据结构来识别模式;
经由所述服务器,基于所述数据结构采取动作。
62.根据权利要求61所述的计算机实现的方法,其中,所述规范化数据集中的至少一个规范化数据集是基于分类法文档中的人类的多个特征而形成的。
63.根据权利要求61所述的计算机实现的方法,其中,所述光标事件包括用户标识符,其中,所述模式基于所述用户标识符。
64.根据权利要求61所述的计算机实现的方法,其中,所述光标事件包括会话标识符,其中,所述模式基于所述会话标识符。
65.根据权利要求61所述的计算机实现的方法,其中,所述浏览器包括视口,其中,所述图像包括竖直轴,其中,所述光标事件基于所述图像在沿着所述竖直轴测量的所述视口内至少一半可见。
66.根据权利要求61所述的计算机实现的方法,其中,所述浏览器包括视口,其中,所述脚本被配置成当所述图像在所述视口中至少一半可见时初始化定时器,并且在以下中的至少一个时停止所述定时器:当所述图像不是至少一半可见时、当所述脚本确定所述浏览器空闲或所述网页不再可见时。
67.根据权利要求61所述的计算机实现的方法,其中,所述图像被分割成多个单元,其中,所述光标事件涉及光标并且基于所述光标被定位在所述单元中的至少两个单元上的多个时间段的总和。
68.根据权利要求61所述的计算机实现的方法,其中,所述一组元数据基于:识别所述图像中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
69.根据权利要求61所述的计算机实现的方法,其中,所述一组元数据基于:确定所述图像中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
70.根据权利要求61所述的计算机实现的方法,其中,所述一组元数据基于:确定所述图像中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
71.一种计算系统,包括:
一个或更多个处理器;以及
非暂态计算机可读存储介质,具有存储在其上的多个指令,所述多个指令在由所述一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
接收经由在浏览器中打开的网页的脚本生成的光标事件,使得所述光标事件与所述网页上示出的图像相关联,其中,所述光标事件包括网页标识符和网络地址;
验证所述网页标识符;
基于所述网页标识符有效,经由所述网络地址来地理定位所述浏览器;
基于所述网页标识符将所述光标事件推送到流,使得所述流将所述光标事件流送到虚拟化存储单元并且使所述光标事件从所述虚拟化存储单元被复制到数据仓库;
访问存储多个规范化数据集的数据结构,所述多个规范化数据集是由合并在一起的所述图像的分类而形成的并且数据结构利用从多个分类结果集得出的一组元数据来扩充;
基于所述光标事件和所述数据结构来识别模式;
基于所述数据结构采取动作。
72.根据权利要求71所述的计算系统,其中,所述规范化数据集中的至少一个规范化数据集是基于分类法文档中的人类的多个特征而形成的。
73.根据权利要求71所述的计算系统,其中,所述光标事件包括用户标识符,其中,所述模式基于所述用户标识符。
74.根据权利要求71所述的计算系统,其中,所述光标事件包括会话标识符,其中,所述模式基于所述会话标识符。
75.根据权利要求71所述的计算系统,其中,所述浏览器包括视口,其中,所述图像包括竖直轴,其中,所述光标事件基于所述图像在沿着所述竖直轴测量的所述视口内至少一半可见。
76.根据权利要求71所述的计算系统,其中,所述浏览器包括视口,其中,所述脚本被配置成当所述图像在所述视口中至少一半可见时初始化定时器,并且在以下中的至少一个时停止所述定时器:当所述图像不是至少一半可见时、当所述脚本确定所述浏览器空闲或所述网页不再可见时。
77.根据权利要求71所述的计算系统,其中,所述图像被分割成多个单元,其中,所述光标事件涉及光标并且基于所述光标被定位在所述单元中的至少两个单元上的多个时间段的总和。
78.根据权利要求71所述的计算系统,其中,所述一组元数据基于:识别所述图像中的面部、检索与所述面部相关联的简档、从所述简档复制元素、以及将所述元素插入到所述一组元数据中。
79.根据权利要求71所述的计算系统,其中,所述一组元数据基于:确定所述图像中的多个特征之间的比率并且将所述比率插入到所述一组元数据中。
80.根据权利要求71所述的计算系统,其中,所述一组元数据基于:确定所述图像中的负空间、基于所述负空间生成值、以及将所述值插入到所述一组元数据中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862724905P | 2018-08-30 | 2018-08-30 | |
US62/724,905 | 2018-08-30 | ||
PCT/US2019/049074 WO2020047416A1 (en) | 2018-08-30 | 2019-08-30 | Technologies for enabling analytics of computing events based on augmented canonicalization of classified images |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113366542A true CN113366542A (zh) | 2021-09-07 |
Family
ID=69643799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980072038.0A Pending CN113366542A (zh) | 2018-08-30 | 2019-08-30 | 用于实现基于扩充的规范化分类图像分析计算事件的技术 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20210264195A1 (zh) |
EP (1) | EP3844726A4 (zh) |
KR (1) | KR20210055055A (zh) |
CN (1) | CN113366542A (zh) |
AU (1) | AU2019327554A1 (zh) |
BR (1) | BR112021003861A2 (zh) |
CA (1) | CA3110980A1 (zh) |
SG (1) | SG11202101950RA (zh) |
WO (1) | WO2020047416A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599877A (zh) * | 2023-07-19 | 2023-08-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11403668B2 (en) * | 2019-10-30 | 2022-08-02 | Target Brands, Inc. | Multitask transfer learning for optimization of targeted promotional programs |
CN111507263B (zh) * | 2020-04-17 | 2022-08-05 | 电子科技大学 | 一种基于多源数据的人脸多属性识别方法 |
US11526344B2 (en) | 2020-08-04 | 2022-12-13 | Mastercard Technologies Canada ULC | Distributed GeoIP information updating |
US11487526B2 (en) | 2020-08-04 | 2022-11-01 | Mastercard Technologies Canada ULC | Distributed user agent information updating |
KR102633287B1 (ko) * | 2021-06-22 | 2024-02-06 | 한국전력공사 | 비전 기술을 이용한 트렌드 데이터 추출 장치 및 그 방법 |
US20230018387A1 (en) * | 2021-07-06 | 2023-01-19 | metacluster lt, UAB | Dynamic web page classification in web data collection |
US20230089790A1 (en) * | 2021-09-20 | 2023-03-23 | International Business Machines Corporation | Constraint-based multi-party image modification |
US20230222154A1 (en) * | 2022-01-07 | 2023-07-13 | Capital One Services, Llc | Using tracking pixels to determine areas of interest on a zoomed in image |
WO2023170139A1 (en) | 2022-03-09 | 2023-09-14 | Boehringer Ingelheim International Gmbh | Method for detecting contaminating carboxylesterase activity |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100054592A1 (en) * | 2004-10-28 | 2010-03-04 | Fotonation Ireland Limited | Analyzing partial face regions for red-eye detection in acquired digital images |
US20100086215A1 (en) * | 2008-08-26 | 2010-04-08 | Marian Steward Bartlett | Automated Facial Action Coding System |
US7983961B1 (en) * | 2005-10-27 | 2011-07-19 | Alvin Chang | Methods and apparatus for marketing profiling while preserving user privacy |
US20150242707A1 (en) * | 2012-11-02 | 2015-08-27 | Itzhak Wilf | Method and system for predicting personality traits, capabilities and suggested interactions from images of a person |
US20170032214A1 (en) * | 2014-02-04 | 2017-02-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | 2D Image Analyzer |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100793989B1 (ko) * | 2006-07-11 | 2008-01-16 | 삼성전자주식회사 | 사진 카테고리 분류 방법 및 그 시스템 |
TWI498845B (zh) * | 2012-12-14 | 2015-09-01 | Ind Tech Res Inst | 飲食管理方法與系統 |
US10281987B1 (en) * | 2013-08-09 | 2019-05-07 | Leap Motion, Inc. | Systems and methods of free-space gestural interaction |
KR20160096546A (ko) * | 2015-02-05 | 2016-08-16 | 김가임 | 쇼핑을 위한 증강현실 체험 시스템 및 방법 |
US10037456B2 (en) * | 2015-09-04 | 2018-07-31 | The Friedland Group, Inc. | Automated methods and systems for identifying and assigning attributes to human-face-containing subimages of input images |
US9830506B2 (en) * | 2015-11-09 | 2017-11-28 | The United States Of America As Represented By The Secretary Of The Army | Method of apparatus for cross-modal face matching using polarimetric image data |
US20170337681A1 (en) * | 2016-03-09 | 2017-11-23 | Shenzhen Smart Imaging Healthcare Co., Ltd. | System and method for the classification of healthiness index from chest radiographs of a healthy person |
US11657116B2 (en) * | 2019-06-10 | 2023-05-23 | Shopify Inc. | Override resolution engine |
US11568605B2 (en) * | 2019-10-15 | 2023-01-31 | Magic Leap, Inc. | Cross reality system with localization service |
US11257298B2 (en) * | 2020-03-18 | 2022-02-22 | Adobe Inc. | Reconstructing three-dimensional scenes in a target coordinate system from multiple views |
US20220414396A1 (en) * | 2021-06-28 | 2022-12-29 | International Business Machines Corporation | Image dispositioning using machine learning |
US11714637B1 (en) * | 2022-02-21 | 2023-08-01 | International Business Machines Corporation | User support content generation |
-
2019
- 2019-08-30 EP EP19853898.5A patent/EP3844726A4/en not_active Withdrawn
- 2019-08-30 WO PCT/US2019/049074 patent/WO2020047416A1/en unknown
- 2019-08-30 AU AU2019327554A patent/AU2019327554A1/en not_active Abandoned
- 2019-08-30 SG SG11202101950RA patent/SG11202101950RA/en unknown
- 2019-08-30 CA CA3110980A patent/CA3110980A1/en active Pending
- 2019-08-30 CN CN201980072038.0A patent/CN113366542A/zh active Pending
- 2019-08-30 BR BR112021003861-2A patent/BR112021003861A2/pt not_active Application Discontinuation
- 2019-08-30 KR KR1020217009416A patent/KR20210055055A/ko unknown
-
2021
- 2021-02-26 US US17/187,139 patent/US20210264195A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100054592A1 (en) * | 2004-10-28 | 2010-03-04 | Fotonation Ireland Limited | Analyzing partial face regions for red-eye detection in acquired digital images |
US7983961B1 (en) * | 2005-10-27 | 2011-07-19 | Alvin Chang | Methods and apparatus for marketing profiling while preserving user privacy |
US20100086215A1 (en) * | 2008-08-26 | 2010-04-08 | Marian Steward Bartlett | Automated Facial Action Coding System |
US20150242707A1 (en) * | 2012-11-02 | 2015-08-27 | Itzhak Wilf | Method and system for predicting personality traits, capabilities and suggested interactions from images of a person |
US20170032214A1 (en) * | 2014-02-04 | 2017-02-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | 2D Image Analyzer |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599877A (zh) * | 2023-07-19 | 2023-08-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
CN116599877B (zh) * | 2023-07-19 | 2023-09-15 | 国家计算机网络与信息安全管理中心江西分中心 | 一种基于爬虫技术的IPv6的链接测试方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3844726A1 (en) | 2021-07-07 |
WO2020047416A1 (en) | 2020-03-05 |
KR20210055055A (ko) | 2021-05-14 |
CA3110980A1 (en) | 2020-03-05 |
EP3844726A4 (en) | 2022-05-18 |
US20210264195A1 (en) | 2021-08-26 |
SG11202101950RA (en) | 2021-03-30 |
AU2019327554A1 (en) | 2021-03-18 |
BR112021003861A2 (pt) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210264195A1 (en) | Technologies for enabling analytics of computing events based on augmented canonicalization of classified images | |
US20210256320A1 (en) | Machine learning artificialintelligence system for identifying vehicles | |
US20190332921A1 (en) | Decentralized storage structures and methods for artificial intelligence systems | |
JP6594329B2 (ja) | 顔表現のためのシステムおよび方法 | |
US10540569B2 (en) | System, method, and recording medium for detecting video face clustering with inherent and weak supervision | |
US10990810B2 (en) | Automated facial recognition detection | |
Agrawal et al. | Cloudcv: Large-scale distributed computer vision as a cloud service | |
CN111670457A (zh) | 动态对象实例检测、分割和结构映射的优化 | |
Raj et al. | High-performance big-data analytics | |
US20180276508A1 (en) | Automated visual information context and meaning comprehension system | |
US20220269927A1 (en) | Optimizing machine learning | |
US11250039B1 (en) | Extreme multi-label classification | |
Bartolini et al. | A general framework for real-time analysis of massive multimedia streams | |
US20240126810A1 (en) | Using interpolation to generate a video from static images | |
JP2022003517A (ja) | 機密情報を保護するための画像由来識別ドキュメントの検出 | |
Hiriyannaiah et al. | Deep learning for multimedia data in IoT | |
US20210195095A1 (en) | Systems and methods for guiding image sensor angle settings in different environments | |
US11436412B2 (en) | Predictive event searching utilizing a machine learning model trained using dynamically-generated event tags | |
Noor et al. | Sherlock in OSS: A Novel Approach of Content-Based Searching in Object Storage System | |
Hsu et al. | Multimedia fog computing: Minions in the cloud and crowd | |
US10540389B2 (en) | Social media driven cognitive Q and A about images | |
CN111553375A (zh) | 使用变换以验证计算机视觉质量 | |
Meng | Effect of photo album service on the construction of network image resources in the wireless network environment | |
US11868916B1 (en) | Social graph refinement | |
Singh et al. | Big-Data-Based Techniques for Predictive Intelligence |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40060477 Country of ref document: HK |