当前位置: 首页 > news >正文

【AI】一种基于YOLOv8/v11目标检测模型之检测人体和车辆的脚本及服务2️⃣【Ubuntu 22.04】

        本文介绍基于YOLOv11的目标检测服务系统,包含图片和视频检测两个独立服务。


1️⃣:检测图片脚本(v11)【端口:5002】

import os import json import threading from flask import Flask, request, jsonify from ultralytics import YOLO app = Flask(__name__) class GeneralImageService: def __init__(self): self.model = None self.lock = threading.Lock() self.load_model() def load_model(self): """加载YOLOv11通用模型""" model_path = "/opt/yolov11/models/yolov11n.pt" print(f"【通用图片服务】加载YOLOv11模型: {model_path}") try: if os.path.exists(model_path): self.model = YOLO(model_path) print(f"【通用图片服务】✅ YOLOv11加载成功!") print(f"【通用图片服务】可识别{len(self.model.names)}个类别") # 打印常用类别 common_classes = { 0: 'person', 2: 'car', 5: 'bus', 7: 'truck', 15: 'cat', 16: 'dog', 39: 'bottle', 41: 'cup' } print("【通用图片服务】常用类别ID:") for cls_id, name in common_classes.items(): if cls_id < len(self.model.names): print(f" {cls_id}: {name}") else: print(f"【通用图片服务】❌ 模型文件不存在: {model_path}") self.model = None except Exception as e: print(f"【通用图片服务】❌ 模型加载失败: {e}") self.model = None def predict_general(self, image_path, target_classes=None): """通用检测,支持筛选特定类别""" if self.model is None: return {"error": "Model not loaded", "success": False} try: with self.lock: # 执行推理 results = self.model(image_path, verbose=False) all_detections = [] class_statistics = {} for result in results: for box in result.boxes: cls_id = int(box.cls) class_name = self.model.names[cls_id] if cls_id < len(self.model.names) else f"class_{cls_id}" confidence = float(box.conf) # 如果指定了目标类别,只返回这些类别 if target_classes is not None and cls_id not in target_classes: continue # 统计 class_statistics[class_name] = class_statistics.get(class_name, 0) + 1 all_detections.append({ "class_id": cls_id, "class_name": class_name, "confidence": confidence, "bbox": box.xyxy[0].tolist() # [x1, y1, x2, y2] }) return { "success": True, "detections": all_detections, "statistics": class_statistics, "total_objects": len(all_detections), "image_size": result.orig_shape, "model": "yolov11n", "classes_available": len(self.model.names) } except Exception as e: return {"error": str(e), "success": False} service = GeneralImageService() @app.route('/general/health', methods=['GET']) def general_health(): return jsonify({
http://www.cnnetsun.cn/news/128972.html

相关文章:

  • Kotaemon Docker 镜像使用指南:快速启动与定制化
  • Kotaemon WebSocket支持:实现实时对话流传输
  • springboot_vue基于SSM的汉服文化交流商城平台设计_26t5m844
  • Kotaemon能否提取商业模式要素?创业计划分析工具
  • Kotaemon房产纠纷解答:买卖租赁常见问题
  • 百度百舸持续开源生产级代码,联合 SGLang 社区打造先进 AI Infra
  • Kotaemon会议纪要自动生成:录音转文字+摘要
  • 10 个 AI 写作工具,MBA 论文轻松搞定!
  • 园区的安全隐患有哪些?智能预警系统让风险“看得见”
  • 8个AI论文工具,助你高效完成研究生毕业论文!
  • AlphaFold 3 与 DALLE 2 的相似性及其他启示
  • 研洁等离子清洗设备助力新能源电池盖板焊接更可靠
  • 别再踩坑!AI应用架构师的AI提示工程效果评估
  • Kotaemon支持gRPC接口吗?高性能通信协议选型建议
  • 5、深入了解WPS脚本语言:变量、数据类型与操作
  • 11、Windows PowerShell:文件系统、文档管理与软件管理全解析
  • Kotaemon能否识别口语化表达?自然语言理解优化
  • 期货反向跟单—从小白到高手进阶历程 五十六(盘手重复入金风险)
  • 36、深入了解Sun RPC:原理、格式与应用分析
  • linux环境下python连接海康工业相机
  • 【LH-AQ7A80】
  • Kotaemon支持Kyverno策略吗?Kubernetes原生管控
  • 10、互联网浏览与安全隐私全攻略
  • Kotaemon判决书摘要提取:关键信息速览
  • Kotaemon能否用于股票行情解读?风险提示必不可少
  • 46、X 系统扩展与兼容性函数详解
  • nt!KiDispatchInterrupt函数中nt!KiQueueReadyThread和nt!SwapContext和KiQuantumEnd3个函数的关系
  • 31、Awk脚本语言快速参考指南
  • Kotaemon如何平衡速度与精度?检索-重排协同机制
  • 为什么越来越多开发者选择Kotaemon做知识问答系统?