关于图像检索:大厂技术实现-图像检索及其在高德的应用-计算机视觉系列

作者:韩信子@ShowMeAI,章鱼@高德 大厂解决方案系列教程:https://www.showmeai.tech/tutorials/50 本文地址:https://www.showmeai.tech/article-detail/93 申明:版权所有,转载请分割平台与作者并注明出处 珍藏 ShowMeAI 查看更多精彩内容一图看懂全文 ShowMeAI社区的技术专家小伙伴们对图像检索的典型算法做了实现,构建了相干利用 『基于CNN与三元组的图像检索实现』,对细节感兴趣的话,请返回 这里 查看实现代码参考。代码的整顿破费了很多心理,欢送大家 PR 和 Star! ⭐ ShowMeAI官网GitHub:https://github.com/ShowMeAI-Hub/ 一、高德图像检索的业务背景本文利用到的技术是图像检索,利用场景为高德地图,利用点是高德地图的 POI信息更新(在高德图像数据中,POI牌匾和POI一一对应)。 POI:Point of Interest,在电子地图上,POI 代表餐厅、超市、政府机关、旅游景点、交通设施等。POI是电子地图的外围数据。 POI 数据蕴含的名称信息、地位信息等,能满足用户的根本需要——应用电子地图“查找目的地”,进而唤起导航服务。POI 数据能够反对电子地图提供“搜寻左近”、“点评”等性能,这些操作能够进步用户的应用和沉闷时长。POI 数据还是线上线下连贯互动的一个纽带,是基于位置服务(Location Based Service)产业的一个重要组件。 高德地图的业务场景,须要依据自有图像源,将每个新增或调整的 POI及时制作成数据。 一般来讲,短时间片(月度)内,同一地点的 POI 的变动量很低(如图,只有“汤火功夫”POI 是一个新增的挂牌)。因而,从技术实现的角度来看,不能采纳『每次都解决全副 POI 』的计划,因为作业老本太高了。更好的实现计划是,将没有变动的 POI 自动化地过滤掉。这个场景工作是十分典型的图像检索工作,其中关键技术图像匹配。1.1 图像检索的工作定义图像检索问题定义:给定查问图像(Query),通过剖析视觉内容,在大型图像库中(Gallery)中搜寻出类似的图像。图像检索始终是计算机视觉畛域的一个长期研究课题,在『行人重辨认』、『人脸识别』、『视觉定位』等工作中均有宽泛的利用。 图像检索的过程须要『图像特色抽取』+『比对检索』两个环节: 1)图像特征提取通常包含:全局特色、部分特色、辅助特色等,次要是针对不同工作特点进行相应的优化。例如:行人重辨认以及人脸识别具备很强的刚性束缚,并且具备显著的要害特色(行人/人脸关键点),因而会将人体宰割或关键点检测信息交融到模型特征提取中。 2)比对检索核心技术是度量学习,其指标是在固定维度的特色空间中,束缚模型将同类别样本拉近,不同类别样本推远。在深度学习时代,次要有几种经典的构造,均是通过正负样本定义以及损失函数设计上进行优化: 比照损失(Contractive Loss)三元组损失(Triplet Loss)核心损失(Center Loss)1.2 高德业务问题与难点POI 牌匾的图像检索和学术上支流检索工作(如行人重辨认)有着较大的区别,次要包含以下几点: 异质数据遮挡影响文本依赖性1)异质数据异质数据指的是不同相机拍摄、不同环境、不同条件下的图像差别。比方,在 POI 牌匾检索场景中,有比较严重的异质数据问题。如下图所示,是不同拍摄条件下的异源图像。 因为拍摄相机的品质、拍摄视角的不同,POI 牌匾最终的亮度、形态、清晰度等都存在十分大的差别。如何在差别较大的异质数据中实现 POI 牌匾检索,则是一个十分具备挑战性的问题。 2)遮挡影响在路线场景中,常常存在树木以及车辆等烦扰信息,并且因为拍摄视角起因,拍摄到的 POI 牌匾常常会面临重大的遮挡问题。遮挡给 POI 牌匾检索带来微小的挑战。 3)文本依赖性POI 牌匾还有一个独有个性就是对文本强依赖,次要是对 POI 名称文本的依赖。 ...

August 15, 2022 · 2 min · jiezi

关于图像检索:大厂技术实现-图像检索及其在淘宝的应用-计算机视觉系列

作者:韩信子@ShowMeAI,Frank@淘宝 大厂解决方案系列教程:https://www.showmeai.tech/tutorials/50 本文地址:https://www.showmeai.tech/article-detail/92 申明:版权所有,转载请分割平台与作者并注明出处 珍藏 ShowMeAI 查看更多精彩内容一图读懂全文 ShowMeAI社区的技术专家小伙伴们对图像检索的典型算法做了实现,构建了相干利用 『基于CNN与三元组的图像检索实现』,对细节感兴趣的话,请返回 这里 查看实现代码参考。代码的整顿破费了很多心理,欢送大家 PR 和 Star! ⭐ ShowMeAI官网GitHub:https://github.com/ShowMeAI-Hub/图像检索是一个在互联网行业有着十分多利用场景的AI技术,典型利用例如电商商品检索(淘宝『拍立淘』,京东『拍照购』),用户顺手拍照即可精准检索商品,整套实现的背地蕴含了十分多计算机视觉技术。本篇咱们联合阿里CV方向资深算法工程师 Frank 的分享,一起来看看淘宝拍立淘背地的实现计划和依靠的计算机视觉技术。 一、图像检索晋升购物体验图像检索工作指的是,给定一个蕴含特定实例(例如特定指标、修建、场景等)的查问图像,从图像数据库中找到蕴含雷同/类似实例的图像。 因为不同图像的拍摄视角、光照、遮挡状况等不同,实现精准检索须要很多算法技术撑持,同时对于图像数据库宏大的各大互联网公司而言,查问效率也是须要思考的外围问题之一。 以电商为例,淘宝拍立淘于2014年首次在APP中上线,现曾经成为领有数千万日活用户的利用。与传统的基于文字搜寻的电商搜寻相比,拍立淘只须要用户顺手拍一张照片,即可精准检索,省去了繁琐的文字描述,简化了用户的购物流程,大大提高了电商购物的体验。 二、淘宝·拍立淘的图像搜寻流程架构拍立淘的图像搜寻架构如下图所示,架构整体分为离线和在线解决流程两个局部。 2.1 离线流程离线解决的过程次要是定期对图像抽取特色构建索引。残缺的离线流程包含: ① 检测与特色学习:构建离线图像选品,通过指标检测在选品图像上提取感兴趣的商品; ② 特色抽取:对商品进行特征提取,构建大规模索引库,放入图像搜索引擎期待查问; ③ 构建索引:以肯定频率放弃索引库更新。 2.2 在线流程在线解决的过程次要是对用户上传的查问图片进行检索返回库内检索后果。具体的步骤包含: ① 品类辨认:对查问图像进行分类解决,辨认商品类目; ② 指标定位 & CNN特色抽取:提取图像指标区域的特色,基于相似性度量在索引引擎中搜寻产生候选; ③ 图像索引与重排:能够通过重排序进行后果商品重排并返回搜寻后果。 三、品类辨认模块3.1 图像选品解决之所以做淘宝选品,是因为淘宝平台存在十分多雷同或高度类似的商品图像,间接应用会导致最终的搜寻后果呈现大量雷同的商品宝贝,影响用户体验。 淘宝蕴含大量不同起源的商品图像,例如和商品对应的『主图』、『SKU图』、『拆箱图』等。首先,须要对这些海量图像做一个筛选,选出用户绝对感兴趣的图像作为商品图像构建索引。 这个过程相当于『依据图像附带的属性和图像品质等对整个图像库进行过滤』。增加图像选品过滤模块后,会每天定时抉择和删除反复或高度类似的商品图像,进而优化索引文件。 3.2 基于模型&搜寻联合的类目预测淘宝的类目体系是基于叶子类目标层次化构造,这样能够兼顾视觉和语义相似性。 淘宝在拍立淘中先图像进行预测,失去 14 个大类目之一的后果,如服饰、鞋、包等,这个解决能够放大图像库的搜寻空间。具体实现采纳基于模型与搜寻联合的形式,如下: 1)基于模型的预测模块① 采纳 GoogLeNet V1 网络结构来衡量高精度和低提早,应用蕴含不同商品类指标签的图像集进行训练; ② 将输出图像的大小 resize 为 \( 256 \times 256 \),随机裁剪到 \( 227 \times 227 \),应用 Softmax(穿插熵)损失函数作为分类工作的损失函数。 ...

August 15, 2022 · 3 min · jiezi

以图搜图实现之均值哈希

前言最近在逛淘宝时发现了淘宝的图片搜索功能,可能是我太Low了这个技术点已经实现很长时间了。想想自己能不能实现这个功能,起初我是这么想的,对两张图片从左上角的第一个像素点一直比较到右下角的最后一个像素点,并在比较时记录它们的相似度,可能是我太天真了(主要还是知识限制了想象),这样做有很多问题,比如说两张图片大小不一致、核心要素点的位置不同等...最终只得借助网络了,找到了一种叫做均值哈希的算法(Average hash algorithm),接下来具体阐述它的基本思路以及适用场景。 均值哈希的基本思路1、缩小尺寸: 去除图片的高频和细节的最快方法是缩小图片,将图片缩小到8x8的尺寸,总共64个像素。不要保持纵横比,只需将其变成8乘8的正方形。这样就可以比较任意大小的图片,摒弃不同尺寸、比例带来的图片差异。 2、简化色彩: 将8乘8的小图片转换成灰度图像。 3、计算平均值: 计算所有64个像素的灰度平均值。 4、比较像素的灰度: 将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。 5、计算hash值: 将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。 如果图片放大或缩小,或改变纵横比,结果值也不会改变。增加或减少亮度或对比度,或改变颜色,对hash值都不会太大的影响。最大的优点:计算速度快! 那么完成了以上步骤,一张图片就相当于有了自己的"指纹"了,然后就是计算不同位的个数,也就是汉明距离(例如1010001与1011101的汉明举例就是2,也就是不同的个数)。 如果汉明距离小于5,则表示有些不同,但比较相近,如果汉明距离大于10则表明完全不同的图片。 以上就是均值哈希的基本实现思路,总体来说是比较简单的。 C#实现public class ImageHashHelper{ /// <summary> /// 获取缩略图 /// </summary> /// <returns></returns> private static Bitmap GetThumbImage(Image image, int w, int h) { Bitmap bitmap = new Bitmap(w, h); Graphics g = Graphics.FromImage(bitmap); g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel); return bitmap; } /// <summary> /// 将图片转换为灰度图像 /// </summary> /// <returns></returns> private static Bitmap ToGray(Bitmap bmp) { for (int i = 0; i < bmp.Width; i++) { for (int j = 0; j < bmp.Height; j++) { //获取该点的像素的RGB的颜色 Color color = bmp.GetPixel(i, j); //利用公式计算灰度值 int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);//计算方式1 //int gray1 = (int)((color.R + color.G + color.B) / 3.0M);//计算方式2 Color newColor = Color.FromArgb(gray, gray, gray); bmp.SetPixel(i, j, newColor); } } return bmp; } /// <summary> /// 获取图片的均值哈希 /// </summary> /// <returns></returns> public static int[] GetAvgHash(Bitmap bitmap) { Bitmap newBitmap = ToGray(GetThumbImage(bitmap, 8, 8)); int[] code = new int[64]; //计算所有64个像素的灰度平均值。 List<int> allGray = new List<int>(); for (int row = 0; row < bitmap.Width; row++) { for (int col = 0; col < bitmap.Height; col++) { allGray.Add(newBitmap.GetPixel(row, col).R); } } double avg = allGray.Average(a => a);//拿到平均值 //比较像素的灰度 for (int i = 0; i < allGray.Count; i++) { code[i] = allGray[i] >= avg ? 1 : 0;//将比较结果进行组合 } //返回结果 return code; } /// <summary> /// 对两个AvgHash进行比较 /// </summary> /// <returns></returns> public static int Compare(int[] code1, int[] code2) { int v = 0; for (int i = 0; i < 64; i++) { if (code1[i] == code2[i]) { v++; } } return v; }}这里我们在GetAvgHash函数中获取64个像素的灰度值时直接通过了R来获取,因为RGB都是一样的,所以哪一个都可以。 ...

September 8, 2019 · 2 min · jiezi

华为云在视频编解码领域的优化探索

华为云在视频编解码领域的优化探索日前,2019亚太CDN峰会在北京隆重召开。此次峰会是亚太地区最具规模,最具影响力的一次CDN行业盛典,大会聚焦CDN行业热点:5G、视频云、边缘计算、智能网络等。此次大会行业巨头云集,华为云重磅亮相,在视频云论坛上,华为云视频编解码技术专家发表了题为《HW265编码优化探索之路》的主题演讲,他揭秘了华为云在视频编解码领域的深厚技术沉淀。 在今天,通过各种终端设备随时享受短视频、点播、直播等优质内容已经成为各年龄层消费者的普遍生活状态。工信部等发布《超高清视频产业发展行动计划(2019-2022年)》,目标2022年我国超高清视频产业总体规模超过4万亿元,国内视频服务生态进入超高清时代,而视频编解码则是影响流媒体产业的关键因素。 权威测评,编解码技术行业影响地位莫斯科国立大学(Moscow State University)举办的MSU世界视频编码器大赛,是视频编码行业内具有最高影响力的比赛。大赛科技大咖云集,参赛厂商包括华为、腾讯、金山、谷歌、Intel等,华为在1080P高清视频和4K视频编码领域均斩获第一名的好成绩。 多重优化,支持多种编码格式华为云视频编解码专家表示,华为HW265编码器在编码器内核方面做了很多优化,尤其在快速算法方面进行了深度开发和优化,保证编码内核的通用竞争力,能够支持多种档位编码如极致压缩、通用编码、快速编码和高速编码等,适用于当下主流的视频场景如热门影片、短视频、OTT点播、多种直播场景以及4K/VR等。 高清低码,极致高清视频体验以HW265内核为基础,华为2012实验室视频团队进行感知编码研发——“高清低码”,以用户期望质量为基准,结合场景分类,质量评价,JND编码,决策最优的编码参数,同时结合AI处理能力 对视频进行增强优化,最终能够为客户节省40%的码率,极大降低了客户成本,同时部分场景主观质量得到提升。 华为高清低码技术能够支持倍速转码,1小时视频10分钟完成转码。一进多出,同时输出12路不同分辨率、不同格式,效率提升80%,同时支持自适应高清低码和指定码率高清低码。 VR转码,沉浸式视频体验真的可以到来未来视频将不断向8K 演进,尤其在VR点播、直播等领域,8K视频得到越来越全面的应用,然而VR视频数据量很大,传输带宽和存储成本很高,如何让用户做到沉浸式的视频体验?视频编码则是VR视频体验的核心问题,华为8K VR转码采用背景流+FOV切片(Tiles)的方案,200ms切换时延,8K全景VR视频码率达到120Mbps以上,FOV方式可以节省约40%的带宽。峰会场内座无虚席,参会嘉宾热情满满,在外场展区,华为云展示了CDN和视频产品解决方案,为华为十亿终端用户提供极致视频和加速体验。智能高清视频是未来全球科技产业重要浪潮,华为云一直致力于编码和处理技术的不断创新,未来华为视频云将会持续考虑端云的深入结合,引入更多的数据驱动的算法,结合深度学习、强化学习,充分利用视频处理能力来优化压缩性能,同时在超高清体验方面,我们也会聚焦HDR,VR优化,sdr2hdr的转码,为客户更多的视频客户提供极致的视频体验,带来更低的成本,创造更大的商业价值。了解更多信息,请前往华为云学院(https://edu.huaweicloud.com/c…),搜索“视频”。

April 19, 2019 · 1 min · jiezi

图像搜索技术发展应知道

图像搜索技术发展应知道什么是图像搜索?图像搜索,是通过搜索图像文本或者视觉特征,为用户提供相关图形图像资料检索服务。从图像搜索的发展过程来看,主要包含两种搜索方式:基于文本的图像搜索(Text-Based Image Retrieval,TBIR),将图像作为数据库中的存储对象,利用与图像相关联的文本关键词进行匹配,返回搜索结果。基于内容的图像搜索(Content-Based Image Retrieval,CBIR),提取图像的视觉内容特征作为索引,例如颜色、纹理、形状等,通过输入一张图片比较特征向量之间的相似度,查找具有相同或相似内容的图片。 图像搜索面临的挑战难点:•数据量大,抽取特征慢,建立索引时间久,搜索响应速度慢•相同算法、特征,不同种场景搜索结果准确率差异较大,搜索效果不稳定方案:•大量数据创建索引,采用离线集群抽取特征,生成索引文件直接推进搜索引擎的方式。优化特征提取算法、特征编码实现快速搜索。•通过预置行业特征的模式来失声搜索结果准确率,当前行业特征包括图片版权搜索特征等,从而提高搜索匹配率。华为云图像搜索(Image Search):又称为以图搜图,基于领先的深度学习与图像识别技术,结合不同应用业务和行业场景,利用特征向量化与搜索能力,帮助客户从指定图库中搜索相同或相似的图片。产品核心优势:搜索精度高基于领先的深度学习与图像识别技术,预置多种行业特征模型,其中版权查盗场景准确率达99%以上。海量搜索大规模搜索引擎支持亿级别图像搜索,秒级响应,支持大规模批量导入。简单高效标准化接口封装,简单易用;配套文档描述详细,方便服务快速搭建。可定制化提供定制化的场景搜索服务,使得搜索结果更准确华为图像搜索服务基础架构基础基础架构:图像搜索的架构分为三层:Console,服务层、算法层。其中Console前端负责与用户交互;服务层负责对外提供接口及服务内部通信管理;算法层为最底层,负责图像的处理,抽取特征,最终存入索引库图像搜索典型应用场景:商品图片搜索将用户拍摄的图片在商品库中搜索,找到同款或相似的商品,进行商品销售或者相关商品推荐。如药品、服装的快速检索查找版权图片搜索从海量图片库中快速定位侵权盗用图片,帮助图库网站捍卫权益。如设计类图片、摄影照片维权工业零件图片搜索从工业零部件数据库中精确查找用户所缺零部件,解决工业领域的图片搜索难题。如国防军工、船舶、航空、汽车制造等领域想知道具体怎么使用华为云图像搜索服务实现图片多种应用?目前华为云学院已上线大量相关云计算免费课程供大家学习和探讨,欢迎登录华为云学院了解更多(https://edu.huaweicloud.com/ )!

February 22, 2019 · 1 min · jiezi