<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>端侧推理 on FXIO 技术博客</title><link>https://fxio.site/tags/%E7%AB%AF%E4%BE%A7%E6%8E%A8%E7%90%86/</link><description>Recent content in 端侧推理 on FXIO 技术博客</description><generator>Hugo -- 0.157.0</generator><language>zh-cn</language><lastBuildDate>Mon, 24 Aug 2026 01:00:00 +0800</lastBuildDate><atom:link href="https://fxio.site/tags/%E7%AB%AF%E4%BE%A7%E6%8E%A8%E7%90%86/index.xml" rel="self" type="application/rss+xml"/><item><title>疲劳警报迟到了 10 秒：Android 端侧多检测器实时管线的调试实录</title><link>https://fxio.site/posts/android/android-driver-vision-real-time-detection/</link><pubDate>Mon, 24 Aug 2026 01:00:00 +0800</pubDate><guid>https://fxio.site/posts/android/android-driver-vision-real-time-detection/</guid><description>&lt;blockquote&gt;
&lt;p&gt;核心问题：当 YOLO、人脸、人手三个模型同时跑在一条手机摄像头流上，怎么让快的检测器不被慢的拖死，让该响的警报一秒都不迟到？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;!-- more --&gt;
&lt;h2 id="第一次真机测试警报迟到了八秒"&gt;第一次真机测试：警报迟到了八秒&lt;/h2&gt;
&lt;p&gt;凌晨一点，把 APK 装到真机上，对着摄像头闭眼。预期：闭眼 1.2 秒后疲劳警报响起。实际：我闭着眼睛数了快十秒，屏幕上的&amp;quot;闭眼时长&amp;quot;读数还在几百毫秒徘徊，警报才不情不愿地响起来。&lt;/p&gt;
&lt;p&gt;第一反应是推理太慢。但看监控数据完全不是这么回事——MediaPipe 人脸关键点单帧只要几毫秒，YOLO 手机检测也就三五十毫秒，加起来远够不到十秒。问题出在别处。&lt;/p&gt;
&lt;p&gt;这个项目是个&amp;quot;AI 检测助手&amp;quot;：一条 CameraX 取流管线，两种模式——车损分析（后摄，YOLO 检测车辆）和驾驶模式（前摄，同时跑 YOLO 手机检测 + MediaPipe 疲劳检测 + 手部验证）。从 23:30 的 init 提交到 00:45 的最后一个提交，75 分钟里踩的每一个坑，都值得记下来。&lt;/p&gt;
&lt;h2 id="一条管线三个检测器谁也不许拖累谁"&gt;一条管线，三个检测器，谁也不许拖累谁&lt;/h2&gt;
&lt;p&gt;先交代架构。整个 App 只有一个 &lt;code&gt;ImageAnalysis&lt;/code&gt; 分析器，模式切换只是改分发分支，不重绑相机——只有手动切前后摄才重新 bind。&lt;/p&gt;
&lt;div class="mermaid"&gt;
graph LR
A[CameraX 取流&amp;lt;br/&amp;gt;RGBA_8888] --&amp;gt; B[转 Bitmap]
B --&amp;gt; C{YOLO 手机类}
B --&amp;gt; D{FaceLandmarker&amp;lt;br/&amp;gt;疲劳}
B --&amp;gt; E{HandLandmarker&amp;lt;br/&amp;gt;按需}
C --&amp;gt; F[叠框 &amp;#43; 状态机]
D --&amp;gt; F
E --&amp;gt; F
F --&amp;gt; G[声音警报 / 叠框]
&lt;/div&gt;
&lt;p&gt;几个值得说的技术选择：&lt;/p&gt;</description></item></channel></rss>