商务网站建设课程设计,辽宁鲲鹏建设集团网站,给wordpress网站做ssl卸载,怎么做网站卖机床具体步骤如下#xff1a; 加载图像#xff1a; 从指定路径读取一张图像#xff08;这里假设图像名为bus.jpg#xff09;。将图像从 BGR 颜色空间转换为 RGB 颜色空间。 图像预处理#xff1a; 计算图像的高度、宽度#xff0c;并确定其中的最大值作为新图像的边长。创建一…具体步骤如下 加载图像 从指定路径读取一张图像这里假设图像名为bus.jpg。将图像从 BGR 颜色空间转换为 RGB 颜色空间。 图像预处理 计算图像的高度、宽度并确定其中的最大值作为新图像的边长。创建一个全零的新图像大小为最长边的正方形将原始图像复制到新图像中确保图像的边长是最长边的长度。将新图像调整为640x640的大小并进行转置和像素值归一化处理最后添加一个维度以满足模型输入要求。 模型推理 使用onnxruntime加载预训练的 ONNX 模型。将预处理后的图像输入模型进行推理得到模型的输出结果。 结果筛选 对模型输出结果进行转置操作然后根据置信度阈值筛选出置信度大于 0.8 的检测结果。提取这些结果中的边界框信息和置信度并使用 OpenCV 的非极大值抑制算法去除重叠的边界框得到最终的检测结果。 绘制结果 遍历最终的检测结果对于每个检测结果计算边界框的四个顶点坐标并在原始图像上绘制矩形框。将检测结果中除边界框和置信度之外的部分按照每三个元素一组进行分割得到关键点信息。对于每个关键点根据缩放比例计算其在原始图像中的坐标并在图像上绘制一个红色的小圆点。 显示图像 显示绘制了检测结果的图像。等待用户按下任意键退出程序并关闭所有窗口。
import cv2
import numpy as np
import onnxruntime as ort
from ultralytics import YOLO导入了所需的库包括 OpenCVcv2用于图像处理numpy用于数值计算onnxruntime用于加载和运行 ONNX 模型以及ultralytics的YOLO类用于对象检测。
# model YOLO(yolov8n-pose.pt)
# model.export(formatonnx)
img_path
frame cv2.imread(bus.jpg)使用ultralytics的YOLO模型加载一个名为yolov8n-pose.pt的预训练模型并将其导出为 ONNX 格式。随后使用cv2.imread读取一张名为bus.jpg的图像并将其存储在frame变量中。
rgb_frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
h, w, c rgb_frame.shape
max_slide max(h, w)
bg_img np.zeros((max_slide, max_slide, 3), dtypenp.float32)
bg_img[:h, :w] rgb_frame将读取的图像从 BGR 颜色空间转换为 RGB 颜色空间。然后计算图像的高度、宽度和通道数并找到高度和宽度中的较大值作为max_slide。创建一个全零的图像大小为max_slide x max_slide x 3然后将原始图像复制到这个新图像中确保新图像的边长是图像最长边的长度。
image cv2.resize(bg_img, dsize(640, 640))
image np.transpose(image, (2, 0, 1)) / 255
image np.expand_dims(image, 0)
scale max_slide / 640将处理后的图像调整为640x640的大小。接着对图像进行转置操作并将像素值归一化到[0, 1]范围然后使用np.expand_dims在第一个维度上添加一个维度以便符合模型输入的要求。同时计算图像缩放比例。
session ort.InferenceSession(yolov8n-pose.onnx, providers[CPUExecutionProvider])
input_name session._inputs_meta[0].name
session_out session.run(None, {input_name: image})[0][0]使用onnxruntime加载名为yolov8n-pose.onnx的模型并指定使用 CPU 进行推理。获取模型输入的名称并将预处理后的图像输入模型进行推理得到输出结果。
result np.transpose(session_out, (1, 0))
result result[result[:, 4] 0.8]
bboxes result[:, 0:4]
confs result[:, 4]对模型输出结果进行转置操作然后筛选出置信度大于 0.8 的检测结果。提取出这些结果中的边界框信息和置信度。
idx cv2.dnn.NMSBoxes(bboxes, confs, score_threshold0.5, nms_threshold0.3)
res result[idx]使用 OpenCV 的非极大值抑制NMS算法对检测结果进行筛选去除重叠的边界框。得到最终的检测结果。
for re in res:cx, cy, w, h re[:4]x1 (cx - w // 2) * scaley1 (cy - h // 2) * scalex2 (cx w // 2) * scaley2 (cy h // 2) * scalex1, y1, x2, y2 int(x1), int(y1), int(x2), int(y2)conf re[5]cv2.rectangle(frame, (x1, y1),( x2, y2), color(0, 255, 1), thickness3, lineTypecv2.LINE_AA)kpoints np.split(re[5:], re[5:].shape[0] // 3)for kpoint in kpoints:x_, y_, visibility kpointx_ int(x_ * scale)y_ int(y_ * scale)cv2.circle(frame, center(x_, y_), radius2, color(0, 0, 255), thickness2)遍历最终的检测结果对于每个检测结果计算边界框的四个顶点坐标并在原始图像上绘制矩形框。然后将检测结果中除边界框和置信度之外的部分按照每三个元素一组进行分割得到关键点信息。对于每个关键点根据缩放比例计算其在原始图像中的坐标并在图像上绘制一个红色的小圆点。
cv2.imshow(win, frame)
cv2.waitKey(0)
cv2.destroyAllWindows()最后显示处理后的图像并等待用户按下任意键退出程序关闭所有窗口。
完整代码如下
import cv2
import numpy as np
import onnxruntime as ortfrom ultralytics import YOLO# modelYOLO(yolov8n-pose.pt)
# model.export(formatonnx)
img_path
framecv2.imread(bus.jpg)
rgb_frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
#
h, w, c rgb_frame.shape
max_slide max(h, w)
bg_img np.zeros((max_slide, max_slide, 3), dtypenp.float32)
bg_img[:h, :w] rgb_frame
# 640*640*3
image cv2.resize(bg_img, dsize(640, 640))
image np.transpose(image, (2, 0, 1)) / 255
image np.expand_dims(image, 0)
scalemax_slide/640
sessionort.InferenceSession(yolov8n-pose.onnx,providers[CPUExecutionProvider])
input_namesession._inputs_meta[0].name
session_out session.run(None, {input_name:image})[0][0]
resultnp.transpose(session_out,(1,0))
resultresult[result[:,4]0.8]
bboxesresult[:,0:4]
confsresult[:,4]
idx cv2.dnn.NMSBoxes(bboxes, confs, score_threshold0.5, nms_threshold0.3)
resresult[idx]
for re in res:cx, cy, w, h re[:4]x1 (cx - w // 2) * scaley1 (cy - h // 2) * scalex2 (cx w // 2) * scaley2 (cy h // 2) * scalex1, y1, x2, y2 int(x1), int(y1), int(x2), int(y2)confre[5]#置信度cv2.rectangle(frame,(x1,y1),(x2,y2),color(0,255,1),thickness3,lineTypecv2.LINE_AA)kpointsnp.split(re[5:],re[5:].shape[0]//3)for kpoint in kpoints:x_,y_,visibilitykpointx_int(x_*scale)y_int(y_*scale)cv2.circle(frame, center(x_, y_), radius2, color(0, 0, 255), thickness2)
cv2.imshow(win,frame)
cv2.waitKey(0)
cv2.destroyAllWindows()结果如下
文章转载自: http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn http://www.morning.kntsd.cn.gov.cn.kntsd.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn http://www.morning.rtbx.cn.gov.cn.rtbx.cn http://www.morning.nyzmm.cn.gov.cn.nyzmm.cn http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn http://www.morning.hpprx.cn.gov.cn.hpprx.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.yrdkl.cn.gov.cn.yrdkl.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.rcklc.cn.gov.cn.rcklc.cn http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.nbfkk.cn.gov.cn.nbfkk.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.plpqf.cn.gov.cn.plpqf.cn http://www.morning.qggm.cn.gov.cn.qggm.cn http://www.morning.rwjh.cn.gov.cn.rwjh.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.syrzl.cn.gov.cn.syrzl.cn http://www.morning.jtmql.cn.gov.cn.jtmql.cn http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn http://www.morning.cnfxr.cn.gov.cn.cnfxr.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.zbmcz.cn.gov.cn.zbmcz.cn http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.yrms.cn.gov.cn.yrms.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.hdlhh.cn.gov.cn.hdlhh.cn http://www.morning.nlysd.cn.gov.cn.nlysd.cn http://www.morning.hsflq.cn.gov.cn.hsflq.cn http://www.morning.mlpch.cn.gov.cn.mlpch.cn http://www.morning.tphrx.cn.gov.cn.tphrx.cn http://www.morning.rmjxp.cn.gov.cn.rmjxp.cn http://www.morning.wckrl.cn.gov.cn.wckrl.cn http://www.morning.kfyqd.cn.gov.cn.kfyqd.cn http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn http://www.morning.pinngee.com.gov.cn.pinngee.com http://www.morning.pflry.cn.gov.cn.pflry.cn http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn http://www.morning.jkftn.cn.gov.cn.jkftn.cn http://www.morning.kybyf.cn.gov.cn.kybyf.cn http://www.morning.tfpqd.cn.gov.cn.tfpqd.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.ryrgx.cn.gov.cn.ryrgx.cn http://www.morning.jlxqx.cn.gov.cn.jlxqx.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.slfmp.cn.gov.cn.slfmp.cn http://www.morning.mfmx.cn.gov.cn.mfmx.cn http://www.morning.lmhcy.cn.gov.cn.lmhcy.cn http://www.morning.crkmm.cn.gov.cn.crkmm.cn http://www.morning.rrms.cn.gov.cn.rrms.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.rttp.cn.gov.cn.rttp.cn http://www.morning.lfbzg.cn.gov.cn.lfbzg.cn http://www.morning.fpczq.cn.gov.cn.fpczq.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.lxdbn.cn.gov.cn.lxdbn.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.grxbw.cn.gov.cn.grxbw.cn http://www.morning.fpqq.cn.gov.cn.fpqq.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.tcfhs.cn.gov.cn.tcfhs.cn