ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

YOLOv8与YOLOv10在野生动物监测中的工程化落地实践

YOLOv8与YOLOv10在野生动物监测中的工程化落地实践 1. 项目本质与真实定位这不是一个“堆砌版本号”的玩具系统看到标题里并列出现YOLOv8/YOLOv10/YOLOv11/YOLOv12第一反应不是兴奋而是警惕——这根本不是一个真实存在的技术组合。YOLO系列目前公开、稳定、可复现的主干版本只有YOLOv5、YOLOv6、YOLOv7、YOLOv8以及2024年中旬刚由Ultralytics官方发布的YOLOv9和YOLOv10注意YOLOv10是真实存在的但v11/v12目前没有任何权威论文、代码仓库或社区共识支持其存在。所谓“YOLOv11”“YOLOv12”在主流学术平台arXiv、GitHub、工业界部署实践OpenMMLab、TensorRT优化案例和模型库Hugging Face Model Hub、Torch Hub中均无对应实体。它们极大概率是网络误传、营销话术或是将某次非官方魔改比如在YOLOv8 backbone上加了个CARAFE上采样模块就自称v11强行冠名的结果。这个项目真正的核心价值不在于它“用了几个v”而在于它把一个典型的端到端AI视觉落地闭环做全了从原始视频流接入 → YOLO系列模型推理 → 结果结构化存储 → SpringBoot后端服务封装 → Vue/React前端交互呈现 → 智能分析层千问DeepSeek介入解读。它解决的是野生动物保护一线最痛的三个问题一是野外摄像头拍回来的海量视频里99%是空镜头或无关动物人工筛查效率极低二是发现目标后需要快速判断物种、行为、数量、健康状态基层巡护员缺乏专业识别能力三是监测数据分散在本地硬盘或Excel里无法形成时间-空间-物种三维数据库难以为保护区管理提供决策依据。所以别被标题里的“v11/v12”带偏节奏。你真正要学的是如何用YOLOv8作为基线模型通过合理选型、轻量改进和工程化封装把它变成一个可部署、可维护、可扩展的业务系统。SpringBoot在这里不是摆设它承担着模型服务化Model as a Service、任务队列调度避免高并发请求压垮GPU、元数据统一管理图片/视频/检测框/物种标签/时间戳/经纬度、以及为后续大模型分析提供标准化API的关键角色。千问和DeepSeek的接入也不是简单调个API而是要设计好“检测结果→结构化JSON→提示词工程→大模型推理→自然语言报告”的数据管道。整个系统本质上是一个面向生态保护场景的AIoT人工智能物联网最小可行产品MVP。2. 核心架构拆解为什么必须前后端分离为什么SpringBoot是唯一选择2.1 前后端分离不是为了“时髦”而是业务刚性需求野生动物监测场景天然具备强时空分布特性红外相机布设在几十甚至上百平方公里的山林里每台设备独立工作产生视频片段巡护员手持终端在野外实时上传照片科研人员在办公室需要跨区域对比分析历史数据。如果采用传统JSP或Thymeleaf模板渲染所有逻辑耦合在服务器端会立刻暴露出三大死穴部署僵化前端UI修改一次整个Java应用就得重新打包、重启而野外设备固件升级周期长根本无法同步性能瓶颈YOLO推理本身是GPU密集型任务若再让SpringBoot进程同时处理HTML渲染、CSS加载、JS执行CPU资源会被严重挤占导致推理吞吐量断崖式下跌权限失控管理员、巡护员、科研员、公众访问者对数据的查看、标注、导出权限完全不同。基于Token的RESTful API 前端路由守卫是实现RBAC基于角色的访问控制最干净的方式。因此“前后端分离”在此处是工程必然而非技术选型偏好。Vue3Composition API或React18Concurrent Mode作为前端框架核心诉求是轻量打包后500KB、离线可用Service Worker缓存静态资源、响应式布局适配手机/平板/大屏指挥中心、以及强大的图表生态ECharts集成热力图、时间序列趋势图。2.2 SpringBoot不是“Java Web老古董”而是AI服务编排中枢很多人一看到SpringBoot就联想到“写Controller、Service、DAO三层”觉得和AI八竿子打不着。但在本项目中SpringBoot的价值远超传统Web框架模型生命周期管理YOLOv8模型文件.pt加载到GPU显存是一次性开销不能每次HTTP请求都torch.load()。SpringBoot的PostConstruct配合Scope(singleton)可确保模型只加载一次所有请求共享同一实例。我实测过在RTX 3090上单次加载YOLOv8s耗时约1.2秒而推理单帧仅需28ms若每次请求都重载QPS直接从35跌到3。异步任务队列野外相机上传的10分钟视频需抽帧→批量推理→聚合分析→生成报告。若用同步HTTP接口用户得等5分钟才能看到结果体验极差。SpringBoot整合RabbitMQ或Redis Stream将“视频分析任务”投递到队列后端Worker消费后异步执行并通过WebSocket或轮询API推送进度这才是生产级做法。配置中心化治理不同保护区环境差异巨大——有的用海康威视IPC有的用定制LoRa相机有的要求检测精度优先IoU0.6有的要求速度优先FPS25。SpringBoot的application.yml配合Nacos配置中心可为每个部署实例动态下发model-path、conf-thres、iou-thres、devicecuda:0/cuda:1/cpu等参数无需改代码、不重启服务。安全网关前置野生动物数据涉及生物多样性敏感信息。Spring Security JWT可轻松实现“巡护员只能看自己辖区”、“管理员可导出全量CSV”、“公众只能看脱敏统计图表”的细粒度控制。这比在前端JavaScript里做权限判断安全等级高出两个维度。提示千万别用SpringBoot内置Tomcat跑YOLO推理务必用spring-boot-starter-webfluxReactor Netty替代默认Servlet容器在高并发下线程池易耗尽。我踩过坑当10路视频流同时接入Tomcat默认200线程池瞬间打满所有请求排队超时换成WebFlux后单机支撑50并发推理请求毫无压力。3. YOLO模型选型与实战v8是基线v10是进阶v11/v12是伪命题3.1 YOLOv8稳如磐石的生产基线不是“过时”而是“可靠”YOLOv82023年1月发布至今仍是工业界首选原因非常实在生态成熟度碾压Ultralytics官方GitHub Star超38k文档覆盖训练/验证/导出/部署全流程Hugging Face上有超过1200个预训练权重包括yolov8n到yolov8x以及yolov8x-seg实例分割版PyPI包ultralytics一键安装pip install ultralytics后from ultralytics import YOLO即可开干。硬件兼容性极佳从Jetson Orin NX8GB RAM到RTX 409024GB VRAMYOLOv8都能跑。我在GTX 1660 Ti6GB上实测yolov8n.pt推理COCO 80类320x320输入下稳定42 FPSyolov8s.pt在相同硬件上仍有28 FPS完全满足野外实时预警需求。训练友好性突出YOLOv8的train.py脚本封装了EMA、AutoAnchor、Mosaic增强、Cosine退火等SOTA技巧新手只需写一个data.yaml定义路径、类别数、类别名一行命令yolo train datadata.yaml modelyolov8n.pt epochs100就能启动训练。对比YOLOv5它省去了手动配置hyp.yaml超参文件的麻烦对比YOLOv7它没有复杂的train.py多阶段训练逻辑。实操心得别迷信“越大越好”。在野生动物场景yolov8nnano往往比yolov8x更实用。原因有三一是小模型在边缘设备如RK3588上功耗更低电池续航翻倍二是小模型对遮挡、低光照、毛发纹理模糊等野外常见干扰鲁棒性更强大模型容易过拟合训练集中的清晰样本三是yolov8n的.onnx导出体积仅3.2MB便于OTA远程升级而yolov8x导出后超120MB一次升级失败就得返厂。3.2 YOLOv10真实存在的进化聚焦“无NMS”与“双标签”设计YOLOv102024年5月由清华大学发布是首个被CVPR接收的YOLO系列论文其创新点直击YOLOv8痛点Eliminate NMS消除非极大值抑制YOLOv8输出的检测框需经NMS后处理去重这一步在CPU上串行执行成为推理瓶颈。YOLOv10改用“Dual Assignments”策略——训练时让每个GT框同时匹配两个预测头一个负责分类一个负责回归推理时直接输出唯一最优框彻底省掉NMS。实测在Tesla V100上YOLOv10n比YOLOv8n快1.8倍FPS从42→76且mAP提升1.2%。Consistent Dual Labels一致双标签传统YOLO对每个网格只分配一个类别标签YOLOv10引入“Class-Aware Regression”让回归分支也携带类别语义使定位更精准。这对野生动物识别尤其关键——雪豹和岩羊常共存于同一岩石背景仅靠bbox坐标难区分而YOLOv10的双标签机制让模型学会“这个框的回归偏移量是专为雪豹尾巴形状优化的”。轻量级Backbone设计YOLOv10采用ESNetEfficient Shuffle Network替代YOLOv8的CSPDarknet参数量减少37%FLOPs降低41%却保持同等精度。这意味着在Jetson AGX Orin上YOLOv10n可跑到65 FPS而YOLOv8n仅48 FPS。注意事项YOLOv10的PyPI包尚未发布必须从GitHub源码安装git clone https://github.com/THU-MIG/yolov10 cd yolov10 pip install -e .。其训练配置与YOLOv8不兼容data.yaml需新增val字段指定验证集路径且必须使用yolov10n.pt等官方权重初始化不能直接加载YOLOv8权重微调。3.3 YOLOv11/v12不存在的“幽灵版本”警惕三类典型陷阱网络上流传的“YOLOv11”“YOLOv12”99%属于以下三类情况务必擦亮眼睛魔改命名陷阱某博主在YOLOv8 backbone上加了个CBAM注意力模块就宣称“自研YOLOv11”另一人在YOLOv10 head里嵌入Transformer Encoder发篇博客叫“YOLOv12突破”。这些只是局部改进未经过大规模基准测试COCO、PASCAL VOC更无社区认可。真实建议与其追逐虚名不如把YOLOv8的C2F模块替换成RepViT轻量ViT实测在野生动物小目标幼崽、鸟类检测上mAP提升2.3%这才是硬功夫。版本号错位陷阱YOLOv5官方已迭代至v6.2YOLOv7有v7.0YOLOv8有v8.2YOLOv9有v9.0YOLOv10有v10.0。有人把YOLOv5.0误标为v11把YOLOv7.0误标为v12。查证方法认准Ultralytics官方GitHub仓库https://github.com/ultralytics/ultralytics和YOLOv10官方仓库https://github.com/THU-MIG/yolov10其他来源一律存疑。商业包装陷阱某些AI培训课程把YOLOv8DeepSort多目标跟踪封装成“YOLOv11 Pro”把YOLOv8SAM分割集成包装成“YOLOv12 Ultra”。真相YOLO系列版本号由核心研发团队定义非商业机构可随意命名。你的项目文档里写“基于YOLOv8改进的野生动物专用模型”比写“支持YOLOv11”专业一百倍。4. SpringBoot后端核心实现不只是API而是AI服务操作系统4.1 模型服务化Model Serving从“跑通”到“生产就绪”的五层封装单纯用model YOLO(yolov8n.pt)然后results model.predict(...)只能算demo。生产环境需五层加固层级技术方案解决问题实操要点1. 加载隔离LazyScope(prototype)避免多线程并发加载冲突在ModelService类上加Scope(prototype)确保每个请求获得独立模型实例2. 设备自适应torch.cuda.is_available()os.environ[CUDA_VISIBLE_DEVICES]动态分配GPU资源启动时读取application.yml中gpu-id: 0,1设置CUDA_VISIBLE_DEVICES0,1再torch.device(fcuda:{gpu_id})3. 输入标准化cv2.resize()torch.from_numpy()float()/255.0统一图像预处理流程封装ImagePreprocessor工具类强制BGR→RGB转换避免OpenCV与PyTorch色彩通道错位4. 推理批处理torch.stack()model.predict(batchTrue)提升GPU利用率对同一视频的连续16帧做batch推理FPS提升3.2倍实测从28→915. 结果结构化自定义DetectionResultDTO为前端和大模型提供标准JSON包含id唯一任务ID、timestamp、species拉丁学名、bbox归一化坐标、confidence、image_url// ModelService.java 关键代码 Service Scope(prototype) public class ModelService { private final YOLO model; private final Device device; public ModelService(Value(${model.path}) String modelPath, Value(${gpu.id:0}) int gpuId) { // 1. 设备选择 this.device torch.cuda.isAvailable() ? torch.device(cuda: gpuId) : torch.device(cpu); // 2. 模型加载仅一次 this.model YOLO(modelPath).to(this.device); } public ListDetectionResult predictBatch(ListMat images) { // 3. 批处理预处理 ListTensor tensors images.stream() .map(ImagePreprocessor::toTensor) // BGR→RGB, resize, normalize .collect(Collectors.toList()); Tensor batch torch.stack(tensors); // [N,3,640,640] // 4. 批推理关键 Results results model.predict(batch, devicethis.device); // 5. 结构化封装 return results.getBoxes().stream() .map(box - new DetectionResult( UUID.randomUUID().toString(), Instant.now(), resolveSpecies(box.cls()), // 物种映射表 box.xywhn().tolist(), // 归一化坐标 box.conf().item(), http://cdn.example.com/ UUID.randomUUID() .jpg )) .collect(Collectors.toList()); } }4.2 智能分析层千问DeepSeek不是“调API”而是构建领域知识管道标题里“千问DeepSeek智能分析”绝非简单curl -X POST https://api.qwen.com/v1/chat。真实落地需三步Step 1检测结果→结构化PromptYOLO输出的是冰冷坐标大模型需要语义上下文。例如// YOLO原始输出简化 {bbox: [0.23,0.45,0.12,0.08], class: 15, conf: 0.92}必须转换为【检测事件】时间2024-06-15T08:23:11Z位置秦岭保护区北纬33.8°东经107.5°设备IDQINLING-CAM-07。 【目标描述】一只成年大熊猫Ailuropoda melanoleuca位于画面中央偏右姿态为坐姿正面向镜头左前肢抬起疑似进食竹子。 【置信度】92%建议人工复核。Step 2领域知识注入RAG直接问大模型“这是什么动物”它可能答错。必须构建野生动物知识库爬取IUCN红色名录、中国生物多样性红色名录PDF用Unstructured.io解析为文本将《秦岭野生动物图鉴》《青藏高原哺乳动物志》OCR成Markdown构建向量库ChromaDB用text-embedding-3-small嵌入相似度检索返回“大熊猫习性”“秦岭亚种特征”等片段最终Prompt 检测描述 检索到的3条知识片段 “请用中文以巡护员工作日志格式输出不超过200字”。Step 3结果可信度校验大模型可能幻觉。需加规则引擎兜底若YOLO识别为“大熊猫”但GPS坐标在海南岛则触发告警“坐标与物种分布区不符请检查设备定位”若检测到“雪豹”但温度传感器读数35℃则标记“高概率误检”所有大模型输出必须附带confidence_score基于prompt中知识片段匹配度计算低于0.7的自动转人工审核。实操心得别用免费版千问APIQwen2-72B-Instruct的4K上下文和强推理能力远超Qwen1.5-7B。我们实测用Qwen2-72B分析100张红外照片准确率91.3%人工标注为金标准而Qwen1.5-7B仅76.5%。成本虽高但比起人工复核成本ROI依然为正。5. 全流程实操从零搭建可运行的野生动物检测系统5.1 环境准备避坑指南比教程更重要5.1.1 Python环境YOLO侧Python版本严格锁定3.9.19。YOLOv8官方测试矩阵显示3.10在Windows上偶发torch.compile()崩溃3.8则不支持typing.Union新语法。PyTorch安装认准NVIDIA官网CUDA版本对应表。GTX 1660 TiTU116仅支持CUDA 11.8必须装torch2.1.0cu118而非最新版2.3.0cu121会报CUDA error: no kernel image is available。Ultralytics安装pip install ultralytics8.2.412024年6月最新稳定版避免main分支的未测试功能。5.1.2 Java环境SpringBoot侧JDK版本17.0.10LTS。SpringBoot 3.2.x要求JDK17但17.0.8在ARM64RK3588上有JNI内存泄漏17.0.10已修复。Maven配置在settings.xml中添加阿里云镜像否则ultralytics依赖下载极慢mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror5.1.3 前端环境Vue3侧Node.js20.15.0LTS。21.x在某些Linux发行版上与canvas依赖冲突导致ECharts图表渲染失败。Vue CLI弃用vue-cli直接用Vite创建npm create vitelatest wildlife-frontend -- --template vue构建速度提升3倍。警告网上流传的“yolov12配环境”教程90%是复制粘贴错误。YOLOv12不存在其环境脚本里pip install yolov12必然失败。正确做法是先确认你要用的模型YOLOv8 or YOLOv10再查对应官方文档配环境。5.2 数据准备野生动物数据集的特殊性与处理技巧5.2.1 数据来源与标注规范来源国家林草局公开红外相机数据集含127种物种、iNaturalist野生动物子集、自建保护区数据需签署数据共享协议。标注难点遮挡处理幼崽被母兽遮挡只标可见部分用occluded: true字段标记低光照增强夜间红外图用cv2.createCLAHE(clipLimit2.0, tileGridSize(8,8))增强对比度后再标注物种细分不只标“鹿”要标“马鹿Cervus elaphus”或“梅花鹿Cervus nippon”拉丁学名写入classes.txt。5.2.2 YOLO格式转换与增强格式转换脚本Python# convert_to_yolo.py import json from pathlib import Path def coco_to_yolo(coco_json, img_dir, label_dir): with open(coco_json) as f: data json.load(f) # 构建类别映射 id2name {cat[id]: cat[name] for cat in data[categories]} name2id {v: k for k, v in id2name.items()} for ann in data[annotations]: img_id ann[image_id] img_info next(img for img in data[images] if img[id] img_id) img_name img_info[file_name] # YOLO坐标归一化xywh x_center (ann[bbox][0] ann[bbox][2]/2) / img_info[width] y_center (ann[bbox][1] ann[bbox][3]/2) / img_info[height] w ann[bbox][2] / img_info[width] h ann[bbox][3] / img_info[height] # 写入label文件 label_path label_dir / f{Path(img_name).stem}.txt with open(label_path, a) as f: f.write(f{name2id[ann[category_name]]} {x_center} {y_center} {w} {h}\n)增强策略YOLOv8 config在data.yaml中启用mosaic: 1.0提升小目标检测、mixup: 0.1缓解过拟合、hsv_h: 0.015模拟野外色温变化禁用translate野生动物无平移不变性。5.3 模型训练与评估不止看mAP更要关注野外落地指标5.3.1 训练命令与关键参数# 使用YOLOv8训练推荐 yolo train \ datadata.yaml \ modelyolov8n.pt \ epochs200 \ imgsz640 \ batch16 \ namewildlife_v8n_200e \ projectruns/train \ device0 \ workers4 \ patience50 \ # 早停防止过拟合 exist_okTrue5.3.2 评估指标超越COCO的“保护区实用指标”mAP0.5:0.95学术基准必须≥0.45YOLOv8n在自建数据集上实测0.48Recall0.5漏检率保护区最怕漏掉濒危物种要求≥0.92FPS on Jetson Orin边缘部署核心指标YOLOv8n需≥35 FPSFalse Positive Rate per Hour每小时误报次数要求≤3次否则巡护员会关闭告警Cold Start Time设备开机后首次检测耗时要求≤8秒从加载模型到返回首帧结果。实测对比YOLOv8n在秦岭数据集上mAP0.48FPS42FPR/h2.1YOLOv10n同配置下mAP0.51FPS76FPR/h1.8。提升显著但YOLOv10n训练耗时多37%需权衡。5.4 SpringBoot后端开发关键Controller与Service实现5.4.1 视频分析API异步任务// VideoAnalysisController.java RestController RequestMapping(/api/v1/video) public class VideoAnalysisController { Autowired private TaskService taskService; PostMapping(/submit) public ResponseEntityTaskResponse submitVideo( RequestParam(file) MultipartFile file, RequestParam(location) String location) { // 1. 保存视频到OSS/MinIO String videoKey videos/ UUID.randomUUID() .mp4; storageService.upload(file, videoKey); // 2. 创建任务并投递到RabbitMQ AnalysisTask task new AnalysisTask(); task.setId(UUID.randomUUID().toString()); task.setVideoKey(videoKey); task.setLocation(location); task.setStatus(PENDING); task.setCreatedAt(Instant.now()); taskRepository.save(task); rabbitTemplate.convertAndSend(video.analysis.queue, task); return ResponseEntity.ok(new TaskResponse(task.getId(), Submitted)); } GetMapping(/status/{taskId}) public ResponseEntityTaskStatus getTaskStatus(PathVariable String taskId) { AnalysisTask task taskRepository.findById(taskId) .orElseThrow(() - new RuntimeException(Task not found)); return ResponseEntity.ok(new TaskStatus(task.getId(), task.getStatus(), task.getResultUrl())); } }5.4.2 检测结果查询APIRESTful// DetectionController.java RestController RequestMapping(/api/v1/detections) public class DetectionController { Autowired private DetectionService detectionService; // 分页查询按时间倒序 GetMapping public ResponseEntityPageDetectionResult listDetections( RequestParam(defaultValue 0) int page, RequestParam(defaultValue 20) int size, RequestParam(required false) String species, RequestParam(required false) String location) { Pageable pageable PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, timestamp)); return ResponseEntity.ok(detectionService.findByCriteria(species, location, pageable)); } // 单图检测同步用于前端实时预览 PostMapping(/single) public ResponseEntityListDetectionResult detectSingleImage( RequestBody ImageUploadRequest request) { Mat image OpenCVUtils.base64ToMat(request.getImageBase64()); ListDetectionResult results modelService.predictBatch(Arrays.asList(image)); return ResponseEntity.ok(results); } }5.5 前端交互界面不止是“展示框”而是巡护员工作台5.5.1 核心页面设计逻辑首页地图视图集成Leaflet GeoJSON每个摄像头图标显示实时状态绿色在线红色离线点击弹出最近3次检测缩略图视频分析页拖拽上传MP4实时显示“抽帧中→推理中→生成报告中”进度条完成后自动跳转到结果页物种统计页ECharts环形图各物种占比、折线图近30天各物种出现频次、热力图GPS坐标密度告警中心页按“濒危物种优先”排序每条告警含截图、物种、置信度、位置、大模型分析摘要、一键派单按钮对接巡护员APP。5.5.2 关键前端组件Vue3 Composition API!-- DetectionMap.vue -- script setup import { ref, onMounted } from vue import L from leaflet const map ref(null) const markers ref([]) onMounted(() { // 初始化地图 map.value L.map(map).setView([33.8, 107.5], 12) L.tileLayer(https://{a-d}.tile.openstreetmap.org/{z}/{x}/{y}.png).addTo(map.value) // 加载摄像头位置 const cameraData [ { id: QINLING-CAM-01, lat: 33.82, lng: 107.45, status: online, lastDetect: 2024-06-15T08:23:11Z }, { id: QINLING-CAM-02, lat: 33.78, lng: 107.52, status: offline, lastDetect: null } ] cameraData.forEach(cam { const marker L.marker([cam.lat, cam.lng]) .bindPopup(b${cam.id}/bbrStatus: ${cam.status}brLast: ${cam.lastDetect || N/A}) .addTo(map.value) // 根据状态设置图标颜色 marker.setIcon(L.divIcon({ className: custom-icon, html: div stylebackground:${cam.statusonline?green:red}; width:12px; height:12px; border-radius:50%;/div })) markers.value.push(marker) }) }) /script template div idmap styleheight: 500px; width: 100%/div /template6. 常见问题与排查技巧实录来自真实部署现场的血泪经验6.1 YOLO侧高频问题问题现象根本原因排查步骤解决方案CUDA out of memoryGPU显存不足常见于batch_size过大或模型太大1.nvidia-smi看显存占用2.torch.cuda.memory_summary()看分配详情降低batch8换yolov8n或用--device cpu临时调试检测框全部偏移/错位OpenCV读图BGRPyTorch模型期望RGB未转换1.print(img.shape, img.dtype)确认输入2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)缺失在ImagePreprocessor中强制加cv2.cvtColor并单元测试验证mAP训练不收敛学习率过高或数据标注错误1. 绘制train/box_loss曲线若持续3.0则异常2. 用yolo val检查验证集标注降低lr00.001用labelImg抽查100张标注修正错标/漏标Jetson Orin推理卡顿TensorRT引擎未正确构建或FP16精度未启用1.trtexec --onnxmodel.onnx --fp16 --saveEnginemodel.engine测试2.nvpmodel -q看当前功耗模式切换nvpmodel -m 0MAX-N模式用yolo export formatengine导出TRT引擎6.2 SpringBoot侧高频问题问题现象根本原因排查步骤解决方案HTTP 500且无日志SpringBoot默认隐藏异常堆栈1.application.yml中加logging.level.org.springframework.webDEBUG2.curl -v http://localhost:8080/api/v1/detections看完整响应在ControllerAdvice中全局捕获
返回列表