新闻详情

新闻详情

首页 / 资讯中心 / 详情

SpringBoot+Vue车间管理系统:数据库设计、接口实现与部署避坑全解析

发布时间:2026/9/30 12:50:54来源:尧图网络
SpringBoot+Vue车间管理系统:数据库设计、接口实现与部署避坑全解析
如果你最近在为毕业设计、课程设计或者系统学习 Java 全栈开发找项目八成绕不开 SpringBoot Vue 这个组合。工厂车间管理系统正好是这类技术栈里最典型的“标准模板”之一业务逻辑清晰不搞花架子该有的增删改查、权限控制、图表统计全都有难度又控制在一个靠自学能啃下来的范围。这套系统我还真从头到尾带人做过不止一遍今天就把整个技术拆解、数据库设计、核心接口实现、前端页面组织、部署避坑一次性说清楚省得你再走弯路。1. 为什么这个技术组合成了毕设/课设的“黄金搭档”1.1 选型逻辑SpringBoot Vue MySQL 到底赢在哪里先聊一个最基本的问题为什么几乎满大街的毕设项目都是这套技术栈而不是更老的 JSP Servlet或者更“重型”的微服务体系SpringBoot 最大的价值是省事。以前搞 SSH/SSM 的时候光 XML 配置就能写几百行一个新手光配事务、配数据源就得折腾两天。SpringBoot 用自动配置把这些全部封装掉你用spring-boot-starter-web加一个启动类一个能跑起来的 Web 服务就诞生了。对毕设/课设这种“需要在有限时间出成果”的场景这是决定性的优势。Vue 这边解决的是前端开发的效率和体验问题。传统 JSP 方案里页面逻辑和服务端代码纠缠在一起改一个按钮的跳转逻辑往往要动到后端代码来回调试非常痛苦。Vue 的核心是组件化一个页面拆成多个.vue组件每个组件只管自己的数据和样式数据变化自动驱动视图更新响应式原理。你不需要像以前用 jQuery 那样手动操作 DOM写起来更接近“写应用逻辑”而不是“拼 HTML 字符串”。MySQL 就不用多说了开源、免费、资料多大学课程里教的基本都是它。配上 Navicat 或 DataGrip 这类可视化工具建库建表、看数据都直观答辩时演示起来也顺畅。这套组合本质上是“前后端分离 关系型数据库”这个主流开发模式的缩影。你在毕设里用这套技术等于把企业里真实项目的骨架搬到课设里这是一份能直接写进简历的技术履历。1.2 车间管理系统这个选题为什么刚好卡在“甜点难度”光有技术栈还不够选题本身也很关键。车间管理系统在我看来是毕设选题里的“甜点难度”比它简单的会显得没工作量比它难的容易做到一半做不下去。先说工作量。车间管理牵扯的实体足够多工人、设备、工单、产品、质检记录、班次安排等等。实体一多数据库表就多后端接口就多前端页面就多整套系统下来体量自然饱满答辩时能展示的功能点摆得开。再说复杂度。它不是单纯的单表 CRUD而是有真实业务逻辑的系统。举个例子一个生产工单从“下达”到“完工”中间要经历派工、报工、质检、入库流转状态每一步都不同每一步还牵扯不同的角色权限。这种“状态流转”逻辑才是系统的价值所在也是面试官或者答辩老师最喜欢问的点。最后是展示效果。车间管理系统可以很自然地整合数据可视化——设备利用率、产量趋势、合格率等都可以用 ECharts 做成看板图表。这会让系统“看起来”特别像一个真实的企业系统而不是课设作业。2. 系统模块拆分与数据库设计的核心思路2.1 角色与功能地图先想清楚谁在用这个系统做工厂车间管理系统第一步不是写代码而是把用户角色和功能边界划清楚。一般我建议拆成三种角色三种权限等级刚好对应多数车间场景系统管理员管人用户、角色、权限配置、管基础数据车间、产线、设备档案维护拥有最高权限车间主管下达生产工单、安排班次、跟进生产进度、处理设备报修、审核质检结果操作工接收工单任务、进行报工操作、上报设备异常、查看个人工作记录划分清楚角色后整个系统的功能模块就顺理成章了。核心模块我建议至少包含登录认证模块JWT 签发与鉴权、车间/产线管理模块、设备台账与状态管理模块、生产工单管理模块创建、派发、报工、完工、质量检验模块、班次排班模块、数据统计看板模块。一个模块对应一组接口和一组页面做的时候才不至于东一榔头西一棒子。很多同学上来就建表写代码结果做到一半发现功能对不上角色又推倒重来这就是没做功能地图的代价。2.2 数据库表设计表结构是一套系统的“地基”表设计直接决定项目后期能走多远。MySQL 里我建议重点设计以下几张核心表表名关键字段说明sys_userid, username, password, real_name, role_id, status用户表密码字段建议存 BCrypt 加密后的值sys_roleid, role_name, role_code, description角色表与用户表做关联workshopid, workshop_name, location, manager_id, status车间表一个车间有多个产线production_lineid, line_name, workshop_id, status产线表归属车间equipmentid, equipment_no, name, line_id, status, purchase_date设备表状态字段建议用 0正常/1维修/2停机 这类枚举值production_orderid, order_no, product_name, quantity, status, plan_start_time, plan_end_time, workshop_id工单主表状态机流转是核心work_reportid, order_id, user_id, quantity, report_time报工表记录每个操作工完成的数量quality_checkid, order_id, check_result, qualified_quantity, unqualified_quantity, checker_id, check_time质检表记录批次质检结果scheduleid, user_id, line_id, shift_type, work_date排班表shift_type 区分白班/夜班这里有几个我在实际建表时非常强调的细节主键策略推荐bigint自增主键不要用 UUID 字符串当主键。UUID 虽然全局唯一但在数据量大时索引性能会下降而且用 Navicat 查看时一条条长字符串很不直观。毕设规模用自增主键完全足够。时间字段建议create_time和update_time都加上并设为DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP这样数据在写入和更新时会自动记录时间做报表统计时非常有用。逻辑删除给核心表加一个deleted字段0 存在、1 删除代替物理 DELETE。做设备档案和工单这种重要数据时误删问题真可能出现——一旦删除完数据找不回来你就只能哭着去还原数据库备份了。状态字段用tinyint存储状态枚举值而不是直接存中文。举个典型例子equipment.status存 0、1、2配合注释说明每个数字含义。这样设计的好处是后端代码里可以写if (equipment.getStatus() 1)做判断内存占用小语义也稳定。2.3 表关系设计时容易踩的三个坑第一个坑是表关联做得过深。比如通过 user 查 workshop又通过 workshop 查 line再通过 line 查 order四层关联在 SQL 里就是连续 JOIN性能差不说写起来也容易出错。我的习惯是跨模块的关联只在最外层查能冗余的字段比如工单表里直接冗余workshop_name就冗余不要全部靠 JOIN 实时查。第二个坑是日期用字符串存。plan_start_time一定用datetime类型不要图省事用varchar存 “2025-06-01 08:00:00”。用datetime的好处是后端可以用LocalDateTime直接映射前端用日期选择器绑定也自然做区间过滤时BETWEEN查询效率更高。第三个坑是忽略变更记录。设计工单表时我建议加上last_update_user_id和last_update_time这类字段哪怕是冗余的。这听上去奇怪但这些字段在后端做权限追踪时很好用而且非常适合答辩亮点“工单每次操作都能追踪到责任人”。不要嫌字段多表和字段的完整度本身就是评分维度之一。3. 后端实现从接口规范到业务逻辑闭环3.1 后端工程结构怎么组织才算清晰SpringBoot 项目的包结构决定了别人第一眼看到你代码的感受也是评分老师容易留意的地方。我不建议把所有类堆在一层包下至少要从一开始就按功能分层。com.example.factory ├── controller # 接收 HTTP 请求参数校验 ├── service # 业务逻辑层写核心判断和流转逻辑 ├── mapper # MyBatis-Plus 的数据访问接口 ├── entity # 数据库实体类 ├── dto # 前端传参对象和返回对象 ├── config # 配置类跨域、拦截器、字段填充等 ├── common # 通用返回结果、常量、枚举 ├── utils # JWT 工具类等Controller 层唯一该做的事是“接参数、调 service、返回 Result”。业务判断逻辑别写在 Controller 里比如“判断工单是否能报工”这种逻辑必须在 service 层完成方便后续加事务和复用。实体类的命名也统一规则建议数据库下划线字段映射为 camelCase 属性比如workshop_name对应workshopName。MyBatis-Plus 默认开启驼峰映射写了也不用额外配。3.2 统一返回结果前后端联调时的隐形功臣做前后端分离项目最怕接口返回的数据格式每回都不一样。今天接口 A 返回{code:200, data:{...}}明天接口 B 返回{success:true, list:[...]}前端 axios 拦截器怎么统一处理统一返回结果类建议这样设计public class ResultT { private Integer code; // 200 成功500 失败 private String message; private T data; public static T ResultT success(T data) { ResultT r new Result(); r.code 200; r.message success; r.data data; return r; } public static T ResultT error(String msg) { ResultT r new Result(); r.code 500; r.message msg; return r; } }配合全局异常处理器RestControllerAdvice把所有业务异常统一拦截。这样前端拿到的永远是同一个结构只需要判断code 200就知道请求成不成功。3.3 登录认证与权限控制JWT 拦截器的经典组合车间管理系统的权限逻辑很简单不同角色能访问不同接口。实现方式我推荐用 JWT 拦截器而不是更为复杂的 Spring Security。原因是毕设场景下用 Security 光是配置过滤链就够你喝一壶JWT 方案代码自己可控原理也容易讲清楚。核心步骤分成三块第一块登录接口。用户提交用户名和密码后端用 BCrypt 的matches方法校验密码成功后生成 JWT Token把用户 ID、角色 code、用户名塞进 token使用jjwt库签发。token 有效期建议设 12 到 24 小时过短要频繁登录过长安全性差。String token Jwts.builder() .setSubject(String.valueOf(user.getId())) .claim(username, user.getUsername()) .claim(role, user.getRoleCode()) .setExpiration(new Date(System.currentTimeMillis() 12 * 60 * 60 * 1000)) .signWith(SignatureAlgorithm.HS256, SECRET_KEY) .compact();第二块拦截器校验。写一个JwtInterceptor实现HandlerInterceptor在preHandle里从请求头Authorization中取 token解析失败直接返回 401解析成功把用户信息放入ThreadLocal供后续使用。第三块角色判断。在拦截器里配置放行路径登录接口、静态资源和受限路径。需要管理员权限的接口可以在controller层定制一个RequireRole(admin)注解标注方法再配合另一个拦截器或 AOP 做校验。这样比在每一个 Controller 方法里都手动写if(role ! admin)优雅得多也方便答辩时讲。3.4 核心业务逻辑工单状态流转的实现细节工单状态流转是车间管理系统的灵魂。我的设计是把状态定义为一个枚举用Integer字段存储public enum OrderStatus { CREATED(0, 已创建), DISPATCHED(1, 已派工), IN_PROGRESS(2, 生产中), FINISHED(3, 已完工), CANCELLED(4, 已取消), ARCHIVED(5, 已归档); }关键在 service 层怎么控制流转。比如“生产完成”这个操作不能直接修改状态为完工得依赖报工数据当所有报工数量合计达到工单计划数量时状态才允许变为FINISHED。用代码描述就是TransactionStatus transactionStatus transactionManager.getTransaction(definition); try { Order order orderMapper.selectById(orderId); if (order.getStatus() ! OrderStatus.IN_PROGRESS.getCode()) { throw new BusinessException(当前工单状态不允许报工); } // 累加报工数量 Integer sum workReportMapper.sumQuantityByOrderId(orderId); if (sum order.getQuantity()) { order.setStatus(OrderStatus.FINISHED.getCode()); } orderMapper.updateById(order); // 插入质检记录 transactionManager.commit(transactionStatus); } catch (Exception e) { transactionManager.rollback(transactionStatus); throw e; }这里要特别提醒涉及多表更新的操作事务是底线。报工数量判断和状态更新必须是原子的如果中途报错事务回滚否则就会出现数据对不上账的情况。用Transactional注解代替手写事务管理器会更简洁但原理一定要懂。统计看板部分SQL 要会用聚合函数。比如查各车间当月产量就用GROUP BY workshop_id加SUM查设备利用率就统计设备在“运行”状态的时间占比。MySQL 的日期函数和GROUP BY是你要重点练的一个复杂的统计查询如果只依赖 Java 代码边查边算速度会非常慢而且代码很难看。4. 前端实现页面组件化与管理后台搭建4.1 前端工程搭建与基础依赖选型前端我建议直接用 Vue CLI 或 Vite 搭一个 Vue 3 项目。Vite 启动速度快、配置简单现在新项目我首选 Vite。装上element-plusUI 组件库、axiosHTTP 请求库、vue-router路由、pinia状态管理、echarts图表、dayjs时间处理这几个包就够用了。组件库选型不用纠结Element Plus 在管理后台领域就是事实标准。表格、表单、弹窗、日期选择器全都有现成的别说做课设企业项目里也大量在用。它的组件风格统一你不用花时间去调 CSS。前端工程结构我建议按模块建目录而不是“所有页面平铺”src ├── api # 每个模块的请求接口封装 ├── assets # 静态资源 ├── components # 通用组件上传组件、文件选择等 ├── layout # 后台布局侧边栏导航栏内容区 ├── router # 路由配置 ├── store # Pinia 状态管理 ├── utils # axios 实例、token 存储、工具函数 └── views # 页面组件按模块分子目录 ├── dashboard ├── order ├── equipment └── user4.2 axios 封装与请求拦截让每个接口调用更清爽前端和后端联调最忌讳每个页面里都直接axios.get(‘/api/xxx’)散着一堆调用。做一层统一封装未来出问题只改一个地方。我的 axios 实例配置要点baseURL统一设为/api这样在开发环境通过 Vite 代理转发到后端端口在生产环境由 Nginx 转发前端代码不用改请求拦截器从 localStorage 取出 token放进Authorization请求头响应拦截器判断response.data.code非 200 统一弹出错误提示遇到 401 则清空登录态跳回登录页service.interceptors.response.use( (response) { const res response.data; if (res.code ! 200) { ElMessage.error(res.message); return Promise.reject(new Error(res.message)); } return res; }, (error) { if (error.response error.response.status 401) { router.push(/login); } return Promise.reject(error); } );这层封装让页面代码里只出现类似await getOrderList(params)的调用干净清晰。这也是一个在简历上值得写一笔的工程素养。4.3 经典页面拆解列表页、流程表单页、统计看板页管理后台里出现频率最高的三类页面对应的实现套路高度固定列表页是主力。核心是el-table配el-pagination顶部搜索栏用el-form内联排列查询条件通过params传给后端。其中“日期范围”这种搜索条件交给后端处理时记得传startTime和endTime两个字段不要直接传一个字符串让后端去 split。表单页/弹窗用于新增和编辑。要用el-form的rules校验规则比如工单号必填、数量必须大于 0。编辑和新增的差别处理有一个技巧新增时提交走 POST/api/orders编辑时提交走 PUT/api/orders/{id}表单初始化时判断路由参数或form.id是否存在即可。统计看板页是撑场面的关键。用 ECharts 展示三个核心图表近 7 天产量趋势折线图数据来源是后端按日期聚合的接口各车间产量占比饼图设备状态分布环形图遇到图表空白或者报错90% 的原因是容器高度没设置ECharts 初始化时需要容器有明确的宽高。这个细节我踩过坑一个height: 100%被父级容器拦了以后图表直接不渲染排查了快一下午。4.4 前端路由守卫页面权限怎么做才自然前端权限有两种常见做法一种靠隐藏菜单简单但后端接口不校验有安全漏洞另一种是后端返回权限点前端动态生成路由正规但工作量稍大。毕设的好方案是二者折中左侧菜单按角色过滤展示路由守卫只做登录态校验真正的接口权限由后端拦截器保证。路由守卫的核心代码不复杂router.beforeEach((to, from, next) { const token localStorage.getItem(token); if (!token to.path ! /login) { next(/login); } else { next(); } });导航守卫既处理了未登录跳转登录页的问题又比把每个路由做meta.roles判断简单不少同时你可以额外加一层meta.title动态设置浏览器标签标题提升细节完成度。5. 本地启动到部署上线的完整避坑手册5.1 本地开发环境启动完整流程光有代码跑不起来是毕设最惨的结局。按照下面步骤走基本能确保本地项目正常跑起来安装 JDK推荐 1.8 或 11版本不宜过高SpringBoot 2.7 在 JDK 17 下有些老项目会出问题安装 MySQL配置好 root 密码执行项目里的init.sql建库建表修改后端配置文件application.yml把数据库地址、账号密码改成本地的命令行进入后端目录执行mvn spring-boot:run启动后端进入前端目录执行npm install安装依赖然后npm run dev启动开发服务器浏览器访问前端地址验证登录功能前后端联调时必须解决跨域问题。我推荐用 Vite 的 proxy 配置开发环境顺手且不用改前端代码server: { port: 3000, proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } }这样前端请求/api/login会由 Vite 代理转给http://localhost:8080/api/login浏览器看到的是同源的CORS 问题就绕开了。5.2 前后端分离部署jar 包 Nginx 静态资源部署到服务器或给老师演示时不能一直开着两个开发服务器。标准姿势是把后端打成 jar 包前端打成静态文件用 Nginx 反向代理把两者合并成同一个访问入口。后端打包含 build 步骤mvn clean package -DskipTests java -jar target/factory-system-0.0.1-SNAPSHOT.jar前端打包npm run build打包完成后dist目录就是静态文件。Nginx 配置做两件事root指向 dist 目录location /api/反向代理到http://127.0.0.1:8080。这样用户访问http://服务器IP:80就能看到前端页面登录请求被 Nginx 转到后端接口配合起来像是一个整体答辩演示时非常体面。5.3 高频报错与排查速查表这些是我帮人排查项目时遇到频率最高的报错直接整理成表格方便你照着对报错现象根本原因解决办法启动报Failed to configure a DataSourceapplication.yml数据库配置错误检查 url、用户名、密码确认 MySQL 已启动接口报Unknown database数据库没建成功执行建库 SQL注意字符集设为utf8mb4控制台报Access denied for userMySQL 账号权限不足改用 root 账号或给账号授权GRANT ALL ON factory_db.* TO userlocalhost前端请求接口报 404Nginx 或 proxy 路径不匹配核对/api前缀在后端 controller 路由里是否存在报 401 Unauthorizedtoken 缺失或过期检查登录接口是否返回 token前端是否正确存入并携带中文乱码字符集不一致数据库连接 url 加?useUnicodetruecharacterEncodingutf8表结构确认 utf8mb4时区报错The server time zone value is unrecognized数据库连接时区异常url 加serverTimezoneAsia/Shanghai端口被占用8080 被其他进程占用netstat -anoError: Cannot find module前端依赖没装完整删除node_modules后重新npm installnpm install超时网络问题设置镜像源npm config set registry https://registry.npmmirror.com后重试6. 源码学习的正确路线与二次开发方向6.1 拿到一份源码别急着启动先看这三个文件很多同学下载了一套源码之后就迫不及待去启动结果报错一堆就开始烦躁。我的建议是先花 20 分钟看三个入口文件效率能翻倍第一个是pom.xml。看看引入哪些依赖理解项目的技术栈组成——有mybatis-plus说明 ORM 用 MP有jjwt说明认证用 JWT有hutool说明有工具库封装。第二个是application.yml。找到数据库连接配置、端口配置、上传文件路径配置把环境跑通的前提条件都找齐。第三个是init.sql或db.sql。浏览表结构注意外键关系和枚举字段注释脑海里大概勾勒出业务模块划分。把这三个文件过一遍后再启动你的排查路径会清晰很多启动失败优先看数据库配置接口报错优先看表结构字段是否匹配。6.2 从运行源码到真正内化成自己的技能光把项目跑起来简历上只能写“我部署了一个开源源码”这没什么含金量。真正能让答辩顺利通过的一定是“二次开发”。我建议你把系统跑通之后刻意做这三个小改动第一给工单模块加一个“导出 Excel”按钮。用 easyexcel 写一个导出接口前端加一个下载按钮。这个小功能技术门槛不高但是很多毕设项目没有加上去就能立刻加分。第二给看板页加一个“按车间筛选再对比”的联动查询。这个改动涉及前端组件联动、后端接口参数设计、SQL 条件组合一整套下来你对整个项目的掌控感会完全不同。第三把某张表的“物理删除”改成“逻辑删除”。实现上只需要加一个字段、改两条 SQL、调整前端显示逻辑但这会让你理解 MyBatis-Plus 的逻辑删除配置和业务层对数据的约束观念。做完这三个改动你就可以自信地对答辩老师说“这个系统我在原基础上完成了定制开发”而不是心虚地说“这是我找的源码”。一字之差整个呈现效果天差地别。6.3 源码里那些“看起来不起眼但很关键”的设计细节优秀源码往往在细节处藏着功夫。比如登录密码加密不用明文 MD5而是用 BCrypt比如分页查询不是写死LIMIT 0,10而是用 MyBatis-Plus 的Page对象自动处理比如上传文件后设置访问路径前缀方便前端回显。这些细节对你面试时同样有用。面试官问“你是怎么保证数据安全性的”你可以答密码 BCrypt 加密、接口用 JWT 鉴权、管理端操作有日志记录问“分页怎么做性能优化”你可以答 MySQLLIMIT加索引覆盖、总数统计独立 count 查询、表数据量大时通过create_time做时间范围裁剪。把这些从源码里学的细节提炼成面试语言一套毕设项目能覆盖的面试题范围会非常广。我个人在实际带项目时还有一个体会车间管理系统最值得深挖的其实是“状态流转”和“权限控制”这两个点。很多同学把功夫花在花哨的前端动画和页面颜色上结果被老师一句“你这个系统解决的核心业务问题是什么”问住了。真正把工单状态、设备状态、质检结论这些业务状态理清楚把每个状态变化背后的权限规则定明白这个系统的质量就够了。做完之后再回头看你会发现自己在数据库设计、接口规范、事务处理、前后端协作这些硬技能上的进步比上了一学期课都大。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

计算机网络综合题高效复习:从题型拆解到协议栈贯通 2026/9/30 13:46:57

计算机网络综合题高效复习:从题型拆解到协议栈贯通

简介:围绕计算机网络课程中 IP 地址、子网划分、CIDR 路由与 VLAN 配置等高频综合题,整理出一份 doc 文档,汇编了多道典型计算与实例分析题,每题均附逐步解答和关键结论。内容覆盖二进制与十进制 IP 互换、地址类别判定、子网掩码…

阅读更多 →
基于CNN的找矿预测:多源空间数据融合与靶区圈定 2026/9/30 13:46:57

基于CNN的找矿预测:多源空间数据融合与靶区圈定

前几年跟着一个老地质队员跑野外,他站在一个山包上,指着远处说了句话让我印象很深:这块地方,航磁是高的,重力也是高的,边上有一条北东向的断裂切过去,再往外一圈水系沉积物里铜铅锌都冒头&#…

阅读更多 →
MCP Streamable HTTP 实战:单端点流式传输如何简化 AI 工具连接 2026/9/30 13:46:50

MCP Streamable HTTP 实战:单端点流式传输如何简化 AI 工具连接

先说一下我对 Streamable HTTP 的定位:这是 MCP(Model Context Protocol)传输层的一次重要收敛。如果你之前折腾过 MCP 的 HTTP 传输,一定见过旧版那套让人头皮发麻的多端点设计——/initialize、/messages、/notifications 各管一…

阅读更多 →
Power BI销售分析实战:产品与客户价值建模全流程 2026/9/30 13:46:50

Power BI销售分析实战:产品与客户价值建模全流程

接了个零售公司的销售数据分析需求,老板丢给我一份近三年的订单明细,要求搞清楚两件事:哪些产品值得继续投钱,哪些客户值得重点维护。数据量不算大,也就几十万行,但业务字段乱得可以,产品名称有…

阅读更多 →
Power BI产品与客户销售数据分析实战:从建模到仪表板 2026/9/30 13:46:50

Power BI产品与客户销售数据分析实战:从建模到仪表板

Power BI做销售数据分析这个方向,我是看着它从一个小众报表工具长成现在这个样子的。市面上讲Power BI的教程不少,但多数要么停在拖拽图表这种操作层面,要么一上来就是一堆DAX公式把人劝退,真正能落地的产品与客户销售分析案例反而…

阅读更多 →
YOLOv7目标检测落地全流程:数据标注、模型优化与边缘部署实践 2026/9/30 13:46:49

YOLOv7目标检测落地全流程:数据标注、模型优化与边缘部署实践

1. 一次完整落地,远比跑通demo复杂我最早接触YOLOv7,是帮朋友做一个工厂安全帽检测。当时网上教程很多,看起来从克隆仓库到跑出结果也就半小时。可真到了自己从零做数据、训练、再部署到设备上,才发现每一步都是坑:标注…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉