news 2026/5/27 19:51:14

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【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({
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 15:15:24

Kotaemon能否用于心理健康自助?资源推荐而非诊疗

Kotaemon能否用于心理健康自助&#xff1f;资源推荐而非诊疗 在焦虑情绪日益普遍、心理服务资源却严重不足的今天&#xff0c;一个现实问题摆在面前&#xff1a;如何让那些暂时无法接触到专业咨询的人&#xff0c;也能获得及时、可靠的心理支持&#xff1f; AI对话系统似乎提…

作者头像 李华
网站建设 2026/5/27 4:21:16

环境配置错误

在配置环境的时候&#xff0c;你会遇到千奇百怪的各种错误。沉静下来&#xff0c;耐心一个一个解决。多跟ai交互&#xff0c;把报错历程做成一个思维导图&#xff0c;防止自己迷路&#xff0c;因为极有可能在解决一个报错的过程中又报错&#xff0c;不断循环嵌套&#xff0c;就…

作者头像 李华
网站建设 2026/5/26 7:35:17

Java反射的作用与应用场景

Java反射&#xff08;Reflection&#xff09;是Java语言提供的一种强大机制&#xff0c;允许程序在运行时动态地检查、访问和修改类、对象、方法和属性&#xff0c;而无需在编译时知道这些信息。重要作用&#xff1a;1. 动态类型操作// 运行时加载类 Class<?> clazz Cl…

作者头像 李华
网站建设 2026/5/26 7:34:17

Kotaemon如何处理递归问题?层次化推理能力解析

Kotaemon如何处理递归问题&#xff1f;层次化推理能力解析 在构建企业级智能对话系统的过程中&#xff0c;一个长期存在的挑战是&#xff1a;如何让AI真正“理解”复杂问题&#xff0c;并像人类专家一样进行有条理的思考&#xff1f;尤其是在金融分析、法律咨询或医疗诊断这类…

作者头像 李华
网站建设 2026/5/26 0:23:44

Kotaemon能否用于快递物流查询?多源数据整合实践

Kotaemon能否用于快递物流查询&#xff1f;多源数据整合实践 在电商包裹每天以亿计流动的今天&#xff0c;用户早已不满足于“已发货”“运输中”这样的状态提示。他们更关心的是&#xff1a;“我的快递是不是被堵在路上了&#xff1f;”“为什么昨天显示到达北京&#xff0c;今…

作者头像 李华
网站建设 2026/5/27 9:58:03

Kotaemon如何降低Token消耗?五大优化技巧公开

Kotaemon如何降低Token消耗&#xff1f;五大优化技巧公开 在大语言模型&#xff08;LLM&#xff09;日益深入企业级应用的今天&#xff0c;一个看似不起眼却直接影响系统成本与响应效率的问题逐渐浮出水面——Token消耗。无论是智能客服、知识问答&#xff0c;还是自动化办公助…

作者头像 李华