基于Spark的电影推荐系统:混合推荐算法与离线实时架构设计
简介这份资源是面向大数据与推荐系统方向学习者、毕业设计选题学生的完整项目资料围绕基于Spark的电影推荐系统展开重点解决海量影片场景下个性化筛选与精准推荐的问题。内容涵盖绪论、开发技术介绍、系统分析与设计、系统实现及测试等章节涉及Spark、MongoDB与Web技术并系统讲解基于人口统计学、基于内容以及协同过滤三类推荐算法的原理与设计思路同时包含用户登录注册、个性化推荐、电影搜索、用户评分等功能模块的实现说明。资源包共1个docx文件约7.46MB以论文文档形式呈现结构完整、章节清晰便于按目录快速定位算法设计与系统实现细节。目前已有206人学习下载适合作为课程设计、毕业设计或推荐系统入门实践的参考材料帮助读者理解从需求分析、算法选型到功能落地与测试的完整流程。1. 从信息过载到精准触达基于 Spark 的电影推荐系统要解决什么打开任何一个影视平台首页堆着几百部片子翻了三屏还是不知道看什么——这不是用户挑剔是信息过载下的选择瘫痪。一套合格的电影推荐系统核心任务不是“把电影摆出来”而是从海量条目里快速筛出符合个人口味的少数几部。这份基于 Spark 的电影推荐系统设计与实现方案面向的正是这个场景用 Spark 做分布式计算引擎融合基于人口统计学、基于内容、协同过滤三类推荐算法通过离线、实时、详情页三种推荐方式触达用户。它适合正在做大数据方向毕设或课设的同学也适合需要一套可交付推荐系统方案的从业者参考。整套方案包含论文与源码结构完整从需求分析一路覆盖到测试验收。2. 需求分析与技术选型为什么是 Spark 加混合推荐2.1 功能需求拆解三类用户、四个核心动作先把需求立住后面所有设计才有依据。这套系统的目标用户是电影爱好者按使用深度可以拆成三类未登录的游客、刚注册的新用户、有评分历史的老用户。三类用户对应的推荐策略完全不同这也是为什么单一算法撑不住整个系统。从功能上看系统要支撑四个核心动作。第一是注册登录建立用户身份这是个性化推荐的前提。第二是评分与打标签用户对看过的电影打分系统据此构建用户画像。第三是搜索与浏览用户能按类别索引、模糊检索、查看电影详情。第四是个性化推荐这是系统的重点又细分为离线推荐、实时推荐和详情页推荐三条路径。功能需求分析里最容易翻车的地方是把“推荐”当成一个笼统功能。实际做的时候必须拆开离线推荐跑的是统计类算法对时效性要求低可以定时批处理实时推荐要求用户刚产生行为就能看到反馈必须走流式计算详情页推荐是用户点进某部电影后触发的相似推荐走基于内容的算法。三条路径的数据流、计算引擎、响应时间要求都不一样混在一起设计后期一定返工。2.2 技术选型Spark 做计算、MongoDB 做存储、Spring 做后端技术栈的选择直接决定项目能不能落地。这套方案的核心计算引擎选 Spark理由很实在。Spark 用内存存储中间数据不像 MapReduce 那样频繁落盘迭代计算时速度快很多。推荐算法尤其是协同过滤本质就是反复迭代计算相似度矩阵Spark 的 RDD 弹性分布式数据集正好吃这个场景。另外 Spark 生态里有 Spark SQL 和 Spark Streaming离线统计和实时推荐可以共用一套引擎不用额外引入第二套计算框架运维成本低。存储层选 MongoDB看中的是它对数据格式要求低、用键值对存储、支持简单索引。电影数据、用户评分数据、推荐结果数据的结构并不完全统一用关系型数据库要频繁改表结构MongoDB 的文档模型更灵活。后端用 Spring 加 MavenSpring 的 IOC 和 AOP 特性让业务模块解耦Maven 管依赖和打包。前端用 AngularJS2轻量、响应式能适配不同屏幕尺寸。这里有个选型上的反直觉点很多人觉得推荐系统就该上深度学习模型但这套方案偏偏以协同过滤为主。原因在于毕设和中小规模系统的数据量根本喂不饱深度模型协同过滤在几千到几十万条评分数据上表现稳定可解释性也强答辩时能讲清楚每一步在算什么。技术选型不是越新越好是匹配数据规模和交付周期。2.3 三类推荐算法的分工与混合策略单一算法撑不起完整系统这套方案用混合推荐来补短板。三类算法的分工是这样的算法类型核心依据解决的问题在本系统中的位置基于人口统计学用户基本信息与上下文标签冷启动新用户无历史行为离线推荐基于内容物品标签与特征向量物品相似度匹配可解释性强实时推荐、详情页推荐基于协同过滤用户与物品的交互矩阵挖掘潜在兴趣个性化程度高个性化离线推荐基于人口统计学的算法不需要用户历史行为数据新用户一进来就能推但它准确率偏低所以只用在离线推荐的冷启动环节。基于内容的算法靠电影标签算相似度简单快速、结果稳定缺点是过度依赖标签完整性新电影没标签就推不了。协同过滤是经典主力通过用户和物品的相似度矩阵做推荐个性化程度最高但要面对数据稀疏和冷启动两个老问题。混合策略的核心思路是用统计推荐兜底冷启动用基于内容的推荐保证实时性和可解释性用协同过滤提升个性化精度。三者不是简单叠加而是按场景分工。离线部分跑统计和协同过滤实时部分跑基于内容详情页跑基于内容的相似匹配。这样既减轻了数据稀疏的影响又避免了单一算法的短板。3. 总体架构设计分层结构与模块职责划分3.1 四层架构view 层、business 层、推荐层、存储层系统整体采用分层架构从上到下依次是 view 层、business 层、推荐层和存储层。view 层负责页面展示和用户交互包括登录注册页、电影列表页、详情页、搜索页。business 层处理业务逻辑比如用户认证、评分写入、搜索请求转发。推荐层是核心囊括全部推荐算法又分为离线推荐和在线推荐两大块。存储层用 MongoDB 存业务数据和推荐结果Redis 做缓存Elasticsearch 做搜索索引。分层的价值在于职责隔离。推荐层只负责算business 层只负责调度view 层只负责展示。后期要换推荐算法只动推荐层要改页面只动 view 层。很多同学做毕设时把算法逻辑直接写进 Controller后期想调参就得翻遍整个项目这就是没分层的代价。3.2 离线推荐模块统计类算法的四个计算任务离线推荐模块跑的是基于人口统计学的统计类算法通过 Spark SQL 从 MongoDB 读取原始评分数据计算完成后把结果写回 MongoDB。具体有四个计算任务。第一个是历史热门影片统计统计所有电影的评分数量按数量降序排列得到历史热门榜。第二个是近期热门影片统计只统计近一个月内的评分数据识别近期热度上升的电影。这里需要定义一个 UDF 用户自定义函数来处理时间过滤逻辑。第三个是电影平均评分统计读取评分表按电影 ID 分组计算平均分结果写入 AverageMovies 数据集。第四个是各类型电影 Top10 统计先统计有多少个电影类别再分批计算每个类别中评分最高的 10 部电影。第四个任务稍微复杂需要按“|”字符切分电影类别字段再通过笛卡尔积做匹配判断过滤掉不属于该类别的电影。这一步用 UDF 实现类别切分用 Spark SQL 的 explode 函数展开数组最后用窗口函数取每类前 10。// 各类型电影Top10统计核心逻辑 val genresTopMovies spark.sql( SELECT mid, name, genres, avg_score, row_number() OVER (PARTITION BY genre ORDER BY avg_score DESC) AS rank FROM ( SELECT mid, name, avg_score, explode(split(genres, \\|)) AS genre FROM movies JOIN averageMovies ON movies.mid averageMovies.mid ) t WHERE rank 10 ) genresTopMovies.write .option(uri, mongoConfig.uri) .option(collection, GenresTopMovies) .mode(overwrite) .format(com.mongodb.spark.sql) .save()这段代码的关键在 explode 和窗口函数。explode 把一行多类别的电影拆成多行单类别窗口函数按类别分区、按平均分排序取前 10。参数上mongoConfig.uri指向 MongoDB 连接地址collection指定写入的集合名mode(overwrite)表示每次全量覆盖避免重复数据累积。3.3 实时推荐与详情页推荐基于内容的相似度计算实时推荐走的是基于内容的算法用户产生新行为后立即触发。流程是用户对某部电影评分或收藏系统提取该电影的内容特征向量在电影库中找相似度最高的若干部过滤掉用户已看过的推给用户。相似度用余弦相似度计算特征向量由电影的类型、主演、导演等标签构成。详情页推荐和实时推荐用的是同一套算法区别在触发时机。详情页推荐是用户点击某部电影后根据这部电影本身的标签做相似推荐不依赖用户的实时行为。两者的数据流不同但相似度计算逻辑可以复用。// 基于内容的相似度计算 def computeCosineSimilarity(movieFeatures: RDD[(Int, Array[Double])]): RDD[(Int, Int, Double)] { // 归一化特征向量 val normalized movieFeatures.mapValues { features val norm math.sqrt(features.map(f f * f).sum) if (norm 0) features else features.map(_ / norm) } // 笛卡尔积计算两两相似度 normalized.cartesian(normalized) .filter { case ((mid1, _), (mid2, _)) mid1 mid2 } .map { case ((mid1, f1), (mid2, f2)) val dotProduct f1.zip(f2).map { case (a, b) a * b }.sum (mid1, mid2, dotProduct) } .filter(_._3 0.5) // 只保留相似度大于阈值的对 }这段代码先做向量归一化再用笛卡尔积算两两余弦相似度。filter(_._3 0.5)是相似度阈值低于 0.5 的认为不够相似直接过滤掉减少存储和计算开销。阈值这个参数需要根据实际数据调设太高推荐结果太少设太低推荐不精准通常的做法是从 0.5 起步根据测试结果微调。4. 环境搭建与核心功能实现从集群到推荐链路4.1 伪分布式集群搭建四个虚拟节点的配置要点考虑到开发阶段通常只有一台物理机这套方案用伪分布式模式模拟小规模集群。具体做法是用虚拟机技术在一台物理机上创建四个虚拟节点一个 Master 节点加三个 Worker 节点。操作系统用 Linux先装 JDK 并配置环境变量再设置主机名比如 hadoop102、hadoop103、hadoop104。节点之间要配置 SSH 免密登录生成公钥后分发到各节点。然后在 Spark 配置文件中填入集群节点的主机名、IP 地址、端口号、JDK 位置和 Master 节点信息。配置完成后在主机上执行start-all.sh启动集群通过 Web UI 访问hadoop102:8989Worker 栏显示三个节点的 IP 和状态说明集群构建成功。# 启动Spark集群 start-all.sh # 验证集群状态 jps # 应看到 Master 和 Worker 进程这里有个容易忽略的点三台虚拟机的内存分配。如果每台只给 1GB 内存跑 Spark 任务时频繁 OOM。通常的做法是 Master 节点给 2GBWorker 节点各给 2GB物理机总内存至少 8GB。另外虚拟机网络模式选 NAT 或桥接都行但三台机器的 IP 必须在同一网段否则 SSH 连不上。4.2 存储与服务配置MongoDB、Redis、Elasticsearch 的职责MongoDB 负责存业务数据和推荐结果。数据库里建了六张表用户表 User、电影平均评分表 AverageMovies、各类别电影 Top10 推荐表 GenresTopMovies、历史热门电影推荐表 RateMoreMovies、最近热门电影推荐表 RateMoreRecentlyMovies、用户推荐表 UserRecs。前五张由离线算法生成最后一张由实时和离线推荐共同写入。Redis 做缓存存热点数据和会话信息。用户频繁访问的推荐结果放 Redis减少 MongoDB 查询压力。Elasticsearch 做搜索引擎电影搜索功能走 ES 索引支持模糊匹配和分词检索。这三个服务的配置顺序建议是先 MongoDB再 Redis最后 Elasticsearch。因为 MongoDB 是数据基础后两个依赖数据存在才能验证。4.3 用户登录注册与评分模块的实现登录注册模块是用户进入系统的入口。前端页面在localhost:8088端口访问用户填写用户名密码后端校验后写入 MongoDB 的 User 表。注册时要做基本校验用户名不能重复、密码长度不少于 6 位、邮箱格式正确。这些校验在前端和后端各做一遍前端拦明显错误后端兜底防绕过。评分模块是推荐系统的数据来源。用户在电影详情页打分分数通常是 1 到 5 分。评分数据写入 ratings 表同时触发两个动作一是更新该电影的平均分二是如果走实时推荐把这次评分事件推给流处理模块。评分接口的设计要注意幂等性同一个用户对同一部电影重复评分应该覆盖而不是追加否则平均分会被算歪。// 评分写入接口的幂等处理 public void submitRating(String userId, String movieId, double score) { Query query new Query(Criteria.where(userId).is(userId) .and(movieId).is(movieId)); Update update new Update().set(score, score) .set(timestamp, System.currentTimeMillis()); mongoTemplate.upsert(query, update, ratings); }这段代码用 upsert 实现幂等如果该用户对该电影的评分记录已存在就更新分数和时间戳不存在则插入新记录。timestamp字段用于近期热门统计按时间过滤时依赖它。4.4 个性化推荐链路的串联个性化推荐是整套系统的核心链路把前面所有模块串起来。用户登录后系统先查 UserRecs 表看有没有离线算好的推荐结果有就直接返回。如果没有说明是新用户走冷启动逻辑用基于人口统计学的统计推荐兜底推历史热门和近期热门。用户产生评分行为后实时推荐模块介入根据刚评分的电影找相似电影过滤已看过的补充到推荐列表。详情页推荐是独立链路用户点进某部电影系统根据该电影的类型、主演、导演标签在电影库中找相似度最高的若干部展示在“相似电影”区域。这条链路不依赖用户历史纯靠物品特征匹配。搜索模块走 Elasticsearch用户输入关键词ES 做分词和模糊匹配返回相关电影列表。搜索和推荐是互补的搜索是用户主动找推荐是系统主动推。两者结合用户既能快速定位想看的也能发现可能感兴趣的。5. 避坑与常见问题推荐系统落地最容易翻车的五个点5.1 数据稀疏导致协同过滤失效现象用户评分数据太少用户-物品矩阵里大量空值协同过滤算出来的相似度不可靠推荐结果要么重复要么离谱。原因新系统上线初期用户和评分都少矩阵稀疏度可能超过 99%。协同过滤依赖足够的共现数据数据不够时算法退化。解决混合推荐兜底。冷启动阶段用基于人口统计学的统计推荐不依赖用户历史。同时用基于内容的推荐补充靠物品标签算相似度不受评分稀疏影响。等数据积累到一定量再逐步提高协同过滤的权重。5.2 冷启动问题新用户和新电影都没有数据现象新用户注册后推荐列表空白新电影上架后没人能看到。原因协同过滤和基于内容的算法都依赖历史数据新用户没有行为记录新电影没有评分记录算法无从下手。解决新用户走统计推荐推热门榜和平均分高的电影同时引导用户选几个喜欢的类型标签快速建立初始画像。新电影走基于内容的推荐靠类型、主演、导演标签匹配只要标签填了就能被推荐。标签数据要提前准备好不能等电影上架了才补。5.3 Spark 任务内存溢出与数据倾斜现象离线统计任务跑着跑着报 OOM或者某个 Task 卡住不动其他 Task 早就完成了。原因OOM 通常是 executor 内存不够或者 shuffle 数据量太大。数据倾斜是某个 key 对应的数据量远超其他 key比如某部热门电影被评分几十万次处理这个 key 的 Task 成了瓶颈。解决OOM 调大 executor 内存或者增加分区数分散数据。数据倾斜可以在 key 上加随机前缀打散计算完再去掉前缀合并结果。另外广播小表用 broadcast join避免 shuffle。5.4 MongoDB 写入性能瓶颈现象推荐结果写入 MongoDB 时速度慢数据量大时写入超时。原因逐条写入比批量写入慢得多索引过多也会拖慢写入速度。解决用批量写入代替逐条写入Spark 的write操作本身就是批量提交。索引只建必要的比如 userId 和 movieId 的联合索引不要每个字段都建索引。写入模式用 overwrite 还是 append 要看场景全量推荐结果用 overwrite增量行为数据用 append。5.5 实时推荐延迟高现象用户评分后推荐结果要等很久才更新实时性不达标。原因流处理窗口设得太大或者数据从产生到进入流处理链路中间环节太多。解决缩小流处理窗口比如从 5 分钟缩到 1 分钟。减少中间环节评分数据直接推给 Kafka 或 Socket流处理模块直接消费。另外实时推荐的相似度计算可以预计算好存 Redis触发时直接查不用现算。6. 测试验收与答辩准备怎么证明这套系统真的能跑6.1 功能测试逐模块验证与用例设计功能测试要覆盖每个模块的正常流程和边界情况。登录注册模块测正常注册、重复用户名注册、密码错误登录、空输入提交。评分模块测正常评分、重复评分覆盖、评分范围外输入。推荐模块测新用户冷启动推荐、老用户个性化推荐、详情页相似推荐、搜索关键词匹配。测试用例设计有个技巧每个功能至少设计三条用例——正常路径、边界路径、异常路径。比如评分功能正常路径是打 3 分边界路径是打 1 分和 5 分异常路径是打 0 分或 6 分看系统怎么处理。这样测下来功能覆盖才完整。测试模块测试项预期结果实际结果登录注册正常注册注册成功跳转登录页通过登录注册重复用户名提示用户名已存在通过评分正常评分评分写入平均分更新通过评分重复评分覆盖旧分数不新增记录通过推荐新用户推荐返回热门榜列表通过推荐详情页推荐返回相似电影列表通过搜索模糊搜索返回匹配电影列表通过6.2 性能测试响应时间与并发能力性能测试看两个指标响应时间和并发能力。响应时间方面推荐接口的响应时间通常要求在 500ms 以内搜索接口在 1s 以内。并发能力方面用工具模拟多用户同时请求看系统能不能扛住。测试方法用 JMeter 或类似工具模拟 50、100、200 个并发用户分别请求推荐接口和搜索接口记录平均响应时间和错误率。如果响应时间随并发数线性增长说明系统没有瓶颈如果某个并发数之后响应时间陡增说明到了瓶颈点需要优化。优化方向推荐结果预计算存 Redis减少实时计算MongoDB 加索引加速查询Spark 任务调优减少 shuffle。这些优化做完再跑一遍性能测试对比优化前后的数据。6.3 答辩技巧怎么讲清楚算法和架构答辩时老师最常问三个问题为什么选这个算法、算法怎么实现的、系统有什么创新点。回答要有层次。为什么选协同过滤为主数据量在中小规模时协同过滤比深度模型更稳定可解释性强而且 Spark 的迭代计算正好匹配协同过滤的矩阵运算特点。为什么混合推荐单一算法有短板统计推荐解决冷启动基于内容解决实时性和可解释性协同过滤提升个性化精度三者互补。算法怎么实现从数据流讲起评分数据怎么进 MongoDBSpark 怎么读数据怎么算相似度矩阵结果怎么写回 MongoDB前端怎么展示。每一步都要能对应到代码。创新点不要硬编从实际设计中找。比如混合推荐策略的分工设计、离线加实时的双链路推荐、基于内容的详情页推荐这些都是可以讲的点。关键是讲清楚“为什么这么做”和“这么做解决了什么问题”。从那以后我每次带项目验收前都强制走一遍功能测试用例和性能压测不跑完不提交。这套流程帮我拦下过好几次上线前的隐藏问题。希望这份方案能帮到你需要完整论文和源码的可以按项目标题自取。本文还有配套的精品资源点击获取

相关新闻

具身智能的物理认知闭环:本体-环境-智能三要素耦合机制

具身智能的物理认知闭环:本体-环境-智能三要素耦合机制

简介:本资源是中国信息通信研究院与北京人形机器人创新中心有限公司联合发布的《具身智能发展报告(2024年)》权威研报,面向AI研究人员、智能机器人开发者、产业规划者及高校师生,系统解答具身智能“是什么、怎么建、如…

2026/10/18 23:10:04 阅读更多 →
华为云四节点Hadoop+Spark+OBS实战部署指南

华为云四节点Hadoop+Spark+OBS实战部署指南

简介:本资源是一份完整的华为云大数据实验教学报告,面向高校大数据、云计算相关专业学生及初入云平台实践的开发者,聚焦在华为云环境中动手搭建与管理Hadoop/Spark集群的核心能力培养。报告系统覆盖四大实验模块:基于ECS云主机的手…

2026/10/17 19:47:57 阅读更多 →
AI通识课件元结构:可复用、可演进、可嵌入教学闭环的智能课件骨架

AI通识课件元结构:可复用、可演进、可嵌入教学闭环的智能课件骨架

简介:本资源是一份系统讲解人工智能基础理论与演进脉络的PPT课件,面向高校计算机、人工智能及相关专业本科生及初学者,用于辅助《人工智能导论》类课程教学或自学入门。课件内容覆盖人工智能的定义与多维理解(能力视角与学科视角&…

2026/10/18 22:21:58 阅读更多 →

最新新闻

多模态图像分类案例

多模态图像分类案例

当然可以!以下是使用CIFAR-10数据集进行多模态图像识别分类的完整代码。由于CIFAR-10只有图像没有文本描述,我会模拟生成对应的文本描述来实现多模态实验:import torch import torch.nn as nn import torch.optim as optim from torch.utils.…

2026/10/18 23:10:18 阅读更多 →
Ashampoo Photo Commander:海量本地照片的管理与批处理利器

Ashampoo Photo Commander:海量本地照片的管理与批处理利器

管理照片这件事,我从还在用光盘版图片库软件的时代就开始折腾,十几年换过不少工具。Ashampoo Photo Commander 在国内算不上一线网红软件,但每次有人问我"本地图片管理到底该用什么",它基本都排在我推荐清单的前三名。说…

2026/10/18 23:10:18 阅读更多 →
根治你的健忘虾!全网最全!23款Agent记忆架构大横评:从向量数据库到TaoToken统一通道

根治你的健忘虾!全网最全!23款Agent记忆架构大横评:从向量数据库到TaoToken统一通道

/* 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 23:10:18 阅读更多 →
C#显示设置实战:设置缩放比例后,鼠标光标位置与屏幕大小如何精准换算(TaoToken统一Key/API通道)

C#显示设置实战:设置缩放比例后,鼠标光标位置与屏幕大小如何精准换算(TaoToken统一Key/API通道)

/* 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 23:10:18 阅读更多 →
2026年AI Agent面试通关秘籍:用TaoToken统一Key打通MCP与Function Call实战

2026年AI Agent面试通关秘籍:用TaoToken统一Key打通MCP与Function Call实战

/* 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 23:10:18 阅读更多 →
水文站点实时数据爬虫:Selenium+Requests混合方案实战

水文站点实时数据爬虫:Selenium+Requests混合方案实战

简介:本资源是一套面向Python初学者与数据爱好者设计的水文实时数据采集与可视化实践项目,聚焦网络爬虫与基础数据分析能力训练,适用于环境监测、水利信息化等场景的入门级技术验证。压缩包共9个文件,含3个核心Python脚本&#xf…

2026/10/18 23:09:18 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

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