在偏远的山村,没有大医院,村民生了病常去请村里的老郎中。老郎中之所以被信任,靠的不是仪器,而是一本磨破边的病历本、一只轻便的小药箱,还有每年雷打不动的回城进修。如今,这份“看病手艺”正被搬进农户的手机里:拍一张生病的叶片照片,两秒钟就能知道是稻瘟病还是叶锈病、该用什么药。这套“田间看病”系统背后,正是作物病害图像识别与分类模型。它像一位数字版的老郎中:田间规范采集的照片是它积累的病历,图像预处理是它擦亮老花镜的端详,轻量网络是它随身的小药箱,边缘部署让它能到没信号的田头出诊,持续学习则保证它每年都能学会新病而不忘旧病。这篇文章,我们跟着这位“田间老郎中”,完整走一遍从数据到模型再到部署的全流程。

岗位关联

掌握“数据→模型→部署→持续迭代”这条完整链路,是智慧农业方向 AI 从业者区别于纯算法竞赛选手的核心竞争力,也是 AI 真正扎根田间地头的关键。

目录
  1. 可视化演示
  2. 数据采集规范
  3. 图像预处理
  4. 轻量网络设计
  5. 模型训练优化
  6. 边缘部署方案
  7. 持续学习机制
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示病害图像数据采集规范、轻量化模型设计,以及边缘部署与离线实时诊断。

本节配有交互动效(进入视口后自动加载,约 3KB)。

病害图像采集 多角度多光照 多严重度等级 多角度→多样→标注 覆盖田间场景

数据采集规范

老郎中的诊室里有一本磨破边的病历本,每看一株病苗,他都拍照记录:正面、背面、顺光、逆光,早期、中期、晚期,一页页攒了几十年。有人问他医术的秘诀,他拍拍病历本说:“看得多了,自然认得。”病害识别模型的“病历本”就是训练数据集,模型的诊断能力上限,在数据采集那一刻就已经决定了。

从技术角度看,模型并不是“凭空学会看病”,而是从成千上万张标注过的叶片照片里统计规律。因此采集规范直接决定模型能学到什么。首先要做到田间拍照要求:同一个病害要覆盖不同角度、不同光照(阴天、晴天、早晨、傍晚)和不同严重程度(轻微、中度、重度),避免只拍“最典型”的样本,否则模型一遇到不典型症状就误诊。其次是样本标注原则:由植保专家按统一标准标注,每张图只标主要病害类别,并保证各类别样本量大致均衡,防止模型“偏心”于多数的健康类。最后是数据增强策略:通过随机翻转、旋转、缩放、亮度与色彩抖动,在训练时在线生成更多“变体”,相当于让老郎中反复端详同一片叶子在不同光线下的样子。

回到老郎中的故事:病历本不是越厚越好,而是越规范越好——如果记录里一半照片模糊、甚至标错了病名,再厚的本子也只会教出“糊涂医生”。数据采集与标注,就是给模型写一本高质量的病历。

Ntotal=Nfield×Kaug\displaystyle N_{total} = N_{field} \times K_{aug}
增强后的总样本量约等于田间原始样本数乘以增强倍数,它决定了模型见过多少种“病人形态”。
  1. N_field(田间原始样本数)按规范拍摄并经专家标注的病害叶片照片总数,是训练集的“底稿”。
    Nfield\displaystyle N_{field}
  2. K_aug(增强倍数)水平翻转、旋转、亮度扰动等增强手段叠加后产生的等效扩增倍数,例如三种手段组合大约把每张图变成 8 个变体。
    Kaug\displaystyle K_{aug}
  3. N_total(最终训练样本数)原始样本乘以增强倍数得到的总规模,它决定了模型能覆盖的病害形态丰富度。
    Ntotal\displaystyle N_{total}

图像预处理

老郎中看叶片有个习惯:先摘掉老花镜擦干净,再把叶片举到光线均匀的地方,转一转角度,避开反光。他说:“看不清的东西,手艺再好也认错。”图像预处理做的就是这件事——把手机随手拍出的“忽明忽暗、角度杂乱”的照片,变成模型熟悉的“标准答卷”。

模型对输入格式非常挑剔:不同手机拍出的照片尺寸不同,光照差异让同一病害的像素值天差地别,背景里的土壤和杂草更是干扰项。预处理通常分三步走。第一步是尺寸统一化:把所有图片缩放到固定尺寸(如 224×224),保证进入网络的张量形状一致。第二步是光照归一化:统计训练集每个颜色通道的均值和标准差,把像素减去均值、除以标准差,让输入分布稳定在零附近,模型训练才平稳。第三步是背景抑制:通过裁剪、分割或简单的中心区域提取,去掉土壤反光、杂草遮挡等无关信息,让模型把注意力集中在叶片本身。

这就好比老郎中那句“把叶子举到光下看”:预处理让模型在正午烈日下和阴雨绵绵里看到的叶片,都像是站在同一盏灯下看到的,诊断结论自然更稳。

xij′=xij−μcσc\displaystyle x'_{ij} = \frac{x_{ij} - \mu_c}{\sigma_c}
归一化把每个像素从“原始的亮度值”变换为“偏离平均亮度的程度”,让模型不再被环境光线牵着鼻子走。
  1. x_ij(原始像素值)第 i 行第 j 列像素的原始亮度,范围通常在 0~255,随光照剧烈波动。
    xij\displaystyle x_{ij}
  2. μ_c(通道均值)全部训练图片在某个颜色通道上的平均亮度,代表“基准光线条件”。
    μc\displaystyle \mu_c
  3. σ_c(通道标准差)像素在通道上的离散程度,衡量明暗波动范围,防止除以零时加小常数。
    σc\displaystyle \sigma_c
  4. x'_ij(归一化像素)减去均值再除以标准差,得到近似均值为 0、方差为 1 的稳定输入。
    xij′\displaystyle x'_{ij}

轻量网络设计

老郎中从不背整个医院下乡,他的一只小药箱里只有几十味常用药,却治好了大部分常见病。他说:“药箱轻,才能走得到田里;药箱重,只能等病人上门。”云端的大模型再准,手机和田间智能盒子也装不下、跑不动,所以必须设计轻量网络——一位背得动药箱的“田间医生”。

轻量网络的核心思想是“用更少的计算做同样的事”。第一个招数是深度可分离卷积:把标准卷积拆成两步——先用一个 3×3 卷积对每个通道分别处理(逐通道卷积),再用一个 1×1 卷积把通道信息融合起来(逐点卷积)。好比老郎中先分别看叶片的颜色、纹理、形状,再综合判断。第二个招数是全局平均池化:用池化把整张特征图压成一个数值,替代参数庞大的全连接层,大大减少模型体积。第三个招数是模型剪枝压缩:把接近零的权重剪掉、把冗余通道删去,再配合量化,让模型瘦身到几兆字节。

小药箱不是简陋,而是精选。轻量网络牺牲一点点精度,换来的是在田埂上随叫随到的能力——这正是“下乡义诊”的底气。

R=1Cout+1k2\displaystyle R = \frac{1}{C_{out}} + \frac{1}{k^2}
这个公式衡量深度可分离卷积相比标准卷积省了多少计算:输出通道越多、卷积核越大,节省越明显。
  1. C_out(输出通道数)卷积输出的特征图数量,通常是 128、256 甚至更多,代表模型提取的“观测维度”。
    Cout\displaystyle C_{out}
  2. k(卷积核尺寸)卷积核边长,3×3 卷积时 k=3,它决定每次观察的局部窗口大小。
    k\displaystyle k
  3. R(计算量比率)深度可分离卷积与标准卷积的计算量之比;当 C_out=256、k=3 时 R≈0.115,即省下约 88.5% 的计算量。
    R\displaystyle R

模型训练优化

老郎中年轻时在县医院跟名师学了五年基础,回村后又把本地几十年的病案翻了个遍。他说:“师傅教的是一般规律,村里的病例让我知道这里的庄稼爱得什么病。”模型训练也一样,最好的起点不是从零开始,而是迁移学习。

迁移学习的做法是:先加载一个在大规模数据集(如 ImageNet)上预训练好的模型,它已经学会了边缘、纹理、形状等通用视觉特征,相当于“师傅教的五年基础”;然后用田间病害数据对它进行微调——用小学习率继续训练,让它把注意力转向“病斑、锈迹、霉层”这些农业特征。这样做的好处是,即使只有几千张病害照片,模型也能快速收敛且不容易过拟合。训练时用交叉熵损失来度量预测与真实标签的差距,同时用准确率、召回率等评估指标监控模型,尤其要警惕“把病叶判成健康”的漏诊——那相当于老郎中对病人说“没病,回去吧”,后果最严重。

“拜师又实习”的模型,既有通用视觉的底子,又有本地病害的专长——这正是迁移学习的精髓:站在巨人的肩膀上,再走自己的田间路。

LCE=−∑c=1Cyclog⁡y^c\displaystyle \mathcal{L}_{CE} = -\sum_{c=1}^{C} y_c \log \hat{y}_c
交叉熵损失衡量模型预测的概率分布与真实答案之间的差距:预测越接近真实类别,损失越小,训练就是在不断压低这个值。
  1. C(类别总数)病害类别数,例如“健康 + 3 种病害”共 4 类。
    C\displaystyle C
  2. y_c(真实标签指示)样本真实属于类别 c 时取 1,否则取 0,相当于“标准答案”。
    yc\displaystyle y_c
  3. log ŷ_c(预测概率对数)模型对类别 c 的预测概率取对数,预测越接近 1,该项越接近 0。
    log⁡y^c\displaystyle \log \hat{y}_c
  4. 求和取负(损失值)对全部类别累加后加负号,得到非负的交叉熵损失,训练时用梯度下降使其最小化。
    −∑c=1Cyclog⁡y^c\displaystyle -\sum_{c=1}^{C} y_c \log \hat{y}_c

边缘部署方案

老郎中下乡义诊时,村卫生室里没有 CT 机,甚至手机都没信号,但他照样开方抓药。他说:“看病不能等,庄稼更不能等。”作物病害识别同样面临这样的场景:田间地头网络不稳定,照片传到云端再返回结果可能要好几秒,遇到断网直接瘫痪。所以要把模型部署到手机或田间智能盒子上,实现离线推理——让老郎中骑着摩托,亲自到田里来。

离线部署的技术路线主要有三步。第一步是模型格式转换:把训练好的 PyTorch/TensorFlow 模型转换成 TFLite、ONNX 等适合移动端的格式,并做 8-bit 量化,把浮点参数压成 0~255 的整数,体积缩小约 4 倍。第二步是离线推理引擎:在手机 App 或边缘盒子里嵌入轻量推理库,不联网也能加载模型、跑前向计算。第三步是搭好实时诊断流程:拍照 → 预处理 → 模型推理 → 输出病害名称、置信度和用药建议,整个过程控制在 2 秒以内,即使在地里没信号也能完成。

药箱虽小,开方齐全。离线部署让“诊断”真正走到每一块田,而不是让农民举着手机满山找信号。

r=q×s+z\displaystyle r = q \times s + z
量化用“缩放因子和零点”把整数还原成近似的浮点数,让模型在“瘦身”后仍能保持准确的诊断能力。
  1. q(量化整数)浮点权重或激活量化后存储的 8-bit 整数,取值范围 0~255。
    q\displaystyle q
  2. s(缩放因子)浮点数值范围与整数数值范围之间的比例尺,由统计权重分布得出。
    s\displaystyle s
  3. z(零点偏移)实数零点与整数零点之间错位的补偿量,保证 0 被正确映射。
    z\displaystyle z
  4. r(近似浮点值)用整数和缩放因子还原出的浮点近似值,误差通常只有百分之一左右,却换来数倍的速度提升。
    r\displaystyle r

持续学习机制

老郎中每年冬天都要回城进修一次。遇到没见过的病,他先拍照记下病例,第二年带着样本去请教专家,学会新病的同时,旧病的诊断功力一点没丢。他说:“当医生最怕'学会了新的,忘了旧的'。”这个担忧在 AI 领域有个专业名字——灾难性遗忘,而应对它的机制就是持续学习。

作物病害并不是一成不变的:气候变化、新品种推广、农药使用习惯都会催生新的病害表现。当田间出现模型没见过的病斑时,需要一套机制让模型“补课”。首先是新病害注册:把识别置信度低、频次高的照片筛选出来,由植保专家确认后作为新类别入库,给新类别一个“正式身份”。其次是增量更新:不需要把所有旧数据翻出来重训,而是在新样本(配合适量旧样本)上继续训练,控制学习率防止剧烈震荡。最后是知识蒸馏:让训练好的旧模型当“老师”,对新模型输出包含类别相似关系的软概率作为额外监督信号,帮助新模型在学习新病时“记住”旧病的诊断经验。

会进修的医生才配叫专家,会持续学习的模型才扛得住季节轮转和病害变迁。这正是农业场景对 AI 最真实的要求:不是一次上线,而是长久陪伴。

L=α LCE(y,ps)+(1−α) T2⋅LKL(pt(T),ps(T))\displaystyle \mathcal{L} = \alpha\, \mathcal{L}_{CE}(y, p_s) + (1 - \alpha)\, T^2 \cdot \mathcal{L}_{KL}(p_t^{(T)}, p_s^{(T)})
总损失由两部分组成:一部分教新模型拟合真实标签,另一部分教它模仿旧模型的“口味”,从而既学新知识、又不忘旧本领。
  1. p_t 与 p_s(新旧模型概率)旧模型(老师)与新模型(学生)对同一叶片样本输出的类别概率分布,前者带着旧知识。
    pt(T),ps(T)\displaystyle p_t^{(T)}, p_s^{(T)}
  2. T(温度系数)对概率分布做“软化”的温度参数,T>1 时分布更平滑,能暴露类别间相似关系,T² 用于校正梯度尺度。
    T2\displaystyle T^2
  3. α(权衡系数)控制在“模仿真实标签”与“模仿旧模型”之间的权重,通常取 0.6~0.8,偏向保住旧知识。
    α\displaystyle \alpha
  4. 两项相加(总损失)交叉熵保证新类别精度,KL 散度传递旧模型经验,二者合力对抗灾难性遗忘。
    α LCE+(1−α) T2⋅LKL\displaystyle \alpha\, \mathcal{L}_{CE} + (1 - \alpha)\, T^2 \cdot \mathcal{L}_{KL}

AI 应用场景

农户手机拍照问诊

阶段:边缘部署 + 实时推理

解决的问题:传统方式下,农户发现叶片异常只能上网搜图对比,搜到的结果常常张冠李戴,或等农技员上门,一等就是好几天,病害早已扩散。AI 用手机本地离线推理,2 秒内给出病害名称、置信度和用药建议,不依赖网络。

具体案例:水稻种植户老张发现稻田出现灰白色病斑,打开小程序对准叶片拍照,模型识别为“稻瘟病,置信度 86%”,并推荐喷施三环唑及注意事项。这相当于把一位免费的老郎中装进了老张的口袋。

植保无人机巡田病害热区检测

阶段:数据采集 + 批量推理

解决的问题:人工巡田逐块查看几百亩地,耗时且容易漏掉早期病株。AI 让无人机按航线自动拍照,边缘盒子实时识别每张图中的病害,最终生成整片田的病害分布热力图,标出重病区,指导精准施药。

具体案例:某智慧农业服务公司用搭载摄像头的无人机对千亩小麦田巡飞,1 小时采集 8000 张图像,边缘计算设备当场识别出 37 处锈病热点,效率是人工巡田的 20 倍。

农技站离线问诊终端

阶段:持续学习 + 增量更新

解决的问题:偏远乡镇网络差、专家少,传统下乡坐诊覆盖面有限。AI 离线终端放在农技站,农民随时拍照问诊;终端自动留存“低置信度”照片作为候选新样本,农技员定期标注回传训练中心,用知识蒸馏更新模型,让系统越用越聪明。

具体案例:某县农业技术推广站部署离线问诊终端半年,累计接待 5000 余次问诊,从中挖掘出 2 种本地新发病害,经专家确认后完成模型升级,新病害识别准确率达到 90% 以上。

Python 演示

python65 行
import numpy as np  def augment(img):    """数据增强:随机水平翻转 + 亮度扰动"""    if np.random.rand() < 0.5:        img = img[:, ::-1]    return np.clip(img * np.random.uniform(0.8, 1.2), 0, 1)  def make_synthetic_data(n=80, size=32):    """合成叶片样本:0 健康,1 稻瘟,2 锈病,3 白粉病"""    rng = np.random.default_rng(42)    images, labels = [], []    for i in range(n):        leaf = np.full((size, size, 3), rng.uniform(0.35, 0.55))        disease = i % 4        if disease == 1:            y = x = size // 3            leaf[y - 4:y + 4, x - 4:x + 4] = [0.15, 0.12, 0.10]        elif disease == 2:            leaf[:, ::5] = [0.4, 0.28, 0.12]        elif disease == 3:            mask = rng.random((size, size)) > 0.88            leaf[mask] = [0.9, 0.9, 0.85]        images.append(augment(leaf))        labels.append(disease)    images = np.array(images)    images = (images - images.mean()) / (images.std() + 1e-6)    return images, np.array(labels)  def extract_features(images, block=8):    """图像预处理 + 特征:分块亮度方差,模拟卷积层输出的纹理统计"""    n, h, w, _ = images.shape    gh, gw = h // block, w // block    feats = np.zeros((n, gh * gw * 3))    for i in range(gh):        for j in range(gw):            patch = images[:, i * block:(i + 1) * block, j * block:(j + 1) * block, :]            feats[:, (i * gw + j) * 3:(i * gw + j + 1) * 3] = patch.reshape(n, -1, 3).std(axis=1)    return feats  def nearest_center_predict(feats, centers):    """轻量分类:用最近类中心做推理"""    dists = np.linalg.norm(feats[:, None, :] - centers[None, :, :], axis=-1)    return dists.argmin(axis=1)  def main():    images, labels = make_synthetic_data()    feats = extract_features(images)    rng = np.random.default_rng(1)    idx = rng.permutation(len(images))    tr, va = idx[:60], idx[60:]    centers = np.stack([feats[tr][labels[tr] == c].mean(axis=0) for c in range(4)])    preds = nearest_center_predict(feats[va], centers)    acc = (preds == labels[va]).mean()    print("训练样本:", len(tr), "验证样本:", len(va))    print("轻量识别模型验证准确率: {:.1%}".format(acc))  if __name__ == "__main__":    main()
目的:完整跑通“增强 → 预处理 → 特征 → 轻量分类”的病害识别最小闭环,体会从数据到推理的全过程。
  1. images = (images - images.mean()) / (images.std() + 1e-6)归一化预处理,把像素分布拉到标准范围,对应正文的“光照归一化”。
  2. if np.random.rand() < 0.5: img = img[:, ::-1]随机水平翻转的数据增强,每轮训练看到不同“姿势”的叶片。
  3. leaf[:, ::5] = [0.4, 0.28, 0.12]模拟锈病的条状病斑,创造可区分的纹理特征。
  4. feats[:, ...] = patch.reshape(n, -1, 3).std(axis=1)分块统计颜色方差,类似卷积层提取纹理响应,病斑越多方差越大。
  5. centers = np.stack([...mean(axis=0)...])按类别计算特征中心,相当于“老郎中的病例模板”。
  6. dists = np.linalg.norm(feats[:, None, :] - centers[None, :, :], axis=-1)计算每张图到各类中心的距离,最近者即为诊断结论。

常见误区

误区“我从网上爬了一万张叶片图,模糊的、带水印的都行,反正数量大,模型总能学会。”

正解模型学的是数据分布,而不是简单地“记住图片”。模糊、重复、错标签的样本会把模型的注意力引向噪声,就像老郎中看了十年错误的病例,医术不可能好。宁可要 3000 张按规范采集、专家标注的照片,也不要 10000 张脏数据——数据质量决定模型上限,增强可以扩量,却无法补救标注错误。

为何常见:人们习惯性认为“大数据 = 好模型”,却忽略了数据分布偏移和标注噪声会随着数据量被成倍放大。

误区“ResNet152 肯定比 MobileNet 准,我把网络加到最深、参数加到最多就对了。”

正解田间病害数据集通常只有几千到几万张,大模型极易过拟合,训练集上 99% 准确率、实际田里一测就露馅;更重要的是,边缘设备的内存和算力根本装不下大模型。轻量网络 + 量化在精度损失不到 2% 的情况下,换来 5 倍以上的推理速度,这才是农业落地的务实选择。

为何常见:学术榜单总在比拼参数数量和准确率,让人误以为“越大越强”,忽视了部署约束和小样本的现实。

误区“模型上线后就不用管了,年年用同一个版本,反正当时测的准确率很高。”

正解田间病害随气候、农药、品种和地域不断演变,今天没见过的病斑明年可能爆发。如果不启用持续学习机制定期吸收新样本,模型会像不再进修的老郎中一样“落伍”:对陌生病斑给出高置信度的错误答案,比不给答案更危险。

为何常见:传统软件讲究“稳定运行”,人们容易把 AI 模型也当成写死的代码,忽略了它依赖数据分布、需要随环境更新的本质。

误区“增强嘛,就是把每张图复制几份丢进训练集,多开几份'作业'而已。”

正解真正的增强是在训练时对每张图随机施加翻转、旋转、裁剪、色彩抖动等在线变换,每一轮训练看到的图片都不完全相同,等效于让模型见更多变的“病人形态”;而静态复制同一张图只是增加重复样本,不会带来任何新信息,反而可能加剧过拟合。

为何常见:从“增加数据量”的字面意思去理解增强,忽视了它的本质是引入分布多样性,而非简单的数量堆砌。

面试题

Q1. 深度可分离卷积将标准卷积拆分为哪两个连续操作?

单选题 · easy

  • A.逐通道卷积与逐点卷积← 正确答案
  • B.最大池化与平均池化
  • C.批归一化与丢弃层
  • D.全连接与激活函数

答案:A。深度可分离卷积先做逐通道卷积,每个通道独立卷一次;再做逐点卷积,用 1×1 卷积融合通道信息。相比标准卷积,计算量大为减少,这是轻量网络如 MobileNet 的核心组件。池化、归一化、全连接都不是对标准卷积的拆分。

Q2. 迁移学习微调时通常采用较小的学习率,主要原因是?

单选题 · mid

  • A.避免破坏预训练特征← 正确答案
  • B.加快训练收敛速度
  • C.减少离线推理耗时
  • D.防止内存占用过大

答案:A。预训练权重已经学到丰富的通用视觉特征,相当于老郎中的十年功底;小学习率是为了“微调”而不是“洗掉”这些特征。学习率过大会让模型只凭少量本地样本重新学,容易过拟合。收敛速度、推理耗时、内存占用都与学习率大小无直接关系。

Q3. 图像归一化预处理的主要作用是?

单选题 · easy

  • A.把彩色图像转换为灰度图
  • B.增大图像的尺寸大小
  • C.自动标注图像的病害类型
  • D.让像素分布更规整稳定← 正确答案

答案:D。归一化将每个通道的像素减去均值、除以标准差,使输入分布稳定在均值 0、方差 1 附近,模型对光照尺度的敏感性显著降低,训练更平稳、收敛更快。转灰度、放大尺寸、自动标注都不是归一化的功能。

Q4. 边缘端把模型做 8-bit 量化的主要目的是?

单选题 · easy

  • A.压缩体积并加速推理← 正确答案
  • B.提升模型识别准确率
  • C.增加模型的可解释性
  • D.扩大训练样本的数量

答案:A。8-bit 量化把浮点参数压成 0~255 的整数,模型体积缩小约 4 倍,整数运算在低端芯片上更快,这正是“小药箱”能背进田里的关键。量化通常只带来极小的精度损失,不会提升准确率,与可解释性、数据量无关。

Q5. 交叉熵损失函数最适合用来衡量?

单选题 · mid

  • A.图像边缘的清晰程度
  • B.模型参数的稀疏程度
  • C.分类概率与真实标签的差距← 正确答案
  • D.目标检测框的重叠比率

答案:C。交叉熵衡量预测概率分布与真实标签分布之间的差异,预测越接近真实类别,损失越低,是多分类任务的标准损失。边缘清晰度属于图像质量范畴,参数稀疏度是模型压缩关注点,检测框重叠率属于目标检测的 IoU 指标。

Q6. 持续学习中引入知识蒸馏,主要目的是?

单选题 · hard

  • A.把图像压缩成更小的文件
  • B.提升数据增强的倍率大小
  • C.用旧模型软输出约束新模型← 正确答案
  • D.直接减少模型的参数量

答案:C。知识蒸馏让旧模型充当“老师”,对旧类别输出包含类间相似度的软概率,新模型模仿这份输出,从而在学会新病害的同时保留旧知识、抵抗灾难性遗忘。压缩文件、增强倍率、参数减少都与蒸馏的核心机制无关。

Q7. 新病害类别样本远少于旧类别时,需要特别警惕什么问题?

单选题 · hard

  • A.图像分辨率自动升高
  • B.类别不平衡导致新类欠学习← 正确答案
  • C.模型推理速度越来越慢
  • D.损失函数计算变为负数

答案:B。新病害样本只有几十张而旧类别有上万张时,模型天然偏向样本多的类别,导致新类“欠学习”、识别率很低。应对策略是类别重加权、过采样或合成样本,让训练在新旧类别之间保持均衡。其余选项都是不合理的衍生想象。

Q8. 下列哪些属于常见的数据增强手段?

多选题 · mid

  • A.随机水平翻转图像样本← 正确答案
  • B.随机亮度对比度扰动← 正确答案
  • C.随机裁剪缩放局部区域← 正确答案
  • D.手工修改图像标签信息

答案:ABC。翻转、亮度扰动、随机裁剪都是标准数据增强手段,目的是让模型见到更丰富的“病人形态”,相当于老郎中换着角度观察病叶。手工修改标签属于数据造假,会引入标注噪声,绝对不属于增强。

Q9. 轻量模型在边缘端离线部署通常包含哪些步骤?

多选题 · mid

  • A.模型格式转换与量化存储← 正确答案
  • B.嵌入离线推理引擎运行← 正确答案
  • C.内置诊断规则与用药建议← 正确答案
  • D.强制联网上传所有照片

答案:ABC。离线部署链路是:格式转换(如 TFLite/ONNX)→ 量化压缩 → 嵌入离线推理引擎 → 配置诊断规则与用药知识库,全程不依赖网络。强制联网上传照片违背离线场景设计,会带来延迟、断网失效和隐私风险。

Q10. 要训练一个真正可用的作物病害识别模型,需要关注哪些环节?

多选题 · hard

  • A.按规范采集病害叶片图像← 正确答案
  • B.由植保专家标注病害类别← 正确答案
  • C.设计轻量网络并训练评估← 正确答案
  • D.只用单张图像反复训练

答案:ABC。一个可用的模型需要规范采集的样本、专家标注、轻量网络设计与严谨的训练评估闭环,三步缺一不可。只用单张图像反复训练必然严重过拟合,连“见过”的图都认不全面,更不用说泛化到真实田块。