1. 为什么我要做一套“吸血行为”数据集而不是单纯的目标检测集做蚊虫监测的人应该都有同感市面上公开的昆虫数据集本来就少能直接用来做行为分析的更少。我之前找过不少公开数据集大部分是静态的物种分类集比如“这是埃及伊蚊”“这是白纹伊蚊”拍的是标本或者单只蚊子的特写。真正能用来判断“蚊子此刻在干什么”的数据几乎找不到。而恰恰是“在干什么”这个信息对疾控和登革热、寨卡病毒的防控最有价值。埃及伊蚊是登革热、寨卡、基孔肯雅热的主要传播媒介。它的吸血行为是整个传播链条里的关键节点——只有雌蚊吸了带毒宿主的血病毒才能在蚊体内复制再通过下一次吸血传播给下一个人。如果能在环境里实时识别出“某只蚊子正在吸血”就意味着我们有机会在传播动作发生之前进行干预。这个逻辑听起来很顺但落到技术层面会遇到一个非常现实的问题检测模型能框出蚊子却不知道它是否已经刺入皮肤。所以我才动了念头做一套专门面向埃及伊蚊吸血行为的数据集并用YOLO系列模型验证整套流程。这套数据集的定位不是“识别蚊子种类”而是“识别蚊子的行为状态”。同样一只埃及伊蚊飞行中、停在皮肤上、刚把口针刺进去、腹部开始膨胀这些状态在防控上的意义是完全不同的。目标检测框只能告诉你“这里有只蚊子”行为状态标注则能告诉你“这只蚊子处在传染链路中的哪个环节”。可以说这套数据集解决的不是 detection 问题而是一个用检测框承载“行为语义”的典型场景。对做目标检测入门的新手来说它也是比“猫狗识别”“车辆检测”更有区分度的一套练手数据——背景杂乱、目标极小、状态边界模糊能把YOLO调参过程中真正棘手的问题都逼出来。2. 数据采集方案从养蚊子到诱导吸血每一步都在影响数据质量2.1 埃及伊蚊怎么养才能保证行为正常行为数据最怕的就是“蚊子不正常”。实验室里如果养蚊环境不合适蚊子的飞行频率、吸血意愿、停落习惯都会变形采集出来的数据即使标注得再准确模型学到的也不是自然状态下的行为跑去真实环境一用就废。我的做法是参考昆虫饲养的常规规程温度控制在26~28°C相对湿度70%左右光周期设置为12小时光照和12小时黑暗。幼虫期喂鱼粉和酵母混合物成蚊期用10%蔗糖水维持能量。关键是雌蚊吸血这一环一定要用人工饲血装置把脱纤维血装在专用饲血器里膜用石蜡膜或者动物肠衣温度加热到37°C左右模拟哺乳动物体温。这一步不能糊弄因为埃及伊蚊对温度和气味非常敏感水温不够或者膜的材料不对蚊子压根不会落下来尝试吸血整个拍摄过程就是白拍。血源方面需要注意安全性。使用动物血来源一定要通过合规渠道处理过程要有完整的消杀和防护流程操作时戴手套、用生物安全柜。这不是为了走形式人工饲血装置一旦有污染整个蚊群就废了。2.2 拍摄设备和视场设计不是帧率越高越好很多人一听说拍昆虫第一反应就是上高速相机1000帧每秒起步。我实际测下来做吸血行为检测普通的高帧率工业相机就够了关键在视场设计和光照设计。吸血行为的时间尺度是这样的埃及伊蚊从降落到刺入一般需要几秒到几十秒吸血过程本身可以持续2到5分钟饱血后脱离然后飞离。整个过程不算特别快30到60帧每秒的帧率就能覆盖行为切换的节奏。帧率太高反而带来问题数据量指数级膨胀相邻帧几乎一样标注耗时成倍增加模型训练也没占到什么便宜。分辨率建议至少1080p以上。因为目标很小一只成体埃及伊蚊体长只有3到4毫米在视场里可能只占几十个像素。如果用720p拍摄很多吸血细节直接糊成一团标注员根本看不清口针是否刺入。对于光照均匀的白色LED面板灯比点光源好点光源会在皮肤表面产生大片反光和阴影蚊子停落时轮廓被干扰模型很容易把影子误检成目标。我会用两块面板灯45度角对称打光把皮肤纹理和蚊子的对比度控制在比较柔和的范围。视场设计的思路是“近拍皮肤兼顾空间”。尽可能固定机位镜头垂直对准人或动物皮肤表面视场范围控制在15到20厘米见方。这个范围既能捕捉到蚊子从飞入到降落的轨迹又不会让目标太小。真实录制皮肤最好用手背、前臂、小腿这些区域皮肤纹理差异大模型泛化能力会更强。2.3 采集场景的复杂度实验室干净背景与真实皮肤完全不同第一版数据我犯过一个错误在纯色塑料板上诱导蚊子吸血拍出来的数据非常“干净”背景没有一点干扰。模型训练完之后验证集mAP50确实很漂亮但一放到真实皮肤场景上直接崩掉——皮肤纹理、毛孔、汗毛、血管阴影全是模型没见过的新东西检测框乱飘。正确做法是一开始就混合采集。一部分在人工膜饲血装置上拍背景干净、便于验证基础检测能力一部分在真人志愿者前臂上拍背景复杂、更贴近实际部署环境还有一部分在麻醉小鼠或鸡的皮肤上拍有毛发、纹理更复杂。三类数据混在一起训练模型才能学会抓住“蚊子本身”的形态特征而不是把背景纹理也当成了判据。还需要刻意采集一些“蚊子离开皮肤后继续爬行”以及“已经饱血、行动迟缓、腹部明显膨胀”的画面。这些状态在吸血周期里占比不大但恰恰是判断“吸血是否完成”最重要的视觉线索。如果数据采集时没注意覆盖模型会在饱血阶段疯狂漏检因为腹部膨胀后体态和飞行时的瘦长形差别太大了。3. 类别体系设计六个行为状态怎么定义标注边界才不打架3.1 为什么分类别要按“行为态”而不是“蚊种”一个常见误区是做蚊虫检测数据集类别直接写成“egypti”“albopictus”这种物种名。但行为学场景下这种分法帮助不大。我需要的是模型能回答“蚊子现在在做什么”而不是“这疙瘩是什么蚊子”。所以类别体系要围绕吸血行为的时间线来设计而不是生物学分类。我最终把类别设计成六个行为态整套逻辑围绕“是否贴近宿主皮肤”和“是否正在取食”两个维度展开飞行中、停落静止、爬行探索、口针刺入、吸血膨胀、饱血脱离。这个体系的好处在于两个维度本身是可观测的——贴近不贴近用检测框位置就能判断是否取食可以通过口针位置、腹部形态、蚊身是否保持相对静止来判断。类别定义清楚之后标注员之间的分歧会小很多。3.2 类别定义和判定标准明细category 0飞行中。蚊子在视场内飞过双翅展开运动速度明显快于爬行。模糊的飞行拖影也标因为这类样本对训练运动感知很重要。category 1停落静止。蚊子停落在皮肤或膜表面翅膀收起口针未刺入腹部扁平。身体整体相对静止或仅有细微的腿部调整动作。category 2爬行探索。蚊子在皮肤表面移动用腿和口针末端试探环境来回走动。步态明显方向有切换。category 3口针刺入。口针已刺入宿主皮肤身体与皮肤表面呈一定角度腹部相对于宿主表面向上翘起。这一状态我用“口针是否突破皮肤表面线”来卡判定标注时看侧向视图最清楚。category 4吸血膨胀。口针保持刺入状态腹部持续膨大颜色由深褐色向红色渐变。这个状态的下限是腹部体积明显比停落时大一圈上限是腹部接近球形且几乎透明。在正面向下观察的视角里腹部膨胀是非常可靠的视觉指标。category 5饱血脱离。口针从皮肤抽出蚊子身体与皮肤角度变大开始蹬腿起跳或爬行离开皮肤区域。后续如果再次飞起按category 0重新标记。这套体系对标注员最友好的地方在category 3和category 4之间。因为吸血膨胀是一个渐变过程严格划分“开始膨胀”的时间点确实困难我把判据定在“腹部在图像上的投影面积相比刚刺入时超过1.3倍”虽然要量一下但远比靠感觉靠谱。3.3 标注工具与YOLO格式的约定标注工具我用的还是常规流程先用LabelImg或X-AnyLabeling这类开源标注软件画矩形框导出成YOLO格式的txt文件。每行代表一个目标类别编号、中心点x坐标、中心点y坐标、框宽、框高都是相对于图片宽高的归一化数值。这里有个细节很值得提行为态类别的框必须紧贴身体轮廓不要包含过多的触角、翅膀边缘。因为后三个状态的判定依赖腹部形态框如果松了模型会同时摄入太多背景信息特征学习就被稀释了。反过来飞行中的框可以适当放松一点因为飞行轨迹不稳定边缘模糊太紧反而让标注不可复现。我整理过一份标注规范给参与标注的同事关键条款包括出现多只蚊子时每一只都要单独标注即使是飞行的模糊影。同一只蚊子连续帧保持同一个类别编号避免标注员各自为政导致同一条轨迹标签跳变。单只蚊子在状态切换的过渡帧按“前一状态占主体”的规则归类不单独设过渡类别。框的最小边长不得小于12像素小于这个尺寸的蚊子直接标记为忽略区域在txt里不写但在标注软件里用ignore标记防止过小标签引入噪声。每帧必须至少有一个目标框没有蚊子的背景帧在清洗阶段删除不进入最终数据集。3.4 类别体系与YOLO检测头的契合度分析YOLO系列模型本质上是“多标签分类 回归”结构检测头对每个框预测类别概率。我把行为态直接作为类别等于把“行为识别”问题转化成“目标分类”问题。这种做法在行为时间尺度长、视场受限的情况下非常实用比引入额外的时序模型简单太多也不用在推理阶段拼接两套模型的输出。但代价是类别之间没有显式的状态转移约束。模型可能会预测“同一只蚊子在连续帧里从category 2跳到category 4”跳过了category 3。实际使用时我会在推理后处理阶段加一个简单的状态机滤波器只允许合法的状态转移序列比如2→3→4→5禁止4→2这类明显不合生物学的跳变。这个滤波器在后处理里只要十几行代码但对预测结果的稳定性提升非常明显。数据集本身不要求预测是时序一致的但好的数据集配合后处理逻辑能做出真正可部署的“行为判断系统”。4. 7800张的规模怎么分配验证集划分上有哪些坑4.1 数据总量和类别分布7800张听起来不算多但行为数据集和通用目标检测数据集不太一样。行为数据是“每个片段都有连续语义”的所以关键在于每个行为态的帧数是否足够而不只是总张数。我建议做类别分布时参考这样一个基线飞行中占25%停落静止和爬行探索合计占25%口针刺入占15%吸血膨胀占20%饱血脱离占15%。后三个状态category 3、4、5的数量必须保证因为这是整个数据集的价值核心。如果吸血过程拍得太少模型会倾向于把“蚊子挨着皮肤”全预测成停落静止类吸血膨胀类完全学不出来。这里还要考虑到实际问题飞行中类别在采集时最容易获得因为随便拍几段蚊子飞行就有几千帧。而口针刺入和饱血脱离在人工饲血装置上不太容易拍到满意的侧面视角需要特意调整机位。如果后面发现类别不均衡不要只靠过采样解决要先回到采集端补充数据因为过采样只能复制已有样本的信息不会产生新的形态特征。4.2 目录结构YOLO训练工程的标准布局拿到整理好的数据目录结构直接决定后续训练流程顺不顺畅。标准布局如下egypti-biting-dataset/ ├── data.yaml ├── train/ │ ├── images/ │ │ ├── ebi_000001.jpg │ │ ├── ebi_000002.jpg │ │ └── ... │ └── labels/ │ ├── ebi_000001.txt │ ├── ebi_000002.txt │ └── ... ├── val/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/data.yaml文件里categories字段顺序必须和标注txt里的类别编号一一对应path: ./egypti-biting-dataset train: train/images val: val/images test: test/images nc: 6 names: 0: flying 1: resting 2: crawling 3: piercing 4: engorging 5: detaching有个细节很容易踩坑data.yaml里的names顺序一旦发布后续就不建议改了。因为训练好的模型权重里预测层输出通道的语义和类别编号绑定重新排序会让之前的所有评估和部署脚本全部失效。我见过不少人为了排序好看反复编辑names结果模型指标忽上忽下其实根本不是模型问题。4.3 验证集划分按视频片段划分而不是按单帧随机划分这是整套数据处理里我体会最深的一个坑。如果在划分训练集和验证集时直接把所有帧打乱后随机抽10%当验证集那你大概率会得到一个虚高的验证指标但实际部署时效果就没那么漂亮。原因在于同一段视频的相邻帧高度相似背景、光照、蚊子的姿态几乎都沿时间轴渐变。这些帧进入验证集等于模型在做开卷考试它见过的相似画面太多了。正确做法是先按“视频片段”分组——一个片段就是一次连续的拍摄记录比如“志愿者A右手背15秒帧率30fps450帧”。按整段视频为最小单位划分确保验证集里出现的片段和训练集完全不同。训练时光照、皮肤纹理、个体蚊子特征这些变量被真正隔离评估指标才值得信赖。我在7800张数据集上用了约80/10/10的划分比例train 6240张、val 780张、test 780张。原则上验证集里要保留至少一个完整的吸血周期片段包含category 0到5全流程方便观察状态转移预测的连续性。4.4 增强策略小目标数据集强推复制粘贴增强埃及伊蚊属于典型的小目标场景。YOLOv8在640x640输入下很多标注框的边长小于32像素甚至只有15到25像素。这类目标在训练时非常容易被上下采样的特征图“冲刷”掉网络还没来得及提取到足够特征梯度就没有了。Stitcher或Copy-Paste增强在这种场景下收益很大。简单说把一张图片里的小目标剪切下来经过旋转和缩放粘贴到另一张图片上可以显著提高小目标的训练样本密度。Ultralytics在YOLOv8里也内置了类似Mosaic和MixUp的增强我实测对小目标挺友好但有一种副作用生成了大量“多只蚊子同框”的合成画面有些画面里蚊子的粘连程度已经不符合真实生物学分布了。如果发现验证指标反常地好但真实场景全是漏检先检查一下增强是不是把目标叠得太密。亮度扰动和色调扰动一定要做但要控制幅度。埃及伊蚊吸血前后的腹部颜色差异是重要的分类线索如果色调扰动过于激进模型会丢失“红色腹部意味着吸血膨胀”的视觉关联。5. 用YOLOv8训练这套数据集的完整实践5.1 模型选型从N到M我都测过我对7800张的规模做过一批对比实验。YOLOv8n、YOLOv8s、YOLOv8m单卡从3090到4090都能跑先给结论追求性价比选YOLOv8s验证集mAP50大约比n高2到3个百分点推理速度依然能到单帧40毫秒以内TensorRT下更稳。YOLOv8m在这个数据量上有轻微过拟合验证指标的提升没有m参数带来的推理负担划算。如果部署设备是手机端或边缘盒子直接上YOLOv8n靠后处理状态机把误检压下去。模型选型的判断逻辑不复杂你的数据集“域内差异”有多大。如果所有图片都是同一志愿者的前臂拍的模型压根不需要那么大的容量。但我的数据里有膜饲血装置、真人皮肤、动物皮肤三类背景背景差异很大这就需要一定容量去学习多个域的分布。YOLOv8s在这个复杂度上比较均衡。5.2 超参数配置和loss观察要点训练命令用YOLOv8的标准CLI就行yolo detect train \ dataegypti-biting-dataset/data.yaml \ modelyolov8s.pt \ imgsz640 \ batch32 \ epochs120 \ lr00.01 \ lrf0.01 \ optimizerAdamW \ patience15 \ projectruns/detect \ nameegypti_biting_exp几个参数值得解释一下。imgsz我试过640和960640在训练速度和指标之间最平衡960对飞行中和爬行探索这两个类别有微弱提升——因为目标本身像素更多了但对刺痛吸血这种腹部形态判断反而没有显著帮助还显着拉长训练时间。batch32在显存充足的情况下尽量大小目标检测对batch size不那么敏感但大batch能让batch normalization的统计量更稳定。patience15要学会用我在第40轮左右遇到过一个假象loss还在缓慢下降但验证集mAP50已经不再上升模型其实是开始记忆背景纹理了。这时候继续训练只会加重过拟合。早停不是懒是对验证指标的诚实。观察loss时有一个非常容易踩的坑box_loss和cls_loss会同步下降但dfl_loss可能在中段出现“V形反弹”。这不是模型崩溃是检测框分布从粗糙到精细的正常迁移。别看到loss反弹就急着调小学习率先等两轮看趋势。5.3 小目标针对性调参的真正入手点很多人一听到“小目标”第一反应就是改模型结构加检测头或者堆注意力模块。我个人的体会是对7800张这个量级的数据先做数据层面的调整再改模型结构。模型结构改动会引入大量新的超参数和训练技巧数据量不足反而容易学歪。数据层面最有效的手段是tiling切图。把1080p的大图切成两个或四个带重叠区域的patch每个patch缩放到640x640再训练。这样做等价于把小目标的像素密度提升了一倍多。我做了一个实验不切图时category 3口针刺入的AP50在78左右切图之后直接涨到86以上。代价是推理时要对多patch分别跑最后做NMS合并速度会下降但部署侧可以只对感兴趣区域做二次检测不全局铺开。另一个容易被忽视的参数是anchor框在YOLOv8里是anchor-free但逻辑类似。如果你用老版本YOLOv5或者YOLOX记得根据标注框统计重新计算anchor尺寸。吸血后的蚊子腹部膨胀长宽比明显从瘦长变成接近圆形默认anchor对这个形态覆盖不好。5.4 训练过程中的常见诡异现象说几个我实际碰到并排查过的问题给后来者提个醒。第一类别4 吸血膨胀的置信度普遍偏低但mAP却不差。这是一个轻微的矛盾信号。原因往往是增强阶段Mosaic把“腹部膨胀的蚊子”贴进了完全陌生的背景模型对背景信心下降。解决办法是在mosaic概率较高的训练后期逐步调低Mosaic概率让模型回炉适应自然场景。第二训练集和验证集指标差距巨大验证集mAP50整体低于训练集十几个点。先别怀疑过拟合先看是不是部分视频片段重复或划分不干净。我当时查过验证集图片和训练集图片的“感知哈希相似度”确实发现有两段视频因为是同一个志愿者、同一时段拍的背景几乎一模一样等于间接泄漏了。重新按片段划分之后指标差变小了。第三模型会把“血管凸起”或“皮肤上的痣”检测成蚊子。这种情况在验证集上表现很迷惑因为影子、颜色这些特征跟蚊子确实接近。对症方案是收集更多“近蚊伪目标”的负样本放进训练集但不参与类别输出只作为背景提升判别难度。如果不想加负样本至少要在后处理里加一个目标尺寸上下限过滤比如框宽小于8个像素或大于300个像素的直接丢弃。6. 评估指标怎么定才能真实反映吸血行为识别效果6.1 用哪些指标各自的价值在哪里YOLO生态里最常用的当然是mAP50和mAP50-95。但对行为态数据集光看这两个综合指标远远不够。我的建议是逐类打印AP特别关注category 3和category 4。我最终采用的评估表格列是类别名称、像素面积区间16x16, 16x32, 32x32、推理置信度阈值下的精确率/召回率以及mAP50。小目标占多的类别在像素面积区间的表现可以看出来比如category 0飞行中框大多在16x32区间Category 4吸血膨胀则大得多。如果某个类别的mAP50靠的是少量大目标撑起来的而小目标的AP非常惨那这类数据的实际可用性就要打折扣。6.2 行为状态转移的时序验证方法检测指标之外行为数据集还需要单独验证“状态切换是否连贯”。我的做法是人工标注一段连续视频帧率为30fps时长30秒逐帧标注真实状态然后让模型在这段视频上逐帧推理再观察预测队列里的状态转移是否遵循“0→1→2→3→4→5”的生物约束。实际操作时把预测结果和真值都整理成下面这种形式视频帧区间真实状态模型预测连续预测是否允许0-30帧flyingflying是31-60帧restingresting是61-75帧crawlingresting是架构允许但语义偏保守76-100帧piercingengorging否跳过了piercing第二行到第三行这种“resting预测持续过久”的问题很常见模型对crawling的识别灵敏度不够但只要后处理状态机允许1↔2之间的合法跳转对总体影响不大。关键是第四行那种直接跳过piercing的跳跃状态机必须拦下来把它分配给更接近历史状态的类别。这类时序验证的价值在于如果你的系统要用于“吸血行为预警”那么状态转移的准确性比单帧的mAP重要得多。单帧预测偶尔出错无关紧要但“提前跳入engorging”会把预警时机提前几秒甚至几十秒在真实干预场景里就是一次误报。6.3 实测效果和部署优化思路用训练好的YOLOv8s模型在测试集上我跑出来的表现大概是mAP50在91左右mAP50-95在72左右。category 4吸血膨胀的AP50最高能到94因为腹部膨胀形态差异大且目标尺寸偏大category 3口针刺入最低AP50在83到86之间波动因为它和crawling/engorging的边界最容易混。部署侧我尝试过三种方式纯PyTorch推理、导出ONNX用ONNXRuntime、导出TensorRT引擎。速度上TensorRT比ONNXRuntime快一倍以上单帧推理时间稳定在15到25毫秒GPU能支撑实时视频流。如果在Jetson这类边缘设备上跑YOLOv8n转TensorRT fp16大约能到每秒30到40帧足够做现场预警。导出ONNX有一个很关键的点from ultralytics import YOLO model YOLO(best.pt) model.export(formatonnx, imgsz640, opset12, simplifyTrue)opset版本不必追最新12到14在多数边缘设备上兼容性最稳。如果后续要在自定义C工程里集成记得把模型输出的后处理NMS流程剥离YOLOv8默认输出原始预测自己写一个NMS并入状态机逻辑反而更好控制。7. 踩坑清单和扩展思路关于这套数据集的心里话7.1 六条值得反复看的实践教训按踩坑频率排序我把遇到的问题整理成清单每条后面直接给对策。标注员对“吸血中”的判定不一致。对策在标注规范里加入“腹部投影面积比刺入初期增大30%”这种量化规则并定期抽查一致性。如果Kappa系数低于0.8宁可返工也不要继续往下做。数据清洗不足大量模糊飞行帧混入训练集把category 0的训练信号污染了。对策是清洗阶段直接删除清晰度不足的帧因为飞行拖影虽然真实存在但太多会让模型把模糊和飞行绑在一起降低对清晰飞行姿态的召回。增强策略引发“多蚊同框”的虚检。Mosaic和Copy-Paste拼出的密集多蚊画面和真实行为很少见。如果训练时发现验证集出现多目标重叠的诡异预测调低增强的拼接概率或者限制单图最多拼接4只蚊子。验证集泄漏。前面已经详细说了按视频片段划分是唯一正确做法别偷懒。负样本缺失。皮肤上的痣、毛孔、血管凸起容易被误检。多采集没有蚊子的皮肤画面放入训练集images目录但不标注labels模型反而会学到更稳健的判别边界。导出ONNX后精度下降。简化选项有时会移除一些对微小目标敏感的算子。如果部署后指标掉得明显先试simplifyFalse和opset14有时问题就解决了。7.2 数据集后续可以怎么扩展7800张只是一个起点。我做这套数据的过程中一直在想后续至少有三个方向值得做。第一个方向是多蚊种迁移。埃及伊蚊和伴随种白纹伊蚊在外形上非常接近行为模式也有很多重叠。如果补上白纹伊蚊的吸血行为数据模型可以训练成多蚊种行为识别这将覆盖更广泛的登革热中高风险区域。第二个方向是引入关键点检测。吸血过程中口针的位置是最关键的生物标志但矩形框没法表达“口针具体指向哪里”。如果后续能做一组口针关键点标注配合YOLO-pose这类模型不仅能判断“是否吸血”还能判断“吸血时刺入的深度”这对研究蚊虫力学和驱避剂评价都很有价值。第三个方向是半监督。吸血行为数据最贵的永远是标注。我在实际标注时发现一个熟练标注员处理一帧需要30到40秒7800张全标完差不多花了70多个小时。如果先训练一个可靠模型对大量未标注视频做伪标注人工只修正高置信度分歧帧效率可以翻倍。7.3 我对这套数据的真实评估说实话做这套数据比我想象中更耗时。养蚊子用了两个多月拍摄只花了一周但有大量时间耗在清洗和标注翻工上。最终7800张清洗后有效帧其实只占了原始视频的不到三分之一大量废帧都是蚊子不在视场、画面震动、或者皮肤表面反光太严重。但这个过程的收获也很大。一套数据集的价值不只在“让某个模型mAP涨了几个点”而在于它把采集、定义、标注、训练、评估、部署这一整条链路暴露出来的问题都摊开在桌面上。你用任何开源数据集练手都不会遇到“吸血全过程腹部形态渐变”这种数据定义层面的争议而真实项目里这类争议几乎每天都要做决定。如果你也要做类似的行为态检测数据集我给你一个最重要的建议动手拍摄之前先把类别定义和标注规范写到文档里让所有参与者读一遍再开工。否则后续标注返工的时间会比拍摄本身贵得多。