新人笔记---简易版AI实现以图搜图功能
最近博主在做一些关于智能体对于图片搜索的一些功能,大致场景是用户用户上传图片后智能体可以分析图片,精确识别,还能返回类似的图片,这一点和豆包类似,博主就是通过豆包获取的想法,来优化一下我们的智能体项目,这个功能虽然听着很简单,不就是让AI识别图片吗,我们直接调用视觉Model不就行了吗,对于这一块不了解的博主来说,博主一开始也是这么想的,只能说太天真了,这个功能没有那么简单,下面博主分享一下我们具体踩坑的,然后怎么去找解决方案
一:直接接入视觉模型的问题


这里是博主数据库对于model模型的管理,可以看见我们已经接入了glm-5v-turbo模型(比较好的视觉模型了)

这里我们模拟用户上传一张弗洛洛的照片

可以看见我们上传成功了(因为我们这一块后端开发好了,这里只是演示一下)

这里博主测试调用Auto线路下的AI,让他帮忙分析我们的图片,看视觉模型能否识别出角色是弗洛洛

您好!基于您上传的新图片(`屏幕截图 2025-07-25 000727.png`),这是一张**极高清晰度的游戏角色特写截图**。
结合您之前上传过的图片信息,我发现了一个非常关键的关联点。以下是详细的分析:
### 1. 图片内容概括
* **画面主体**:一位拥有银灰色长发的女性角色,正处于一个类似舞台剧或过场动画的场景中。
* **环境氛围**:背景是深红色的帷幕(带有垂直褶皱),光线聚焦在角色身上,营造出一种**“哥特风”、“华丽舞台”或“暗夜贵族”**的氛围。
* **UI 元素**:
* **左上角**:显示 **“跳过 >|”** 按钮。这通常出现在游戏的**剧情CG、活动开场动画**或**形象展示界面**,说明这可能不是普通的战斗截图,而是一段动态展示的抓帧。
* **右下角**:再次出现了那行熟悉的字:
> **特征码: 127581798**
### 2. 核心发现:这是您上一张图的“高清完整版”
**请注意:这张图片右下角的“特征码” (`127581798`) 与您最开始上传的那张图片(银发精灵耳角色)的代码是完全一致的!**
这意味着:
1. **同一份数据**:这两张图展示的是**同一个捏脸数据/角色形象**。
2. **不同展示状态**:上一张图可能是静态的“捏脸界面”截图,而这一张图是该形象在游戏中**穿上特定时装、进入过场动画或特殊展示模式**下的效果。
### 3. 人物详细分析 (基于高清画质)
这张图比上一张清晰得多,我们可以看到更多细节:
* **基础身份**:**《永劫无间》(Naraka: Bladepoint) 中的英雄 —— 胡桃 (Tessa)**。
* *判断依据*:脸型轮廓、五官结构以及特有的气质都符合胡桃的建模底子。
* **自定义外观 (捏脸+时装)**:
* **发型**:**银灰色长直发**,刘海斜分,左侧(观众视角)戴着一个**黑色的蕾丝发夹**。
* **眼部装饰(最显著特征)**:她佩戴了一个**黑色的单边眼罩/眼带**,遮住了右眼(观众视角的左边),只露出一只**紫红色/粉紫色**的瞳孔。这种“独眼罩”造型在二次元和游戏中常用于增添神秘感或帅气度。
* **服饰(时装)**:身穿一套**黑白配色的哥特式礼裙 (Gothic Dress)**。
* 设计包含:高领蝴蝶结、胸前巨大的白色缎带花朵、露肩设计以及带有金属扣的臂环。
* 这套衣服大概率是游戏内的**高级时装**(如曾经的“夜之女王”系列、联动时装或通过MOD实现的特效皮),配合这个捏脸数据显得非常高贵冷艳。
### 4. 总结
* **是谁**:这是**《永劫无间》角色“胡桃”**。
* **什么样子**:她使用了您关注的那个**特征码 (`127581798`)** 进行了**捏脸改造**(变成了银发独眼帅气的样子),并且穿戴了**一套华丽的黑色哥特风时装**。
* **场景推测**:您可能刚刚在游戏中导入了这个数据,或者正在观看某个与此形象相关的**活动PV、返场预告或个人录像回放**。
如果您喜欢这个形象,直接在游戏里输入那个特征码就能获得同款长相!这套衣服(如果它是特定时装的话)可能需要额外购买或在集市获取。
可以看见问题了吧,视觉模型根本不认识我们动漫人物,由此,我们得出了一个结论,
视觉模型可以分析图片,比如人物穿什么衣服,人物的外貌等,他不认识人物,这就出问题了
二:尝试方案(1)
既然模型不能直接认出人物,那么我们可以让AI提取关键字,然后调用百度搜索API进行精确搜索。补充人物内容。这个方案比之前只调用视觉模型好,我们项目实际就是这么做的,但是经过测试后,他会出现的问题是
- 1.如果视觉模型图片推断错误,那么丢给百度API去检索,方向整体就歪了
- 2.百度搜索API不能返回相似图片,没有这个功能,很难佐证你的分析结果
这个方案示例博主就不展示了,博主之前尝试过,但是实际效果不好用
三:尝试方案(2)
既然视觉模型不好用,那我们干脆不用了呗,直接用百度识图的API,让百度直接帮我们检索。不得不说,博主尝试后发现效果确实好一点,因为底层是基于百度检索的,会有知识储备,但是实测下来还会有问题,会有误差



好家伙,博主上传的还是之前的弗洛洛照片,你小子合着指挥分析图片,但是你也不知道人物名字,不得不说你分析的还挺准确,比视觉模型好一点
四:尝试方案(3)
我们可以看见即使之前尝试走别人专门的识图功能也还是会出错,百度都有误差,就没有必要去尝试阿里云,腾讯的识图了,效果应该都差不多。下面博主又去找专门的识图网页


可以看见很多的搜索平台,效果都还不错,有的甚至很精准,但是问题是,他们只是网页版的,没办法调用API,让用户通过我们的智能体去调用该网页,返回识图结果以及相似图片
五:尝试方案(4)
最后,通过博主不断的查阅各种可以通过API调用识图功能的网页,博主发现了很多有关的,如
SauceNAO,trace.moe,但是效果都不是太好,虽然可以接入java,但是识图效果不太好,但是博主最后发现了一个,挺好用的serpapi.com,他内部是基于谷歌搜索,功能很强大,能够找到相似图片以及帖子,支持Bing搜索,切换搜索引擎,还支持以图搜图,根据用户需求搜图等多种功能,关键是支持API调用。缺点是他是要收费的,但是免费版一个月可以搜250次,够用了


这里我们通过
https://serpapi.com/search?engine=google_lens&url=https://i.imgur.com/xxx.jpg&api_key=你的key的GET请求可以调用他的服务器

我们这里还是拿弗洛洛的图片进行举例,但是要注意这里的图片url必须暴露在公网,本地的不行,这样目标服务器才能获取到我们的图片,进行图片检索


可以看见他返回了一堆相似的图片



这里我们随便点开几个链接,发现他推送的都是弗洛洛的照片,与我们上面发送的图片正好符合,符合我们AIAgent的
精确推送相似图片的功能与效果.做到这里就可以,后续我们直接接入API,实现后端接口,当用户上传照片啥的,可以调用该接口,推送相似图片啥的
六:后续优化
目前做到这里,AI以图搜图,推送相似图片功能就算做好了,但是仅限于个人项目。现在的问题是我们只实现了推送相似图片的功能,但是具体图片人物是谁这类的,还是没有解决。像比较正式的AI项目肯定是有更好的方案,但是博主本身对这一块不熟悉,问的AI,说那种豆包图片搜索供能啥的要建立知识库,接入第三方搜索平台,然后整合,优化,总结啥的,才能有他现在精确识图的功能,但是对于个人项目来说,能做到推图功能已经很好了

这里需要说一下,他的返回值有个
link,这个是图片出处的网页地址,后续我们可以通过该地址反爬取该网页,借助一些爬取工具,如trafilatura等来爬取整个网页数据,筛选其中与图片有关的知识,然后筛选,总结,丢给AI,这样AI就能识别出图片中的人物背景啥的,但是问题是网页链接不好把控,有的是视频,有点是博客,有的只有一张图等等,而且还要额外学习一点爬取的知识,所以整体还是不好搞这一块,等待后续慢慢摸索解决方案吧
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)