乐于分享
好东西不私藏

AI帮医生"选角度":仅用2张切片,就能精准重建完整心脏3D模型!

AI帮医生"选角度":仅用2张切片,就能精准重建完整心脏3D模型!
往期文章
  1. 磁共振中的黑血对比度
  2. SLIP-一种非常有效的抑制背景脂肪方法
  3. 黑血心脏T1 Mapping
  4. 自由呼吸心脏T2 Mapping
  5. 一文带你搞懂磁共振ECV
  6. [每天学一点] 心脏篇-黑血LGE/灰血LGE/亮血LGE
  7. MRI 图像总 “变形”?揭秘 View-angle tilting 技术的 “修正魔法”
  8. 肝脏 MRI 检查迎来重大突破!一次扫描搞定多参数精准成像,运动干扰不再是难题

【引言】 

你知道吗?拍一张清晰的心脏MRI,需要患者一动不动憋气几十秒,医生要反复调整扫描角度,技师要操作几十甚至上百层切片——整个过程费时费力,病人也受罪。

但你有没有想过这个问题:

医生凭经验选的扫描角度,真的是AI分析心脏形态时"最看得清"的角度吗?

换句话说——那些沿用了几十年的临床标准切面(比如2腔心、4腔心),它们最初是为了人类医生看图设计的;但如果交给深度学习模型来重建三维心脏结构,这些角度是否依然最优?

最近,一篇发表在Sensors期刊上的研究(Weihsbach et al., 2024)就专门做了这件事:

让AI自己"摸索"出最适合重建心脏3D形态的扫描角度,而且只需要2张切片,就能同时重建出左心室、右心室、左心房、右心房和心肌共五个心脏结构的完整三维形状。

结果发现:AI找到的"最优角度",和医生惯用的标准角度,还真不完全一样。

[展示当前临床流程 vs. 研究提出的新流程对比图]

【正文】

  1. 传统心脏MRI:为什么要拍那么多切片?

要理解这项研究,先得弄清楚心脏MRI是怎么拍的。

心脏是一个不停跳动的三维器官。要"拍清楚"它,MRI扫描仪需要从多个方向"切"出若干二维切片,再由医生凭经验把这些切片在脑子里拼成一个三维印象。

目前临床上的标准流程大致是这样的:

第一步:拍一张低分辨率的"定位像"(Scout Scan),粗略找到心脏的位置;

第二步:医生在定位像上手动放置扫描平面,按照标准协议选定切面角度。常见的切面包括:

  • 2腔心切面(2CH):把左心室和左心房切开的那个平面
  • 4腔心切面(4CH):同时看到左右心室和心房的经典切面
  • 短轴切面(SA):垂直于心脏长轴的一叠切片,像切萝卜一样层层扫描

第三步:患者需要多次憋气(每次10~20秒),技师逐层采集,耗时很长。

[展示从定位像中自动提取的各种临床切面(AX、COR、SAG、p2CH、p4CH、SA、2CH)]

问题来了:这一套标准切面体系,是几十年前根据人类医生的视觉习惯建立起来的。但现在越来越多的心脏MRI分析开始交给AI来做——

那么问题就变成了:这些"为人类设计"的角度,对AI来说是不是最优的?

这就是这篇研究要回答的核心问题。

  1. 一个让MRI工程师头疼的物理矛盾

为什么不能直接拍足够多的高分辨率切片呢?因为MRI有一个根深蒂固的物理约束。

MRI的信噪比(SNR)受到这个公式的制约:

信噪比 ∝(检查对象的因素)×(共振频率)×(体素体积的平方根)÷(扫描时间的平方根)

翻译成人话就是:

  • 体素越小(分辨率越高),信噪比越低——图像越"糊"
  • 扫描时间越短,信噪比也越低——图像噪声越大
  • 心脏还在不断跳动,扫描时间越长,运动伪影越严重

同时,扫描总时间正比于切片数量乘以每层需要采集的K空间线数量。要同时提高分辨率、切片数量和时间分辨率,在物理上几乎是无解的。

这就是为什么临床上普遍采用"少切面、短扫描"的策略——但代价是只能获得有限的二维切片,全心三维重建往往做不到。

  1. 研究思路:与其多拍切片,不如让AI"精选角度"

研究者的核心思路非常聪明:既然减少切片数量是必由之路,那与其随便选角度,不如让AI来学习"哪两个角度包含了最丰富的三维心脏信息"。

整个pipeline分为三个阶段:

 展示完整流程图:Scout scan → Segmentation → 分析心脏形状 → 构建标准临床切面(P矩阵)→ 用神经网络预测优化切面(M矩阵)→ 将优化后的M矩阵返回给扫描仪

第一步:从低分辨率定位像做分割

先对Scout扫描图像做自动分割,得到心脏各腔室的大致轮廓。这是目前临床已经可以做到的事情,研究用的是nnU-Net模型。

第二步:从分割结果中提取标准临床切面

研究者模拟了临床医生找角度的过程——利用"惯性矩"(Inertial Moments)这个数学工具,从心脏分割形状自动计算出一组正交基,从而生成标准2CH、4CH、短轴等临床切面。

这相当于让AI"看懂"了医生平时是怎么放切面的。

第三步:训练神经网络预测"更好的角度"

这是最关键的部分。

研究团队设计了一个"采集模型"(Acquisition Model),包含两个核心操作符:

O_i(对齐操作):将输入的低分辨率体数据 Vin 进行空间对齐,输出一个重新定向后的体数据 Vor

C(切片操作):从对齐后的体数据中,按照矩阵 M 指定的方向切出一张二维切片 S

换句话说,O_i负责把心脏"摆正",C负责在正确的角度"切一刀"。

为了让这个"摆正+切刀"的过程可学习,研究者借鉴了Spatial Transformer Network(空间变换网络)的架构——这是一种让神经网络学会自己对齐输入图像的神奇设计,2015年由Jaderberg等人提出。

[展示 Acquisition Model + Reconstruction Model 的详细网络架构]

  1. 两阶段训练:让两个角度"分工合作"

训练策略也很有意思——研究者采用了"两阶段"训练,而不是让两个角度一次性同时优化。

原因:如果两个角度一起学,它们会互相"打架"(优化不稳定),最终效果反而不好。

Stage 1:固定第一个视角(切面1),只优化第二个视角(切面2)。把切面1的输出复制一份,训练80个epoch。

Stage 2:固定已经优化好的切面1,再优化切面2,也训练80个epoch。

Stage 3:最后,把两个已经固定的最优切面作为输入,从头训练一遍三维重建网络,确保重建质量达到最佳。

[展示两阶段训练过程中Dice分数的变化曲线,可见第二阶段优化后(2nd OPT)明显超过了标准2CH+4CH切面]

  1. 从2张切片到5个心脏结构的三维重建

切出来的两张切片,接下来要交给"重建模型"来"猜"出完整的三维心脏形状。

重建模型是一个"2D编码器 + 3D解码器"的不对称U-Net结构:

  • 2D编码器:用分组卷积(Grouped Convolutions)独立处理每张切片,避免不同切片之间信息泄露
  • 3D解码器:输出完整的128×128×128体素三维体积
  • 关键技术:在跳跃连接(Skip Connections)和瓶颈层(Bottleneck),使用网格采样操作(Grid-Sample)将2D特征"粘贴"回3D空间,使用的正是两个切面角度的逆仿射矩阵

最终,这个模型同时输出5个心脏结构的分割:心肌(MYO)、左心室(LV)、右心室(RV)、左心房(LA)、右心房(RA)。

用一个公式概括就是: Vre = R(S1, S2, ψR)

其中Vre是重建的三维体积,R是重建网络,S1和S2是两张优化后的切片,ψR是重建网络的参数。

损失函数同时使用了Dice Loss和交叉熵——这是医学图像分割中的经典组合。

[心脏3D部分,展示两个切面在训练过程中的角度变化过程,可以清晰看到切面从初始方向逐渐"旋转"到一个更有利于重建的方向]

  1. 实验设计:三重难度递进的验证

研究者设计了极其严谨的实验,分三个难度级别逐步逼近真实临床场景:

场景一(最理想):高分辨率定位像 + 人工标注的真实分割结果 场景二(中等):低分辨率定位像(6mm³大颗粒) + 人工标注的真实分割结果 场景三(最真实):低分辨率定位像 + 全自动分割结果

数据集用了两个:

  • MRXCAT:合成的心脏cine MRI数据,有100帧动态图像(1mm空间分辨率、50ms时间分辨率),相当于"完美答案已知的模拟考试"
  • MMWHS:真实临床MRI数据,包含20个患者,包含了大量病理性变形(心衰、心肌水肿、高血压、心律失常、扩张型心肌病等等)——这就是真正的"实战考试"
  1. 核心结果:AI优化的角度,真的比医生标准角度更好

先看最直观的对比——在难度最高的场景三(自动分割 + 低分辨率定位像)下:

对于MRXCAT合成数据(相对规整的心脏):

  • 标准2CH+4CH切面:HD95误差13.5mm,Dice 81.0%
  • AI优化后的切面:HD95误差9.7mm,Dice 79.9%
  • HD95误差降低了约28%,这是一个非常显著的进步

对于MMWHS真实临床数据(充满病变的变形心脏):

  • 标准2CH+4CH切面:HD95误差高达51.2mm,Dice仅51.6%——几乎无法用
  • AI优化后的切面:HD95误差降至42.6mm,Dice提升至54.0%
  • 虽然绝对误差仍然较大(说明任务本身极难),但优化依然带来了明显改善

Table 3

Table 4

[Table 3和Table 4的核心数据可视化,展示优化前后HD95误差和Dice分数的对比柱状图]

另一个非常有趣的发现是:在两阶段训练中,研究者观察到第一个切面在训练的前20个epoch里,就从初始的"冠状切面"自动旋转到了接近"4腔心"的位置——这说明4腔心切面天然包含了最丰富的心脏结构信息,和人类医学专家的经验不谋而合。

但在后续训练中,第二个切面找到了一个"补充视角",这个角度不是任何标准临床切面,而是专门为了填补4腔心看不到的那部分结构信息而"定制"的。

这正是AI的价值所在:它不受人类固有思维的束缚,可以找到人类想不到的角度组合。

  1. 推理速度:整个流程只需677毫秒

还有一个值得强调的数字:

在NVIDIA TITAN RTX 24GB显卡上,从输入两张切片到输出完整三维心脏体积,整个流程只需677毫秒(约0.7秒)。

其中:

  • 采集模型(2个):各2.8M参数
  • 分割模型:20.7M参数
  • 重建模型:15.5M参数

这意味着未来在临床工作中,完全可以在扫描结束后实时计算最优切面方向并指导下一步扫描,具有很强的工程可行性。

【结尾总结 + 互动引导】

这篇研究的核心启发,浓缩成一句话就是:

"医生凭经验选的扫描角度,可能不是AI重建心脏时最'看得清'的角度。"

通过让采集切面和三维重建任务联合优化,研究者证明了"任务导向型"的切面选择策略,可以显著提升从稀疏切片到完整三维心脏重建的质量——HD95误差降低最高达3.8mm,Dice分数最高超过80%。

当然,这项研究也有一些局限性:

  • 目前只验证了2张切片的情况,更多切片的表现还有待探索
  • 自动化分割的质量仍然是瓶颈,未来需要更鲁棒的分割模型
  • 还没有在真实扫描仪上做前瞻性临床验证

但可以预见的是,随着这类"采集-重建联合优化"方法的成熟,心脏MRI的扫描效率有望大幅提升——患者不用憋那么多次气,医生不用调那么多次角度,AI还能给出更准确的全心三维分析。

也许在不远的将来,MRI扫描仪会像一个"智能摄影师",一边扫描一边实时思考:"还有哪个角度能让我看得更清楚?"

你看好AI在医学影像采集环节的智能化吗?觉得还有哪些临床场景最需要这种"边扫边学"的优化策略?欢迎在评论区聊聊你的想法!

觉得这篇文章有收获的话,欢迎转发给做医学影像或者AI的朋友,我们下期见。


参考文献:Weihsbach, C.; Vogt, N.; Al-Haj Hemidi, Z.; Bigalke, A.; Hansen, L.; Oster, J.; Heinrich, M.P. AcquisitionFocus: Joint Optimization of Acquisition Orientation and Cardiac Volume Reconstruction using Deep Learning. Sensors 2024, 24, 2296. https://doi.org/10.3390/s24072296

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