计算机视觉模型,需求是对比两张图片的相似度,求指点或者有大佬愿意尝试一下,可有偿

40 天前
 daohuo

本人对这块一窍不通,目前借着 GPT 根据颜色和人体姿态求的相似度,东拼西凑的做出来了,只能说差强人意,堪堪能用,领导希望一个模型解决问题,并且随着训练的材料越多,模型越准确

基于需求,标照片和客片这两张图,即使是按照人眼评判标准相似度足够的,也可能在整体饱和度,亮度,色调,人体姿态,背景颜色等有差异

而需要评判的图片,背景,物体和人物姿态,衣服都会有变化

如果有直接能用的开源项目,或者不需要太多相关知识就能达成的学习路线,希望有大佬指点一二

或者有大佬愿意尝试,可以谈一下报酬看看我们领导是否能接受

2296 次点击
所在节点    Python
30 条回复
daohuo
40 天前
对比的客片和标准片,是人物艺术照之类的
ShadowPower
40 天前
resnet 或者 vit 模型,生成 embedding 之后比对余弦相似度就可以了
daohuo
40 天前
@ShadowPower 有尝试过这个模型,利用的是提取图片特征,(不知道你说的是不是这个),有的可以,但是有时候会出现很离谱的结果,而且对于不同颜色饱和度和亮度的处理,感觉没有处理出来
ShadowPower
40 天前
可以用这个:
https://github.com/mlfoundations/open_clip
只用图片那部分,不用文本模型
ShadowPower
40 天前
@daohuo 有些结果不准确这点还真没有办法,因为没有那种准确率能达到 100%的模型……
daohuo
40 天前
@ShadowPower 好的,我去了解尝试一下
daohuo
40 天前
@ShadowPower 不能说不准确,而是用这个提取特征,余弦相似度对比,会有很多姿态不同,衣服颜色不同的图片,但是相似度差异不大,比如一个 0.6 一个 0.7 (这里按照 1 为完全相同),这样的结果
ShadowPower
40 天前
@daohuo 这种情况要考虑针对某项要求专门实现,比如用 openpose 来得到人物姿态的关键点,然后收集关键点数据再去训练一个姿态相似度模型。
这样就可以得出某项指标的相似度……
不过我不清楚什么模型适合这个场景,得试试看。
daohuo
40 天前
@ShadowPower 目前我是搞了每 10 个像素颜色分别对比平均 HSV 的差异来获取颜色相似度,然后使用 mmpose 来获取姿态相似度,这个姿态还是利用 GPT 生成的关键点夹角和相对距离得到的,也结合了这个提取图片特征来对比相似度,然后加权平均,但还是效果不理想,主要是颜色部分,不同的饱和度和亮度,在整体图片中,从人眼看,差距不大,但对计算数据来说,差异很大,这块处理不了,然后老板觉得我做的这个只是勉强能用,希望找一个模型,能提供成对的相似度的图片和不相似的图片,持续训练,得到一个更准确的评判模型,,,,因为我目前了解的计算机视觉方面,还是图片分类和识别比较多,像这种不针对特定内容的比对,我是没找到,让我自己做一个,我也没完全这个能力和知识储备
mightybruce
40 天前
其实就是多媒体信息检索了,和文本检索原理像 es 、solr 一样,除了提取特征外。
大致是多选取几个角度去提取特征,建立起词袋模型,然后还是 tf-idf , 词袋模型里面的 word 就是各种图像的特征,你可以选几种,色彩一个特征、纹理一个特征,混合特征, 最后基于这个做各种距离比较
我很多年前用过 LIRE (Lucene Image Retrieval)是一个基于内容的图像检索的开源库,现在已经有更新的东西了
可以看看这个
https://zhuanlan.zhihu.com/p/147509861

相关入门可以看看斯坦福的经典书 information retrieval
https://nlp.stanford.edu/IR-book/information-retrieval-book.html
mightybruce
40 天前
你要多找找一些深度学习模型能够提取出反应这种差异,多试试
ShadowPower
40 天前
@daohuo 按理来说,如果用卷积神经网络,不同饱和度和亮度应该不会对结果产生影响,除非训练阶段专门区分了它们……
0xFDA64
39 天前
你这个需求估计得按照你们的数据集来训练,才能到达预期效果。因为公开模型的训练用的相似照片和你的需求不一样,例如你想要综合衣服、姿态、背景来做相似度比较,但是别人模型训练时的相似图片只是简单的两只狗。

如果要自己训练,模型训练不难,难的是准备你们的数据集。你不是搞这个,建议申请好预算找人,或者多试试公开工具,效果差不多就行了。
zhouquan03
39 天前
meta 的 dinov2 提取特征试试,不过由于训练数据的限制,风格、色彩等等,效果肯定不会很好的。我在用的这个工具: https://github.com/vra/dinov2-retrieval
daohuo
39 天前
@ShadowPower 要求是不同颜色有影响,不同饱和度和亮度按照人眼的视觉感觉有影响,就是在人眼下,一定范围内,饱和度和亮度调整不会改变对颜色的认知,但是超过一定范围就会了
daohuo
39 天前
@mightybruce 好的,我试试看看
NCE
39 天前
用 CNN/RNN ,类似识别车牌号的算法。
daohuo
39 天前
@0xFDA64 你的意思是,还是用提取特征计算相似度的方法,但是这个提取特征的模型需要自己准备数据集来训练吗?有没有推荐的开源项目我试一下
mightybruce
39 天前
@daohuo 需要根据提取的特征进行训练的, 我多年前用 LIRE 也是要用你自己的数据集提取的特征去训练

图像检索这块就是这么做的
DIMOJANG
39 天前
感觉听你的描述,可以试试用一些类似 BD-CSPN 、TIM 之类的基于度量学习的 Transductive 方法。应该可以满足“并且随着训练的材料越多,模型越准确”的要求。骨干网络选一个强一点的预训练网络应该就可以提取到比较复杂的特征。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1031584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX