WhatWeb实操指南:Web指纹识别与信息收集进阶技巧

做信息收集的时候,大多数人第一步都是抬出Nmap对着目标一阵扫,看到80、443开放就开心地往下测。说实话,Nmap在网络层确实很强,端口、服务、操作系统都能给你估个八九不离十,但你要是想搞清楚目标网站具体用了哪套CMS、什么框架、多少版本的jQuery、有没有暴露后台特征,Nmap就有点使不上劲了。这时候就该轮到Kali自带的老牌工具WhatWeb出场了。

WhatWeb是一个专门做Web指纹识别的命令行工具,干的事很简单:访问目标页面,把响应头、HTML源码、Cookie、JS特征、特定文件路径这些东西过一遍,和内置的上千个插件比对,然后告诉你目标大概用了什么技术栈。它解决的痛点是“我知道目标开着网页,但我不知道这网页是什么做的”,适合做信息收集、资产梳理、漏洞预判、以及红蓝对抗前期的侦察阶段。这篇教程会从最基础的安装验证讲起,逐步到参数原理、批量扫描脚本、报告整理和坑点排查,争取一篇下来你就能直接拿去用。

1. 为什么Web指纹识别值得单独立项做

1.1 Nmap别全背锅:它真不是做这个的

先把话说清楚,Nmap不是不能识别Web服务,它也能通过banner抓取告诉你“这有个Apache或者Nginx”,但它的重心在网络层和端口层。你会发现Nmap给出的服务版本常常是“Apache httpd 2.4.41”,但你要的是“这个站点是WordPress 6.2,用的主题是某某,还挂了某某插件”,这两者之间隔着十万八千里。

Web指纹识别本质上是在做应用层的信息收集。你可以把端口扫描想象成侦察一个小区,Nmap告诉你哪几栋楼有门开着,哪几栋楼门锁着;而Web指纹识别是让你走近开着门的那几栋,透过窗户看看里面装修是什么风格、用的什么家电牌子。二者不是替代关系,是互补关系。只做端口扫描不做Web指纹,你拿到的是一个入口清单;结合指纹结果,你才知道入口背后是什么地形。

1.2 指纹识别的实战价值:知道自己面对的是什么

指纹识别的结果不会直接给你漏洞,但会给你线索。举个例子,如果识别出目标用的是某个老版本的内容管理系统,那么接下来查已知漏洞库就有的放矢了;如果识别出目标是一个Java框架写的,你可能就会调整测试思路,不再浪费时间找PHP相关的问题;如果发现目标是个纯前端的单页应用,那后端接口的测试重点又会不一样。

在资产梳理场景里,指纹识别也很有用。很多公司的安全团队定期做资产盘点,跑一遍WhatWeb把内部所有系统的指纹归个类,很容易发现哪些“野生系统”没有备案、哪些系统还在跑没人维护的老框架。这比你一个一个打开浏览器用开发者工具看要高效得多。

还有一块是供应链风险排查。网站里引用的第三方组件,比如图表库、富文本编辑器、前端框架,它们的版本如果过旧,本身可能带已知问题。WhatWeb的插件体系里专门有一类就是检测这些组件版本的,批量扫完导出的报告能直接按组件版本做筛选。

1.3 WhatWeb在工具链里的位置

和浏览器插件或者在线指纹识别服务相比,WhatWeb最大的优势是离线可用、可脚本化、输出结构化。在线工具你要一个站点一个站点手动打开,浏览器插件虽然方便但不适合批量,而且结果难以沉淀成报告。WhatWeb是纯命令行,Kali里自带了,SSH到服务器上就能跑,输出支持JSON和XML,后续想怎么处理都方便。

打个比方,它就像是工具箱里那个不起眼却实用的螺丝刀套装——不是每把刀都用得上,但总有一把会在关键时候解决你的问题。

2. 环境准备与第一行命令

2.1 Kali里的WhatWeb:装上就开跑

如果你用的Kali是完整安装,WhatWeb一般已经预装了。确认方法很简单,在终端输入:

whatweb --version

能看到版本号就直接用。如果提示找不到命令,安装也很方便:

sudo apt update && sudo apt install -y whatweb

安装完再确认一次即可。整个过程没有任何复杂依赖,Ruby环境Kali里也是现成的,所以这一步通常用不了一分钟。

我这里要特别提醒一句:WhatWeb是网络扫描工具,只能对你有权限测试的目标使用。你自己搭的靶机、公司授权的系统、或者在合法众测项目中给出的目标范围,都没有问题。千万别拿它去扫不相关的线上业务,这既不负责任也容易给自己惹麻烦。

2.2 第一次扫描:看懂输出在说什么

先用一个最简单的命令来试:

whatweb https://example.com

输出会是一行压缩过的信息,很多人第一次看到就懵了,一堆字段挤在一起。我拆给你看,这些字段分别对应什么:

  • Title:页面的标题栏内容,也就是HTML里的<title>标签。
  • HTTPServer:响应头里的Server字段,比如nginx或者Apache。
  • X-Powered-By:响应头里暴露出来的后端框架,常见的有PHP/7.4、ASP.NET。
  • Meta Generator:很多CMS会在meta标签里写入生成器信息,比如WordPress、各类建站系统。
  • Cookie Name:服务端种下的Cookie名称,比如PHPSESSID、laravel_session,这个能侧面反映后端技术栈。
  • jQuery版本:WhatWeb会检测常见的JS库版本,如果页面引用了jQuery,它会告诉你具体版本号。

这么说吧,这一行信息虽然看起来密密麻麻,其实每一段都是对目标的一次“画像”。你第一次扫描的时候,不需要全部看懂,先认识几个关键字段,后面用多了自然就熟了。

2.3 加个-v看看它的工作过程

加了-v参数之后,WhatWeb会把每个插件的匹配过程打印出来:

whatweb -v https://example.com

这时候不会只输出一行结果,而是会滚动显示它正在检测哪些插件、命中了哪些内容。我建议新手至少运行一次带-v的扫描,不是为了看热闹,而是为了理解工具的工作方式。

你会看到它检测了一批又一批插件,每个插件对应一类指纹规则。比如有一个插件叫HTTPServer,专门看Server头;有一个插件叫MetaGenerator,专门解析meta标签;还有一个插件叫IP,会把目标的IP地址解析出来。看一遍这个过程,你对“指纹识别到底认的是什么”会有非常直观的认识,比单纯记命令参数有用得多。

3. 核心原理与参数选择逻辑

3.1 WhatWeb到底是怎么认出来的

WhatWeb的识别原理,说穿了就是把目标页面拆开,拿它内置的上千个插件逐一比对。每个插件都有自己的匹配规则,常见的有这么几类:

第一类是响应头匹配。服务端返回的HTTP头里经常藏着技术信息,比如Server头、X-Powered-By头、X-Generator头。这些字段有时候是显式的,有时候是默认配置忘了关的,WhatWeb只要匹配到特征字符串,就能给出对应指纹。

第二类是HTML源码特征匹配。很多CMS和框架会在HTML里留下独特的标记,比如meta name="generator"、特定的class名、特定的id、甚至注释里会写框架名。WhatWeb会抓取页面内容,然后在里面搜索这些特征。

第三类是静态资源路径探测。比如WordPress的固定路径是/wp-content/,Drupal有/sites/default/files/,ThinkPHP有时候会暴露/vendor/目录。WhatWeb会向这些路径发起请求,看返回的状态码和内容,以此判断目标是否使用了对应的系统。

第四类是Cookie特征匹配。不同后端框架默认的Cookie名不一样,PHP的是PHPSESSID,Java常见的是JSESSIONID,Laravel的是laravel_session。WhatWeb看到Cookie名基本就能猜出个大概。

第五类是JavaScript全局变量检测。这个稍微复杂一点,像jQuery、AngularJS这类前端框架会在页面里定义全局变量,WhatWeb通过解析JS相关内容来识别。

还有一类是行为探测,比如它访问某个特定路径,发现返回了301跳转到某个固定路径,或者返回了一个特定格式的错误页,这些行为也是指纹的一部分。

你可以把WhatWeb想象成一位经验丰富的老师傅,他看一个人,不只看他的工牌,还会看他的口音、走路姿势、用的手机型号、习惯性的小动作,综合这些信息来判断这个人是什么来头。单个特征可能有误差,但多个特征叠加在一起,结论就会逐渐清晰。

3.2 攻击性级别-a:别一上来就拉满

WhatWeb里有一个很重要的参数叫-a,也就是--aggression,后面跟1到4四个级别。很多新手不管三七二十一直接拉到4,结果扫描慢得怀疑人生,这个参数其实需要按场景选。

  • 1:默认级别,只做基础的请求,查看响应头和页面内容,速度快,适合大范围快速扫描。
  • 2:会多请求一些常见路径,比如/robots.txt、/favicon.ico这些,速度依然比较快。
  • 3:开始比较激进地探测更多路径和特征,速度变慢,但指纹结果更完整。
  • 4:全面攻击性探测,会尝试非常多的路径、遍历更多插件规则、做更深入的匹配。这个级别很慢,通常只建议在单目标深度评估时用。

我的建议是:批量扫描第一轮用-a 1或-a 2,目的是快速圈出疑似目标;第二轮针对重点系统再上-a 3甚至-a 4。一上来就全量拉满,虽然扫得细,但时间和流量成本都很高,而且对于普通的评估项目,-a 2的结果通常已经够用了。

这个道理跟钓鱼很像,先撒网看哪片水域有鱼,再精准下竿,而不是对着整片湖用最重的饵。

3.3 常用参数速查与组合套路

除了-a,还有几个参数是高频使用的,我整理成一张表:

参数作用典型使用场景
--no-errors屏蔽错误信息输出批量扫描时避免屏幕被大量超时报错刷屏
--log-json=文件路径把结果保存成JSON批量扫描后做脚本化分析
--log-xml=文件路径把结果保存成XML需要对接其他平台或导入报表工具
-H "User-Agent: 自定义"自定义请求头绕过简单的UA拦截
-c "xxx=yyy"带Cookie访问扫描需要登录才能看到完整指纹的页面
--plugins=插件名只启用指定插件明确要检测某个技术栈时缩小范围
--list-plugins列出所有可用插件查看工具支持哪些指纹检测
--max-redirects=N限制最大重定向次数防止跳转过深导致扫描卡住
--follow-redirect跟随重定向目标从http跳到https时需要

组合使用的示例,最典型的场景是深挖单个目标:

whatweb -a 3 --no-errors --log-json=/tmp/result.json -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" https://target.example

这条命令做了三件事:把攻击性级别调到3,过滤掉错误噪音,把结果保存为JSON,同时自定义了一个常规浏览器UA。这样既不影响速度太多,又方便后续分析,还能避开最简单的UA拦截。

4. 批量实战:从单点到成片资产

4.1 批量输入文件怎么准备

真实场景里几乎不会只扫一个目标,往往是几十上百个站点一起做资产梳理。这时你需要一个目标清单文件,一行一个URL。

准备文件时有几个细节要注意。第一,URL要写完整,带上协议头,http://或者https://都行,不要只写域名,否则WhatWeb在某些情况下会猜错协议。第二,扫描前先去重,重复目标会白白浪费扫描时间。第三,如果目标是IP加端口的形式,也照常写,比如http://192.0.2.10:8080。

一条简单的去重命令:

sort -u targets.txt -o targets.txt

处理好之后,targets.txt就是你的批量输入。

4.2 一个能直接用的批量扫描脚本

我不太建议直接对着上百个目标一条一条敲命令,写一个简单的循环脚本会靠谱很多。下面这个脚本是我自己会用的简化版,串行执行,稳定第一:

#!/bin/bash # 串行批量扫描,适合几十个目标的场景 TARGET_FILE="targets.txt" OUT_DIR="./whatweb_results" mkdir -p "$OUT_DIR" sort -u "$TARGET_FILE" -o "$TARGET_FILE" while IFS= read -r url; do # 跳过空行 [ -z "$url" ] && continue # 生成防止冲突的文件名 fname=$(echo "$url" | md5sum | cut -c1-10) echo "[*] Scanning: $url" whatweb -a 2 --no-errors --log-json="$OUT_DIR/$fname.json" "$url" # 控制节奏,避免请求频率过高 sleep 1 done < "$TARGET_FILE" echo "[*] Done. Results saved to $OUT_DIR"

这里有两个设计意图值得说明。第一,用md5sum生成文件名,可以把URL变成一段短哈希,避免目标URL里的特殊符号影响文件路径。第二,每次扫描之间加了sleep 1,一是防止请求频率过高触发目标的防护机制,二是让扫描过程更可控,不至于把目标打“慌”。

如果你目标量很大,也可以自己在循环里加并发控制,但并发意味着更难排查问题和控制流量,新手建议先从串行脚本开始,跑通了再考虑优化速度。

4.3 与Nmap联动:先摸端口再上指纹

前面我说Nmap和WhatWeb是互补关系,它们在实际流程里的联动可以这样理解。先用Nmap扫一批IP的Web端口:

nmap -sS -p 80,443 --open -oG - 192.0.2.0/24 | awk '/80\/open|443\/open/ {print $2}' | sort -u > web_hosts.txt

这一步给你的是“哪些IP上开着Web服务”。接下来的问题是怎么把这些IP转成WhatWeb能用的URL。你可以根据自己的情况拼一下:

while read -r ip; do echo "http://$ip" echo "https://$ip" done < web_hosts.txt | sort -u > targets.txt

然后再去跑WhatWeb批量脚本。整个过程就是:Nmap负责找出“哪里开着门”,WhatWeb负责去看“门后面的房间是什么样的”。两层信息组合起来,你手里就有一份比较完整的资产画像了。

有域名的情况下,更建议用域名清单而不是纯IP,因为域名能直接反映站点身份,指纹识别的结果也更有指向性。IP加域名混着用也没问题,只要你的目标清单授权范围覆盖到就行。

4.4 报告与结果整理

批量扫描的产物是一堆JSON文件,看着头疼也难查。我习惯把JSON汇总之后再提取关键信息。WhatWeb导出的JSON结构是数组形式,每个目标是一个对象,里面包含HTTP状态、目标地址、插件匹配结果等字段。你可以先用jq看一下结构:

jq '.' 文件.json

熟悉结构之后,可以用下面的命令把所有结果里的目标地址列出来:

jq -r '.[].target' 某条结果.json

更常用的操作是按插件名统计,快速看出这批目标里哪种技术栈占比最高:

cat whatweb_results/*.json | jq -r '.[].plugins | keys[]' | sort | uniq -c | sort -rn

这条命令会把所有扫描结果中出现的插件名汇总、去重、按出现次数排序。跑完你就能看到类似“xx个目标都识别出了jQuery”“xx个目标疑似用了某种CMS”这样的分布情况,这对资产盘点来说非常有价值。

如果你需要导出成CSV给别人看,也可以用jq把目标地址、HTTP状态、关键插件这几个字段拼成一行,然后重定向到CSV文件。具体字段名建议以自己的JSON结构为准,先jq keys看一遍再动手写提取逻辑,省得字段对不上白折腾。

5. 常见问题与避坑实录

5.1 常见错误与排查汇总

我把使用过程中容易遇到的问题整理成了表格,方便你对照排查:

问题现象可能原因处理方法
提示whatweb: command not foundKali里没有装sudo apt install -y whatweb
扫描一个目标卡了很久攻击性级别太高或网络不通降低-a级别,先手动访问目标确认连通
屏幕刷满超时和错误信息目标响应慢或不可达加--no-errors,先Ping或curl测试
识别不出任何技术栈目标是定制页面或纯前端SPA手动查看响应头和JS文件,结合浏览器控制台补全
批量中断不知道跑了多少没有进度记录在脚本里加echo日志,或给输出文件加上序号
接连访问后目标拒绝响应请求频率太高触发了防护拉大sleep间隔,降低并发,改用较慢的识别级别
指纹结果与实际情况不符插件匹配到通用特征导致误报用curl手动核对响应头,二次确认

5.2 误报与漏报:指纹工具没有绝对准确

什么情况下容易出现误报?最常见的是目标套了CDN或者反向代理。你扫到的Server头可能是CDN厂商的,而不是源站真实的Web服务器,这就导致指纹结果偏离实际情况。处理办法是对比多个请求角度,比如直接看关键响应头是否统一,有时候还需要在合法授权下尝试访问源站。

还有一种情况是目标站点高度定制,自己写的页面,完全没有常见CMS的特征,WhatWeb能识别的内容就很少。这时候不要硬等工具给出答案,打开浏览器开发者工具的“网络”标签,看看加载了哪些JS文件,响应头里有什么字段,手动补上工具没给出来的信息。工具是起点,不是终点。

反过来,漏报也很常见。特别是现在很多站点用Vue、React这类前端框架,页面内容主要在JS里渲染,HTML源码里干净得很,WhatWeb对这类SPA的识别能力天然偏弱,因为它的很多规则是针对传统服务端渲染的站点的。遇到这类目标,我会多看JS文件名、接口路径、Cookie特征几个维度,而不是只盯着它有没有识别出框架名。

5.3 扫描规范与合规提醒

这条我想单独拿出来说,因为太重要了。WhatWeb这个工具本身没有攻击性,它做的是“访问并识别”,但任何扫描行为在未授权的情况下都可能构成越权访问。使用之前先确认三件事:第一,目标是不是你负责的、或者明确授权测试的;第二,扫描范围有没有边界,不要在目标清单之外顺手扫别的IP;第三,测试时间和请求频率是否合理,不要给目标业务造成可用性影响。

批量扫描的时候,控制请求频率不仅是为了不触发防护,也是做测试的基本素养。你无恶意不代表目标系统能承受高频请求,很多防御设备对扫描行为非常敏感,如果因为扫描把目标打挂了,那就不是信息收集,而是事故了。我自己做批量扫描,串行加间隔是最低配置,宁可多花点时间,也不给目标添堵。

最后再分享一点个人经验

工具用到现在,我最大的体会是:指纹识别的结果用来“缩小范围”远比“直接下结论”有价值。WhatWeb扫完一批资产,我会先看哪些目标的技术栈版本偏旧,挑出来优先做深入检查;哪些目标识别结果太干净,说明可能是定制系统或前端渲染,这类就需要人工再看一遍。指纹信息是线索,不是结论,你要做的不是在结果列表里打勾,而是在一堆线索里找到最值得调查的那几个点。

还有一个小技巧算是白捡的:把JSON日志汇总以后,用jq按插件名统计一遍,经常能发现一些不在预期内的技术栈。比如你以为这批资产都是同一套框架,结果扫出来有十几个跑着别的系统,这种意外发现往往比常规梳理更能反映真实情况。资产盘点也好,风险评估也好,能先发现“漏掉的东西”,就已经赢了一半。

相关新闻

PS2 ISO 压缩能省下多少:chdman 把 4.4GB 压成 1.5GB CHD,ROMm 接管整库

PS2 ISO 压缩能省下多少:chdman 把 4.4GB 压成 1.5GB CHD,ROMm 接管整库

PS2 ISO 压缩能省下多少&#xff1a;chdman 把 4.4GB 压成 1.5GB CHD&#xff0c;ROMm 接管整库 【免费下载链接】romm A beautiful, powerful, self-hosted ROM manager and player. 项目地址: https://gitcode.com/GitHub_Trending/rom/romm MAME 官方工具 chdman 把 …

2026/10/20 22:11:58 阅读更多 →
rdpwrap.ini 使用指南:给 Windows 10/11 解锁多用户远程桌面的 3 个关键配置

rdpwrap.ini 使用指南:给 Windows 10/11 解锁多用户远程桌面的 3 个关键配置

rdpwrap.ini 使用指南&#xff1a;给 Windows 10/11 解锁多用户远程桌面的 3 个关键配置 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini rdpwrap.ini 是 RDP Wrapper 的核心…

2026/10/20 22:11:58 阅读更多 →
BIM+AI落地实测:智能建模、图纸识别与选型避坑指南

BIM+AI落地实测:智能建模、图纸识别与选型避坑指南

做了几年BIM项目&#xff0c;我有个很明显的感受&#xff1a;过去大家聊BIM&#xff0c;聊来聊去总绕不开翻模、出图、碰撞检查这几件事&#xff0c;模型建完好像就完成任务了。但最近这段时间&#xff0c;圈子里讨论的东西明显变了——AI不再是PPT里的概念&#xff0c;而是越来…

2026/10/20 22:11:58 阅读更多 →

最新新闻

开放式代码审查:从规则沉淀到AI辅助的团队实践

开放式代码审查:从规则沉淀到AI辅助的团队实践

那一次Review&#xff0c;至今让我印象深刻。我自认为提交了一段“完美”的代码&#xff1a;类型明确、命名讲究、注释齐全&#xff0c;甚至提前把函数的三种边界情况都测了一遍。结果同事在评审里只问了我三个问题&#xff1a;为什么定义成接口而不是具体类型&#xff1f;三秒…

2026/10/20 22:55:46 阅读更多 →
SQL孤岛与间隙问题全解析:从窗口函数到连续登录实战

SQL孤岛与间隙问题全解析:从窗口函数到连续登录实战

做时间序列分析的朋友一定碰到过这样的场景&#xff1a;一张表里存着用户的登录记录&#xff0c;日期断断续续&#xff0c;你不仅要找出哪几天没登录&#xff0c;还要把连续登录的几天拼成一个“段”来统计。又或者&#xff0c;你面前是一堆带时间戳的告警事件&#xff0c;需要…

2026/10/20 22:55:46 阅读更多 →
机器人系统十年演进:从脉冲伺服到数字孪生的架构变革

机器人系统十年演进:从脉冲伺服到数字孪生的架构变革

要说这十年机器人系统最大的变化&#xff0c;我得先讲个真实场景。2024年我在客户现场调一套柔性上料系统&#xff0c;机器人配上3D视觉和力控打磨单元&#xff0c;工程师们坐在办公室里用数字孪生平台远程调试&#xff0c;坐标变换、轨迹规划、碰撞检测全在仿真环境里跑完&…

2026/10/20 22:55:46 阅读更多 →
Diagram-Design:结构化视觉表达的底层工程能力

Diagram-Design:结构化视觉表达的底层工程能力

1. 项目概述&#xff1a;这不是画图&#xff0c;是用结构化思维解决真实问题的底层能力“diagram-design”这个词组乍看像某个设计软件的插件名&#xff0c;或者某次内部培训的课程代号&#xff0c;但在我过去十年带过的几十个跨领域项目里&#xff0c;它其实代表一种被严重低估…

2026/10/20 22:55:46 阅读更多 →
diagram-design:结构化思维的可视化推演方法

diagram-design:结构化思维的可视化推演方法

1. 项目概述&#xff1a;这不是画图&#xff0c;是用结构化思维解决真实问题“diagram-design”这个词组乍看像一个工具名或软件功能&#xff0c;但在我过去十年带过的几十个跨领域项目里&#xff0c;它从来不是指“用Visio拖几个方框”&#xff0c;而是一套把模糊想法落地为可…

2026/10/20 22:55:46 阅读更多 →
动作单元驱动的能量流管理:知识工作者的复利提效法

动作单元驱动的能量流管理:知识工作者的复利提效法

1. 项目概述&#xff1a;这不是“躺平”&#xff0c;而是用系统性思维重构日常工作的能量守恒“躺平挖 alpha”这个标题一出来&#xff0c;很多人第一反应是调侃——又一个打鸡血式的时间管理法&#xff1f;或者干脆是反内卷的消极宣言&#xff1f;其实完全不是。我在某实验室带…

2026/10/20 22:54:43 阅读更多 →

日新闻

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实现详解

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

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

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →