《博主简介》
小伙伴们好,我是阿旭。 专注于计算机视觉领域,包括目标检测、图像分类、图像分割和目标跟踪等项目开发,提供模型对比实验、答疑辅导等。
《——往期经典推荐——》
一、AI应用软件开发实战专栏【链接】
| 1.【人脸识别与管理系统开发】 | 2.【车牌识别与自动收费管理系统开发】 |
| 3.【手势识别系统开发】 | 4.【人脸面部活体检测系统开发】 |
| 5.【图片风格快速迁移软件开发】 | 6.【人脸表表情识别系统】 |
| 7.【YOLOv8多目标识别与自动标注软件开发】 | 8.【基于深度学习的行人跌倒检测系统】 |
| 9.【基于深度学习的PCB板缺陷检测系统】 | 10.【基于深度学习的生活垃圾分类目标检测系统】 |
| 11.【基于深度学习的安全帽目标检测系统】 | 12.【基于深度学习的120种犬类检测与识别系统】 |
| 13.【基于深度学习的路面坑洞检测系统】 | 14.【基于深度学习的火焰烟雾检测系统】 |
| 15.【基于深度学习的钢材表面缺陷检测系统】 | 16.【基于深度学习的舰船目标分类检测系统】 |
| 17.【基于深度学习的西红柿成熟度检测系统】 | 18.【基于深度学习的血细胞检测与计数系统】 |
| 19.【基于深度学习的吸烟/抽烟行为检测系统】 | 20.【基于深度学习的水稻害虫检测与识别系统】 |
| 21.【基于深度学习的高精度车辆行人检测与计数系统】 | 22.【基于深度学习的路面标志线检测与识别系统】 |
| 23.【基于深度学习的智能小麦害虫检测识别系统】 | 24.【基于深度学习的智能玉米害虫检测识别系统】 |
| 25.【基于深度学习的200种鸟类智能检测与识别系统】 | 26.【基于深度学习的45种交通标志智能检测与识别系统】 |
| 27.【基于深度学习的人脸面部表情识别系统】 | 28.【基于深度学习的苹果叶片病害智能诊断系统】 |
| 29.【基于深度学习的智能肺炎诊断系统】 | 30.【基于深度学习的葡萄簇目标检测系统】 |
| 31.【基于深度学习的100种中草药智能识别系统】 | 32.【基于深度学习的102种花卉智能识别系统】 |
| 33.【基于深度学习的100种蝴蝶智能识别系统】 | 34.【基于深度学习的水稻叶片病害智能诊断系统】 |
| 35.【基于与ByteTrack的车辆行人多目标检测与追踪系统】 | 36.【基于深度学习的智能草莓病害检测与分割系统】 |
| 37.【基于深度学习的复杂场景下船舶目标检测系统】 | 38.【基于深度学习的农作物幼苗与杂草检测系统】 |
| 39.【基于深度学习的智能道路裂缝检测与分析系统】 | 40.【基于深度学习的葡萄病害智能诊断与防治系统】 |
| 41.【基于深度学习的遥感地理空间物体检测系统】 | 42.【基于深度学习的无人机视角地面物体检测系统】 |
| 43.【基于深度学习的木薯病害智能诊断与防治系统】 | 44.【基于深度学习的野外火焰烟雾检测系统】 |
| 45.【基于深度学习的脑肿瘤智能检测系统】 | 46.【基于深度学习的玉米叶片病害智能诊断与防治系统】 |
| 47.【基于深度学习的橙子病害智能诊断与防治系统】 | 48.【基于深度学习的车辆检测追踪与流量计数系统】 |
| 49.【基于深度学习的行人检测追踪与双向流量计数系统】 | 50.【基于深度学习的反光衣检测与预警系统】 |
| 51.【基于深度学习的危险区域人员闯入检测与报警系统】 | 52.【基于深度学习的高密度人脸智能检测与统计系统】 |
| 53.【基于深度学习的CT扫描图像肾结石智能检测系统】 | 54.【基于深度学习的水果智能检测系统】 |
| 55.【基于深度学习的水果质量好坏智能检测系统】 | 56.【基于深度学习的蔬菜目标检测与识别系统】 |
| 57.【基于深度学习的非机动车驾驶员头盔检测系统】 | 58.【太基于深度学习的阳能电池板检测与分析系统】 |
| 59.【基于深度学习的工业螺栓螺母检测】 | 60.【基于深度学习的金属焊缝缺陷检测系统】 |
| 61.【基于深度学习的链条缺陷检测与识别系统】 | 62.【基于深度学习的交通信号灯检测识别】 |
| 63.【基于深度学习的草莓成熟度检测与识别系统】 | 64.【基于深度学习的水下海生物检测识别系统】 |
| 65.【基于深度学习的道路交通事故检测识别系统】 | 66.【基于深度学习的安检X光危险品检测与识别系统】 |
| 67.【基于深度学习的农作物类别检测与识别系统】 | 68.【基于深度学习的危险驾驶行为检测识别系统】 |
| 69.【基于深度学习的维修工具检测识别系统】 | 70.【基于深度学习的维修工具检测识别系统】 |
| 71.【基于深度学习的建筑墙面损伤检测系统】 | 72.【基于深度学习的煤矿传送带异物检测系统】 |
| 73.【基于深度学习的老鼠智能检测系统】 | 74.【基于深度学习的水面垃圾智能检测识别系统】 |
| 75.【基于深度学习的遥感视角船只智能检测系统】 | 76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统】 |
| 77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】 | 78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】 |
| 79.【基于深度学习的果园苹果检测与计数系统】 | 80.【基于深度学习的半导体芯片缺陷检测系统】 |
| 81.【基于深度学习的糖尿病视网膜病变检测与诊断系统】 | 82.【基于深度学习的运动鞋品牌检测与识别系统】 |
| 83.【基于深度学习的苹果叶片病害检测识别系统】 | 84.【基于深度学习的医学X光骨折检测与语音提示系统】 |
| 85.【基于深度学习的遥感视角农田检测与分割系统】 | 86.【基于深度学习的运动品牌LOGO检测与识别系统】 |
| 87.【基于深度学习的电瓶车进电梯检测与语音提示系统】 | 88.【基于深度学习的遥感视角地面房屋建筑检测分割与分析系统】 |
| 89.【基于深度学习的医学CT图像肺结节智能检测与语音提示系统】 | 90.【基于深度学习的舌苔舌象检测识别与诊断系统】 |
| 91.【基于深度学习的蛀牙智能检测与语音提示系统】 | 92.【基于深度学习的皮肤癌智能检测与语音提示系统】 |
| 93.【基于深度学习的工业压力表智能检测与读数系统】 | 94.【基于深度学习的CT扫描图像肝脏肿瘤智能检测与分析系统】 |
| 95.【基于深度学习的CT扫描图像脑肿瘤智能检测与分析系统】 | 96.【基于深度学习的甲状腺结节智能检测分割与诊断系统】 |
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~ 三、深度学习【Pytorch】专栏【链接】 四、【Stable Diffusion绘画系列】专栏【链接】 五、YOLOv8改进专栏【链接】,持续更新中~~ 六、YOLO性能对比专栏【链接】,持续更新中~
《——正文——》
目录
- 引言
- 核心原理
-
- 1. 什么是DiNOv3?
- 2. 特征提取:图片变数字
- 3. 相似度计算:如何判断两张图像不像?
- 系统主要功能
-
- 1. 以图搜图
- 2. 文件夹选择
- 3. 相似度展示
- 4. 灵活的搜索设置
- 5. 实时预览
- 技术栈
- 应用场景
- 项目亮点
- 总结
引言
最近在研究刚出不久的DINOv3模型,基于它强大的特征提取能力,顺便做了一个基于DiNOv3的图像检索系统,能够基于给定图片搜索相似图片,也就是以图搜图的功能。代码已开源,感兴趣的小伙伴文末获取即可。实现界面如下: 
核心原理
1. 什么是DiNOv3?
DiNOv3是Facebook(现Meta)推出的一个强大的视觉模型。它通过自监督学习,从海量图片中学习到了丰富的视觉特征。简单来说,它能把一张图片转换成一个数字向量,这个向量就代表了图片的"内容"和"含义"。
2. 特征提取:图片变数字
当我们把一张图片输入DiNOv3模型时,它会输出一个768维的向量。这个向量就像图片的"指纹":
- 相似的图片,它们的"指纹"很接近
- 不同的图片,"指纹"差距很大
核心代码示例:
class DINOv3Encoder:
"""DINOv3特征提取器"""
def __init__(self, model_name="PreModels/dinov3-vits16-pretrain-lvd1689m"):
"""初始化DINOv3模型"""
try:
logger.info(f"正在加载模型: {model_name}")
self.processor = AutoImageProcessor.from_pretrained(model_name)
self.model = AutoModel.from_pretrained(model_name, device_map="auto").eval()
self.device = self.model.device
logger.info(f"模型加载成功,设备: {self.device}")
except Exception as e:
logger.error(f"模型加载失败: {e}")
raise
@torch.inference_mode()
def encode(self, image):
"""提取图像特征向量"""
try:
# 确保图像是RGB格式
if image.mode != 'RGB':
image = image.convert('RGB')
inputs = self.processor(images=image, return_tensors="pt").to(self.device)
outputs = self.model(**inputs)
features = outputs.pooler_output[0].cpu().numpy()
return features
except Exception as e:
logger.error(f"特征提取失败: {e}")
raise
3. 相似度计算:如何判断两张图像不像?
有了特征向量,我们就可以计算两张图片的相似度了。最常用的方法是余弦相似度:
- 相似度 = 1:完全相同
- 相似度 = 0:完全不同
- 相似度 = 0.8:相似度80%
核心代码示例:
from sklearn.metrics.pairwise import cosine_similarity
# 计算查询图片和数据库图片的相似度
similarity = cosine_similarity([query_features], [db_features])[0][0]
整个流程就是:
系统主要功能

这个图像检索系统虽然代码简洁,但功能非常实用:
1. 以图搜图
上传一张图片作为"查询图",系统会在你选择的文件夹中搜索所有图片,找出最相似的几张。不需要手动打标签,不需要复杂的配置,一键搜索!
2. 文件夹选择
点击按钮选择文件夹,系统会自动:
- 扫描文件夹中的所有图片
- 支持JPG、PNG、BMP等多种格式
- 自动过滤非图片文件
- 实时显示找到的图片数量
3. 相似度展示
每张搜索结果上方都会显示相似度百分比,让你清楚知道:
- 这张图和查询图有多像
- 是否符合你的预期
- 是否需要调整搜索参数
4. 灵活的搜索设置
- 显示数量:想看多少张结果?1到100张,默认12张
- 相似度阈值:只看相似度高的图片?设置阈值即可,默认0.1(10%)
5. 实时预览
选择图片和文件夹时,界面会实时显示预览,所见即所得,操作体验流畅。
技术栈
-
后端:
- Flask – Web框架
- PyTorch – 深度学习框架
- Transformers – Hugging Face模型库
- PIL/Pillow – 图像处理
- scikit-learn – 余弦相似度计算
- NumPy – 数值计算
-
前端:
- HTML5
- Tailwind CSS – 样式框架
- Font Awesome – 图标库
- JavaScript – 交互逻辑
应用场景
这个系统可以应用在很多地方:
- 个人相册管理:快速找到相似的照片
- 设计素材整理:找风格相似的图标、插画
- 电商图片检索:根据商品图找相似商品
- 版权检测:查找是否有重复或相似的图片
- 内容审核:识别违规图片的变种
项目亮点
总结
这个基于DiNOv3的图像检索系统,展示了AI如何让我们的生活更便捷。它不需要复杂的算法知识,不需要昂贵的硬件,却能解决实际的问题。
如果你对图像检索、深度学习感兴趣,不妨试试这个项目。代码开源,可以自由修改和扩展。以下方式获取即可。

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~ 关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!






