sae storage wordpress,360网站seo手机优化软件,微信开发者工具文档,公司网站做的太难看说明
图像相似性搜索应用广泛、除了使用搜索引擎搜索类似图片外#xff0c;像淘宝可以让顾客直接拍照搜索类似的商品信息、应用在商品购物上#xff0c;也可以应用物体识别比如拍图识花等领域。还有在调研图片鉴权的方案#xff0c;通过一张图片和图片库中的图片进行比对像淘宝可以让顾客直接拍照搜索类似的商品信息、应用在商品购物上也可以应用物体识别比如拍图识花等领域。还有在调研图片鉴权的方案通过一张图片和图片库中的图片进行比对来确定这张图片是否侵权或者退一步讲图片库中是否包含和这张图片类似。
本插件比较两图片相似和深度学习应用中的图像识别还不一样不需要把图像中的物体识别出来只需能查找相似图片的东西即可。
技术介绍
这里使用感知哈希算法来做感知哈希算法根据图像的特征生成一个确定的指纹这些指纹可以用来比较。指纹越接近说明图片越接近。当要比较两张图片的时候计算它们的hash值然后再计算它们的汉明距离即可。
这里直接使用goimagehash库来实现,它提供aHash、dHash、pHash三种算法 aHash基于平均值pHash基于图像频率而dHash基于直方图。dhash准确性和aHashAverage Hash algorithm查不多但是更快。
比较图片相似方法有很多种我们根据业务选择合适办法就是最好的我们这个方法是用一张图去找和它相似的图对应内容这个场景需要我们能够快速计算找出相似图片即可不需要图像识别出具体某个东西如猫、狗而且需要识别出具体东西需要做大量计算同时也需要消耗很多时间在查找场景中我们不能让使用客户等待很久这样体验太差了所以合适需求场景就是方法。
插件提供方法
DifferenceHash和AverageHash的准确性差不多 AverageHash非常快在特定场景下是一个非常好的算法。三个接口计算返回是两张图片之间差异值值越小说明它们相似性高。
Average Hash算法-基于平均值
distance, err : plugin.AverageHash(被对比图片路径, 对比图片路径)
Difference hash算法-基于图像频率
distance, err : plugin.DifferenceHash(被对比图片路径, 对比图片路径)
perception hash算法-基于直方图 distance, err : plugin.PerceptionHash(被对比图片路径, 对比图片路径)
接口使用示例
package createcodeimport (gofly/utils/gfgofly/utils/plugin
)// 后端代码模版
type Test struct{}func init() {fpath : Test{}gf.Register(fpath, fpath)
}
// 测试图片相似性比较-返回差值值越小相识度越高
func (api *Test) GetImgsml(c *gf.GinCtx) {distance, err : plugin.AverageHash(./resource/static/Imgsml_base.jpg, ./resource/static/Imgsml_do.jpg)if err ! nil {gf.Failed().SetMsg(err.Error()).Regin(c)return}gf.Success().SetMsg(测试图片相似性比较返回差值值越小相识度越高).SetData(distance).Regin(c)
}
GoFly全栈社区插件市场地址https://goflys.cn/codedetail?id58