警情数据可视化分析系统:Python+Flask+ECharts大屏实战教程
做警情数据可视化分析系统绕不开一个问题数据都有了但怎么看怎么让一组组冷冰冰的字段变成有说服力的趋势、占比和分布这个项目的核心就是把警情记录从MySQL数据库里捞出来用Python做清洗和统计聚合最终在网页大屏上呈现出折线图、环形图、热力图和指标卡。整套内容包含源码、数据库脚本和三份设计文档适合正在准备课程设计、毕业设计或者想系统练一遍“Python 数据库 可视化”全流程的人。我最初做的时候也踩过不少坑——数据表设计不合理导致后面聚合SQL越写越复杂ECharts图表太多导致页面加载卡顿还有最经典的中文乱码问题。这篇文章把整个项目的来龙去脉、数据库表结构、后端接口、前端图表联动、常见问题排查全部拆开讲一遍照着搭就能跑起来。1. 项目整体设计与技术选型思路1.1 警情数据到底能分析出什么很多人拿到警情数据之后不知道从哪里下手。实际上这类数据最有价值的分析维度非常固定总量趋势、类型结构、时段分布、区域差异、处置效率。总量趋势回答“整体治安压力是上升还是下降”类型结构回答“哪类警情占大头”时段分布回答“一天中哪些时段是高发期”区域差异回答“哪些地方需要重点布防”处置效率回答“从接警到结案平均花了多久”。基于这些维度系统的功能模块就很清晰了数据总览大屏、月度/季度趋势分析、警情类型占比、24小时与星期分布热力图、区域排行、处置时长统计。所有模块共享同一套数据源通过SQL聚合或Pandas分组统计后由后端JSON接口输出到前端渲染。1.2 为什么选择Python全家桶而不是Java警情分析系统很多课程设计会用Java SSM或Spring Boot但Python在这里明显更合适。原因是数据处理环节占比重Pandas做分组聚合、时间重采样、异常值过滤比Java写一堆Stream和SQL拼接方便太多。Flask作为轻量级Web框架写几个JSON接口不到一百行代码。前端可视化用ECharts数据驱动型图表对后端只要求输出标准JSON完全不挑语言。技术栈定下来是这样的Python 3.8 Flask 2.x PyMySQL Pandas MySQL 8.0 ECharts 5.x。数据库驱动用PyMySQL而不是mysql-connector原因后面讲。前端不引入复杂框架原生HTML JavaScript ECharts CDN减少部署成本。1.3 项目适合谁能学到什么如果你是刚入门数据分析或者正在准备毕设这个项目能覆盖的东西非常完整从建库建表、写模拟数据生成器到用Pandas清洗和聚合再到Flask写接口、ECharts画图、最后整理成一份能讲清楚的设计文档。整个过程就是一个小型数据产品的闭环。我给这个项目定了一个目标单机部署、双击启动、浏览器访问、图表可交互下钻。不追求分布式不追求微服务把每个环节做扎实比堆技术栈有价值得多。2. 数据库设计与数据准备2.1 数据表结构四张表搞定所有分析需求很多人在课程设计里犯的第一个错误是只建一张大宽表把所有字段堆在一起。这会导致查询语句冗余、数据冗余、类型字典没法维护。我这里拆成四张表警情记录表、警情类型字典表、区域维度表、日统计预聚合表。警情记录表字段设计如下字段名类型说明idBIGINT主键自增case_noVARCHAR(20)警情编号alarm_type_idINT警情类型ID关联字典表alarm_levelTINYINT警情等级 1-3district_codeVARCHAR(12)区域编码关联区域表addressVARCHAR(255)发生地点描述occur_timeDATETIME发生时间report_wayTINYINT报案方式dispose_statusTINYINT处置状态 1待处置 2处置中 3已结案finish_timeDATETIME结案时间involved_policeSMALLINT出动警力数descriptionVARCHAR(500)简要描述警情类型表存放盗窃、抢劫、诈骗、交通、纠纷等类型名称区域表存放区县编码和名称这两张字典表保证了数据一致性。日统计预聚合表有讲究。如果每次展示月度变化趋势都直接对几十万条记录做group by页面响应时间会很难看。提前在数据入库时按天统计总警情数、已结案数、平均结案时长查询时就只扫这张小表速度能差几十倍。2.2 模拟数据生成让分析有足够样本真实警情数据不可能拿得到项目演示必须要用模拟数据。模拟不是纯随机要带特征否则图表看不出规律。我用Python写了一个数据生成器逻辑是近三年每天的警情量基准数工作日和周末差别季节波动然后叠加随机噪声。生成器关键代码import pandas as pd import numpy as np from datetime import datetime, timedelta def gen_alarm_data(days365*3, base_count80): type_ids [1, 2, 3, 4, 5] type_weights [0.35, 0.2, 0.15, 0.2, 0.1] district_codes [110101, 110102, 110105, 110108] records [] start datetime.now() - timedelta(daysdays) for i in range(days): date start timedelta(daysi) # 周末警情量略高冬季略低 weekday_bias 1.2 if date.weekday() 5 else 1.0 season_bias 1.1 if 6 date.month 9 else 1.0 day_count int(base_count * weekday_bias * season_bias * (0.8 np.random.rand() * 0.4)) for _ in range(day_count): hour int(np.random.exponential(scale8)) hour min(hour, 23) minute np.random.randint(0, 60) occur date timedelta(hourshour, minutesminute) finish occur timedelta(hoursint(np.random.rand() * 12 1)) records.append([occur, np.random.choice(type_ids, ptype_weights), np.random.choice(district_codes), finish]) df pd.DataFrame(records, columns[occur_time, type_id, district_code, finish_time]) df.to_csv(alarm_data.csv, indexFalse)这段代码里有两个细节值得注意。np.random.exponential是模拟一天中警情分布很好的方式凌晨少傍晚多更贴合实际情况而不是用randint纯粹均匀填充。结案时间加了一个随机delta既有少量几小时就结案也有拖到跨天的情况处置时长分析才有内容。2.3 MySQL导入与字符集设置数据生成完后导入MySQL注意一定要设置utf8mb4字符集否则后面中文全部变问号。推荐在建库时一次性指定CREATE DATABASE alarm_analysis DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;导入方式可以直接用Pandas的to_sql方法也可以生成CSV后用LOAD DATA。数据量小我用的是pymysql分批execute能在导入时顺手把时间字段转成datetime类型。设置表字段时alarm_type表里的type_name用VARCHAR(20)所有中文字段长度要留余量防止导入时截断。3. 统计聚合逻辑与后端接口设计3.1 后端接口如何设计才能满足前端图表前后端衔接的核心就是接口契约。一开始我直接把SQL查询结果原样返给前端导致前端代码又要二次处理数据越写越乱。后面定了一个规范后端返回的数据就是前端ECharts直接能用的格式。比如趋势图接口返回格式{ code: 0, data: { xAxis: [2024-01, 2024-02, ... ], series: [ {name: 警情总数, data: [1234, 1110, ...]}, {name: 已结案, data: [1100, 1005, ...]} ] } }前端拿到data直接填入option.series不需要再写任何转换逻辑。占比类图表返回name和value两个数组地图/排行返回带名称的列表。这样约定清楚前后端各干各的调试起来非常省事。Flask路由示例from flask import Flask, jsonify from db import get_conn app Flask(__name__) app.route(/api/trend) def trend(): sql SELECT DATE_FORMAT(occur_time, %%Y-%%m) AS month, COUNT(*) AS total_count, SUM(CASE WHEN dispose_status 3 THEN 1 ELSE 0 END) AS done_count FROM alarm_records WHERE occur_time DATE_SUB(NOW(), INTERVAL 12 MONTH) GROUP BY month ORDER BY month conn get_conn() cursor conn.cursor() cursor.execute(sql) rows cursor.fetchall() data { xAxis: [r[0] for r in rows], series: [ {name: 警情总数, data: [r[1] for r in rows]}, {name: 已结案, data: [r[2] for r in rows]} ] } return jsonify({code: 0, data: data})这里要特别提醒一个MySQL占位符问题。Flask的SQL语句里如果有LIKE模糊查询%号在python字符串格式化时会被吃掉所以上面SQL里的DATE_FORMAT用了%%Y-%%m。这个坑不遇到一次很容易忽略。3.2 四个核心统计接口的实现要点除了趋势接口还有三个重点接口值得单独说。类型占比接口要区分“按数量”和“按处置时长”。按数量就是group by type_id然后求count再join字典表补类型名称。按处置时长则是统计各类警情的平均结案时间差这个用TIMESTAMPDIFF(MINUTE, occur_time, finish_time)聚合能看出哪些警情处理周期长。时段分布接口是二维统计返回的是24行乘7列的矩阵。SQL里用GROUP BY DAYOFWEEK(occur_time), HOUR(occur_time)然后把结果在Python里填成一个嵌套列表维度顺序要对齐否则ECharts热力图坐标错乱。区域排行接口做两个版本按总量排名和按每万人口折算。总量排名直接count然后order by desc limit 10人口折算需要额外一张人口基础表没有的话就用区域占比做归一化排名也能说明问题。3.3 数据缓存预聚合表在这里发挥作用如果实时查询太慢或多次请求重复计算可以引入缓存。我用的方式是查预聚合表 Redis缓存两种。预聚合表日更适合跨月趋势Redis缓存小时级适合高频图表请求。考虑到大部分课程设计场景不要求秒级更新直接查日统计表就够了。但我还是保留了Redis方案原因是答辩时演示页面刷新如果每次都等两秒以上的响应现场体验很差。缓存命中后接口响应时间能降到50ms以内。4. 可视化大屏页面与ECharts图表联动4.1 大屏布局怎么排才能逻辑清晰可视化大屏不是图越多越好。警情数据的核心观看路径是先看总体指标再看趋势走势然后对比类型和区域分布最后下钻到具体记录。我采用的布局是顶部一行指标卡放总警情数、月均数、结案率、平均处置时长左上角放月度趋势折线图右上角放警情类型环形图中间放24小时×星期热力图底部左右分别放区域排行柱状图和处置时长箱线图。版面尺寸按照1920×1080设计页面栅格用CSS Grid实现图表容器统一设置宽高百分比避免不同分辨率显示器下图表变形。每个图表的div容器要设置明确的height否则ECharts初始化时会报Got null dom的错误。4.2 图表联动点击饼图切换趋势图数据课程设计里能不能做交互联动是评分的一个明显差异点。我给环形图和趋势图做了联动点击环形图的某一类警情右侧趋势图就只显示该类警情的月度变化。实现原理并不复杂pieChart.on(click, function(params) { const typeName params.name; fetch(/api/trend?type${encodeURIComponent(typeName)}) .then(res res.json()) .then(data { trendChart.setOption({ series: [{ data: data.data.series[0].data }] }); }); });后端trend接口增加为支持传入type参数可选过滤。注意setOption时不要传整个option只需要传入变化的部分ECharts会自动合并。如果重新设置option而不保留原对象标识联动后可能造成组件状态丢失。4.3 ECharts热力图与地图排行的关键配置热力图是警情时段分析里最直观的图。ECharts的热力图需要的数据是三个维度[x坐标y坐标值]x是小时0-23y是星期。核心配置option { tooltip: { position: top }, grid: { left: 50, top: 10, right: 20, bottom: 50 }, xAxis: { type: category, data: hours, name: 时段 }, yAxis: { type: category, data: weekdays, name: 星期 }, visualMap: { min: 0, max: 50, calculable: true, orient: horizontal, left: center, inRange: { color: [#ffffff, #ffde72, #ff9e00, #ff3d00] } }, series: [{ type: heatmap, data: heatData, label: { show: false } }] };区域排行可以用bar图但要注意横向柱状图更适合排名场景。把yAxis的type设为categoryreversed设为true让最大值的区域排在最上面更符合阅读习惯。地图热力用ECharts的map类型需要加载GeoJSON数据我最初为了省事直接跳过了地图只做了横向柱状图。如果你想要地图效果可以引入pyecharts或者准备一份区县GeoJSON文件加载后setOption时把series的map属性设为对应地图名称。4.4 图表与数据更新定时刷新与手动刷新大屏展示时需要考虑数据更新机制。我实现了两个刷新入口一个是最上方的手动刷新按钮直接调用location.reload或重新fetch所有接口另一个是可选定时器每60秒自动轮询一遍。定时轮询要注意一个问题多个图表同时更新会造成请求抖动和页面卡顿。我的做法是统一用一个refreshData函数串行请求所有接口所以写的时候加了一个Promise.all控制并发。如果接口响应有几百毫秒的差异页面滚动条和数据状态可能不同步串行更稳定。5. 常见问题与排查技巧实录5.1 中文乱码根源在连接字符集而不全是前端这个项目最容易遇到的问题就是中文乱码。很多人建库设了utf8mb4但PyMySQL连接时没指定charset导致写入是utf8mb4、读出来是latin1。正确做法是连接时指定conn pymysql.connect( hostlocalhost, userroot, password123456, databasealarm_analysis, charsetutf8mb4 )排查思路很简单先查数据库终端里是否正常显示中文如果正常说明库表没问题问题在连接层如果终端都乱码建库语句重新检查。还有一种情况是CSV导入时编码用了GBK写入后虽然看着能显示但排序和比较会出错统一用utf-8编码生成文件最稳妥。5.2 图表空白或数据对不上先查接口再查渲染页面某个图表空白的排查顺序是打开浏览器F12看Network面板确认接口是否返回200返回数据是否符合预期格式。如果接口返回正常但图不显示多半是ECharts的option数据格式问题比如series数据维度不对、数组为空、xAxis和data长度不一致。ECharts对异常数据容忍度很低一个空值可能让整个图渲染失败。最好是后端在返回前做一次数据校验长度不一致时用0补齐。我踩过一次SQL里查出来只有4个月数据但前端xAxis硬塞了12个月图表直接白屏后面在接口做逻辑判断才解决。5.3 数据库连接太多导致卡死Flask默认单线程跑开发服务器但每个请求都会创建连接如果页面多个图表同时发请求数据库连接数会迅速堆满。Flask在开发模式下虽然能处理多线程请求但pymysql连接不是线程安全的会出现Lost connection during query的错误。这里有两个解决方式。一是给Flask加一个全局连接复用但要注意多线程并发时加锁二是用连接池。我后来采用了dbutils库的PooledDB设置最大连接数5每个请求从池里取连接而不是新建连接并发问题直接消失。做法很简单from dbutils.pooled_db import PooledDB import pymysql pool PooledDB( creatorpymysql, maxconnections5, mincached2, hostlocalhost, userroot, password123456, databasealarm_analysis, charsetutf8mb4 ) def get_conn(): return pool.connection()PooledDB配置里host、user这些参数和pymysql.connect一致区别在于它内部复用连接对象性能会明显提升但只针对MySQL/MariaDB这类关系型数据库。5.4 时间统计口径不一致导致前后端对不上警情分析里时间口径是个大坑。是把“发生时间”作为统计标准还是把“接警时间”作为标准如果数据表里两个字段都有后端接口必须统一不能有的接口按occur_time有的按report_time否则趋势图会自相矛盾。我在设计表时只保留occur_time一个时间字段所有分析都基于它从源头上消除口径混乱。结案时长用finish_time和occur_time的差值计算字段命名写清楚注释。答辩时如果有人问为什么不分开统计可以解释为“当前需求关注发生时段对布防的指导意义以发生时间为准”。5.5 排查问题速查表现象可能原因解决方式图表不显示接口数据为空或格式错检查Network面板确认返回JSON结构中文乱码连接层charset未设置连接参数加charsetutf8mb4页面加载慢实时查询大表 无缓存使用预聚合表或加Redis缓存刷新后数据重复定时器未清理页面卸载时clearInterval地图不显示GeoJSON未加载检查map注册名称与series.map是否一致时间聚合错时区或DATE_FORMAT格式不符统一使用服务器本地时间不用UTC6. 源码组织与文档撰写要点6.1 源码目录怎么分才能一眼看懂一个清晰的项目结构对课程设计和毕设答辩的帮助被低估了。我推荐按功能分包而不是按技术层分包这样代码量小的时候更好读。实际目录alarm_analysis/ ├── app.py # Flask入口 ├── config.py # 数据库配置 ├── db.py # 连接池工具 ├── data/ │ ├── gen_alarm.py # 模拟数据生成器 │ └── alarm_data.csv ├── sql/ │ └── init_db.sql # 建库建表脚本 ├── static/ │ ├── css/style.css │ ├── js/dashboard.js # 大屏逻辑 │ └── js/charts.js # 图表初始化 ├── templates/ │ └── index.html └── docs/ ├── 需求说明文档.md ├── 数据库设计文档.md └── 测试报告.md重点说两个文件。init_db.sql必须包含建库、建表、插入字典数据的完整SQL别人拿到源码后一键执行就能跑通。gen_alarm.py必须在注释里写清楚参数含义和生成规律否则评委可能质疑数据来源合法性。6.2 设计文档怎么写才能得分文档不是凑字数是讲清楚“你做了什么、为什么这么做、怎么验证”。三个文档中需求分析要写出系统边界和用户角色数据库设计文档要画出ER图和数据字典测试报告要列出测试用例和预期/实际结果。数据库设计文档的数据字典部分每个字段都要解释含义不能只复制建表语句。比如dispose_status这个字段要写明“0表示未受理1表示处理中2表示已结案”这是最容易扣分的地方。如果项目有接口接口文档也要列出来包括URL、请求参数、返回示例、错误码。6.3 答辩演示的几条实践建议演示时最好准备一个与真实数据差异明显的演示场景比如点击“电信诈骗”类型联动出趋势图然后现场讲解“高发时段出现在下午和晚上建议在这个时段加强预警”。这比从头到尾点一遍菜单更能体现对业务的理解。还要注意演示环境的预演。数据库服务是否启动、端口是否被占用、浏览器是否安装了拦截插件、ECharts CDN是否可用这些都是现场容易翻车的环节。建议提前把ECharts的JS文件下载到本地static目录不依赖外网加载演示时断网也不怕。7. 项目扩展方向与个人心得7.1 还能往哪些方向扩展做完基础版之后有余力的话可以从三个方面升级。预测方向用时间序列模型对各类警情做月度预测输出未来三个月的趋势区间文本方向把description字段做关键词提取和主题聚类自动标注新型警情实时方向接入消息队列模拟实时警情流入大屏秒级更新数据。但扩展要克制核心功能必须稳定优先。我见过太多人花大量时间加预测模型结果答辩时基础图表反而出错。先把基础链路打扎实扩展是锦上添花。7.2 我自己在这个项目里印象最深的一课整套做完最大的体会就是可视化系统的难点通常不在“画图”本身而在数据链路。数据怎么来、怎么存、怎么清洗、怎么聚合、怎么传参每一步都影响最终图表的准确性。有一次我把维度字段的编码转成名称时没去重导致环形图多出几个空分类查了整整一个下午最后发现是join的时候一对多产生了重复行。所以无论做什么分析系统先花时间设计好数据模型把每个字段的口径定义清楚再考虑图表效果。数据质量永远是第一位的图再花哨底层数据错了也要推翻重来。如果做的数据是敏感场景还要注意脱敏和合规项目里所有模拟数据都要明确标注“演示用途”不碰真实数据这是基本的职业素养。这个项目是个很好的起点从零搭出来的完整数据分析链路以后做任何行业的数据大屏思路都是相通的。把数据库、Python聚合、ECharts这三块吃透换什么场景都能快速迁移。

相关新闻

Flutter强类型网络层实战:chopper+built_value鸿蒙适配全攻略

Flutter强类型网络层实战:chopper+built_value鸿蒙适配全攻略

做 Flutter 开发这几年,最让我心态爆炸的不是复杂 UI 布局,而是网络层的数据模型。每接一个接口就要手写一遍fromJson、toJson,字段一多就出笔误,key 拼错等到运行时才炸,nullable 字段稍不注意直接崩给用户看。后来切…

2026/10/1 7:32:54 阅读更多 →
300款H5小游戏合集整理实战:从单文件HTML到部署全攻略

300款H5小游戏合集整理实战:从单文件HTML到部署全攻略

前阵子整理完一个300款H5小游戏的合集资源包,朋友圈发了个截图,结果一下午有十几个朋友来问怎么做的、在哪下载、怎么部署到自己的网站。说实话,这活儿看起来就是“收集网页游戏再打包”,但真正动手之后才发现,从选游戏…

2026/9/30 23:34:00 阅读更多 →
富集结果双向条形图实战:GSEA数据清洗到出版级复现

富集结果双向条形图实战:GSEA数据清洗到出版级复现

第一次意识到这个问题,是我在组会上看一篇Cancer Cell文章里的Figure。那几张图把GSEA富集到的通路从同一根0轴往两个方向甩出去:激活的通路在一侧,抑制的在另一侧,颜色一暖一冷,不用细看正文就能Get到实验组到底激活了…

2026/10/1 5:53:29 阅读更多 →

最新新闻

毕设工具怎么选?横向对比后,我最终选择 Okbiye

毕设工具怎么选?横向对比后,我最终选择 Okbiye

前言 临近毕业季,大量同学开始疯狂寻找各类 AI 论文辅助工具。网上工具五花八门,单点翻译、独立绘图、AI 写作、查重网站层出不穷。很多人踩坑之后才发现,单一工具只能解决某一个小问题,想要走完完整毕设流程,需要同时…

2026/10/1 21:05:07 阅读更多 →
六西格玛考试科目全解析:绿带黑带题型分值与考点权重(2026报考季)

六西格玛考试科目全解析:绿带黑带题型分值与考点权重(2026报考季)

内容提要:中质协六西格玛考试按等级统考,不分科目——绿带80题(满分100分,60分及格)、黑带90题(满分120分,80分及格,另需项目答辩),考试内容围绕DMAIC方法论展…

2026/10/1 21:05:07 阅读更多 →
苏州做GEO营销的有经验的外贸服务商有啥:口碑公司汇总与选择指南

苏州做GEO营销的有经验的外贸服务商有啥:口碑公司汇总与选择指南

先搞懂:GEO营销到底是什么,外贸企业为什么绕不开GEO,全称生成式引擎优化,简单说就是让品牌在AI的回答里被看见、被引用、被推荐。过去海外买家找供应商的路径很清晰:在Google输入关键词,打开前十的网页&…

2026/10/1 21:05:07 阅读更多 →
国产之光 GP232RL USB转串口芯片完全兼容替代FT232RL

国产之光 GP232RL USB转串口芯片完全兼容替代FT232RL

GP232RL是最新加入 ftdi 系列 usb 接口集成电路设备的设备。232r是一个 usb 到串行 uart 接口,带有可选的时钟发生器输出,以及新的 ftdichip-idTM 安全加密器特性。此外,还提供了异步和同步位崩接口模式。通过将外部 eeprom、时钟电路和 usb …

2026/10/1 21:05:07 阅读更多 →
ThingsBoard Edge Ubuntu 升级指南:基于 .deb 包的升级流程与实现原理

ThingsBoard Edge Ubuntu 升级指南:基于 .deb 包的升级流程与实现原理

物联网后端数据可视化消息队列 【免费下载链接】thingsboard All-in-one IoT Platform - Device management, data collection, processing and visualization. 项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard 点击查看 免费下载 本篇技术指南围绕…

2026/10/1 21:04:06 阅读更多 →
Qt5.12 + MSVC2017 环境搭建:我重装了三次才顺,这 8 个坑你不用再踩

Qt5.12 + MSVC2017 环境搭建:我重装了三次才顺,这 8 个坑你不用再踩

插件化那 20 天写的是"程序内部怎么长"。这个专栏换个角度——从一堆源码到一个能交给别人用的安装包,中间那些把人卡住的事。 开篇先解决最前面的一步:环境。去年我接手一个老项目,硬性要求 Qt 5.12.11 MSVC2017。照着网上的教程…

2026/10/1 21:04:06 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →