智慧城管计算机视觉实战:从目标检测到工单闭环的关键技术

这两年做城市管理信息化项目,最多的需求不再是简单的视频监控上墙,而是把摄像头拍到的东西自动变成工单。我参与过某地级市的智慧城管平台改造,核心就是计算机视觉与智能分析。所谓智慧城管,说白了就是让前端摄像机自动识别违法停车、占道经营、垃圾堆积、渣土车遗撒等事件,然后推给处置部门。这篇文章想和你聊聊我在这个项目里踩过的坑、调过的参数、改过的算法逻辑。如果你也在做类似的环卫、执法或网格化项目,或者正准备跟算法团队对接场景需求,这篇内容应该能帮你少走不少弯路。

1. 智慧城管视觉应用的整体设计思路

1.1 需求拆解:城市管理要的是“工单”,不是“图片”

很多项目刚启动的时候,甲方提的需求是“帮我识别出哪条路有违停车”“我要能自动发现占道经营”。但真正做需求调研时才发现,城市管理各科室和街道中队要的不是一张标注框的截图,而是一条能直接下派、处置、结案的工单。两者之间差着一条很长的链路:算法识别出事件后,需要生成事件描述、截取现场图片或短视频、关联摄像机编号与地理位置、判断重复事件、分拨到对应网格责任人、处置后拍照反馈、再由算法或人工核验结案。如果只做一个“识别”模型,项目最多算完成30%。

我建议在一开始就把业务闭环画出来,哪怕用最简单的流程图。某市项目里,我们花了整整一周时间跟数字化城管指挥中心梳理事件类型,最后归纳出高频、中频、低频三类:

  • 高频事件:违法停车、占道经营、垃圾箱满溢、道路不洁。这些需要5分钟内自动发现,误报率可以放宽到30%以内,因为有人复核。
  • 中频事件:渣土车未密闭、工地出入口污染、违规户外广告。这些需要结合车牌或区域属性,准确率要求更高,否则投诉情况会激增。
  • 低频事件:井盖缺失、道路破损、焚烧垃圾。这些用普通检测难度大,需要结合多帧和上下文,或者依赖人工视频巡逻辅助。

把业务场景拆成这三类,再决定算力投入、算法精度、预警阈值,整个设计就有抓手了。

1.2 场景选择与优先级评估

计算机视觉算法不是万能的,不同场景的成熟度差异非常大。做过几个项目后,我给场景的可行性打了分:

场景识别难度光线敏感性处罚环节复杂度推荐优先级
违法停车较低中(夜间靠车灯)低(直接贴单+移车)高
占道经营中高(夜间摊贩打伞难辨)中(需要劝导)高
垃圾堆积低低低(环卫清扫)中
渣土车未密闭高(需要侧上方视角)中高(处罚争议多)中
井盖缺失高(小目标)高高(安全责任大)低

为什么把违法停车放第一位?因为车辆检测算法已经非常成熟,公开数据集和预训练模型多,且车体特征稳定,不容易受季节影响。占道经营稍微麻烦一点,但可以通过划定“电子围栏区域”,在区域内检测人和摊位。垃圾堆积最容易做,但真正做好需要分清“临时放置”和“长期堆积”,否则环卫工人刚清完又报警,特别容易烦。

这里有个容易被忽视的点:摄像头视角。同一个算法,装在3米高的立杆上和装在6米高的横臂上,效果天差地别。违法停车最好用球机自动巡检,画面里车辆占整个图幅的1/4以上;占道经营则需要俯视角度,看到摊位和遮阳棚;渣土车识别一般要正面和侧面两个机位配合。我们前期因为部分点位借用公安的杆子,视角太低,导致大量漏检,后来专门跟市政协调,把摄像机挑到4.5米以上,事件检出率立刻提升了20%以上。

1.3 算法基座与硬件选型逻辑

视觉算法这块,我们接触过两条路线:一条是直接用厂商的“黑盒”一体机,另一条是基于开源模型自研。一体机的好处是省事,坏处是难定制,比如想识别“摊位越线”这种行为,厂商往往要收定制费,而且迭代周期以月计。所以我们最终选择了半自研:检测、分类、跟踪用开源框架训练,通过标准接口接入现有的视频平台。

目标检测框架,我推荐的排序是:YOLOv8、YOLOX、RT-DETR。YOLOv8生态好,部署简单,适合快速落地;YOLOX在复杂场景下稳定性不错,但是调参稍麻烦;RT-DETR精度高但是推理速度慢,边缘端跑不动。我们最终在边缘盒子用YOLOv8s,在服务器上用YOLOv8m,性价比最高。

跟踪方面,如果只是单个摄像机内判断事件,DeepSORT就够用了;但是算力紧张或者目标密集时,ByteTrack更合适,它不依赖外观特征,对遮挡和短暂丢失更鲁棒。我们做过对比,在农贸市场门口这种人流密集地方,ByteTrack的ID切换率比DeepSORT低了将近一半,而且代码实现更简洁。

硬件选型上,我们试过GPU服务器、边缘计算盒子、带算力的智能摄像机。结论是:不要想着一台服务器跑所有摄像头的全部算法。一个摄像头同时跑检测+跟踪+分类,1080P视频流大约需要1-2路并行占满一张普通GPU。摄像头数量超过100路时,服务器成本会高到离谱。我们最终采用“前端盒子过滤+中心服务器精算”的分布式架构:普通摄像机只传视频流,边缘盒子负责抓拍疑似事件并上传压缩后的ROI图片,中心服务器再做二次确认。这样既保证实时性,又让中心算力专注于复杂模型。

2. 核心场景的算法实现与参数细读

2.1 违法停车检测:从“看见车”到“判断违停”

违法停车绝对不是“检测到车停在禁停区就报警”这么简单。你想想,路上堵车、上下客、临时靠边,这些都会被识别成违停,然后指挥中心收到一堆无效工单。我们踩过这个坑,前期准确率只有62%,主要原因就是没有时间维度。

正确的做法是加一个状态机。对每个目标车辆,持续跟踪它的位置和状态。当车辆进入禁停区域后,开始计时,如果车辆连续停留时间超过设定的阈值(比如180秒),才判定为违停,并且生成一张带时间水印的图片作为证据。这个阈值是跟城管和交警反复确认过的。市区严管路段设成60秒,普通路段120秒,学校门口可以放宽到180秒,因为接送孩子需要时间。

具体算法流程分四步:

  1. 用检测模型找出车辆目标,记录车辆中心点坐标。
  2. 用ByteTrack跟踪车辆,给每个目标一个唯一ID。
  3. 判断目标中心点是否在禁停多边形内(这个多边形就是电子围栏,通过地图工具画)。
  4. 维护一个状态字典,记录每个ID的首次进入时间,一旦离开围栏就清除记录;停留时间超过阈值,触发报警。

关键参数上,检测置信度建议设0.45以上,太低会有一堆误检(比如把“车”广告牌当成车)。NMS IoU阈值设0.5,跟踪丢失容忍帧数设30帧,这样车辆被短时间遮挡后不会立刻丢ID。另外,车辆检测框用最小外接矩形还是带旋转角度的矩形?如果是正对摄像头的画面,普通矩形够用;如果是斜视画面,建议加一个角度回归分支,否则违停车辆的框会框住大片路面,影响中心点定位。我们后来用YOLOv8的obb模型,漏检率又降了3个百分点。

2.2 占道经营识别:区域规则与时序逻辑配合

占道经营比违停要“人情味”重一点。有些地方摆摊是允许的,只是不能越过划定的线。所以算法不能只识别人和摊位,还要识别“行为是否越界”。

我们设计的方案是:先用检测模型识别出“摊位”目标(包括货架、三轮车、遮阳棚这类特征明显的物体),然后用语义分割模型识别出“经营区域”和“禁止跨线”区域,将两者叠加,判断摊位的边缘是否越线。这里需要注意,摊位目标经常被顾客遮挡,所以最好用多帧投票:连续10帧里,有8帧检测到摊位越线,才判定为“正向越线经营”,避免路人经过造成的误判。

难点在于“遮阳棚”这个类别变化很大。红蓝条纹棚、白色圆棚、黑色网布棚,在不同光照下特征差异很大。我们最初只标注了红条纹棚,结果夏天一到,遍地都是白棚,检测模型直接晕了。后来扩充了5000多张各类遮阳棚的图片,并用数据增强模拟早晨、傍晚、阴天、雨天的光照,才好一些。

另外,很多城管中队反馈,他们要的是“预警”而不是“报警”。凌晨五点是菜市场周边占道经营的高峰期,但是执法人员还没上班,如果算法报得太早,容易激化矛盾。我们最后在平台上加了“生效时段”配置,晚上10点到凌晨6点只生成“预警”,不生成工单;早上7点后才自动转成待核查工单。这种看似简单的逻辑,比任何算法优化都管用。

2.3 垃圾堆积与渣土车识别:细粒度分类与属性识别

垃圾堆积检测最容易,但也最容易被误报。绿化带里的树叶、路边施工堆放的石子、临时装卸货物,都会被当成垃圾。我们的优化思路是给检测模型增加“垃圾面积”和“垃圾位置”两个条件。

先检测出“疑似垃圾”的目标,然后计算目标框对应的像素面积占整张图的百分比。小于一定阈值的(比如图幅的0.1%)直接忽略,因为那么小的垃圾环卫工几秒钟就清走了,没必要生成工单。另外,如果垃圾目标位于十字路口、工地门口,很可能是临时掉落,需要等待多帧确认;如果在人行道中间长期不变,那基本就是堆积。

渣土车未密闭识别稍微复杂,因为车斗状态很小,有时候连人眼都看不清。我们使用“车辆属性识别”模型,先检测渣土车,再对车斗区域做二分类:空载/满载,密闭/未密闭。这里的关键是数据采集,我们专门在某工地门口架设了卡口摄像头,连续采集了两个月,才凑齐雨天、夜晚、逆光等条件下的图片。很多算法团队不重视数据采集,觉得拿公开数据集微调就行,结果到了现场发现车辆颜色和场景完全对不上。

夜晚识别渣土车是个大坑。车灯反光、车身泥土、车斗阴影,都会导致误判。我们试过几种方案,最后用的是“红外补光+低照度成像”,但城市道路不允许亮红外灯,所以退而求其次,让摄像机自动切换成宽动态模式,算法侧则对车斗区域单独做直方图均衡化。效果不能说百分之百,但误报率从一天300多起降到了40多起,勉强能用。

3. 实操过程中的关键环节与踩坑记录

3.1 标注样本:质量比数量更重要

很多算法工程师一上手就拉几百个G的图片让标注团队干活,结果模型训练出来效果很差。问题大多出在标注一致性上。我们曾让两家标注公司标同一个项目,他们对“占道经营”的理解完全不一样,一家只标摊贩和货物,另一家把顾客和路人也标进去了。后来我们开了三次标注意见会,制定了详细的标注规范,比如:

  • 违停车:只标车身,不标地面阴影,车被遮挡超过30%不标。
  • 摊位:包括货架、桌板、悬挂商品,但顾客拿在手里的商品不标。
  • 垃圾:只标长时间停留且面积大于某阈值的垃圾堆,不分大小件。

标注规范定好后,还用“双人标注+抽检”的方式保证质量。每个人标注的图片,另一个人随机抽20%复核,两人不一致的地方就是问题多发区。另一个容易被忽略的点是:标注框的边界要贴着物体边缘,不要留太多白边,否则训练时模型学到的特征混入背景,导致框飘移。

我们项目里还用了“半自动标注”提速:先用第一版模型跑一遍所有历史图片,生成预标注,然后人工只需要调整错误框。这个操作能把标注效率提高3倍以上,但前提是模型不能太烂,否则标注员会疯掉。

3.2 训练与调参:精度和速度的平衡

模型训练这块,我强烈建议先跑一个“基线模型”,再根据实际效果调参,不要一上来就追求SOTA。我们的基线配置是YOLOv8m、输入尺寸1280x1280、batch size 16、SGD优化器、初始学习率0.01,用CosineAnnealing调度。训练大概150轮,早停条件设为验证集loss连续20轮不降。

调参时最影响性能的四个点:

  1. 输入分辨率。1080P画面如果缩到512,小目标基本就废了。我们违停项目用1280,垃圾检测用960,占道经营用1280,分辨率上去之后小目标mAP提升了12%,但推理速度慢了30%。如果你有边缘盒子,这个取舍要提前想好。
  2. 数据增强。Mosaic增强对小目标不友好,尤其是车斗、垃圾等小物体。我们用Mosaic时把比例限制在0.5,并加入AutoAugment,效果比纯Mosaic稳定。
  3. 正负样本比例。城市管理场景容易把“人”误检成“摊位”,因为人也是直立的。给每个类别设置不同的损失权重:摊位、货物权重高一些,防止类别混淆。
  4. 损失函数。分类损失使用BCE,回归损失使用CIoU,同时启用FocalLoss来处理难易样本不平衡。这样能把误报压下来。

训练完一定要做“场景迁移测试”。我们训练集用的是普通枪机画面,结果在球机上测试,由于球机有畸变、且目标大小随焦距变化,检测框抖动非常厉害。解决办法是在训练集里加入球机模拟视角的图片,或者用畸变校正算法预处理。前者更有效。

3.3 边缘端部署与视频流接入

边缘端部署最大的坑是“同一套模型在不同硬件上跑出不同效果”。我们最初在某主流厂商的盒子上跑YOLOv8s,转换到TensorRT之后,精度掉了约2%,后来通过“PTQ量化感知训练”找补回来一点。这里有几个经验:

  • 用INT8量化前,先准备一个小的校准集,从训练集中均匀抽样500张,一定要包含夜间、雨天、逆光的样本,否则量化后白天的效果可能OK,晚上直接失效。
  • 部署时不要用动态batch,固定batch size为1,减少显存碎片。
  • 视频流解码要与检测线程解耦,用队列缓冲区。我们早期把解码和检测放在一个线程里,结果网络抖动导致检测线程阻塞,整个任务跟着卡死。

视频流接入方面,城市里的摄像机品牌很杂,RTSP流格式五花八门。我们统一用GbE连接流媒体网关,把RTSP转成YUV数据,再送给算法。需要注意的是,RTSP拉流重连机制一定要自己写。摄像机断网后恢复,网关有时不会自动重新拉流,导致算法一直处理黑帧,还给你报“画面异常”。后来我们在网关层加了一个心跳检测,每30秒检查一次帧间隔,超过3秒没新帧就主动重新拉流。

3.4 工单闭环与人工复核流程

算法识别出来只是开始,真正让城管同事用得起来,是后续的闭环设计。我们的流程是:算法生成事件推送至指挥中心,中心坐席在弹窗里看两张图(现场图和算法标注图),点“受理”才会生成工单;点“误报”则进入误报库,每周统计误报原因并反馈算法团队。如果没有人工复核这一环节,城管队员很可能被无效工单搞烦,最后把系统关掉。

人工复核界面也有讲究。图片上要显示抓拍时间、摄像机编号、坐标、置信度,最好能叠加电子围栏的边界。另外一个体验细节是:如果同一个位置半小时内连续报警,前端要自动合并,只显示一条“连续发生N次”的提示。我们曾经没有做去重,某天一家水果店把货品摆到路沿,算法每隔10分钟报一次,一天报了40多次,坐席差点崩溃。

人工复核的数据我们还用起来做“强化反馈”:把坐席标为误报的图片抽取出来,加入训练集,每周做一次增量训练。项目运行了三个月,违停误报率从38%降到15%以下,靠的全是这套数据闭环。

4. 常见问题与排查技巧实录

4.1 漏检多?先看你的分辨率与标注框

有段时间我们违停检测漏检率高,排查完发现是分辨率问题。摄像机画面有透视关系,远处的车只占几十个像素,模型根本认不出来。这时候不要急着调模型,先看可视范围。一般对策是:把远端画面纳入“虚拟检测区”之外,只检测中近景,或者用球机自动巡航到远处再抓拍,而不是在广角画面里硬扛。

标注框也是一个因素。如果你标注时把“车头”和“车身”分开标,模型学到的特征就会分裂。我们最后统一用车身整体框,并且框的位于画面下方遮挡区域时,只要可见面积超过70%就标。还有一点:夜间标注时不要用过度增强的图片,否则模型学到的全是噪点纹理。

4.2 频繁闪报?状态机比单帧判断靠谱

不少开发第一版时是“每帧检测,有目标就报”,结果出现大量闪报:车在路口等红灯被报违停、人被树挡住导致摊位检测又消失又出现。正确的做法是前面提的状态机。实现时一定注意时间戳要用视频帧的PTS,而不是服务器系统时间,否则视频缓冲延迟会导致状态切换异常。

我们遇到过一个问题:ByteTrack在目标短暂丢失后重新匹配,ID会变成一个新ID,于是状态机里出现“一个新ID刚进入围栏就停留很久”的怪象。解决办法是加一个“轨迹记忆”机制,在栅栏区域附近保存最近2秒的目标特征,当出现新ID时先做特征匹配,再继承旧ID的状态。这个机制让违停漏报减少了15%。

4.3 夜间效果差?图像增强与双光融合

城市管理的很多事件发生在夜间,而夜间是视觉算法最脆弱的时候。我们试过很多图像增强方法,比如Retinex、直方图均衡化、暗通道去雾,但通用增强会把噪声一起放大,反而误检更多。后来我们只对ROI区域(比如车斗、摊棚、垃圾堆)做局部增强,效果稳定得多。

有条件的地方用双光摄像机。一个可见光通道,一个红外通道,两个通道同时跑模型,然后对检测框做IOU融合。只有两个通道都检测到的目标才输出,置信度取两者平均值。我们项目里用这个方法把夜间垃圾堆积误报率从42%降到19%。不过双光摄像机价格偏高,目前只在重点点位部署。

4.4 验收指标怎么定:准确率、召回率与响应时间

项目验收时,甲方一般会问“准确率多少”,这时候要先把口径说清楚。我们用的指标是:

  • 事件检出率:真实发生的有效事件中,算法正确生成告警的比例,目标90%以上。
  • 准确率(误报率):算法生成的告警里,有效事件所占比例,目标70%以上。
  • 平均响应时间:从事件发生到系统弹出告警的时间,目标30秒内。
  • 工单闭合率:最终处置完毕并确认有效的事件占生成工单的比例,这个往往受执法流程影响,不能全怪算法。

我们在验收时专门设置了“场景测试集”,把三个月历史录像按白天、黑夜、晴天、雨天、堵车、节假日等条件分层抽样,一共2000条片段,然后让算法批量回放,统计上述指标。这样测试才能让双方信服,而不是算法团队自己说“效果不错”。

另外要提醒一点:响应时间不是越短越好。如果检测太灵敏,车辆刚停3秒就报警,会产生大量无效工单。我们违章停车事件最终响应时间设置在45秒~90秒之间,经过实际使用,这个范围既能让坐席有时间抓图,又能保证不会刷屏。

作为收尾,我个人的体会是:智慧城管里的算法不是最难的,难的是让算法符合业务习惯,让数据闭环跑起来。代码和模型只是整个系统的一小部分,真正花时间的反而是场景定义、数据标注、阈值调整和各个部门的扯皮。我们后来把处理经验沉淀成一份《场景特征与参数配置手册》,新同事半天就能上手调算法,不用每次从头试。如果你也准备做类似项目,建议一开始就安排一个人专职收集误报和漏报案例,每天反馈给算法团队,不要等上线之后再来“优化”。这样,越用越准,项目才会真正被一线接受。

相关新闻

大模型“养龙虾”实战:从推理优化到RAG的AI工程指南

大模型“养龙虾”实战:从推理优化到RAG的AI工程指南

最近和几个做后端的朋友吃饭,聊到各自公司最近在忙什么,一位在一线互联网公司做运维的同学叹了口气说:我们部门现在最重要的工作不是发版,也不是日常扩容,是养龙虾。我第一反应是开玩笑吧,后来听他解释才明…

2026/10/20 4:31:43 阅读更多 →
OpenClaw实战:被裁后我用AI Agent把工作时间压缩到2小时

OpenClaw实战:被裁后我用AI Agent把工作时间压缩到2小时

我上一份工作结束得很突然,收到通知那天下午,我还在会议室里跟同事对需求。回家的路上我算了笔账:房贷、社保、日常开销,以我当时的储蓄最多撑几个月。那时候我满脑子只有一个念头——我得在最短时间内找到新的收入来源&#xff0…

2026/10/20 4:31:42 阅读更多 →
C++基础入门教程(三):数组、字符串、结构体、共用体

C++基础入门教程(三):数组、字符串、结构体、共用体

前言 这是 C 入门系列的第三篇,讲四种把数据组织在一起的方式:数组、字符串、结构体、共用体。它们横跨 C 与 C 两套风格——既有从 C 继承来的原生数组和字符数组,也有 C 标准库提供的 std::array、std::string、std::variant。 第一个典型误…

2026/10/20 4:30:42 阅读更多 →

最新新闻

数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

十年前我第一次在模拟器里敲下 show mac address-table,看着那几行 MAC 和端口映射,并不觉得数据链路层有什么特别。直到后来排障时发现,很多网络“通了却不对”的问题,根源都藏在这一层。数据链路层是连接物理传输与网络逻辑之间…

2026/10/20 5:22:05 阅读更多 →
信呼OA v1.9.1部署与流程实战:中小团队生产级协同底座

信呼OA v1.9.1部署与流程实战:中小团队生产级协同底座

简介:信呼协同办公OA系统v1.9.1是一款面向中小企业及IT运维/开发人员的开源办公平台解决方案,旨在解决多终端协作、流程标准化与系统可定制化等核心管理需求。资源包共1256个文件,主体为606个PHP后端逻辑文件、231个GIF/79个PNG/3个JPG等前端…

2026/10/20 5:22:05 阅读更多 →
jstat实战:用JDK自带工具监控JVM内存与GC

jstat实战:用JDK自带工具监控JVM内存与GC

在Java服务卡顿、内存飙高、接口超时的时候,绝大多数人第一反应是抓一把jstack看线程,或者拉一份heap dump慢慢分析。但很多时候,问题的根源根本不在某个线程卡在哪行代码,而是整个堆的“新陈代谢”出了问题——对象疯狂创建、回收…

2026/10/20 5:22:05 阅读更多 →
Yume1.5交互式世界生成实战:单卡12FPS实时渲染与部署全解析

Yume1.5交互式世界生成实战:单卡12FPS实时渲染与部署全解析

第一次在某个开源项目页里看到“单卡 12 FPS 实时交互渲染”这句话,我还以为是拿预渲染视频抽帧充数。直到自己把提示词敲进去,生成出一片雨夜小巷,拖动路灯,地上的积水反光跟着偏移角度的那一刻,我才确定:…

2026/10/20 5:22:05 阅读更多 →
c++11学习

c++11学习

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 5:22:05 阅读更多 →
视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

1. 从离散Token到连续视觉:时间序列分析的新思路拆解时间序列分析这个领域,做的人多,但真正让人眼前一亮的突破少。传统方法从统计模型一路走到深度学习,Transformer架构进来之后,大家发现一个尴尬的事实:文…

2026/10/20 5:21:04 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →