呼和浩特股票配资网www.kiyzl.com.cn

呼和浩特股票配资网www.kiyzl.com.cn 使用AnalyticDB轻松实现以图搜图和人脸检索

AnalyticDB在真实应用场景中可以支持10亿级别的向量数据的查询, 毫秒级别的响应时间. AnalyticDB已经在多个城市的重大项目中大规模部署。

AnalyticDB提供的通用以图搜图模型采用了阿里云自研的特征提取模型.AnalyticDB模型使用海量图片训练并且使用了先进的特征后处理方法. 与常用的VGG分类模型特征提取模型相比, AnalyticDB利用了多个尺度的特征,更好的平衡图像的局部特征和高层次特征, 在多样的图像场景中有更好的泛化能力。

5.1 创建插件

分别创建AnalyticDB的非结构化分析插件OpenAnalytic和向量检索插件fastann

CREAT EXTENSION IF NOT EXISTS open_analytic;

CREAT EXTENSION IF NOT EXISTS fastann;

5.2 建表

我们可以使用如下sql语句建表, 表中保存了图片的名称, 二进制文件和图像的特征向量(用户也可以将图片的文件保存至阿里云的OSS对象存储服务上.这里不做详细介绍)

CREATE TABLE image_search_table (

image_name TEXT NOT NULL, # 图像文件名

image_data BYTEA NOT NULL, # 图像二进制文件

feature REAL[] NOT NULL, # 图像特征

PRIMARY KEY (image_name)

);

5.3 建索引

为图像的特征向量列构建ANN索引加快查询速度.

CREATE INDEX image_search_feature_index

ON image_search_table USING ann (feature) WITH (dim = 1024);

5.4 创建特征提取算法pipeline

通过以下sql可以执行4.3创建的pipeline。

我们提前向AnalyticDB中导入了近50000张图片. 如下图所示, 我们使用一张鸟类的图片进行以图搜图(右侧图片预览), 可以看到返回的全部都是相似的鸟类的照片. 每张照片下方显示了与查询图片的特征的距离, 距离越近表示越相似。 输出是包含图像特征向量的JSON串

SELECT open_analytic.pipeline_run_dist_random('general_feature_extractor',

<image_byte_array>);

5.5 提取图片特征向量

通过以下sql可以执行4.3创建的pipeline. 这个UDF的输入是pipeline名称和图像的byte array. 输出是包含图像特征向量的JSON串

SELECT open_analytic.pipeline_run_dist_random('general_feature_extractor',

<image_byte_array>);

5.6 图像数据导入

在获取图像特征以后, 可以将图像数据导入4.1创建的 image_search_table表中。 这个UDF的输入是pipeline名称和图像的byte array。

INSERT INTO image_search_table VALUES (<image_name>,

<image_byte_array>, <image_feature>);

5.7以图搜图查询

通过以下sql可以检索与查询图片向量最相似的前10条记录。

4.2 人脸检索系统

我们还可以用AnalyticDB搭建人脸检索系统, 可以通过人脸照片在相册中查询目标人物的记录.人脸检索演示的架构与以图搜图几乎相同, 差别是使用了的是人脸特征提取的算法pipeline. 我们在底库中导入了13000多张人脸照片, 然后使用人脸照片进行查询,可以看到返回结果前3张都是与查询用户是同一个人, 向量的距离都比较小, 因为我们设置了返回前10相近个结果, 但是相册中只有3张查询目标的照片, 所以返回的后7个结果与查询目标不是同一个人, 我们也可以看到这7个人与查询目标的向量距离都远远大于前3张。

5. 使用AnalyticDB搭建以图搜图系统

下面我们来介绍如何使用AnalyticDB来实现上一章节介绍的以图搜图和人脸检索系统。AnalyticDB for MySQL 全面兼容MySQL协议以及SQL:2003 语法标准, AnalyticDB forPostgreSQL 支持标准 SQL:2003,高度兼容 Oracle 语法生态。AnalyticDB同时提供了先进的图像文本分析算法, 能够提取非结构化数据的特征和标签, 用户仅仅需要使用SQL就可以完成图像文本内容的分析.

更多信息可以参考文章: https://zhuanlan.zhihu.com/p/82284704

7. 结语

本文介绍了如何使用AnalyticDB来搭建以图搜图, 人脸识别系统. 演示系统的源码可以在https://github.com/aliyun/alibabacloud-AnalyticDB-python-demo-AI 下载. AnalyticDB还支持其他多种多样人工智能算法如目标检测, 商品识别, 声纹识别, 基因识别等等. 下一期我们将介绍如何使用AnalyticDB做更加复杂的图像分析.

References

[1] Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).

[2] He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[3] Howard, Andrew G., et al. "Mobilenets: Efficient convolutional neural networks for mobile vision applications." arXiv preprint arXiv:1704.04861 (2017).

[4] Iandola, Forrest N., et al. "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size." arXiv preprint arXiv:1602.07360 (2016).

[5] Gordo, Albert, et al. "Deep image retrieval: Learning global representations for image search." European conference on computer vision. Springer, Cham, 2016.

[6] Radenović, Filip, Giorgos Tolias, and Ondřej Chum. "Fine-tuning CNN image retrieval with no human annotation." IEEE transactions on pattern analysis and machine intelligence 41.7 (2018): 1655-1668.

[7] Indyk, Piotr, and Rajeev Motwani. "Approximate nearest neighbors: towards removing the curse of dimensionality." Proceedings of the thirtieth annual ACM symposium on Theory of computing. 1998.

[8] Jegou, Herve, Matthijs Douze, and Cordelia Schmid. "Product quantization for nearest neighbor search." IEEE transactions on pattern analysis and machine intelligence 33.1 (2010): 117-128.

[9] Malkov, Yury A., and Dmitry A. Yashunin. "Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs." IEEE transactions on pattern analysis and machine intelligence (2018).

上云就看云栖号,点此查看更多:https://yqh.aliyun.com/?utm_content=g_1000100940

本文为阿里云内容,未经允许不得转载。

在一般的包含向量检索的的应用系统中, 通常开发者会使用向量检索引擎(例如Faiss)来存储向量数据, 然后使用关系型数据库存储结构化数据. 在查询时也需要交替查询两个系统, 这种方案会有额外的开发工作并且性能也不是最优. AnalyticDB支持结构化数据和非结构化数据(向量)的检索呼和浩特股票配资网www.kiyzl.com.cn,仅仅使用SQL接口就可以快速的搭建起以图搜图或者图片 结构化数据混合检索等功能. AnalyticDB的优化器在混合检索场景中会根据数据的分布和查询的条件选择最优的执行计划呼和浩特股票配资网www.kiyzl.com.cn,在保证召回的同时呼和浩特股票配资网www.kiyzl.com.cn,得到最优的性能。AnalyticDB向量版采用了多项创新性技术, 这些技术在我们的论文 AnalyticDB-V: A Hybrid Analytical Engine Towards Query Fusion for Structured and Unstructured Data 中有详细介绍介绍. 目前论文已经被数据库三大顶会之一的VLDB接受, 具有技术领先性.

结构化信息 非结构化信息(图片)混合检索在实际应用中被广泛使用的. 例如人脸门禁系统被部署在多个小区时, 我们使用一张表存储了所有小区的人脸特征, 在人脸检索时我们只需要检索当前小区的人脸特征. 在这种情况下, 使用AnalyticDB我们只需要在SQL中增加where 小区名 ='xxx' 就可以轻易实现。

SELECT image_name, image_data, l2_distance(feature, <feature_vector>)

FROM image_search_table

ORDER BY feature <-> <feature_vector>

LIMIT 10;

5.8 人脸检索系统

以上我们介绍了如何使用Analytic来实现以图搜图, 搭建人脸检索系统的逻辑与以图搜图系统几乎是一样的 只需要将5.1-5.6章节中使用的的pipeline名称从 'general_feature_extractor' 替换为 'face_feature_extractor' 就可以将以图搜图系统变成一个人脸检索系统. 非常的方便.

6. AnalyticDB介绍

分析型数据库(AnalyticDB)是阿里云上的一种高并发低延时的PB级实时数据仓库,可以毫秒级针对万亿级数据进行即时的多维分析透视和业务探索。

向量检索和非结构化数据分析是AnalyticDB的进阶功能. 目前两款产品都包含向量检索功能, 可以支持人脸, 人体, 车辆等的相似查询和推荐系统。

AnalyticDB还提供了阿里云自研的人脸特识别模型, 基于大量数据训练, 模型已经在多个城市的安防和新零售场景大规模使用. 在百万人脸ID的相册中千分之一误识率下召回率可以达到99%.

2.2 向量检索

向量检索又称为最近邻( Nearest Neighbor Search, NN)检索, 主要负责在海量特征向量中快速的查找与查询向量距离最近的k个记录, 虽然暴力的计算查询向量与数据库中所有向量的距离然后再进行排序可以找到最相近的记录, 但是这种方法的时间复杂度在大规模数据场景下无法满足需求的. 在实际应用场景中, 通常使用近似最近邻检索(Approximate Nearest Neighbor, ANN)的方法, ANN主要是利用向量数据分布的特性以牺牲一定检索精度为代价,快速的返回可能是查询目标最近邻的记录. 常见的ANN的方法有基于局部敏感哈希(LSH)的方法[7], 基于乘积量化的方法[8]和基于图的方法[9].

3. AnalyticDB 非结构化分析工具OpenAnalytic

OpenAnalytic是AnalyticDB上的非结构化分析工具, OpenAnalytic 提供了丰富的图像, 视频, 文本分析的AI算法算子, 如人脸检测, 人脸识别, 人脸性别,年龄识别, 商品属性识别, 图像目标检测, 声纹识别, 文本特征提取等. 用户可以根据实际需求来任意的使用这些AI算子来自由的编排自己的算法pipeline. 例如, 本问中使用的图像特征提取pipeline和人脸特征提取pipeline如下图所示. 用户只需要通过pipeline_create UDF创建pipeline, 就可以在AnalyticDB集群上分布式的运行这些已创建的pipeline获取非结构化数据分析的结果.

4. 以图搜图系统演示

我们使用AnalytcDB搭建了两套演示系统, 一套是通用的以图搜图的系统另一套是人脸检索系统. 演示系统的源码已经全部开源, 只需要下载源码(代码地址见章节6)并开通AnalyticDB就可以一键启动演示系统. 为了方便用户体验, AnalyticDB推出了1元购活动, 只需1元就可以开通. 演示的架构如下图所示, 可以看到整提架构非常简单, AnalyticDB负责图像的识别和数据的存储, 查询, 不需要依赖其他的诸如深度学习推理之类的服务.

4.1 以图搜图系统

以图搜图的演示界面如下图所示, 用户可以将本地图片批量的导入AnalyticDB作为搜索的目标相册. 用户可以通过选择本地图片或填写网络图片的URL来进行以图搜图. 同时, 用户可以选择需要返回最相似的图片数目

智联招聘7月2日发布《2020年夏季广州雇主需求与白领人才供给报告》。该报告称,在线数据显示,广州地区2020年夏季求职期的平均月薪为9334元,在全国38个主要城市的薪酬水平中排名第5位,薪酬水平较上一季度略有上升。

  受疫情影响缓缴社保 不影响购买共有产权房

 


Powered by 呼和浩特股票配资网www.kiyzl.com.cn @2018 RSS地图 html地图

Copyright 365站群 © 2018-2028 官方平台 版权所有