☰
电力目标检测数据集构建与应用:从YOLO模型训练到工业部署全流程解析
2026/9/30 2:34:27 网站建设 项目流程

简介:电力目标检测数据集专为工业视觉算法研发与教学设计,面向计算机视觉工程师、电力智能化项目开发者及高校科研人员,聚焦YOLO系列模型在电力设施检测场景的落地实践,解决电线、变压器等关键设备自动识别与定位难题。压缩包共1120个文件,含559张JPG图像与对应YOLO格式TXT标注文件(含精确边界框与ELC单一类别标签),1个类别定义YAML配置文件及1份详细说明DOCX文档,整体仅23.44MB,轻量易部署。已有277人学习下载,资源结构规范、开箱即用:所有标注严格遵循YOLOv5-v12通用标准,适配主流训练框架;图像覆盖多角度、多光照工业现场环境,显著提升模型泛化能力;配套文档明确划分训练/验证/测试子集(392:112:55),并说明ELC类别的物理含义与典型样本特征,大幅降低数据理解与预处理门槛。

1. 项目概述:电力目标检测数据集.zip

最近在整理硬盘时,翻到了一个名为“电力目标检测数据集.zip”的压缩包。作为一名长期混迹在计算机视觉和工业应用领域的从业者,我立刻意识到这个数据集背后可能蕴含的价值。电力巡检,无论是传统的输电线路、变电站,还是新兴的风力发电、光伏电站,其安全稳定运行都离不开高效的自动化检测技术。而这一切的基石,就是一个高质量、针对性强的数据集。

这个数据集,从文件名来看,核心就是服务于“电力场景下的目标检测”。目标检测,简单说就是让计算机在图片或视频里,不仅认出有什么东西,还要用框(Bounding Box)精准地标出它在哪。在电力行业,这意味着自动识别绝缘子、防震锤、螺栓、鸟巢、甚至是细微的裂纹或锈蚀。过去,这些工作极度依赖巡检人员冒着风险、耗费大量时间进行肉眼排查。如今,结合无人机、固定摄像头和AI算法,可以实现7x24小时不间断、高精度的自动化巡检,大幅提升效率和安全性。

这个“电力目标检测数据集.zip”很可能就是训练这样一个智能“巡检员”所需的“教材”。它里面应该包含了大量在真实或模拟电力设备场景下拍摄的图片,并且每张图片里我们关心的目标(比如绝缘子串、输电塔、螺栓等)都已经被人工或半自动地标注好了位置和类别。对于想入门电力AI巡检的工程师、进行相关算法研究的学生、或是希望优化现有模型的团队来说,这样一个专项数据集无疑是宝贵的资源。

接下来,我将基于这个标题,结合常见的行业实践,为大家深度拆解如何理解、使用乃至构建这样一个数据集。我会涵盖从数据集的核心构成、标注规范、到基于它进行模型训练(以YOLO系列为例)的全流程,并分享在实际操作中积累的避坑经验和技巧。

2. 数据集核心构成与解析

拿到一个“电力目标检测数据集.zip”,我们首先需要解压并审视其内部结构。一个规范的数据集通常不是胡乱堆放一堆图片,而是有清晰目录和标准格式的。这对于后续的模型训练至关重要。

2.1 标准目录结构解析

一个典型的目标检测数据集,尤其是为了适配YOLO、MMDetection等主流框架,通常会遵循以下结构:

电力目标检测数据集/ ├── images/ │ ├── train/ │ │ ├── 000001.jpg │ │ ├── 000002.jpg │ │ └── ... │ ├── val/ │ │ ├── 000501.jpg │ │ └── ... │ └── test/ │ ├── 001001.jpg │ └── ... └── labels/ ├── train/ │ ├── 000001.txt │ ├── 000002.txt │ └── ... ├── val/ │ ├── 000501.txt │ └── ... └── test/ ├── 001001.txt └── ...
  • images/: 存放所有图像文件。通常进一步划分为train(训练集)、val(验证集)和test(测试集)。划分比例常见为7:2:1或8:1:1。训练集用于模型学习,验证集用于在训练过程中调整超参数和监控模型表现,测试集则用于最终评估模型泛化能力,在训练过程中绝对不可见。
  • labels/: 存放与images目录下每一张图片一一对应的标注文件。标注文件的格式因算法而异。对于YOLO格式,每个.txt文件与图片同名,其中每一行代表一个目标物体,格式为:<class_id> <x_center> <y_center> <width> <height>。这里的坐标是归一化后的值(即除以图片宽度和高度),范围在0到1之间。

注意:务必检查图片和标注文件是否严格一一对应。一个常见的错误是图片数量与标注文件数量不匹配,或者文件名后缀(如.jpg和.JPG)大小写不一致导致程序无法关联。在Linux下可以用脚本快速校验,在Windows下也建议写个简单Python脚本遍历核对。

2.2 电力场景目标类别定义

“电力目标检测”这个范围很广,数据集具体包含哪些类别,直接决定了它能训练出的模型的应用场景。根据常见的电力巡检需求,类别可能包括但不限于:

  1. 输电线路组件:
    • insulator(绝缘子):包括悬式、针式、复合绝缘子等,是检测的重点,缺陷包括破损、闪络、污秽。
    • damper(防震锤):用于减少导线振动。
    • spacer(间隔棒):保持分裂导线间距。
    • tower(输电塔):塔身主体,可用于塔基定位或塔型分类。
  2. 杆塔与金具:
    • bolt(螺栓):特别是输电塔杆螺栓,松动或缺失是重大安全隐患。
    • nut(螺母)。
    • fitting(金具):包括挂点、联板等。
  3. 设备与标志:
    • transformer(变压器)。
    • circuit_breaker(断路器)。
    • warning_sign(警示牌)。
  4. 缺陷与异常物:
    • bird_nest(鸟巢):易引起短路。
    • corrosion(锈蚀)。
    • crack(裂纹):在绝缘子或金属构件上。
    • foreign_object(异物):如塑料薄膜、风筝线等。

数据集通常会提供一个classes.txt或data.yaml(YOLO格式)文件来定义类别列表及其索引。例如:

# classes.txt insulator damper bolt bird_nest

2.3 数据标注格式详解

以最流行的YOLO格式为例,深入理解标注文件。假设有一张1280x720的图片,上面标注了一个绝缘子。这个绝缘子的边界框在图像上的像素坐标为:左上角(200, 100),右下角(400, 300)。

  1. 计算边界框中心点坐标和宽高:
    • x_center = (200 + 400) / 2 = 300
    • y_center = (100 + 300) / 2 = 200
    • width = 400 - 200 = 200
    • height = 300 - 100 = 200
  2. 归一化(除以图片尺寸):
    • x_center_norm = 300 / 1280 ≈ 0.2344
    • y_center_norm = 200 / 720 ≈ 0.2778
    • width_norm = 200 / 1280 ≈ 0.1563
    • height_norm = 200 / 720 ≈ 0.2778
  3. 假设insulator的类别ID是0,那么在对应的label.txt文件中,就会有一行:0 0.234375 0.277778 0.156250 0.277778

实操心得:归一化坐标的好处是与原始图像分辨率解耦,模型可以处理不同尺寸的输入。但务必确保你的数据预处理(如缩放、填充)和标注坐标计算方式一致,否则会导致目标框严重错位。例如,如果你训练时图片被等比例缩放并填充为正方形,那么推理时也必须采用完全相同的预处理流程。

3. 基于电力数据集的目标检测模型训练实战

有了结构清晰、标注准确的数据集,下一步就是选择模型进行训练。YOLO系列因其速度和精度的平衡,在工业界应用极广。这里以YOLOv8为例,展示完整的训练流程。

3.1 环境准备与依赖安装

首先需要一个配置好的Python环境。强烈建议使用Conda或虚拟环境来管理依赖,避免包冲突。

# 创建并激活虚拟环境 conda create -n power_inspection python=3.8 conda activate power_inspection # 安装PyTorch (请根据你的CUDA版本到PyTorch官网选择对应命令) # 例如,对于CUDA 11.8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 安装Ultralytics YOLOv8 pip install ultralytics # 安装其他可能用到的工具包 pip install opencv-python pillow matplotlib seaborn pandas

验证安装:

python -c "import torch; print(torch.__version__, torch.cuda.is_available())" python -c "from ultralytics import YOLO; print('YOLOv8 imported successfully')"

3.2 数据集配置文件准备

YOLOv8通过一个YAML文件来定义数据集路径和类别。我们需要在数据集根目录(或任意位置)创建一个power_detection.yaml文件。

# power_detection.yaml path: /home/user/datasets/电力目标检测数据集 # 数据集的绝对或相对路径 train: images/train # 训练集路径,相对于 path val: images/val # 验证集路径,相对于 path test: images/test # 测试集路径(可选) # 类别数量 nc: 4 # 假设我们有4个类别:insulator, damper, bolt, bird_nest # 类别名称列表,顺序必须与标注文件中的class_id严格对应 names: 0: insulator 1: damper 2: bolt 3: bird_nest

关键点:names字典的键(0,1,2,3)必须与标注文件.txt中每一行的第一个数字(class_id)完全一致。如果标注文件中出现了class_id=4,但你的nc:4且names只定义了0-3,训练时会报错。

3.3 模型训练与参数调优

使用YOLOv8的命令行接口进行训练非常简单,但理解关键参数才能训出好模型。

yolo task=detect mode=train model=yolov8n.pt data=power_detection.yaml epochs=100 imgsz=640 batch=16 workers=4

对参数的解释和调优建议:

  • model=yolov8n.pt: 选择预训练模型。n(nano),s(small),m(medium),l(large),x(xlarge) 模型尺寸和精度依次增加,速度依次降低。对于电力目标,通常目标不算特别微小,yolov8s或yolov8m是较好的起点,在精度和速度间取得平衡。
  • epochs=100: 训练轮数。电力数据集若样本量在数千级别,100-150轮通常足够。可通过观察验证集损失val/loss不再显著下降时提前停止。
  • imgsz=640: 输入图像尺寸。YOLOv8训练时会自动将图片缩放到此尺寸。更大的尺寸(如1280)有助于检测小目标(如螺栓),但会显著增加显存消耗和训练时间。需根据你的GPU显存调整。
  • batch=16: 批次大小。在GPU显存允许的前提下,较大的batch size有助于训练稳定。如果出现CUDA out of memory错误,需降低batch或imgsz。
  • workers=4: 数据加载的线程数。用于加速数据从硬盘到内存的读取。通常设置为CPU核心数左右。

进阶调参:

  • patience=50: 早停耐心值。如果连续50个epoch验证集性能没有提升,则自动停止训练,防止过拟合。
  • lr0=0.01: 初始学习率。如果从头开始训练(不使用预训练权重),可能需要更小的值,如0.001。
  • cos_lr=True: 使用余弦退火学习率调度,有助于模型收敛到更优的局部最小值。
  • augment=True: 启用数据增强(默认开启)。对于电力数据,随机翻转、旋转、亮度对比度调整非常有用,可以模拟不同天气、光照和拍摄角度的变化,极大增强模型鲁棒性。

训练开始后,Ultralytics会实时输出日志,并在runs/detect/train/目录下保存所有结果,包括:

  • 权重文件:best.pt(验证集上最优权重),last.pt(最后一个epoch的权重)。
  • 训练曲线图:损失函数、精度(mAP)的变化。
  • 验证结果样本:展示模型在验证集上的预测效果。

3.4 模型验证与性能评估

训练完成后,必须使用独立的测试集来评估模型的真实泛化能力。

yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=power_detection.yaml

评估报告会输出关键指标:

  • mAP50(Mean Average Precision at IoU=0.5): 最常用的指标,衡量模型在宽松阈值下的综合检测性能。对于电力巡检,通常希望达到0.85以上。
  • mAP50-95: 在IoU阈值从0.5到0.95(步长0.05)下的平均mAP,更严格,衡量定位精度。
  • precision(精确率): 模型预测为正的样本中,真正为正的比例。高精确率意味着误报(将背景识别为目标)少。
  • recall(召回率): 所有真实的正样本中,被模型正确找出的比例。高召回率意味着漏报少。

电力场景的特殊考量:

  • 对于“螺栓松动”、“绝缘子裂纹”这类小且难以检测的缺陷,需要特别关注其在测试集上的recall。漏检一个缺陷可能意味着一次严重的安全隐患。此时,可能需要在训练时调整损失函数的权重,或者采用更专注于小目标检测的模型变体。
  • 分析混淆矩阵,看模型是否容易混淆相似类别,例如将“防震锤”误认为“间隔棒”。如果存在,可能需要检查标注质量,或增加这两类样本的多样性。

4. 数据集的构建、增强与质量管控

很多时候,我们拿到的数据集可能不完美,或者需要自己从零开始构建。这部分分享从数据采集到标注质量控制的完整经验。

4.1 数据采集与预处理要点

  1. 数据来源多样性:

    • 无人机巡检视频:主流数据来源。需从视频中按一定间隔(如每秒1帧)抽帧,避免连续帧过于相似。注意选择不同天气(晴、雨、雾)、不同时间段(晨、午、夕)、不同季节(有无覆冰、植被遮挡)的数据。
    • 固定摄像头监控:适用于变电站、配电房等固定场景。可获取长期数据,用于检测状态渐变(如锈蚀扩大)。
    • 公开数据集与合成数据:可以借鉴类似场景的公开数据集(如部分电力设备数据集),或使用Blender等工具进行3D渲染合成,用于补充罕见缺陷样本(如严重破损的绝缘子)。
  2. 图像预处理:

    • 分辨率统一:虽然训练时会resize,但建议原始图片分辨率不宜过低(如低于640x480),否则会丢失细节。常见巡检无人机拍摄的2K/4K图片,需要先下采样到合适尺寸(如1920x1080)再标注和训练。
    • 格式与色彩:统一转换为.jpg或.png格式。检查并处理极暗、极亮或严重偏色的图像,可进行自动色阶或直方图均衡化,但要谨慎,避免改变缺陷的真实外观。
    • 去重:使用图像哈希(如pHash)或特征匹配方法,去除几乎完全相同的重复图片,提高数据集有效性。

4.2 高效标注流程与工具选择

人工标注是数据准备中最耗时的一环。选择合适的工具和流程至关重要。

  1. 标注工具推荐:

    • CVAT:功能强大,支持团队协作、视频标注、自动标注辅助,适合企业级项目。
    • LabelImg:经典的单机版工具,简单易用,直接生成YOLO格式的XML或TXT文件。
    • Roboflow:在线平台,提供数据预处理、增强、版本管理和标注一站式服务,非常适合个人和小团队快速启动。
    • Make Sense AI:免费的在线工具,无需安装,支持多种格式。
  2. 标注规范制定(必须!):

    • 边界框紧密度:框体应恰好包围目标物体,既不留过多空隙,也不切割物体本身。对于绝缘子串,是标单个绝缘子片,还是标一整串?这需要根据业务定义清楚。通常,检测缺陷以“串”为单位更合适,而计数则以“片”为单位。
    • 遮挡与截断处理:目标被部分遮挡怎么办?通常,只要可见部分超过50%且能明确判断类别,就应该标注。对于被截断在图像边缘的目标,框体就画到边缘为止。
    • 小目标标注:像螺栓这样的小目标,几个像素点大小,是否要标?这取决于检测需求。如果要检测螺栓缺失,就必须标。标注时需放大图像,确保框体准确。
    • 建立标注手册:将以上规则,连同每个类别的正例、负例、困难样例图片,编写成文档,分发给所有标注人员,并定期进行一致性校验。

4.3 数据增强策略针对电力场景

数据增强是提升模型鲁棒性、防止过拟合的廉价且有效的方法。对于电力数据集,除了通用的翻转、旋转、裁剪、色彩抖动外,应特别考虑以下针对性增强:

  1. 模拟天气与光照变化:

    • 雾霾模拟:添加高斯噪声或使用雾化滤波器,模拟雾天、沙尘天气的巡检条件。
    • 雨雪模拟:在图像上添加随机方向的条纹,模拟雨滴或雪花的动态模糊效果。
    • 亮度与对比度随机调整:模拟清晨、黄昏、逆光等复杂光照。
  2. 模拟拍摄视角与抖动:

    • 随机透视变换:模拟无人机从不同角度拍摄杆塔时产生的透视形变。
    • 运动模糊:添加轻微的运动模糊,模拟无人机悬停不稳或快速移动时的拍摄效果。
  3. 针对小目标的增强:

    • 随机拼接(Mosaic):YOLOv8默认启用。将四张图片拼接为一张,极大地增加了每个批次内目标的上下文多样性,对小目标检测尤其有益。
    • 复制-粘贴增强:将小目标(如螺栓)实例随机复制粘贴到图像的其他背景区域,增加其出现的频率和多样性。但需注意粘贴的自然度(阴影、光照一致性)。

注意事项:数据增强应在训练时在线进行(如YOLOv8内置的增强),而不是预先处理并保存到硬盘,这样可以无限生成多样的训练样本。但要确保增强是合理的,例如,对“警示牌”进行上下翻转可能使其文字不可读,失去意义,这类目标应禁止翻转增强。

4.4 数据集质量检查与清洗

低质量的标注会严重误导模型。训练前必须进行清洗。

  1. 自动检查脚本:

    • 格式校验:检查每个标注文件的行格式是否正确,坐标值是否在[0,1]范围内。
    • 空标签文件:确认没有目标的图像(负样本)其标注文件应为空,或者不存在标注文件(取决于你的处理逻辑)。
    • 标签错漏检查:使用训练好的一个简单初始模型(或公开模型)在数据集上跑一遍推理,将模型预测结果与人工标注进行对比。对于模型高置信度检测到但人工未标注的区域,以及人工标注了但模型始终检测不到的区域,需要重点复核。这能有效发现漏标和错标。
  2. 人工抽样复核:

    • 随机抽取至少5%-10%的图片,由资深人员(或交叉由不同标注员)进行二次审核。
    • 重点关注类别模糊的目标、小目标、密集目标区域的标注质量。
  3. 类别平衡分析:

    • 统计每个类别的实例数量。如果“鸟巢”只有几十个样本,而“绝缘子”有上万个,模型会严重偏向多数类。解决方法包括:对少数类进行过采样(重复使用)、数据增强、或在损失函数中为少数类赋予更高的权重(class weights)。

5. 模型部署与实际应用挑战

训练出一个指标不错的模型只是第一步,将其部署到实际巡检环境中并稳定运行,会遇到更多挑战。

5.1 模型轻量化与优化

巡检端(如无人机机载电脑、边缘计算盒子)通常计算资源有限,需要模型又快又小。

  1. 模型选择与剪裁:

    • 从YOLOv8n(纳米版)开始尝试,如果精度满足要求,它就是最佳选择。
    • 如果精度不够,可以尝试稍大的s或m,然后使用模型剪枝技术移除网络中不重要的神经元或通道,在精度损失很小的情况下大幅减少参数量和计算量。有专门的剪枝工具如torch-pruning。
  2. 量化:

    • 训练后量化:将训练好的FP32模型转换为INT8精度,模型大小减少约75%,推理速度提升2-3倍,是性价比最高的优化手段之一。可以使用TensorRT、OpenVINO或PyTorch自带的量化工具。
    • 量化感知训练:在训练过程中模拟量化操作,让模型适应低精度计算,通常能获得比训练后量化更好的精度。
  3. 引擎转换:

    • 将PyTorch模型转换为针对特定硬件优化的引擎格式,能极大提升效率。
    • NVIDIA GPU:转换为TensorRT引擎(.engine)。
    • Intel CPU/GPU:转换为OpenVINO IR格式(.xml和.bin)。
    • 移动端/边缘设备:转换为TFLite(.tflite)或CoreML格式。

5.2 部署架构与推理流水线

一个典型的端到端电力巡检AI流水线包括:

[无人机视频流] -> [视频抽帧] -> [图像预处理] -> [AI模型推理] -> [后处理] -> [结果可视化/告警]
  1. 推理服务化:

    • 将模型封装为gRPC或HTTP API服务(如使用FastAPI),部署在边缘服务器或云端。无人机或摄像头将图片上传至服务,获取检测结果。
    • 优点:模型更新、维护方便;缺点:依赖网络,有延迟。
  2. 边缘端直接部署:

    • 将优化后的模型(如TFLite)直接部署到无人机机载计算机(如NVIDIA Jetson系列、华为Atlas)或巡检机器人上。
    • 优点:实时性强,不依赖网络;缺点:硬件成本高,模型更新麻烦。
  3. 后处理与业务逻辑集成:

    • 去重:对于视频流,相邻帧可能检测到同一个目标,需要使用跟踪算法(如ByteTrack)或简单的IOU去重。
    • 状态判断:检测到“绝缘子”后,可能需要二级模型或规则判断其状态(正常/破损)。例如,可以再训练一个分类网络,对检测框内的绝缘子区域进行细粒度分类。
    • 告警生成:根据业务规则(如连续3帧检测到鸟巢、螺栓的检测框位置发生位移等)生成不同等级的告警,并推送至运维平台。

5.3 实际场景中的挑战与应对

  1. 复杂背景干扰:

    • 问题:电力设备常处于野外,背景包含天空、山脉、森林、农田,颜色和纹理与目标相似,易造成误检。
    • 应对:在数据采集中尽可能包含多样化的背景。训练时可以使用注意力机制(如YOLOv8自带的CBAM模块)增强模型对目标区域的关注。此外,数据增强中增加随机背景替换也是一种有效方法。
  2. 尺度变化巨大:

    • 问题:无人机远近飞行,同一类目标(如输电塔)在图像中尺度变化可能超过10倍。
    • 应对:使用多尺度训练,在训练时随机切换不同的输入图像尺寸(如320, 640, 1280),迫使模型学习适应不同尺度的目标。YOLOv8的imgsz参数可以设置为一个范围,如imgsz=[640, 1280]。
  3. 小目标检测:

    • 问题:螺栓、销钉等目标可能只有十几个像素点,在特征金字塔中高层特征图上信息几乎丢失。
    • 应对:
      • 使用更高分辨率的输入(imgsz=1280)。
      • 采用更密集的锚点框或Anchor-Free的检测头(如YOLOv8使用的解耦头)。
      • 在数据增强中专门使用小目标增强策略(如复制粘贴)。
      • 在模型结构上,可以尝试改进特征金字塔网络,增强浅层特征(包含更多细节)向检测头的传递。
  4. 光照与天气影响:

    • 问题:强光、逆光、阴天、雾天导致图像质量下降,目标特征模糊。
    • 应对:前文提到的针对性数据增强是根本。此外,在推理前可以加入图像预处理模块,如自适应直方图均衡化、Retinex算法等,进行图像增强。但要注意,预处理算法本身也会增加计算开销。

6. 持续迭代与模型维护

AI模型不是一劳永逸的,电力巡检场景也在不断变化。建立一个持续迭代的闭环至关重要。

  1. 建立反馈闭环:

    • 在实际部署中,系统肯定会遇到误检和漏检。需要建立一个便捷的渠道,让现场运维人员能够将出错的图片(连同正确的结果)一键反馈回来。
    • 这些“困难样本”是提升模型性能最宝贵的资源。
  2. 主动挖掘困难样本:

    • 定期用当前模型对积累的大量未标注巡检图片进行推理,筛选出模型置信度低(预测结果模棱两可)或与历史检测模式差异大的样本,交给人工复审和标注。
    • 这种方法可以高效地发现模型认知的“盲区”。
  3. 增量学习与模型更新:

    • 将新收集标注的困难样本与原有训练集混合,进行增量训练。为了避免模型遗忘旧知识(灾难性遗忘),可以采用以下策略:
      • 保留一部分旧数据一起训练。
      • 使用较小的学习率。
      • 采用弹性权重巩固等算法。
    • 每次模型更新后,必须在独立的测试集和历史反馈样本集上进行严格评估,确保新模型在所有关键场景下的性能均不下降。
  4. 模型版本化管理:

    • 使用MLOps工具(如MLflow, DVC)或简单的文件命名规则,对数据集版本、模型训练配置、训练出的权重文件进行关联管理。
    • 记录每次迭代的性能变化、解决的问题。这样当新模型出现问题时,可以快速回滚到稳定版本。

从我个人的经验来看,构建和用好一个像“电力目标检测数据集”这样的专项资源,其价值远超训练出一个高精度模型本身。它迫使你去深入理解业务场景(电力设备的构造、常见缺陷、巡检规程),去规范数据工程的全流程,去思考模型在实际中的落地挑战。这个过程积累下来的经验、工具链和质量管控体系,是可以复用到其他工业视觉检测项目的宝贵财富。最终,一个成功的项目,是算法、数据、工程和领域知识紧密结合的产物。

本文还有配套的精品资源,点击获取

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

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

立即咨询