管家婆辉煌版数据表结构解析与逆向工程实践
简介本资源是一份面向中小企业IT运维人员、数据库管理员及二次开发工程师的《管家婆辉煌版数据表结构》权威解析文档解决系统底层数据理解、定制化开发、数据迁移与跨平台对接等实际问题。文档以清晰分类方式梳理了辉煌版核心数据表体系涵盖职员、商品、往来单位、仓库等7类基础信息表订单、进货、销售、零售等8类业务单据表以及操作员、系统配置、单据类型等6类系统支撑表并对Ptype、btype、Dlyndx、Dlya等关键表的字段含义、数据类型及业务逻辑作了详细注释。资源为1个115KB的Word文档.doc内容完整、排版规范便于查阅与打印。目前已有712人学习下载读者可直接掌握各表用途、主外键关系及典型业务场景下的数据流向快速上手数据提取、报表开发与系统集成工作。1. 管家婆辉煌版数据表结构不是“拿来即用”的文档而是ERP系统逆向工程的起点你手头刚拿到一份名为《管家婆辉煌版数据表结构.doc》的文件——它看起来像数据库字典但打开后只有几十张表名、字段名和模糊的中文注释没有主外键关系图没有索引说明没有字段取值约束比如“状态0/1/2”这种关键业务逻辑更没有版本标识。某开发者曾用它直接写进销存接口结果同步了三天才发现“销售单主表”里billdate是字符串格式的“2023-01-01”而“销售明细表”里对应字段却是datetime类型导致关联查询全为空。这不是文档缺陷而是管家婆辉煌版作为典型国产单机/局域网ERP的固有设计逻辑它不对外暴露强契约式数据契约所有业务语义都藏在VB6编译后的DLL黑匣子里。这份.doc文件本质是某位老工程师从SQL Server Profiler抓包反编译手工校验拼出来的“逆向快照”价值不在字段列表本身而在帮你避开“以为字段存在、实则被视图重写”“以为可更新、实则触发器拦截”这类血泪翻车点。适合正在做辉煌版数据迁移、BI对接、定制报表或跨系统集成的后端工程师、实施顾问和独立开发者——尤其当你已确认不能走官方API多数老客户买的是无API授权的精简版必须直连SQL Server数据库时。2. 解析这份.doc文档先建模再验证拒绝“复制粘贴式建表”拿到.doc后第一反应不是建库而是把它变成可执行、可验证、可迭代的结构定义。我一般会分三步走文本清洗 → 关系建模 → SQL生成。核心原则是文档里的“字段说明”90%不可信唯一可信的是你连上真实数据库后SELECT TOP 1 * FROM [表名]看到的实际数据。2.1 文本清洗把Word表格转成结构化CSV过滤掉玄学注释管家婆辉煌版的.doc常含大量干扰信息合并单元格、空行、括号嵌套注释如“数量(件/箱)”、字段名带空格商品名称等。直接复制到Excel会错乱。我的做法是用Python调用python-docx读取文档定位到第一个表格通常为“基础资料表”遍历每行跳过表头行含“序号”“字段名”“类型”“说明”字样对“字段名”列做strip()并替换全角空格对“类型”列统一映射为SQL Server标准类型如“文本”→NVARCHAR(50)“数字”→DECIMAL(18,2)过滤掉“说明”列含“仅限内部使用”“调试用”“已废弃”的字段——这些字段在新版辉煌版中大概率不存在或逻辑已变更。from docx import Document import csv def parse_doc_to_csv(doc_path, output_csv): doc Document(doc_path) with open(output_csv, w, newline, encodingutf-8-sig) as f: writer csv.writer(f) writer.writerow([table_name, column_name, data_type, is_nullable, comment]) for table in doc.tables: for row in table.rows[1:]: # 跳过表头 cells [cell.text.strip() for cell in row.cells] if len(cells) 4 or not cells[0]: # 跳过空行或列数不足 continue table_name cells[0].split()[0].strip() # 提取表名如“t_goods商品资料表” col_name cells[1].replace( , ).replace( , ) # 清除全角/半角空格 data_type map_doc_type(cells[2]) # 自定义映射函数 is_null 是 in cells[3] # “是否允许为空”列 comment cells[4] if len(cells) 4 else # 过滤玄学注释 if any(kw in comment for kw in [仅限内部使用, 调试用, 已废弃]): continue writer.writerow([table_name, col_name, data_type, is_null, comment]) def map_doc_type(doc_type): mapping { 文本: NVARCHAR(50), 长文本: NTEXT, 数字: DECIMAL(18,2), 整数: INT, 日期: DATETIME, 逻辑: BIT } return mapping.get(doc_type, NVARCHAR(50))提示map_doc_type函数需根据你手头.doc的实际类型描述微调。常见坑是“金额”字段在文档中标为“数字”但实际数据库中为MONEY类型——此时应手动在CSV中修正为MONEY因为DECIMAL(18,2)与MONEY在四舍五入行为上存在差异。2.2 关系建模用Graphviz画出主外键图揪出隐藏的“伪外键”管家婆辉煌版大量使用“软关联”比如t_sale销售单主表和t_sale_detail销售明细表之间文档说billno是外键但实际数据库中t_sale_detail.billno并未建外键约束而是靠应用层保证一致性。若盲目按文档建外键会导致INSERT失败。正确做法是用SQL Server Management StudioSSMS连接真实数据库执行sp_help t_sale_detail查看t_sale_detail的真实字段类型和约束运行以下SQL检查是否存在物理外键-- 检查t_sale_detail表是否存在指向t_sale的外键 SELECT fk.name AS foreign_key_name, t1.name AS table_name, c1.name AS column_name, t2.name AS referenced_table_name, c2.name AS referenced_column_name FROM sys.foreign_keys AS fk INNER JOIN sys.foreign_key_columns AS fkc ON fk.object_id fkc.constraint_object_id INNER JOIN sys.tables AS t1 ON fkc.parent_object_id t1.object_id INNER JOIN sys.columns AS c1 ON fkc.parent_object_id c1.object_id AND fkc.parent_column_id c1.column_id INNER JOIN sys.tables AS t2 ON fkc.referenced_object_id t2.object_id INNER JOIN sys.columns AS c2 ON fkc.referenced_object_id c2.object_id AND fkc.referenced_column_id c2.column_id WHERE t1.name t_sale_detail AND t2.name t_sale;若返回空结果则证明这是“伪外键”你的ETL脚本必须加LEFT JOIN容错而非INNER JOIN强依赖。2.3 SQL生成从CSV生成建表脚本重点处理“时间戳陷阱”生成脚本时最易翻车的是时间字段。辉煌版常用三种时间存储方式DATETIME如createtime精度3.33ms范围1753-9999VARCHAR(10)存“YYYY-MM-DD”如billdate用于报表筛选但无法直接计算INT存Unix时间戳部分新版模块使用需转换。以下Python脚本根据CSV生成带注释的建表SQL自动识别时间字段并添加-- ⚠️ 注意此字段为字符串格式需CONVERT处理标记def generate_create_table_sql(csv_path, table_name): with open(csv_path, r, encodingutf-8-sig) as f: reader csv.DictReader(f) columns [row for row in reader if row[table_name] table_name] sql_lines [f-- 创建表 {table_name}] sql_lines.append(fIF NOT EXISTS (SELECT * FROM sysobjects WHERE name \{table_name}\ AND xtype \U\)) sql_lines.append(fCREATE TABLE {table_name} () col_defs [] for col in columns: col_def f [{col[column_name]}] {col[data_type]} if col[is_nullable] False: col_def NOT NULL else: col_def NULL # 时间字段陷阱检测 if date in col[column_name].lower() or time in col[column_name].lower(): if varchar in col[data_type].lower(): col_def f -- ⚠️ 注意此字段为字符串格式需CONVERT处理 elif int in col[data_type].lower(): col_def f -- ⚠️ 注意此字段为Unix时间戳需DATEADD转换 col_defs.append(col_def) sql_lines.append(,\n.join(col_defs)) sql_lines.append();) return \n.join(sql_lines) # 示例生成t_goods表 print(generate_create_table_sql(huanghui_struct.csv, t_goods))参数说明encodingutf-8-sig解决Word导出CSV的BOM头问题col[is_nullable] False对应文档中“否”值避免因空格导致判断失效时间字段检测用小写lower()兼容“BillDate”“CREATETIME”等大小写混用场景。3. 验证数据表结构用三类SQL探针穿透文档的“表面正确性”文档说t_customer客户资料表有creditlimit信用额度字段类型为“数字”。但真实数据库中该字段可能是NULL且业务规则是“未设置时视为无限额”。若你的BI报表直接SUM(creditlimit)结果会因NULL被忽略而失真。验证不是走马观花看字段而是用三类SQL探针刺穿表结构的每一层3.1 结构探针INFORMATION_SCHEMA.COLUMNS比文档更诚实文档可能漏掉timestamp类型字段如t_goods.rowversion但它在系统视图中必然存在。运行以下SQL获取真实字段清单并与CSV对比-- 获取t_goods表所有字段含系统字段 SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, IsIdentity) AS IsIdentity, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, IsRowGuidCol) AS IsRowGuidCol FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME t_goods ORDER BY ORDINAL_POSITION;关键发现COLUMNPROPERTY(..., IsIdentity)返回1表示自增主键这解释了为什么文档中t_goods.id没标“主键”却实际是聚集索引——辉煌版大量使用IDENTITY(1,1)而非显式PRIMARY KEY约束。3.2 数据探针用SELECT TOP 5看真实值分布揪出“文档没写的默认值”文档说t_sale.status是“逻辑型”但SELECT TOP 5 status FROM t_sale返回0,1,1,2,0。此时需进一步查sys.extended_properties看是否有扩展属性注释-- 查看t_sale.status字段的扩展属性常存业务含义 SELECT value AS description FROM fn_listextendedproperty( NULL, SCHEMA, dbo, TABLE, t_sale, COLUMN, status );若返回0:未审核,1:已审核,2:已作废则文档的“逻辑型”注释完全没传递业务语义。你的代码必须硬编码这个映射而非简单转布尔值。3.3 关系探针用DBCC CHECKCONSTRAINTS验证外键有效性即使文档声称t_purchase_detail外键指向t_purchase也需验证其物理完整性-- 检查t_purchase_detail表所有外键约束状态 DBCC CHECKCONSTRAINTS(t_purchase_detail); -- 若返回Status: No Check说明约束被禁用需手动启用 ALTER TABLE t_purchase_detail WITH CHECK CHECK CONSTRAINT ALL;注意WITH CHECK CHECK CONSTRAINT是双重CHECK——第一个CHECK指验证现有数据第二个CHECK CONSTRAINT指启用约束。省略第一个会导致约束虽启用但处于NOT TRUSTED状态SQL Server优化器不会用它生成高效执行计划。4. 避坑辉煌版数据表结构的5个高频翻车点与解法这些坑我都在模拟项目X中踩过每次修复都得停服两小时。列在这里只为让你少熬一次夜。4.1 现象t_inventory库存表的qty字段值为负数但文档说“库存量≥0”原因辉煌版库存采用“移动平均价”算法qty为负表示“暂估入库未到货”或“销售出库未扣减”是合法业务状态非数据错误。文档编写者按财务常识误判。解决BI报表中库存汇总必须用SUM(CASE WHEN qty 0 THEN 0 ELSE qty END)而非SUM(qty)ETL同步时保留负值加字段inventory_status标注“暂估”“实存”。4.2 现象t_goods商品资料表的spec规格字段在SSMS中显示为NTEXT但LEN(spec)返回NULL原因NTEXT是SQL Server 2000遗留类型LEN()函数对其返回NULL必须用DATALENGTH(spec)/2计算字符数因Unicode占2字节。解决所有涉及spec长度判断的SQL改用DATALENGTH(spec)/2 100迁移至新系统时将NTEXT批量转为NVARCHAR(MAX)ALTER TABLE t_goods ALTER COLUMN spec NVARCHAR(MAX)。4.3 现象t_sale销售单主表的custid客户ID与t_customer.id无法JOINcustid值如C0001而t_customer.id为1原因辉煌版客户ID采用“编码数字”混合格式C0001但t_customer表中id是自增INT真正关联字段是t_customer.code客户编码。文档把custid错标为“客户ID”实为“客户编码”。解决JOIN条件必须为t_sale.custid t_customer.code在t_sale表上为custid字段创建非聚集索引加速关联。4.4 现象t_account往来单位表的name字段有重复值但文档称“单位名称唯一”原因辉煌版允许同一单位在不同账套下重名如“北京分公司”在A账套和B账套同时存在name非唯一真正唯一键是(name, account_type)组合。解决去重逻辑必须包含account_type单位类型客户/供应商/员工GROUP BY name, account_type导入新系统时用HASHBYTES(MD5, CONCAT(name, account_type))生成代理主键。4.5 现象t_user用户表的password字段是明文但登录时输入密码总失败原因辉煌版密码加密采用VB6的StrConv函数固定密钥非标准MD5/SHA。password字段存的是密文但文档未说明加密算法。解决放弃逆向改用辉煌版提供的CheckUserPasswordCOM组件验证或抓包分析登录请求提取其HTTP API的密码加密逻辑需Fiddler监听本地127.0.0.1:8080端口。5. 进阶技巧用Power Query自动同步.doc结构到SQL Server建立文档-数据库双向校验机制手动比对文档和数据库每次升级辉煌版都要重来一遍。我在某高校实验室的模拟项目X中用Power Query实现了自动化校验流水线每天凌晨自动拉取最新.doc解析后与生产库结构比对邮件告警差异项。核心是把Word文档当“数据源”而非“说明书”。5.1 Power Query解析Word文档绕过COM组件纯公式提取表格Power Query原生不支持.doc但可借助Web.Page函数加载HTML临时文件。步骤用Python脚本将.doc另存为HTMLpython-docx不支持改用pandoc命令行pandoc 管家婆辉煌版数据表结构.doc -o struct.html在Power Query中用Web.Page加载HTML提取第一个表格let Source Web.Page(File.Contents(struct.html)), Data Source{0}[Data], // 过滤掉表头行含“序号”“字段名”等 FilteredRows Table.SelectRows(Data, each not Text.Contains([Column1], 序号) and not Text.Contains([Column1], 字段名)) in FilteredRows5.2 双向校验逻辑用T-SQL生成校验SQL让数据库自己“审文档”校验不是人眼比对而是让SQL Server执行校验语句。以下SQL生成一个“文档字段缺失”报告-- 生成SQL找出文档中有、数据库中无的字段 DECLARE table_name NVARCHAR(50) t_goods; DECLARE doc_fields TABLE (field_name NVARCHAR(50)); INSERT INTO doc_fields VALUES (id), (code), (name), (spec), (unit); -- 从CSV读取的字段 SELECT df.field_name AS doc_field, MISSING IN DB AS status FROM doc_fields df LEFT JOIN INFORMATION_SCHEMA.COLUMNS isc ON isc.TABLE_NAME table_name AND isc.COLUMN_NAME df.field_name WHERE isc.COLUMN_NAME IS NULL; -- 生成SQL找出数据库中有、文档中无的字段常为系统字段 SELECT isc.COLUMN_NAME AS db_field, MISSING IN DOC AS status FROM INFORMATION_SCHEMA.COLUMNS isc LEFT JOIN doc_fields df ON isc.COLUMN_NAME df.field_name WHERE isc.TABLE_NAME table_name AND df.field_name IS NULL;5.3 建立校验看板用Power BI连接校验结果表可视化“文档健康度”将上述校验SQL结果存入dbo.struct_audit表Power BI连接后建看板字段覆盖率COUNT(doc_field) / COUNT(*)目标值≥95%高危字段数WHERE status MISSING IN DB AND doc_field IN (createtime,billdate,status)变更趋势图按天统计struct_audit记录数突增说明辉煌版升级后结构大改。我的血泪经验某次辉煌版从8.2升级到9.0t_sale表新增taxrate税率字段但文档未更新。校验看板当天报警我们提前2天发现避免了财务月结报表取数错误。现在团队习惯把.doc文件名带上版本号如huanghui_v9.0_struct.doc校验脚本自动提取版本号并存档——文档从此不再是“一次性快照”而是可追溯的活数据。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

FlashDB嵌入式数据库:解决NOR Flash擦写寿命与掉电数据保护

FlashDB嵌入式数据库:解决NOR Flash擦写寿命与掉电数据保护

简介:FlashDB 是一款面向物联网与边缘计算场景的超轻量级嵌入式数据库,专为资源受限的MCU产品提供高效可靠的数据存储方案。定位为可移植的数据库源码包,适合嵌入式工程师、物联网开发者以及对Flash存储管理有需求的底层技术人员参考学习。包…

2026/10/16 19:40:38 阅读更多 →
SQL 2000.zip 数据迁移实战:从老库文件到现代SQL Server

SQL 2000.zip 数据迁移实战:从老库文件到现代SQL Server

简介:本资源为微软SQL Server 2000(SQL2K)完整安装包及配套技术资料合集,面向数据库初学者、运维工程师与遗留系统维护人员,助力理解经典企业级RDBMS的核心架构与实操要点。压缩包为ZIP格式,大小400.83MB&a…

2026/10/17 17:25:48 阅读更多 →
用pstack诊断Claude本地服务卡死问题

用pstack诊断Claude本地服务卡死问题

1. “pstack-claude”不是工具名,而是开发者在调试现场随手记下的诊断线索 你第一次在终端里敲下 pstack ,看到一串堆栈帧从进程PID里倾泻而出,而旁边日志里正滚动着 codex endpoint /responses 的报错——那一刻,“pstack-c…

2026/10/17 18:33:24 阅读更多 →

最新新闻

形变场形式转换实战:DDF、B样条与速度场互转及避坑指南

形变场形式转换实战:DDF、B样条与速度场互转及避坑指南

做配准项目时间长了,你会发现一个规律:算法输出给你的,不一定是下游真正需要的。上周我处理一个跨模态配准任务,跑完变形模型,拿到的是一套B样条控制点和速度场,可下游要用来做标签传播,需要的是…

2026/10/18 18:03:50 阅读更多 →
YOLO结合SubspaceAD:一张良品图检出所有未知缺陷

YOLO结合SubspaceAD:一张良品图检出所有未知缺陷

YOLO SubspaceAD:一张良品图,检出所有未知缺陷在工业质检这个圈子里摸爬滚打了几年,我越来越觉得传统的视觉检测方案到了一个瓶颈:已知缺陷能查,但新出现的缺陷形态往往要等客户投诉之后才后知后觉。这次我想聊聊一套…

2026/10/18 18:03:50 阅读更多 →
机器学习分类任务全流程指南:从数据准备到模型评估

机器学习分类任务全流程指南:从数据准备到模型评估

拿到“第五章:如何处理分类任务(预习)”这个标题,我第一反应是:这不就是大多数人在机器学习入门阶段都会卡住的那一章吗?前面还在学回归、学损失函数、学梯度下降,突然进入分类任务,…

2026/10/18 18:03:50 阅读更多 →
C#彻底删除PDF数字签名:字段、外观与残留清理全攻略

C#彻底删除PDF数字签名:字段、外观与残留清理全攻略

收到需求“用 C# 删除 PDF 里的数字签名”,大部分人以为这是件小事,打开文件、删个字段、保存,三行代码搞定。实际上我第一次接到类似需求就栽了跟头:用 RemoveField 删掉字段后,页面上的签名图片还赖着不走&#xff1…

2026/10/18 18:03:50 阅读更多 →
R语言提取GEO数据全流程:从getGEO下载到探针注释与差异分析

R语言提取GEO数据全流程:从getGEO下载到探针注释与差异分析

简介:GEO数据库是全球规模最大的公共基因表达数据仓库,R语言GEOquery包是获取这些数据的标准工具。然而,直接调用getGEO常因网络超时、平台注释差异或探针ID映射问题而失败。理解GEO数据的GSE、GDS与GPL结构,掌握超时设置与缓存机…

2026/10/18 18:03:50 阅读更多 →
C#酒店管理系统毕设实战:三层架构与SQL Server数据库设计解析

C#酒店管理系统毕设实战:三层架构与SQL Server数据库设计解析

简介:一套基于C#与SQL Server开发的酒店管理系统完整源码,包含前台界面与后台数据库脚本,面向计算机相关专业毕业生、C#与数据库开发者。系统采用三层架构,覆盖客户管理、房间预订、入住退房、财务统计等核心模块,可直…

2026/10/18 18:02:50 阅读更多 →

日新闻

基于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 阅读更多 →