龙空技术网

小米手机可以清理相似照片了,看MIUI工程师怎么做的?​

小米MIUI 18835

前言:

如今同学们对“识别相似图片的图库”大体比较讲究,姐妹们都需要剖析一些“识别相似图片的图库”的相关文章。那么小编在网络上收集了一些对于“识别相似图片的图库””的相关知识,希望同学们能喜欢,小伙伴们一起来了解一下吧!

随着手机拍照质量的提高,越来越多的人已经把手机当作随身携带的相机。我们喜欢在游玩的过程中记录自己的点点滴滴,发个朋友圈分享自己去过的地方,享受过的美食。

我们一直保持对美好事物的追求,对于自己喜欢的人物、宠物、风景、美食,会经常尝试连拍或者选取不同的角度进行拍摄,希望其中能有满意的照片来长久保存或分享。

可是很少会有用户愿意去手工整理照片,删掉不想要的冗余照片,因为这个过程实在是太繁琐了。于是用户付出的代价就是老得在图库里看到大量相似的照片,同时浪费大量的存储空间。

去年八月份的时候,百度云推出了一组体验功能,其中就包括相似图片的聚合。这也是小米云相册一直在考虑的功能,帮助用户更好的组织照片。正好我们之前在考虑做连拍照片聚合,已经做了一些相似照片判断的研究,很快就把相似照片聚合的原型系统做出来了。可惜因为工程排期的原因,一直没有在云图册里上这个功能。

后来和安全中心的同事聊天,听说猎豹清理大师里有相似照片清理功能,用户反馈不错。大家看了我们的原型系统后,觉得可以在安全中心的垃圾清理里面用上我们的相似照片聚合技术。很快,大家就一起开始正式开发,今年年初在MIUI体验版正式发布了相似照片清理功能,并在这个月进入了MIUI开发版。

图1相似照片清理(安全中心-垃圾清理-深度清理)

相似照片清理功能(图1)可以大大简化照片整理的过程。该功能将相似性高的照片聚合成一个个照片组呈现给用户,用户可以直接在照片组里挑选冗余照片。一来不用去图库里翻看所有照片,可以直接比较一组照片;二来如果不小心选了所有照片,还会提醒你是不是留下一张。

也许大家会有个问题,那MIUI到底是如何自动选择相似照片的呢?到底是什么样的照片才算相似照片呢?下面我们来回答这两个问题。

确定两张照片是相似照片,要满足三个条件:1)两张照片存在相似内容,2)相似内容在两张照片里都占据较大比例,3)两张照片的拍摄时间接近。条件2和3比较好理解。1的判断会有些主观,通常指的是拍摄内容相同,但是因为拍摄条件或时机的原因,在不同照片里相同的内容视觉上的表现不太一样,比如照片的饱和度、亮度、清晰度、视角、焦距等。

下面给出几组示例来具体说明一下相似照片的定义:

图2

图2中的这组照片是对同一个场景进行拍摄。照片包含相似的内容,且占比较大,照片的饱和度稍有差别,系统会认定这两组照片相似。

图3

图3的这组照片也是同一场景,三张照片包含相似的内容,占比较大,不同的内容(船的数量和位置,树枝)占比较小。由于曝光条件不同,照片的亮度有不小的差别,但是还是可以认定为相似照片。

图4

图4的这组照片虽然是同一场景,但是视角差别较大。不过因为相似内容有丰富的纹理,比较容易匹配在一起,所以还是可以认为相似内容有较大的占比,也可以划分为一个相似照片组。

图5

图5的这组照片里,拍摄场景基本一致,但是相机的角度有一定偏转,因此照片内容有横向位移。同样因为相似内容有丰富的纹理,可以自动匹配,所以也可以确定为相似照片。

图6

图6的这组照片是同样场景,不同焦距拍摄的,视角也稍有差别,舞台上人物姿态也不一致。但从照片整体来说,纹理较为丰富的背景人物区域比较相似,舞台设施的结构也没有改变,可以判定为相似照片。

图7

视觉上看上去相似的照片,我们的系统不一定会判定为相似照片。图7中的两组照片,一眼看过去似乎挺像的,但是事实上两组照片的内容其实不一样,是在同一个场景拍摄的两个不同的区域,实际的花草都是不一样的,因此系统会判定为两组照片。

另外,即使照片内容相似,但是拍摄时间间隔过长,我们也不会把它们判定为相似照片。

目前,相似照片判定做的不是很好的地方主要是在前背景的区分,比如不同的人在同一个地方留影,我们会认为是相似照片。其实这种场景用户更关心的是前景人物,因此判定成不相似照片会更合适。另外,到底相似区域占比达到多少才算相似,也是一个值得探讨的问题。之后还有很多类似工作要做,也特别欢迎大家及时给我们反馈,我们会持续跟进,提升这个功能的用户体验。

(本文来自MIUI新技术组:robozhang)

标签: #识别相似图片的图库