ESP8266 Deauther编译与部署实战指南
本文详细介绍了ESP8266 Deauther项目的完整编译与部署流程,涵盖了从Arduino IDE环境配置、固件编译烧录、SPIFFS文件系统配置到常见问题排查的全方位实战指南。文章提供了具体的环境要求、配置步骤、编译参数设置以及针对不同硬件平台的适配方案,为开发者顺利完成项目部署提供了系统性的技术指导。
Arduino IDE环境配置
ESP8266 Deauther项目的编译环境配置是项目成功部署的关键第一步。作为一款基于ESP8266芯片的WiFi安全测试平台,它需要特定的开发环境来确保代码能够正确编译和烧录。本节将详细介绍如何配置完整的Arduino IDE开发环境,包括必要的板卡管理器配置、库依赖安装以及编译参数设置。
环境要求与前置准备
在开始配置之前,请确保您的系统满足以下基本要求:
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Windows 7 / macOS 10.12 / Linux Ubuntu 16.04 | Windows 10 / macOS 11+ / Ubuntu 20.04+ |
| Arduino IDE | 1.8.10+ | 2.0.0+ |
| Java运行时 | JRE 8+ | JRE 11+ |
| 磁盘空间 | 2GB可用空间 | 5GB可用空间 |
| 内存 | 4GB RAM | 8GB RAM |
Arduino IDE安装与配置
首先需要下载并安装最新版本的Arduino IDE。访问Arduino官方网站获取适合您操作系统的安装包:
# Windows用户可直接下载exe安装程序
# macOS用户可下载dmg镜像文件
# Linux用户可使用包管理器安装
sudo apt update && sudo apt install arduino
安装完成后,启动Arduino IDE并进行基础配置:
- 启用详细编译输出:文件 → 首选项 → 显示详细输出(编译和上传)
- 设置Sketchbook位置:建议使用默认位置或创建专用目录
- 配置编辑器字体:选择等宽字体如Consolas、Monaco或Source Code Pro
ESP8266板卡支持包安装
ESP8266 Deauther项目需要特定的板卡支持包。通过Arduino IDE的板卡管理器安装:
- 打开Arduino IDE,进入工具 → 开发板 → 开发板管理器
- 在搜索框中输入
esp8266 - 找到
esp8266 by ESP8266 Community并安装最新版本 - 等待安装完成,这可能需要几分钟时间
安装完成后,您应该能够在开发板列表中看到各种ESP8266开发板选项。
添加Spacehuhn技术板卡支持
根据项目中的arduino-cli.yaml配置文件,需要添加额外的板卡管理器URL:
# arduino-cli.yaml 配置内容
board_manager:
additional_urls:
- https://raw.githubusercontent.com/SpacehuhnTech/arduino/main/package_spacehuhn_index.json
在Arduino IDE中添加此URL:
- 打开文件 → 首选项
- 在"附加开发板管理器网址"字段中添加上述URL
- 点击"好"保存设置
- 重新打开开发板管理器,现在应该能看到Spacehuhn技术的相关包
必要的库依赖安装
ESP8266 Deauther项目依赖于多个外部库,这些库需要手动安装:
graph TD
A[核心依赖库] --> B[Adafruit NeoPixel]
A --> C[Adafruit DotStar]
A --> D[SSD1306 OLED显示库]
A --> E[ArduinoJson]
A --> F[DS3231 RTC库]
A --> G[SimpleButton库]
A --> H[MY92XX LED驱动库]
通过库管理器安装这些依赖:
- 进入项目 → 加载库 → 管理库
- 分别搜索并安装以下库:
- Adafruit NeoPixel by Adafruit
- Adafruit DotStar by Adafruit
- ESP8266 and ESP32 Oled Driver for SSD1306 display by ThingPulse
- ArduinoJson by Benoit Blanchon
- RTClib by Adafruit (包含DS3231支持)
- SimpleButton by Spacehuhn Technology
开发板选择与配置
根据您使用的具体硬件,选择对应的开发板配置:
// 在A_config.h中定义的开发板类型示例
#define NODEMCU
// #define WEMOS_D1_MINI
// #define DSTIKE_DEAUTHER_OLED_V3
// 根据实际硬件取消注释对应的定义
在Arduino IDE中进行板卡配置:
- 工具 → 开发板:选择对应的ESP8266开发板
- Flash Size:设置为4MB (FS:2MB OTA:~1019KB)
- CPU Frequency:设置为160MHz
- Upload Speed:设置为921600
- Port:选择正确的串口设备
编译参数与优化设置
为了确保项目正确编译,需要设置特定的编译参数:
# 编译参数示例
build.extra_flags=-DESP8266 -D{BOARD_TYPE}
build.flash_mode=dio
build.flash_freq=80m
build.flash_size=4M
board_build.flash_size=4M
这些参数可以通过以下方式设置:
- 在Arduino IDE的文件 → 首选项中配置
- 或者使用项目提供的arduino-cli编译脚本
验证环境配置
完成所有配置后,进行环境验证:
- 打开项目主文件
esp8266_deauther/esp8266_deauther.ino - 点击验证按钮(✓)进行编译测试
- 观察输出窗口,确保没有编译错误
- 如果出现库缺失错误,重新检查库安装
常见的编译问题及解决方案:
| 问题类型 | 症状 | 解决方案 |
|---|---|---|
| 库版本冲突 | 多个库包含相同头文件 | 删除旧版本库,保留最新版 |
| 内存不足 | 编译过程中断 | 增加Arduino IDE内存分配 |
| 板卡未识别 | 开发板选项灰色 | 重新安装ESP8266支持包 |
| 串口权限问题 | 上传失败 | Linux/Mac下添加用户到dialout组 |
使用arduino-cli进行批量编译
项目提供了arduino-cli-compile.py脚本用于批量编译不同硬件配置:
# 使用示例
python3 utils/arduino-cli-compile.py 2.5.0
该脚本会自动为所有支持的开发板类型生成编译结果,大大简化了多硬件兼容性测试流程。
通过以上步骤,您已经成功配置了ESP8266 Deauther项目所需的完整Arduino开发环境。正确的环境配置是项目成功编译和部署的基础,确保后续的开发、测试和部署工作能够顺利进行。
固件编译与烧录步骤
ESP8266 Deauther项目的固件编译与烧录是整个部署过程中最关键的环节。本节将详细介绍从环境配置到最终烧录的完整流程,帮助开发者顺利完成固件的构建与部署。
开发环境配置
在开始编译之前,需要配置合适的开发环境。ESP8266 Deauther支持多种开发工具链,推荐使用Arduino CLI进行编译,以获得最佳的兼容性和稳定性。
安装Arduino CLI
首先需要安装Arduino CLI工具,这是官方推荐的命令行编译工具:
# 在Linux系统上安装Arduino CLI
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
# 或将可执行文件移动到系统路径
sudo mv bin/arduino-cli /usr/local/bin/
# 初始化配置
arduino-cli config init
配置开发板支持
ESP8266 Deauther需要特定的开发板支持包,通过以下命令添加:
# 添加Spacehuhn的开发板支持源
arduino-cli config add board_manager.additional_urls https://raw.githubusercontent.com/SpacehuhnTech/arduino/main/package_spacehuhn_index.json
# 更新核心索引
arduino-cli core update-index
# 安装ESP8266开发板核心
arduino-cli core install deauther:esp8266
验证环境配置
完成安装后,使用以下命令验证环境配置是否正确:
# 查看已安装的核心
arduino-cli core list
# 查看可用的开发板
arduino-cli board listall
预期输出应包含deauther:esp8266相关的开发板信息。
固件编译流程
ESP8266 Deauther支持多种硬件平台,编译时需要指定对应的板型定义。项目提供了自动化的编译脚本简化此过程。
手动编译方法
对于单个特定板型的编译,可以使用以下命令:
# 进入项目目录
cd esp8266_deauther/esp8266_deauther
# 编译特定板型(以NODEMCU为例)
arduino-cli compile --fqbn deauther:esp8266:generic \
--build-property "build.extra_flags=-DESP8266 -DNODEMCU" \
--output-dir ../build
自动化批量编译
项目提供了Python脚本用于批量编译所有支持的板型:
# 使用提供的编译脚本
python3 ../utils/arduino-cli-compile.py 2.5.0
该脚本会自动编译所有支持的硬件平台,生成对应的固件文件。编译过程的状态流转如下:
flowchart TD
A[开始编译] --> B[清理编译缓存]
B --> C{遍历所有板型}
C --> D[设置板型编译参数]
D --> E[执行Arduino CLI编译]
E --> F[重命名输出文件]
F --> G{是否所有板型完成?}
G --否--> C
G --是--> H[清理中间文件]
H --> I[编译完成]
支持的硬件平台
ESP8266 Deauther支持丰富的硬件平台,主要包括:
| 平台类型 | 代表型号 | 特点描述 |
|---|---|---|
| 基础开发板 | NODEMCU, WEMOS_D1_MINI | 标准ESP8266模块,适合初学者 |
| DSTIKE系列 | DSTIKE_DEAUTHER_V1-V6 | 专用Deauther硬件,集成OLED显示屏 |
| 手表设备 | DSTIKE_DEAUTHER_WATCH | 便携式穿戴设备 |
| 迷你版本 | DSTIKE_DEAUTHER_MINI | 紧凑型设计 |
| 灯具设备 | LYASI_7W_E27_LAMP | 伪装成智能灯具的特殊版本 |
烧录工具与配置
编译完成后,需要将固件烧录到ESP8266设备中。常用的烧录工具包括esptool.py和Arduino IDE的烧录功能。
使用esptool.py烧录
esptool.py是官方的ESP8266/ESP32烧录工具:
# 安装esptool.py
pip install esptool
# 查看连接的ESP设备
esptool.py chip_id
# 擦除闪存
esptool.py --port /dev/ttyUSB0 erase_flash
# 烧录固件
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash \
-fs 4MB -fm dio -ff 40m \
0x00000 ../build/esp8266_deauther_2.5.0_NODEMCU.bin
烧录参数说明
不同的ESP8266模块需要不同的烧录参数:
| 参数 | 含义 | 推荐值 |
|---|---|---|
| -fs | 闪存大小 | 4MB (大多数模块) |
| -fm | 闪存模式 | dio (双IO模式) |
| -ff | 闪存频率 | 40m (40MHz) |
| --baud | 烧录波特率 | 460800 (高速烧录) |
图形化烧录工具
对于不熟悉命令行的用户,可以使用NodeMCU PyFlasher等图形化工具:
- 下载并打开NodeMCU PyFlasher
- 选择正确的串口端口
- 设置闪存配置参数
- 选择编译好的.bin文件
- 点击"Flash NodeMCU"开始烧录
编译常见问题与解决方案
在编译和烧录过程中可能会遇到各种问题,以下是常见问题的解决方法:
依赖库版本冲突
# 如果遇到ArduinoJson版本冲突
# 需要安装v5.x版本,而不是v6.x
arduino-cli lib install "ArduinoJson@5.13.5"
内存不足错误
编译时如果出现内存不足错误,可以尝试:
# 增加编译器的堆栈大小
export ARDUINO_CLI_BUILD_JOBS=1
烧录失败处理
如果烧录失败,可以尝试:
- 降低烧录波特率到115200
- 检查USB数据线连接是否稳定
- 确保ESP8266进入烧录模式(GPIO0接地重启)
验证与测试
烧录完成后,需要进行功能验证:
# 通过串口监视器查看输出
arduino-cli monitor --port /dev/ttyUSB0 --baud 115200
正常启动时,串口会输出Deauther的版本信息和初始化状态:
[SETUP] Mount SPIFFS... OK
[SETUP] Load settings... OK
[SETUP] Started
ESP8266 Deauther v2.5.0
通过Web浏览器访问192.168.4.1可以打开Deauther的管理界面,验证所有功能是否正常工作。
固件编译与烧录是ESP8266 Deauther部署的基础,掌握这些技能后,您可以轻松地为各种硬件平台定制和部署Deauther固件,为后续的WiFi安全测试工作奠定坚实基础。
SPIFFS文件系统配置
ESP8266 Deauther项目采用了创新的SPIFFS(SPI Flash File System)文件系统配置方案,为Web界面文件提供了灵活高效的存储和管理机制。这一设计不仅优化了存储空间利用率,还实现了固件与Web资源的智能分离,为开发者提供了极大的便利。
SPIFFS架构设计
ESP8266 Deauther的SPIFFS文件系统采用分层架构设计,主要包含以下核心组件:
flowchart TD
A[原始Web文件] --> B[Web Converter工具]
B --> C{GZIP压缩}
C --> D[十六进制编码]
D --> E[webfiles.h头文件]
E --> F[PROGMEM存储]
F --> G[运行时解压]
G --> H[SPIFFS文件系统]
subgraph SPIFFS文件系统
H --> I[/web/index.html.gz]
H --> J[/web/js/attack.js.gz]
H --> K[/web/lang/en.lang.gz]
H --> L[/web/style.css.gz]
end
文件转换与压缩流程
项目使用专门的webConverter.py工具将原始Web文件转换为SPIFFS可用的格式,具体转换流程如下:
- 文件最小化处理:使用CSS/HTML/JS压缩工具对源文件进行优化
- GZIP压缩:对最小化后的文件进行GZIP压缩,显著减少存储空间
- 十六进制编码:将压缩后的二进制文件转换为C语言数组格式
- 头文件生成:自动生成
webfiles.h包含所有文件的PROGMEM定义
# webConverter.py核心转换代码示例
for file in html_files:
# 最小化HTML文件
process_single_html_file(original_file, output_path=new_file)
# GZIP压缩
with gzip.GzipFile(new_file + ".gz", mode='w') as fo:
fo.write(content.encode("UTF-8"))
# 十六进制编码
hex_content = binascii.hexlify(content)
hex_content = [hex_content[i:i+2] for i in range(0, len(hex_content), 2)]
# 生成PROGMEM定义
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
运行时文件部署机制
ESP8266启动时,系统会根据配置决定Web文件的存储方式:
// webfiles.h中的配置选项
#define USE_PROGMEM_WEB_FILES // 注释此行可手动上传文件到SPIFFS
void copyWebFiles(bool force){
#ifdef USE_PROGMEM_WEB_FILES
if(settings::getWebSettings().use_spiffs){
// 检查文件是否存在,不存在则从PROGMEM复制到SPIFFS
if(!LittleFS.exists("/web/index.html.gz") || force)
progmemToSpiffs(indexhtml, sizeof(indexhtml), "/web/index.html.gz");
// ... 其他文件处理逻辑
}
#endif
}
PROGMEM到SPIFFS的转换函数
核心的progmemToSpiffs函数负责将PROGMEM中的压缩文件写入SPIFFS:
bool progmemToSpiffs(const char* adr, int len, String path) {
prnt(str(SETUP_COPYING) + path + str(SETUP_PROGMEM_TO_SPIFFS));
File f = LittleFS.open(path, "w+");
if (!f) {
prntln(SETUP_ERROR);
return false;
}
// 逐字节从PROGMEM读取并写入SPIFFS
for (int i = 0; i < len; i++) {
f.write(pgm_read_byte_near(adr + i));
}
f.close();
prntln(SETUP_OK);
return true;
}
文件访问处理逻辑
Web服务器使用智能的文件访问处理机制:
bool handleFileRead(String path) {
if (path.charAt(0) != '/') path = '/' + path;
if (path.charAt(path.length() - 1) == '/') path += String(F("index.html"));
String contentType = getContentType(path);
// 智能文件路径解析
if (!LittleFS.exists(path)) {
if (LittleFS.exists(path + str(W_DOT_GZIP)))
path += str(W_DOT_GZIP);
else if (LittleFS.exists(String(ap_settings.path) + path))
path = String(ap_settings.path) + path;
// ... 其他路径尝试逻辑
}
File file = LittleFS.open(path, "r");
server.streamFile(file, contentType);
file.close();
return true;
}
配置选项与性能优化
SPIFFS配置通过Web设置界面进行管理,主要包含以下选项:
| 配置项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| use_spiffs | bool | true | 是否使用SPIFFS存储Web文件 |
| enabled | bool | true | Web界面是否启用 |
| captive_portal | bool | true | 是否启用Captive Portal |
| lang | char[3] | "en" | 默认语言设置 |
性能优化策略:
- 延迟加载:文件仅在首次访问时从PROGMEM复制到SPIFFS
- 压缩存储:所有Web文件均采用GZIP压缩,减少约60-70%存储空间
- 智能缓存:SPIFFS提供文件系统级别的缓存机制
- 内存优化:PROGMEM存储避免占用宝贵的RAM空间
文件组织结构
SPIFFS中的文件采用清晰的目录结构:
/web/
├── index.html.gz # 主页面
├── attack.html.gz # 攻击页面
├── scan.html.gz # 扫描页面
├── settings.html.gz # 设置页面
├── info.html.gz # 信息页面
├── ssids.html.gz # SSID管理页面
├── style.css.gz # 样式文件
├── js/
│ ├── attack.js.gz # 攻击功能JS
│ ├── scan.js.gz # 扫描功能JS
│ ├── settings.js.gz # 设置功能JS
│ ├── site.js.gz # 站点通用JS
│ └── ssids.js.gz # SSID管理JS
├── lang/
│ ├── en.lang.gz # 英语语言文件
│ ├── cn.lang.gz # 中文语言文件
│ ├── de.lang.gz # 德语语言文件
│ └── ...(其他23种语言)
└── LICENSE.gz # 许可证文件
开发与调试建议
对于开发者而言,SPIFFS配置提供了灵活的调试选项:
- 手动文件上传:注释
USE_PROGMEM_WEB_FILES定义后,可通过ESP8266 SPIFFS上传工具手动上传文件 - 强制更新:调用
copyWebFiles(true)强制重新复制所有文件到SPIFFS - 空间监控:定期检查SPIFFS使用情况,避免空间不足
- 文件验证:通过Web界面访问文件,验证SPIFFS存储的正确性
这种SPIFFS配置方案不仅提供了出色的性能表现,还为项目的维护和扩展奠定了坚实的基础。通过智能的文件管理机制,ESP8266 Deauther实现了Web界面的高效部署和灵活配置。
常见问题与故障排除
在ESP8266 Deauther的编译与部署过程中,开发者可能会遇到各种技术问题。本节将详细分析常见故障现象、原因及解决方案,帮助您快速定位并解决问题。
编译相关问题
编译错误:内存分配失败
// 典型错误信息示例
ERROR : Memory check failure at block 0x
问题分析:ESP8266芯片内存资源有限,当代码体积过大或内存分配不合理时会出现此错误。
解决方案:
- 启用代码优化选项,减小二进制文件体积
- 检查并移除不必要的库依赖
- 使用PROGMEM关键字将常量数据存储在Flash中
- 优化字符串处理,避免不必要的字符串拷贝
flowchart TD
A[编译出现内存错误] --> B{错误类型分析}
B --> C[内存分配失败]
B --> D[代码体积过大]
B --> E[库冲突]
C --> F[优化内存使用]
D --> G[启用编译器优化]
E --> H[检查库依赖]
F --> I[使用PROGMEM]
F --> J[减少全局变量]
G --> K[设置优化级别-O2]
H --> L[移除未使用库]
I --> M[重新编译]
J --> M
K --> M
L --> M
库依赖冲突
常见症状:编译时出现重复定义或类型冲突错误。
解决方法:
- 确保使用的库版本与项目要求一致
- 检查
src/目录下的第三方库是否完整 - 清理并重新安装所有依赖库
# 清理编译缓存
rm -rf .pio/build/*
# 重新编译
pio run
部署与运行问题
固件刷写失败
可能原因及解决方案:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法识别设备 | 驱动程序未安装 | 安装CH340/CP2102 USB转串口驱动 |
| 刷写超时 | 波特率设置错误 | 使用115200波特率 |
| 验证失败 | Flash芯片不兼容 | 检查ESP8266模块型号和Flash大小 |
运行时异常重启
问题分析:ESP8266在运行过程中频繁重启通常与以下因素有关:
- 看门狗超时:长时间阻塞操作未及时喂狗
- 内存泄漏:动态内存分配未正确释放
- 堆栈溢出:递归调用或大型局部变量
解决方案:
// 在长时间操作中添加看门狗喂食
void longRunningTask() {
for(int i = 0; i < 1000; i++) {
// 处理任务
ESP.wdtFeed(); // 定期喂狗
delay(10);
}
}
网络功能问题
WiFi扫描无结果
故障排查步骤:
- 检查天线连接:确保天线正确连接且未损坏
- 验证信道设置:确认扫描信道在设备支持范围内(1-13或1-14)
- 测试信号强度:使用其他设备验证周围存在WiFi信号
sequenceDiagram
participant User
participant Deauther
participant WiFiAP
User->>Deauther: 启动扫描命令
Deauther->>Deauther: 初始化射频模块
Deauther->>WiFiAP: 发送探测请求
WiFiAP-->>Deauther: 返回信标帧
Deauther->>Deauther: 处理扫描结果
Deauther-->>User: 显示扫描结果
Note right of Deauther: 如果此步骤失败<br/>检查射频配置
去认证攻击无效
可能原因:
- 目标设备支持802.11w协议(管理帧保护)
- 信号强度不足
- 信道不匹配
解决方案:
- 确保目标设备与Deauther在同一信道
- 调整发射功率(如果硬件支持)
- 验证目标设备是否易受此类攻击
串口通信问题
串口无响应
诊断方法:
# 检查串口设备
ls /dev/ttyUSB*
# 测试串口通信
screen /dev/ttyUSB0 115200
常见解决方案:
- 检查USB线缆和数据线质量
- 确认波特率设置为115200
- 验证串口终端配置(8N1,无流控)
命令执行异常
当串口命令执行出现意外行为时,可以启用调试模式获取详细信息:
// 在A_config.h中启用调试
#define ENABLE_DEBUG true
#define DEBUG_BAUD 115200
#define DEBUG_PORT Serial
显示与界面问题
OLED显示异常
故障现象:屏幕显示乱码、花屏或无显示。
排查步骤:
- 检查I2C地址设置(通常为0x3C或0x3D)
- 验证屏幕型号与驱动程序匹配
- 检查接线(SDA、SCL、VCC、GND)
相关配置:
// 在设置中调整显示参数
set displayInterface true
set displayTimeout 600
电源相关问题
不稳定运行
症状:设备随机重启或功能异常。
解决方案:
- 使用质量可靠的5V/1A以上电源适配器
- 在电源引脚添加100-470μF电容滤波
- 避免使用电脑USB口供电(供电能力有限)
SPIFFS文件系统问题
文件操作失败
错误处理:
// 检查SPIFFS状态
if (!SPIFFS.begin()) {
Serial.println("SPIFFS初始化失败");
// 尝试格式化
SPIFFS.format();
}
常见问题:
- 文件系统损坏:使用
format命令修复 - 存储空间不足:删除不必要的文件
- 文件权限问题:检查文件读写权限设置
性能优化建议
提升扫描效率
// 优化扫描参数设置
set chTime 284 // 减少信道停留时间
set maxCh 11 // 根据地区调整最大信道
set randomTX true // 启用随机发射功率
内存使用优化
定期监控内存使用情况:
# 查看内存信息
sysinfo
通过系统性的故障排查和优化,可以显著提升ESP8266 Deauther的稳定性和性能。建议在部署前充分测试所有功能,并根据实际使用环境调整相关参数。
ESP8266 Deauther项目的成功部署需要严格遵循环境配置要求,正确安装开发板支持包和库依赖,并根据具体硬件选择合适的编译参数。本文提供的完整流程和故障排查方案能够帮助开发者有效解决编译、烧录和运行过程中遇到的各种技术问题。通过系统性的环境配置和优化,可以确保Deauther固件在不同硬件平台上稳定运行,为WiFi安全测试工作奠定坚实基础。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00