前言
在上一篇文章中,我们介绍了关于目标检测的一些基本定义
本文我们将基于Dify智能体开发平台讲解目标检测小模型从训练到实际业务落地的全流程
本文假设你对Dify智能体开发平台和小南瓜开发平台已有基本的了解
下面我们将基于如下几点进行实战:
1、业务需求
2、模型训练
3、搭建DIfy智能体
4、展示效果
一、业务需求
开发一个智能体,当用户输入一张图片时,识别出来这个图片中有多少个“黄鹤楼”、“万宝路”的盒子。
二、模型训练
1、按照惯例,配置一个表单和列表,用于进行数据的录入和查看数据
2、点击新增按钮,在小南瓜开发平台上将要识别的两个样本进行上传
由于我们没有更多的样本,因此系统自动将上传的图片中的目标图片的位置计算抠取出来生成训练图片(本次实战是随机生成了100张训练图片)
3、通过电脑的画图工具打开图片就能得到目标物品在图片中的X轴、Y轴和宽度信息
X轴起点:目标盒子在这个图片中的最小的X轴位置Y轴起点:目标盒子在这个图片中的最小宽度:目标盒子的宽度
4、数据录入后,点击模型训练按钮,开始生成训练数据,并训练模型
5、训练完成后,会得到一个模型的地址(耗时10分钟)
到此就完成了模型的训练。
三、搭建DIfy智能体
这里用到了2个核心的http节点,第一个是上传图片,第二个是调用模型进行检测,最后通过llm节点进行汇总
LLM节点重点 提示词如下:
##你是一位数据统计分析师,中是返回的目标检测到的每个物品的名字和数量。1、如果data的值为空,则标识没有检测到任何物品2、如果data的值不为空,则有可能是一个数组,targetName字段是识别出来的目标名称,targetNum是识别出来的数量#任务你需要根据识别出来的data中的内容并结合要求,进行汇总反馈总结
提示词可以根据自己的业务需求进行个性化编写
四、展示效果
1、将开发好的智能体进行发布
2、上传要检测的图片,发起对话
3、智能体执行反馈结果
从结果上看识别结果正确
4、上传一个数量多一点的图片
检测效果
检测结果正确
5、上传一个不含检测目标的图片
检测效果
从结果可以看到,没有目标物品就不会检测出来。
总结
将目标检测技术应用于真实世界,远非在理想数据集上获得高精度那般简单。现实场景充满了复杂性:物体的多角度变化、光照的剧烈差异、运动带来的模糊遮挡,以及层出不穷的背景干扰,都会对模型的鲁棒性与准确性构成严峻挑战。
正因如此,仅仅拥有一个优秀的模型架构是远远不够的。我们必须为其提供海量、多样化、且充分代表真实世界分布的样本数据。这些数据是模型应对未知场景的“弹药”与“经验”,是其在复杂现实中保持高可靠性的根本保障。