当前位置:首页>农业>智慧农业采摘革命:基于ROS与YOLO-Pose关键点检测的水果采摘点识别数据集全解析

智慧农业采摘革命:基于ROS与YOLO-Pose关键点检测的水果采摘点识别数据集全解析

  • 2026-07-09 19:38:28
智慧农业采摘革命:基于ROS与YOLO-Pose关键点检测的水果采摘点识别数据集全解析

人口老龄化与劳动力短缺正严重制约水果种植业发展,智能采摘机器人成为破解“谁来种地、谁来采收”困局的关键。而机器人能否精准、无损地完成采摘,核心在于对果实采摘点的视觉定位能力——这要求算法不仅要检测果实,还需精确识别果梗等关键部位。本文深入解析一个专为水果采摘机器人设计的视觉感知数据集,包含937张图像、标注2,500个果实3个关键特征点,并提供基于YOLO-Pose v11ROS环境下的训练与部署代码,助力精准农业与机器人自动化。

📊 数据集核心档案

属性
详情
数据集名称
水果采摘点关键点检测数据集
总图像量937张
标注目标数约2,500个
水果实例
水果种类
苹果、橘子、草莓 (或其他需采摘的果实)
标注格式
边界框 (Bounding Box) + 3个关键点 (Keypoints)
关键点定义
底部、顶部、采摘点 (果梗/果柄)
任务类型
目标检测 + 姿态估计 (YOLO-Pose)
配套资源
多个微调模型权重 (result1.pt, result2.pt) + ROS推理脚本
核心应用
农业采摘机器人视觉系统、精准农业自动化

🔍 数据集深度剖析

🎯 三个关键点,直指采摘核心

该数据集的最大特色在于关键点的任务导向设计

  1. 底部 (Bottom)
    :果实与果梗的连接处下方,辅助定位果实整体方位。
  2. 顶部 (Top)
    :果实远离果梗的一端,用于判断果实大小和朝向。
  3. 采摘点 (Picking Point)
    核心关键点,即果梗或果柄的切断位置。机器人末端执行器需精确移动至此,完成无损采摘。

通过检测这三点,可推导出果实的姿态、成熟度(通过大小)以及最优剪切角度,为机械臂规划提供充分视觉信息。

🍎 多类水果,挑战通用性

数据集包含苹果、橘子、草莓等形态、大小、颜色差异显著的水果,对模型的跨物种通用性细粒度特征提取能力提出高要求。训练出的模型有望在不同果园场景中部署。

📈 数据规模与应用场景

937张图像、2,500个实例的规模属于中小型专用数据集,但结合迁移学习足以训练出可用的采摘点检测模型。其配套的ROS推理模块表明该数据集天然面向机器人实际部署,而非仅学术研究。

🚀 实战代码:基于YOLO-Pose v11的采摘点检测

以下提供基于Ultralytics YOLO-Pose v11的训练、评估与ROS接口核心代码,并演示如何调整OKS权重以匹配采摘点精度需求。

1. 环境准备

pip install ultralytics rospy cv-bridge sensor-msgs  # ROS环境需额外安装

2. 数据集准备与关键点配置

假设数据标注为YOLO-Pose格式(class_id x_center y_center width height kp1_x kp1_y kp1_v kp2_x kp2_y kp2_v ...),关键点顺序为:底部、顶部、采摘点

创建数据集配置文件 fruit_picking.yaml

# ============================================================
# 场景:水果采摘点关键点检测 - YOLO-Pose配置
# 关键:定义3个关键点及其可见性,调整OKS权重
# 经验:采摘点(索引2)权重最高,以优化采摘精度
# ============================================================
path: ./fruit_picking_dataset  # 数据集根目录
train: images/train
val: images/val
test: images/test  # 可选

nc:1# 类别数 (此处假设为'fruit'一类,可细分)
names:['fruit']

# 关键点定义 (YOLO-Pose要求)
kpt_shape:[3,3]# [num_kpts, num_dims] -> 3个关键点,每个有x,y,visible
# OKS权重: 用于计算关键点相似度 (必须与kpt_shape对应)
# 底部:0.05, 顶部:0.05, 采摘点:0.1 (突出其重要性)
kpt_weights:[0.05,0.05,0.1]

3. 模型训练 (迁移学习 + 关键点损失调优)

# ============================================================
# 场景:水果采摘点检测 - YOLO-Pose v11训练
# 策略:使用COCO预训练的pose模型,冻结骨干网络前几层
# 调优:重点关注关键点损失,调整OKS权重已体现在配置中
# ============================================================

from ultralytics import YOLO
import wandb

wandb.init(project="fruit-picking-pose", name="yolov11-pose-finetune")

# 加载预训练的YOLO-Pose模型 (v11)
model = YOLO('yolo11n-pose.pt')# 或 yolo11s-pose.pt

# 训练参数
results = model.train(
    data='fruit_picking.yaml',
    epochs=120,
    imgsz=640,
    batch=12,
    device=0,
    workers=4,
    optimizer='AdamW',
    lr0=0.0005,# 较低学习率,保护预训练关键点特征
    lrf=0.01,
    momentum=0.937,
    weight_decay=0.0005,
    warmup_epochs=3,
# ----- 关键点损失权重 (在ultralytics中通过loss配置) -----
# 在YOLOv11中,关键点损失(pose loss)权重可通过配置文件调整,此处为示意
# 实际可在模型yaml中修改 loss_kpt 参数
    box=7.5,# 框损失增益
    cls=0.5,# 分类损失
    dfl=1.5,# DFL损失
    pose=12.0,# 关键点损失增益 (可调大,突出关键点学习)
    kpt_obj=1.0,# 关键点目标损失
# ----- 数据增强 (对关键点敏感) -----
    mosaic=1.0,
    mixup=0.1,
    copy_paste=0.0,# 复制粘贴可能破坏关键点语义,关闭或降低
    hsv_h=0.015, hsv_s=0.7, hsv_v=0.4,
    degrees=10,# 小角度旋转
    scale=0.5,
    fliplr=0.5,# 水平翻转 (需确认是否改变关键点顺序)
    project='runs/train',
    name='fruit_pose_exp',
    exist_ok=True
)

print(f"最终Pose mAP@0.5: {results.results_dict['metrics/pose_mAP_0.5']:.4f}")

4. 模型评估与采摘点精度分析

# ============================================================
# 场景:评估模型在验证集上的关键点精度
# 关注:采摘点(第3个关键点)的OKS和平均误差
# ============================================================

from ultralytics import YOLO
import numpy as np

model = YOLO('runs/train/fruit_pose_exp/weights/best.pt')

# 验证并获取详细指标
metrics = model.val(data='fruit_picking.yaml', split='val', plots=True)

# 解析关键点指标 (假设输出中包含)
# 手动计算采摘点平均欧氏距离误差 (需要真实和预测坐标)
# 此处为示意框架
defcalc_kpt_error(results, kpt_index=2):
"""计算指定关键点(索引)的归一化欧氏距离误差"""
    total_error =0
    count =0
for result in results:
if result.keypoints isnotNone:
# 获取预测关键点 (xy坐标)
            pred_kpts = result.keypoints.xy[0].cpu().numpy()# [3, 2]
# 此处需从数据集中获取真实关键点,简化省略
# error = np.linalg.norm(pred_kpts[kpt_index] - gt_kpts[kpt_index])
# total_error += error
            count +=1
    avg_error = total_error / count if count else0
print(f"采摘点平均归一化误差: {avg_error:.4f}")
return avg_error

# 注意:实际需配合数据集真实标注计算,这里仅演示结构

5. ROS接口集成 (核心部署模块)

#!/usr/bin/env python3
# ============================================================
# 场景:ROS节点,订阅摄像头图像,发布采摘点坐标
# 功能:加载训练好的YOLO-Pose模型,执行推理,提取采摘点
# 消息:发布采摘点的3D坐标 (相机坐标系) 用于机械臂规划
# ============================================================

import rospy
import cv2
import torch
import numpy as np
from sensor_msgs.msg import Image
from geometry_msgs.msg import PointStamped
from cv_bridge import CvBridge
from ultralytics import YOLO

classFruitPickingNode:
def__init__(self):
        rospy.init_node('fruit_picking_pose', anonymous=True)
        self.bridge = CvBridge()
# 加载模型 (使用训练好的result2.pt)
        self.model = YOLO('path/to/result2.pt')# 替换为实际权重路径
# 发布采摘点 (相机坐标系)
        self.pub_pick = rospy.Publisher('/fruit/picking_point', PointStamped, queue_size=10)
# 订阅图像话题 (根据实际相机调整)
        self.sub_img = rospy.Subscriber('/camera/rgb/image_raw', Image, self.image_callback)
        rospy.loginfo("YOLO-Pose 采摘节点已启动,等待图像...")

defimage_callback(self, msg):
try:
            cv_img = self.bridge.imgmsg_to_cv2(msg,'bgr8')
except Exception as e:
            rospy.logerr(f"图像转换失败: {e}")
return

# 执行推理 (指定关键点置信度阈值)
        results = self.model(cv_img, conf=0.25, iou=0.45, kpt_conf=0.3)

# 处理检测结果
for result in results:
if result.keypoints isnotNone:
# 提取置信度最高的目标 (或根据需求选择)
                kpts = result.keypoints.xy[0].cpu().numpy()# [3, 2]
                confs = result.keypoints.conf[0].cpu().numpy()if result.keypoints.conf isnotNoneelse[1,1,1]

# 找到采摘点 (索引2)
                pick_point = kpts[2]# (x, y) 像素坐标
                pick_conf = confs[2]

if pick_conf >0.5:# 置信度过滤
# 像素坐标转相机坐标系 (需相机内参和深度信息)
# 此处仅发布像素坐标示例,实际应使用深度图或双目视差计算3D点
                    point_msg = PointStamped()
                    point_msg.header = msg.header
                    point_msg.point.= pick_point[0]
                    point_msg.point.= pick_point[1]
                    point_msg.point.=0.0# 假设深度已知或由其他方式获取
                    self.pub_pick.publish(point_msg)
                    rospy.loginfo(f"发布采摘点: ({pick_point[0]:.1f}{pick_point[1]:.1f})")

# (可选) 可视化并发布带关键点的图像
        annotated_frame = results[0].plot()
        annotated_msg = self.bridge.cv2_to_imgmsg(annotated_frame,'bgr8')
# pub_img.publish(annotated_msg)  # 若定义了发布者

if __name__ =='__main__':
try:
        node = FruitPickingNode()
        rospy.spin()
except rospy.ROSInterruptException:
pass

📝 关键注释与优化建议

  1. OKS权重调整
    :这是提升采摘点精度的关键。在kpt_weights中给予采摘点(索引2)更高权重(如0.1),模型在训练时会更侧重于优化该点的定位误差。
  2. 损失函数调参
    :在YOLO-Pose中,可调整pose(关键点总损失)和kpt_obj(关键点目标损失)的增益。建议从小数据集开始网格搜索最佳比例。
  3. 数据增强限制
    :对于关键点任务,水平翻转需谨慎,若翻转会改变左右关键点语义(如采摘点始终在果梗侧),则需关闭或配合标注修改。旋转和缩放是安全的增强。
  4. 3D定位扩展
    :当前视觉仅输出2D像素坐标。在真实机器人系统中,需结合深度相机(如Intel Realsense)或双目视差,将2D点投影到三维空间,发布PointStamped消息供moveit等规划模块使用。

🏷️ 拓展思考与行业趋势

  • 从2D到3D姿态估计
    :当前标注为2D关键点,若引入多视角标注或深度数据,可训练3D姿态估计模型,直接输出采摘点在机器人基坐标系下的空间坐标,简化手眼标定流程。
  • 成熟度关联预测
    :可扩展标注,增加果实成熟度标签,使机器人在一次检测中同时决定“采或不采”,实现选择性收获。
  • 动态场景适应
    :果园环境中果实在风中摆动、枝叶遮挡频繁。引入时序信息(视频流)和跟踪算法(如ByteTrack),能提升系统在复杂自然条件下的稳定性。

🔖 文章标签

#农业机器人 #水果采摘 #YOLOPose #关键点检测 #ROS #智慧农业 #自动采收 #精准农业 #计算机视觉 #机器人控制

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-09 19:53:55 HTTP/2.0 GET : https://h.mffb.com.cn/a/561194.html
  2. 运行时间 : 0.171859s [ 吞吐率:5.82req/s ] 内存消耗:4,519.07kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=921b54207a34a6cd03983c377077b923
  1. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/runtime/temp/32b793ebdcbdb96aeb8bb24c123b0bef.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001012s ] mysql:host=127.0.0.1;port=3306;dbname=h_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001480s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000711s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000700s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001437s ]
  6. SELECT * FROM `set` [ RunTime:0.000614s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001598s ]
  8. SELECT * FROM `article` WHERE `id` = 561194 LIMIT 1 [ RunTime:0.006137s ]
  9. UPDATE `article` SET `lasttime` = 1783598035 WHERE `id` = 561194 [ RunTime:0.009159s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000628s ]
  11. SELECT * FROM `article` WHERE `id` < 561194 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001168s ]
  12. SELECT * FROM `article` WHERE `id` > 561194 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001182s ]
  13. SELECT * FROM `article` WHERE `id` < 561194 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001727s ]
  14. SELECT * FROM `article` WHERE `id` < 561194 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002151s ]
  15. SELECT * FROM `article` WHERE `id` < 561194 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010128s ]
0.173386s