☰
YOLOv5/8/10远程监控动物侵扰检测实战:完整复盘与部署踩坑
2026/10/19 8:50:37 网站建设 项目流程

做“远程监控动物侵扰检测”这个毕设项目时,我踩过的坑比想象中多得多。这个题目听起来就是“用YOLOv5、YOLOv8、YOLOv10训练一个模型,识别监控画面里出现的动物并告警”,但真正动手做才发现,从数据集标注、模型选型、训练调参,到视频流接入、边缘端部署、误报抑制,每一步都暗藏细节,稍不留神就要返工。

这篇博文是我基于一个模拟项目X的完整复盘,前后做了两个月,涵盖远程监控动物侵扰检测的全流程。我会按实际推进顺序来写:先讲整体方案怎么设计,再讲数据集和标注规范,然后分别记录YOLOv5、YOLOv8、YOLOv10的训练实操和对比结果,接着是视频流接入、远程告警、边缘端部署,最后把训练和部署阶段的踩坑记录整理成速查表。不管你是准备拿这个题目做毕业设计,还是想在果园、农场、鸡舍这类场景里做一个动物入侵检测的原型,这篇内容都能让你少走不少弯路。

整个项目解决的核心问题很明确:在无人值守的监控场景里,检测野猪、流浪狗、猫、牛、鸟群等闯入者,触发告警并把截图推给管理人员。它的难点不在于“会跑通一个YOLO训练脚本”,而在于怎么让模型在真实的户外监控画面里保持稳定、低误报、可远程运维。下面一个一个扒开说。

1. 整体方案设计与技术选型思路

1.1 项目目标拆解:先想清楚要检测什么、在哪里检测

做毕设也好,做小项目也好,最忌讳一上来就clone一个YOLOv5仓库开始训练。第一步一定是把需求拆清楚。我这个模拟项目X的目标场景是某地果园周边,需要在白天和夜间监控画面中识别三类目标:大型哺乳动物(野猪、牛、流浪狗)、小型动物(猫、兔子、刺猬)、鸟类(主要是成群麻雀和喜鹊)。检测到之后,系统要把包含目标的视频截图保存下来,并通过远程消息推送通知管理员。

这样一拆,问题就具体了:首先,监控场景是固定机位的,画面背景一年四季基本不变,但存在树叶晃动、光影变化、雨雾天气,这对模型抗干扰能力要求高;其次,动物体型差异大,比如野猪离摄像头近时能占满半个画面,远处的鸟只有几十个像素,小目标检测必须重点处理;再次,夜间场景依赖红外补光,画质和白天完全不同,数据增强和模型泛化都要针对这个特点。

这些结论直接决定了后续所有技术选型。我当时的做法是把需求写在文档里,每一项都对应一个可验证指标,比如:白天动物目标漏检率小于5%,夜间漏检率小于10%,误报每天不超过3次,单帧推理速度在边缘设备上不低于20帧每秒。有了这些指标,后面选模型、调参、做工程优化时才知道往哪个方向使劲。

1.2 为什么选YOLO系列,而不是Faster R-CNN或SSD

目标检测方案很多,传统两阶段模型Faster R-CNN精度高,但推理速度慢,在边缘设备上跑实时分析很吃力;SSD速度快,但小目标检测能力一般。YOLO系列在精度和速度之间做了很好的平衡,而且生态完善,预训练权重丰富,社区资料多,特别适合作为毕设项目的基础。

我选择同时研究YOLOv5、YOLOv8、YOLOv10,并不是为了水工作量,而是这三个版本恰好代表了深度学习目标检测在工程落地上的三个典型阶段:YOLOv5是过去几年最稳定的经典方案,部署资料最多;YOLOv8是目前工业界用得最广的版本,在训练稳定性和检测精度上有明显提升;YOLOv10则引入了解耦注意力机制和无NMS推理,推理效率和结构设计都更接近现代检测器的方向。

从毕设角度,做一个三版本对比本身就很有价值,评委喜欢看到你有选型论证、有横向对比、有实验结果支撑,而不是只会跑通一个官方脚本。从实际工程角度,我确实需要知道在廉价边缘设备上,哪个版本能兼顾精度和帧率,而不是凭感觉选。

1.3 整体技术架构与工作流程

整个系统分四条主线并行推进。第一条是数据线:采集监控视频片段,逐帧抽取样本,筛选有效画面,标注动物目标,划分训练验证测试集,设计数据增强策略。第二条是模型线:分别在YOLOv5、YOLOv8、YOLOv10上训练,评估精度、召回率、推理速度、模型体积,选出一个最适合部署的模型。第三条是推理线:把训练好的模型导出成ONNX格式,接入远程RTSP视频流,按一定帧率抽帧送入模型推理,并设计目标跟踪和告警过滤逻辑。第四条是运维线:告警截图、消息推送、日志记录和Web端历史查询。

四者之间是有依赖关系的,数据线是模型线的前提,模型线是推理线的前提,运维线则贯穿始终。我用一张简单的表格把技术栈固定下来,后续所有开发都在这个框架内做,不跑偏。

模块技术选型说明
数据标注LabelImg + CVAT单类动物框标注,兼顾视频抽帧标注
训练框架YOLOv5官方仓库、YOLOv8、YOLOv10官方仓库三版本独立训练,同一数据集
模型导出ONNX + TensorRT边缘端部署格式
视频流接入FFmpeg / OpenCV RTSP拉流支持局域网内摄像头
告警推送MQTT + HTTP回调截图存储本地并推送通知
边缘设备NVIDIA JetSoN系列开发板模拟低成本边缘节点

这套架构的好处是每一层都可以单独替换,比如训练框架从YOLOv5换成YOLOv10,只需要替换训练脚本,数据流和部署层完全不用动。对我来说,这也意味着任何一个模块出了问题,都能快速定位是数据问题、模型问题还是工程问题。

2. 数据集构建与标注规范详解

2.1 数据来源与类别设计原则

很多人做动物检测项目,直接去下载通用目标检测数据集里的动物类别,比如COCO里的狗、猫、鸟。但实际上这样做效果很差。原因很简单:监控摄像头是俯视或平视固定视角,画面里动物多为全身或半身、运动模糊、夜间红外成像,和COCO数据集里那些宠物照片、鸟类图鉴风格的图片差异巨大。模型在COCO上表现好,不代表在你的监控画面上表现好。

正确的做法是构建自己的场景数据集。我当时的素材来源有三个:第一,从项目现场的监控录像中截取多天画面,覆盖白天、黄昏、夜晚、雨天,保证有真实环境光照和背景纹理;第二,在公开的视频监控动物数据集里筛选与场景接近的图片,例如农场、牧场、野生动物监测类的开源数据;第三,用摄像头在附近农田和村道实际录制画面,人工引导动物出现(比如放养的家犬、鸭群),补充不同姿态的样本。

类别设计上,我最终选择了4个类别:large_mammal(野猪、牛等大型哺乳动物)、small_mammal(猫、兔子、狗)、bird(鸟类)、person(人员,作为干扰类别单独检测)。把人员单独设为一个类别,不是为了报警,而是为了能在日志里区分“有人闯入”和“动物侵扰”,后续做告警策略时可以直接过滤掉人员目标,避免推送一堆无关消息。

2.2 标注工具与框选规范

标注工具我推荐CVAT,因为它在视频标注上效率远高于LabelImg。你可以把一段5分钟的视频导入CVAT,用自动插值功能,每隔几帧标一个关键帧,中间帧由算法自动补全,再人工检查修正。一个10秒的动物经过片段,人工只需要标4到5帧,剩下全部自动生成。如果只是静态图片标注,LabelImg也够用,操作简单。

标注规范看似不重要,实际上直接影响模型收敛和检测质量,我总结了四条硬规矩。第一条,目标必须完整包含在框内,最外轮廓边缘与标注框边距控制在2像素以内,宁外扩不内缩;第二条,严重遮挡、模糊到看不清物种的目标,直接跳过不标,避免给模型错误信息;第三条,一个目标只能用一个框,不能用两个小框拼成一个大目标;第四条,鸟类成群的场景,如果个体过于密集且互相遮挡,只标边缘清晰的个体,数量超过20只的一群可以标一个群体框。

2.3 数据增强策略:尤其针对夜间和远距离小目标

初始标注完成后,我得到了大约3200张有效图片,训练验证测试按8:1:1划分。这个数量对YOLO系列来说不算多,所以数据增强非常重要。YOLOv5和YOLOv8的训练过程都内置了Mosaic增强,把4张图随机拼接成一张,能显著提升模型对小目标的感知能力,因为拼接后目标相对尺寸变小,模型被迫去学习更多上下文信息。

我在超参数里额外调整了几项:hsv_h、hsv_s、hsv_v分别设置成0.015、0.4、0.4,增强颜色抖动,模拟不同天气下的色偏;flipud设置为0.1,因为监控画面偶尔会有俯仰角度变化,轻微垂直翻转能提升泛化;mosaic设置为1.0,保证每一轮训练都使用拼接增强。红外夜间画面单独做了一组灰度化和亮度对比度增强,避免模型只在白天图上过拟合。

数据增强不是越多越好。我把旋转角度从默认的0度调到了10度,结果训练出的模型在真实监控画面上出现大量误检,原因是室外场景里树干、电线杆被旋转增强扭曲成了奇怪的形状,模型学出了不该有的纹理特征。后来我把旋转限制在5度以内,并且只对水平方向做小范围平移,问题才改善。这也是一个典型的“增强过度反而伤害真实场景”的案例。

3. 三版本模型训练实操与对比

3.1 训练环境配置与依赖坑位

训练主机我用的是单张消费级显卡,显存16GB,CPU是八核,内存32GB,系统Ubuntu,CUDA版本12.1。YOLOv5、YOLOv8、YOLOv10三个仓库的依赖其实大同小异,但版本冲突问题非常恼人。我踩过最典型的坑是PyTorch版本:YOLOv5官方老版本适配的是PyTorch 1.8到2.0,YOLOv8和YOLOv10则需要PyTorch 2.0以上,如果你在同一个conda环境里跑三个仓库,很可能出现一个能编译算子而另一个直接报错的情况。

我的建议是建三个独立的conda环境,python版本统一3.10,但PyTorch分开安装。YOLOv5环境装torch 2.0.1+cu118,YOLOv8和YOLOv10环境装torch 2.1.2+cu121,这样三个仓库都能正常跑通。依赖排除法有一个经验:先只安装官方requirements.txt里列出的包,不要额外装tensorflow、paddle之类的深度学习框架,它们经常会悄悄改掉numpy或其他基础库版本,导致训练跑到一半突然报维度错误。

3.2 YOLOv5训练全流程实录

YOLOv5的仓库结构非常经典,train.py负责训练,detect.py负责推理,data目录下放数据集配置。我新建了一个专属数据集配置文件,结构大概是这样:

train: /root/dataset/animal/images/train val: /root/dataset/animal/images/val test: /root/dataset/animal/images/test nc: 4 names: ["large_mammal", "small_mammal", "bird", "person"]

模型结构我选的是YOLOv5s,不是更大的YOLOv5l或YOLOv5x。原因是在边缘设备上,模型参数量直接决定推理速度,YOLOv5s的COCO预训练权重只有14MB左右,在Jetson上能做到30帧以上。如果以后检测精度不够,可以再往上升级到YOLOv5m,而不是一开始就选最重的模型,那样训练时间和显存消耗都会翻倍。

训练命令是:

python train.py --data animal.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --batch-size 16 --epochs 120 --imgsz 640 --device 0

这里batch-size设成16是基于显存算出来的,16GB显存跑YOLOv5s的640输入,单卡极限大约在32左右,我留了一半余量,避免训练中途因为温度过高或显存碎而崩溃。epochs设了120轮,但我在第70轮左右发现验证集mAP几乎不再上升,果断用早停机制截断,节省了将近半天时间。YOLOv5的mAP最终稳定在0.854附近,其中大型哺乳动物的AP最高,鸟类AP偏低,后续分析发现主要是鸟类的目标框太小,且背景中树枝和树叶与鸟的颜色纹理太接近。

3.3 YOLOv8训练要点与架构差异体会

YOLOv8的训练接口比YOLOv5更简洁,因为它的代码结构统一了训练、验证、预测和导出四大功能。我用同一个数据集和同样的超参初始值,训练得到的收敛速度比YOLOv5快,前20轮mAP就超过YOLOv5最终结果的90%,最终mAP为0.883。这背后的原因是YOLOv8引入了Anchor-Free检测头,不再需要预设锚框,模型在训练初期对目标尺寸的适应更快。

YOLOv8训练命令:

yolo detect train data=animal.yaml model=yolov8s.pt epochs=120 imgsz=640 batch=16 device=0

YOLOv8的默认数据增强里包含Mosaic和MixUp,我在训练时没有关闭,但把mixup强度从默认的0.2调低到了0.05。原因在于动物检测场景中相邻目标大多是同一物种,比如一群麻雀,如果MixUp把麻雀和野猪的特征混在一起,反而会让模型学到奇怪的中间特征。调低之后,小目标的精度回升了大约1.2个百分点。

YOLOv8还有一个特别有用的功能是自动混合精度训练,默认开启。但对我的数据集来说,AMP模式下训练中期loss偶尔出现异常波动,我选择直接设置amp=False,用全精度训练,时间多了三分之一,但曲线稳定很多。在项目交付阶段,稳定性比那一点时间更值钱。

3.4 YOLOv10训练与推理实验记录

YOLOv10是我三个版本里最后一个训练的,它是三个中最新的版本,核心亮点是去掉了传统的NMS后处理步骤,推理时不需要再单独做非极大值抑制,这个设计让它端到端推理延迟更低。训练命令和YOLOv8很接近,但需要注意它的权重名称和推理接口变化:

yolo detect train data=animal.yaml model=yolov10s.pt epochs=120 imgsz=640 batch=16 device=0

YOLOv10s训练完成后,导出ONNX然后推理,我发现单帧推理时间比YOLOv8s缩短了大约18%,这是NMS消除带来的直接收益。但mAP只有0.861,比YOLOv8低2.2个百分点。YOLOv10在小目标类别上的表现不如YOLOv8,尤其对远处的鸟类目标漏检率偏高,分析原因可能是它的网络下采样倍数较大,特征图分辨率低,小尺寸目标的信息在深层特征中丢失比较严重。

3.5 三个模型横向对比:精度、速度、体积

我把三个模型在同一个测试集上做了严格的对比实验,严格控制输入尺寸都是640、同一批图片、同一台机器。测试集包括白天正常画面、夜间红外画面、逆光画面和雨雾画面,一共约450张手动筛选的图片。结果如下:

模型版本mAP@0.5大动物AP鸟类AP推理耗时(Jetson)模型体积(MB)
YOLOv5s0.8540.9210.76228ms14.4
YOLOv8s0.8830.9340.80131ms21.5
YOLOv10s0.8610.9150.76824ms17.8

从表格可以清楚看到,三个版本各有取舍。YOLOv8s综合精度最高,大动物和鸟类都表现最好,适合对检测质量要求高的场景;YOLOv10s推理速度最快,适合部署在算力非常受限的设备上;YOLOv5s精度最低但模型体积最小,在特别老的设备上有优势。最终我部署时选择的是YOLOv8s,因为远程监控告警场景更看重少漏报、少误报,几毫秒的速度差异如果换来几个百分点的召回率,我认为是值得的。

4. 远程监控部署与告警链路实现

4.1 模型导出与边缘端优化

训练完成后,首先把YOLOv8s的PyTorch权重导出为ONNX格式。命令如下:

yolo export model=/path/to/yolov8s_animal.pt format=onnx opset=12 simplify=True

这里opset设为12是为了兼容边缘端设备的TensorRT解析器,过高或过低的opset都会在后续转换时报错。simplify参数会调用ONNX Simplifier对计算图做冗余消除,导出的模型体积更小、推理更快。之后在Jetson设备上用TensorRT把ONNX转成engine格式,这一步还能做FP16量化,推理速度可以从30ms进一步降到8ms左右。

FP16量化不是所有场景都适用。我试过把全部层都用FP16精度,夜间低光画面上出现了少量乱框,后来改用TensorRT的层级别精度配置,只让卷积层用FP16,其他层保持FP32,乱框问题消失。这个问题在官方文档上根本不会写,属于实际部署中才会遇到的坑。

4.2 RTSP视频流接入与抽帧策略

远程监控摄像头通常提供RTSP视频流地址。我使用OpenCV的VideoCapture直接拉流,每隔2帧抽取1帧送入检测模型。因为动物移动速度不算极快,每两帧检测一次完全足够,还能显著降低边缘设备负载。

import cv2 cap = cv2.VideoCapture("rtsp://your_camera_ip:554/stream1") frame_skip = 2 frame_id = 0 while True: ret, frame = cap.read() if not ret: break if frame_id % frame_skip == 0: results = model(frame, conf=0.35, iou=0.45) # 处理检测结果与告警逻辑 frame_id += 1

摄像头断流问题非常常见。我遇到过RTSP流在长时间运行后自动断开,OpenCV的read返回False但程序不会退出。解决方法是设置超时重连机制:连续3秒没有读到有效帧,就主动释放VideoCapture对象,sleep 3秒后重新创建拉流连接。这虽然是个小逻辑,但在现场运行时极为关键,否则系统会悄悄变成摆设。

4.3 告警触发与防误报设计

模型单独输出一个框不代表要立刻告警。我在告警链路上做了三层过滤。第一层是置信度过滤,检测置信度低于0.35的目标框直接丢弃,这个阈值在夜间比白天稍微降低到0.25,因为红外图像的纹理弱,模型置信度普遍偏低。第二层是目标过滤,检测到person类别的目标不触发动物告警,只记录日志;检测到bird类别时不触发远程推送,因为鸟群太频繁,如果每次都推送,管理员会直接把通知关掉。第三层是时间平滑过滤,只有动物目标连续在3帧内出现且位置变化不大时,才判定为真实事件,这样可以过滤晚风吹过树叶产生的阴影变化和昆虫在镜头前掠过造成的单个误报。

为了验证防误报效果,我连续跑了三天监控录像作为回放测试。原始协议如果没有过滤逻辑,一天会产生上百条告警,加了这三层过滤之后,平均每天只有3到5条,其中绝大多数确实是真实动物事件,只有偶尔的树影晃动会被记录成一次事件。误报率降低到可接受范围。

4.4 远程查看、截图存储与消息推送

告警截图和视频片段需要远程访问能力。我将告警截图统一保存到本地目录,命名规则是“事件时间戳_类别_置信度”,同时生成一个JSON日志记录,包括摄像头ID、目标类别、位置坐标、置信度和截图路径。然后通过MQTT协议把一条包含截图下载链接的消息推送到管理端小程序。

推送消息的格式我是这样设计的:

{ "camera_id": "cam_01", "timestamp": "2025-07-28 19:32:11", "event_type": "animal_intrusion", "category": "large_mammal", "confidence": 0.87, "alert_image_url": "/storage/alerts/20250728193211_large_mammal.jpg" }

消息里不直接传图片二进制,只传一个本地URL,管理者点击后才能查看,这样MQTT消息体积小、网络压力低。如果想要做到手机端的公网访问,需要把截图目录映射到内网穿透或云存储,这个就不展开细说了,属于典型的工程部署问题。

5. 常见问题与排查技巧实录

5.1 训练不收敛或loss异常波动

训练时遇到loss不收敛,我先检查数据标注质量和类别平衡。我发现鸟类的样本数量占总样本的45%,大型哺乳动物只占15%,这种不平衡直接导致大动物AP偏低。解决办法不是简单地增加样本量,而是对少样本类别做重复采样轮的平衡策略。在YOLOv8里可以通过额外复制少数类图片到训练目录,并确保增强参数在每轮都会变化来实现简单过采样,最终大动物的AP从0.89提升到0.93。

另一个常见情况是loss曲线在几百轮后突然飙升,这通常是学习率过高。YOLOv5默认的余弦退火策略在epochs超过100时会调低学习率,但如果你刚换了一个更大的模型结构,初始学习率0.01可能偏高,需要手动降到0.001再试。我的判断方法是观察前10轮loss下降斜率,如果前10轮就下降超过50%,后面大概率会震荡,我直接设为0.005起步。

5.2 显存不足与训练速度缓慢

显存不足最常见的错误是RuntimeError: CUDA out of memory。我的解决办法顺序是这样:先把batch-size减半,比如从24减到12;如果还是不行,把输入尺寸从640降到512;最终检查是否有其他进程占用显存,比如Jupyter kernel里残留tensor句柄。这三个手段依次执行,基本能解决90%的问题。

训练速度缓慢不一定都是显卡问题。有一次我训练YOLOv5时发现GPU利用率只有40%,后来排查发现数据集图片在HDD机械硬盘上,加载图片I/O成了瓶颈。把数据集挪到SSD后,GPU利用率立刻升到95%以上,训练时间缩短了整整三分之一。这个经验的重要性被严重低估。

5.3 小目标漏检与夜间检测效果差

小目标漏检的根源在于低分辨率输入。把输入尺寸从640提升到960后,鸟类AP从0.801提升到了0.843,但推理时间也增加了35%。更有效的方法是引入SAHI切片推理框架,把原图切块后再送入模型,然后用NMS合并结果。在小目标密集的监控场景里,SAHI带来的提升非常明显。不过SAHI会显著增加处理时间,在边缘设备上不推荐连续使用,更适合对关键帧做精细复核。

夜间效果差的问题,我尝试过图像预处理:对红外图像做自适应直方图均衡化,增强对比度和边缘信息。直接将CLAHE增强后的图像送入模型,夜间大动物的置信度平均提升了0.08左右。但注意不要把增强逻辑直接写进训练阶段,因为测试和部署时也要做同样的预处理,否则数据分布不一致,效果会打折。

5.4 视频流推流延迟与断线重连

远程监控延迟高,多数情况不是模型推理慢,而是推流链路问题。我用的是局域网RTSP,延迟来源主要是摄像头自身的编码缓冲和OpenCV缓存队列。解决方法是设置VideoCapture的缓冲大小为1,避免读取到过旧帧;同时使用FFmpeg做转推时加上tune=zerolatency参数。这样实测延迟可以从5秒降低到1秒以内。

断线重连还有一个隐藏问题:抓流失败后,OpenCV不会自动释放内存,多次重连会造成内存泄漏。我在重连逻辑里加了一句cv2.destroyAllWindows()并清空cap引用,内存才能稳定在正常范围。如果你发现自己部署的程序内存无限增长,先检查这个位置。

5.5 告警过多导致管理员忽略

这个问题容易被技术开发者忽略,但却是项目成败的关键。如果告警一天100条,管理员第二天就懒得看了。除了前面提到的三层过滤,我还加入了一个“事件冷却时间”机制:同一摄像头在2分钟内只能产生一条同类别告警。无论检测到多少帧,消息推送频率都受到严格限制,只有冷却时间结束后又出现新的连续检测事件,才允许再次推送。实际体验下来,管理员对这个设计非常认可,它让告警系统真正可长期使用。

下面把训练部署阶段遇到的高频问题整理成速查表,方便你对照排查:

现象可能原因首选排查动作
loss不下降标注框错误或类别不平衡抽样检查标注,统计类别数量
训练时显存溢出batch过大 / 模型过重先减半batch,再降输入尺寸
检测大量误报置信度阈值过低 / 增强过度提高conf到0.4以上,检查增强参数
夜间效果差数据集夜间样本过少补充红外图像,做CLAHE预处理
远程视频卡顿拉流缓冲过大设置缓冲区为1,加低延迟参数
动物漏检严重小目标被降采样丢失增大输入尺寸或使用SAHI切片推理

6. 关于这个项目的几点个人体会

写到最后,我想说些在文档里看不到的东西。这个项目如果只是把YOLOv8训练跑通,一周就能完成,但它真正有价值的部分在于对场景的理解和对工程细节的处理。我在实际部署过程中体会最深的一点是,模型精度永远只是整个远程监控系统的一半,另一半是告警策略、断线重连、防误报机制、数据存储这些看似不起眼的东西。评委答辩时最容易问的也正是这些内容,比如“你这个系统误报率是怎么控制的”“模型换到另一台设备上效果如何”“夜间和白天模型差异怎么解决”,这些问题靠背理论答不上来,只有自己亲手踩过坑才能讲清楚。

关于三版YOLO的选择,我最后的建议是:不要盲目追求最新版本。YOLOv8至今是我做中小型目标检测项目的第一选择,它训练稳定、生态完善、部署资料多。YOLOv10有关系优越,在某些场景值得细探,但它的生态还在完善,小目标检测能力有待提升。YOLOv5也并没有过时,在老旧的边缘设备上,它的轻量权重仍然有不可替代的价值。真正的高手不是只会选最炫的模型,而是能根据硬件、数据、场景约束选出一个最平衡的方案。

如果你也想做类似的项目,我的建议是从一个真实场景的20分钟监控视频开始,先标注150张图片跑通一次完整链路,再逐步扩大数据集。很多人在第一步“想做一个完美的数据集”上耗费了太多时间,实际上先有个粗糙版本,完成端到端流程后,你才能知道数据缺什么、模型弱在哪里。最后再分享一个小技巧:所有训练的模型,都一定要在完全没有参与训练过程的监控录像上做最终验证,这是你能不能真正上线使用的分水岭。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询