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

python 网站开发小项目wordpress调用摘要

python 网站开发小项目,wordpress调用摘要,柳江企业网站建设公司,传奇霸业官网下载YoloV8的目标检测推理 原始的YoloV8封装的层次太高,想要为我们所用可能需要阅读很多API,下面给出比较简单的使用方式 导入所需的库 os:用于操作文件系统。cv2 (OpenCV):用于图像处理。numpy:提供数学运算&#xff0…

YoloV8的目标检测推理

原始的YoloV8封装的层次太高,想要为我们所用可能需要阅读很多API,下面给出比较简单的使用方式

导入所需的库

  • os:用于操作文件系统。
  • cv2 (OpenCV):用于图像处理。
  • numpy:提供数学运算,特别是对数组的操作。
  • ultralytics.YOLO:一个现成的YOLO模型实现,用于对象检测。
  • torch:PyTorch深度学习框架,用于处理模型。
  • serial:用于串口通信。
  • time:用于时间相关的操作。

初始化串口通信的函数:init_serial

  • init_serial 函数用于初始化串口通信。
  • 参数包括端口名称、波特率、字节大小、奇偶校验和停止位。
  • 在尝试打开串口时使用 try-except 结构来捕获异常。
  • 如果串口打开成功,则返回串口对象,否则打印错误信息并退出程序。

加载模型的函数:load_model

  • load_model 函数用于加载YOLO模型。
  • 检查模型权重文件是否存在,不存在则打印错误信息并退出。
  • 使用 YOLO 类从给定路径加载模型,并将其传输到指定的计算设备(CPU或GPU)。
  • 返回加载的模型。

处理图像的函数:process_images

  • process_images 函数负责处理指定路径下的图像。
  • 检查图像路径是否存在,不存在则打印错误信息并退出。
  • 遍历指定路径下的所有 .jpg 图像。
  • 对每张图像应用YOLO模型进行对象检测。
  • 从检测结果中提取类别和边界框信息。
  • 对于检测到的每个对象,绘制边界框并根据类别确定边界框颜色。
  • 根据检测结果通过串口发送“OK”或“not OK”信息。
  • 使用OpenCV显示结果图像,按 q 退出循环。
  • 最后关闭所有OpenCV窗口。

主函数:main

  • 在主函数中设置计算设备。
  • 初始化串口。
  • 加载模型。
  • 调用 process_images 函数处理图像。
  • 使用 if __name__ == "__main__": 确保在直接运行脚本时执行主函数。
import os
import cv2
import numpy as np
from ultralytics import YOLO
import torch
import serial
import timedef init_serial(port, baudrate, bytesize, parity, stopbits):try:ser = serial.Serial(port, baudrate, bytesize, parity, stopbits)time.sleep(1)  # 等待串口初始化return serexcept serial.SerialException as e:print(f"Error opening serial port: {e}")exit()def load_model(weights_path, device):if not os.path.exists(weights_path):print("Model weights not found!")exit()model = YOLO(weights_path).to(device)model.fuse()model.info(verbose=False)return modeldef process_images(path, model, serial_port):if not os.path.exists(path):print(f"Path {path} does not exist!")exit()for img_file in os.listdir(path):if not img_file.endswith(".jpg"):continueimg_path = os.path.join(path, img_file)img = cv2.imread(img_path)if img is None:print(f"Failed to load image {img_path}")continuemask = img.copy()result = model(img)cls, xywh = result[0].boxes.cls, result[0].boxes.xywhcls_, xywh_ = cls.detach().cpu().numpy(), xywh.detach().cpu().numpy()for pos, cls_value in zip(xywh_, cls_):pt1, pt2 = (np.int_([pos[0] - pos[2] / 2, pos[1] - pos[3] / 2]),np.int_([pos[0] + pos[2] / 2, pos[1] + pos[3] / 2]))color = [0, 0, 255] if cls_value == 0 else [0, 255, 0]cv2.rectangle(mask, tuple(pt1), tuple(pt2), color, 2)res_ = "Yes" if np.any(cls_ == 1) else "No"print(res_)serial_port.write((res_ + "\r\n").encode())cv2.imshow("result", mask)if cv2.waitKey(1) & 0xFF == ord('q'):breakcv2.destroyAllWindows()def main():device = torch.device("cuda" if torch.cuda.is_available() else "cpu")print("Using device:", device)serial_port = init_serial("/dev/ttyTHS1", 115200, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE)model = load_model("./weights/best.pt", device)process_images("./datasets/pre/", model, serial_port)if __name__ == "__main__":main()
http://www.yayakq.cn/news/61932/

相关文章:

  • wordpress修改网站地址肉部网站建设包括哪些
  • 网站开发公司专业wordpress标题不能空
  • 海口建设工程信息网站应用商店 安装
  • 温州城乡建设学校seo建站推广
  • 游戏网站排行wordpress模版如何汉化
  • 辛集seo网站优化公司iis网站服务器安全隐患
  • 外贸公司网站有哪些网站建设的行业市场的特点
  • 海南澄迈住房与建设厅网站江西建设厅网站电子
  • 南京网站建设服务公司网页设计与网站建设题库
  • 网站电话转化率网站建设目的功能
  • 网站标题是什么网站建设网页设计
  • 沈阳企业模板建站开发一款游戏需要多少钱
  • 网站备案主体注销大宗交易平台有哪些
  • 浙江建设职业技术学院尔雅网站网站架构策划
  • 上海网站建设运营站霸网络现在最火的社交电商平台
  • 我的世界查询建筑网站智能建造技术专业学什么
  • 重庆模板网站建设怎么样八宿县网站seo优化排名
  • 物流网站html5模板上海网站制作建设怎么样
  • 浏阳商务局网站溪江农贸市场建设广平网站建设
  • 代码错误网站淮南网约车平台
  • 链家网的网站开发费用大概多少钱企业网站维护存在问题
  • 网站推广公司运营模式网站建设与维护公司
  • 湖北省建设厅的网站全网黄页网站
  • 常州网站关键词查手表价格的网站
  • 创意合肥网站建设南充做网站
  • 音乐APP网站开发网站形象首页flash
  • iis6.0如何做网站301wordpress秀
  • 群晖搭建wordpress端口多少公司优化是什么意思
  • 江苏建设人才无纸化考核网站网站如何被百度收录
  • 免费网站app软件怎样用vps做网站