您好,我已经成功训练了一个基于 YOLOv5s 的自定义模型,并将该模型转换为 TFlite。我觉得这个问题很傻,但是你如何使用输出数据呢?
\n我得到的输出:
\n但我期望输出如下:
\n它也可能是其他形式的输出,但老实说,我不知道如何从 [1,25200,7] 数组中获取框、类、分数。\n(2021 年 1 月 15 日,我更新了 pytorch、tensorflow和yolov5到最新版本)
\n[1, 25200, 7]数组中包含的数据可以在这个文件中找到:outputdata.txt
\n0.011428807862102985, 0.006756599526852369, 0.04274776205420494, 0.034441519528627396, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试对我的自定义 YOLOv5 模型进行推理。官方文档使用默认detect.py
脚本进行推理。我已经编写了自己的 python 脚本,但无法从模型的输出访问预测的类和边界框坐标。这是我的代码:
import torch
model = torch.hub.load('ultralytics/yolov5', 'custom', path_or_model='best.pt')
predictions = model("my_image.png")
print(predictions)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Yolo V5 训练模型。
我遇到了找不到数据库的问题。
我有一个训练文件、测试文件和有效文件,其中包含所有图像和标签文件。
我已经在 googlecolap 上测试了这些文件,它确实有效。但是,在我的本地计算机上,它显示了以下问题Exception: Dataset not found.
(Yolo_5) D:\\YOLO_V_5\Yolo_V5\yolov5>python train.py --img 416 --batch 8 --epochs 100 --data /data.yaml --cfg models/yolov5s.yaml --weights '' --name yolov5s_results --cache
Using torch 1.7.0 CUDA:0 (GeForce GTX 1080, 8192MB)
Namespace(adam=False, batch_size=8, bucket='', cache_images=True, cfg='models/yolov5s.yaml', data='.\\data.yaml', device='', epochs=100, evolve=False, exist_ok=False, global_rank=-1, hyp='data/hyp.scratch.yaml', image_weights=False, img_size=[416, 416], local_rank=-1, log_imgs=16, multi_scale=False, name='yolov5s_results', noautoanchor=False, nosave=False, notest=False, project='runs/train', rect=False, resume=False, save_dir='runs\\train\\yolov5s_results55', single_cls=False, sync_bn=False, total_batch_size=8, weights="''", workers=16, world_size=1)
Start Tensorboard with "tensorboard --logdir runs/train", view at http://localhost:6006/ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试对我的自定义 YOLOv5 模型进行推理。官方文档使用默认detect.py
脚本进行推理。
例子:python detect.py --source data/images --weights yolov5s.pt --conf 0.25
我已经编写了自己的 python 脚本,但我既无法在初始化期间设置置信度阈值,也无法从模型的预测中检索它。我只能获取标签和边界框坐标。这是我的代码:
import torch
model = torch.hub.load('ultralytics/yolov5', 'custom', path_or_model='best.pt')
results = model("my_image.png")
labels, cord_thres = results.xyxyn[0][:, -1].numpy(), results.xyxyn[0][:, :-1].numpy()
Run Code Online (Sandbox Code Playgroud) 我在我的jetson nano上安装了YoloV5。当出现此错误时,我想执行我的对象检测代码: python3.8/site-packages/torch/lib/libgomp-d22c30c5.so.1: 无法在静态 TLS 块中分配内存。
为了解决这个问题,我尝试将其放入 bashrc 中:
导出 LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
没用
你还有别的想法吗?
这是我的代码:
import cv2
import numpy as np
from elements.yolo import OBJ_DETECTION
Object_classes = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', …
Run Code Online (Sandbox Code Playgroud) 当我尝试运行时YOLOv5
train.py
,我不知道出了什么问题。pandas
已安装。
Traceback (most recent call last):
File "/home/jasmine/Desktop/fyp/yolov5/yolov5/utils/general.py", line 26, in <module>
import pandas as pd
File "/home/jasmine/anaconda3/lib/python3.8/site-packages/pandas/__init__.py", line 52, in <module>
from pandas.core.api import (
File "/home/jasmine/anaconda3/lib/python3.8/site-packages/pandas/core/api.py", line 14, in <module>
from pandas.core.algorithms import factorize, unique, value_counts
File "/home/jasmine/anaconda3/lib/python3.8/site-packages/pandas/core/algorithms.py", line 58, in <module>
from pandas.core.indexers import validate_indices
File "/home/jasmine/anaconda3/lib/python3.8/site-packages/pandas/core/indexers/__init__.py", line 1, in <module>
from pandas.core.indexers.utils import (
File "/home/jasmine/anaconda3/lib/python3.8/site-packages/pandas/core/indexers/utils.py", line 18, in <module>
from pandas.util._exceptions import find_stack_level
ImportError: cannot import name 'find_stack_level' from 'pandas.util._exceptions' …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用自定义训练yolov5
模型对实时 YouTube 视频运行对象检测推理,问题是视频以 30 FPS 流式传输,我实际上不想处理每个帧以进行对象检测,而只是处理每个第 n 帧。
我查看了LoadStreams()
官方yolov5
存储库中的类,但无法将捕获的帧更改为每 10 帧一次
class LoadStreams:
# YOLOv5 streamloader, i.e. `python detect.py --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP streams`
def __init__(self, sources='streams.txt', img_size=640, stride=32, auto=True):
self.mode = 'stream'
self.img_size = img_size
self.stride = stride
if os.path.isfile(sources):
with open(sources) as f:
sources = [x.strip() for x in f.read().strip().splitlines() if len(x.strip())]
else:
sources = [sources]
n = len(sources)
self.imgs, self.fps, self.frames, self.threads = [None] * n, [0] * …
Run Code Online (Sandbox Code Playgroud) AssertionError: train: 在/content/dataset/test/labels.cache中找不到标签,无法开始训练 自动生成的缓存文件
我在做 yolo5 配置和训练数据集时出现错误。
据我所知,该命令会自动在 train 文件夹下创建一个缓存文件。我已经确认它确实导致了这些错误的出现。有什么问题?我请求你帮助我。
当只有数据集与相同代码不同时会发生错误
我有大约 50000 个图像和注释文件用于训练 YOLOv5 对象检测模型。我在另一台计算机上仅使用 CPU 训练模型没有问题,但需要太长时间,因此我需要 GPU 训练。我的问题是,当我尝试使用 GPU 进行训练时,我不断收到此错误:
OSError: [WinError 1455] The paging file is too small for this operation to complete
Run Code Online (Sandbox Code Playgroud)
这是我正在执行的命令:
train.py --img 640 --batch 4 --epochs 100 --data myyaml.yaml --weights yolov5l.pt
Run Code Online (Sandbox Code Playgroud)
CUDA和PyTorch已成功安装并可用。以下命令安装没有错误:
pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
Run Code Online (Sandbox Code Playgroud)
num_workers = 8
我在网上发现其他人也有类似的问题,并通过将 更改为 来修复它num_workers = 1
。当我尝试这个时,训练开始了,似乎已经过了出现错误的点the paging file is too small
,但几个小时后崩溃了。我还根据此视频 ( https://www.youtube.com/watch?v=Oh6dga-Oy10 ) 增加了 GPU 上可用的虚拟内存,但这也不起作用。我认为这是一个内存问题,因为有时它崩溃时我会从计算机收到内存不足的警告。
任何帮助将非常感激。
我刚刚创建了一个 yolov5 模型,并将其导出为 onnx 格式,因此它可以与 opencv 一起使用,但我不断收到错误:
[错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn.cpp (3554) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapesRecursively OPENCV /DNN: [Reshape]:(466): getMemoryShapes() 抛出异常。输入=1 输出=1/1 blob=0 [错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn.cpp (3557) cv::dnn:: dnn4_v20211004::Net::Impl::getLayerShapes递归输入[0] = [ 1 24 52 52 ] [ERROR:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\dnn. cpp (3561) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapes递归输出[0] = [ ] [错误:0] 全局 D:\a\opencv-python\opencv-python\opencv\modules\ dnn\src\dnn.cpp (3567) cv::dnn::dnn4_v20211004::Net::Impl::getLayerShapesRecursively 异常消息:OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\模块\dnn\src\layers\reshape_layer.cpp:106:错误:(-215:断言失败)total(srcShape,srcRange.start,srcRange.end)== maskTotal在函数'cv::dnn::computeShapeByReshapeMask'中
这是代码:
onnx_model = onnx.load('best.onnx')
onnx.checker.check_model(onnx_model)
net = cv.dnn.readNetFromONNX('best.onnx')
classes = []
with open("coco-dataset.labels", "r") as f:
classes = [line.strip() for line in f.readlines()]
layerNames = net.getLayerNames()
outputLayers=[]
for i in …
Run Code Online (Sandbox Code Playgroud)