
笔记
文章平均质量分 71
三叔家的猫
To be a better man.
展开
-
yolov8实现半标注
yolov8实现半标注程序原创 2023-03-21 15:12:23 · 2094 阅读 · 5 评论 -
深度学习CV岗位面试问什么(GPT回答篇)
用GPT来面试深度学习八股文题目原创 2023-03-20 23:30:06 · 2470 阅读 · 0 评论 -
yolov8命令行运行参数详解
基准测试提供了关于导出格式的大小、其mAP50-95指标(用于对象检测和分割)或精度top5指标(用于分类)的信息,以及在各种导出格式(如ONNX、OpenVINO、TensorRT等)中,每张图像的推断时间(以毫秒为单位)。这些信息可以帮助用户根据他们对速度和准确性的需求,为他们的特定用例选择最佳的导出格式。yolov8目前支持:BoT-SORT、ByteTrack两种目标跟踪,默认使用BoT-SORT。跟踪的传参和推理时一样,主要有三个:conf、 iou、 show。原创 2023-03-17 17:57:36 · 37037 阅读 · 20 评论 -
VOC格式或者COCO格式检测数据集提取特定类
有时候我们需要从已经标记好的数据集中提取某些类进行训练,以常见的COCO数据集和VOC数据集格式的标注为例,本文提供了两种数据集格式的特定类提取方法,网上也有很多类似的内容,权当总结记录,以后用到时方便找出。原创 2022-06-01 14:33:11 · 1531 阅读 · 0 评论 -
【TensorRT】相关学习资料文章链接整理记录备份
序言用于记录好的TensorRT文章链接,以防下次再想看的时候找不到。TensorRT使用教程(Python版)TensorRT优化原理TensorRT工作流程TensorRT使用 C++ API 从头创建网络TensorRT使用 C++ parser API解析模型TensorRT使用 Python API 从头创建网络TensorRT使用 Python parser API解析模型TensorRT使用C++API部署推理TensorRT使用PythonAPI部署推理TensorRT原创 2022-05-06 15:00:50 · 1189 阅读 · 0 评论 -
pytorch模型(.pth)转tensorrt模型(.engine)几种方式
序言这篇文章总结了训练好的pytorch模型转成tensorrt模型部署的几种方式,转换原理流程大致如下:导出网络定义以及相关权重;解析网络定义以及相关权重;根据显卡算子构造出最优执行计划;将执行计划序列化存储;反序列化执行计划;进行推理值得注意的是第三点,可以看到tensorrt转换出来的模型实际上是和硬件绑定的,也就是在部署的过程中,如果你的显卡和显卡相关驱动软件(cuda、cudnn)发生了改变,那么模型就得需要重新做转换。一、trtexectrtexec是在tensorrt包原创 2022-05-05 17:48:42 · 20692 阅读 · 6 评论 -
使用NCNN在jetson TX2上调用GPU进行推理
NCNN在jetson TX2上调用GPU推理原创 2022-04-28 18:18:01 · 3661 阅读 · 1 评论 -
使用图像增强库Augly对数据进行增强扩充
序言使用Augly库写了一个易用的图像增强函数,用来扩充图像样本,增加样本的多样性,使用起来非常简单,需要预先安装Augly库,在终端中运行:pip install augly全部代码分享如下(代码还有优化空间,根据自己需要进行优化):import osimport randomimport augly.image as imaugsimport PIL.Image as Imageimg_path = "img" # 需要增强原创 2022-03-02 16:24:36 · 3113 阅读 · 3 评论 -
nanodet-plus训练自己数据集
序言前两天nanodet-plus隆重发布,又赚了一波热度,趁着年底有空,避免被卷死,赶紧学习一波;因为之前有过nanodet的训练实践经历,但是有好长一段时间没用了,代码看的都生疏了,还好作者将新版本合并到老仓库中,代码结构基本上没变,旧的配置文件修改依旧适用,重新上手起来也比较容易,这次打算拿之前的筷子数据集来试试效果,本文记录训练过程。与上一代NanoDet相比,在仅增加1毫秒多的延时的情况下,精度提升了30%。与YOLOv5-n, YOLOX-Nano等其他轻量级模型相比,在精度和速度上也都高了原创 2021-12-29 12:13:57 · 9535 阅读 · 13 评论 -
交叉编译opencv在ARM板子上运行时出现的问题 libgomp.so.1: cannot open shared object file: No such file or directory
最近在rk3328上部署了一个模型,模型推理需要opencv的支持,可执行程序在PC上交叉编译完后,push到板子上运行时出现了如下报错error while loading shared libraries: libgomp.so.1: cannot open shared object file: No such file or directory网上搜了一下好像没有相关解决记录,所以特别记录一下,以便有需要的人能搜到,避免走太多弯路。检查了一下,发现板子上/usr/lib中没有这个库,但是发现原创 2021-10-25 15:40:11 · 4048 阅读 · 1 评论 -
在docker上使用openvino开发和部署模型应用
序言前段时间给我们运维同事的服务器上部署了一个ocr服务接口,模型使用的是nvidia 1650ti的显卡推理,速度非常可观,毫秒级别响应。但是最近运维又找到我,说服务器的显卡好像出了问题,我检查一看:好家伙,显卡居然烧了。这张显卡为公司服务了好几年,毕竟“陈年老卡”,上一任同事传下来的,不知道传了几代,如今也算圆寂了。好了,不瞎扯,说会正题,没了显卡,我这模型可咋整?现阶段只能用cpu推理了,但是模型的速度可咋优化?这可难不倒我,检查了一下这台服务器上的cpu,发现了Intel的,这就好办了 , 果断使原创 2021-08-30 11:31:59 · 3029 阅读 · 3 评论 -
ubuntu设置开机启动运行python程序或服务
序言最近在ubuntu服务器上部署了一套ocr服务,每次服务器启动的时候需要手动运行脚本未免太麻烦了,所以考虑加入开机自启。网上搜了一下,答案基本上大同小异,几乎都是使用rc.local文件,但是ubuntu18 貌似是已经不支持rc.local 这个开机自动启动的脚本了,所以为了能继续用这个脚本,需要去编写一个ubuntu18 下的启动脚本,通过这个脚本来启动我的rc.local脚本,本文记录一下使用过程。1. 创建一个re-local.service文件sudo vi /etc/systemd/原创 2021-06-29 16:47:34 · 4970 阅读 · 0 评论 -
python实现YUV转RGB
序言因为在项目中要用到yuv格式的视频图像进行模型推理,但是我们模型通常都是只接收RGB格式的图片,所以在推理前就要先把YUV格式转换为RGB格式,网上搜了看到很多实现,搜来搜去你会发现还是那几个源码,copy下来运行要么报错,要么转出来的色彩不对,全都是没经过实践的,抄袭得特别严重,一份代码写了十几篇文章,关键是还不一定能用,来回调试严重浪费我们宝贵的时间,再次对这种行为表示愤慨。如果你一开始就搜到了我这篇文章,那么恭喜你,不用再去踩我曾经踩过的坑。一、什么是YUV在代码实现之前,需要去了解什么是原创 2021-05-07 11:42:06 · 10786 阅读 · 11 评论 -
Ubuntu 18.04.5 LTS安装配置caffe环境记录
序言网上教程明明很多,为什么还要写这篇文章?网上的文章抄来抄去的,很多都是误导人的安装,而且有些环境不一样还会出现各种各样不同的问题,这篇主要是记录自己本机的安装过程和遇到的问题,方面以后需要的时候翻出来,印象更深刻一些,适合自己的才是最好的。一、系统环境ubuntu 18.04.5cuda 11.1rtx 3070cudnn 8.1python 3.7以上环境默认已经配好。二、开始安装2.1 安装opencv去opencv官网opencv下载对应的发布包,我这里下载的是下载后原创 2021-04-30 11:02:19 · 739 阅读 · 5 评论 -
使用flask部署tensorrt模型时遇到的问题:[TensorRT] ERROR: ../rtSafe/cuda/caskConvolutionRunner.cpp (408)
问题描述将pytorch模型转tensorrt后运行推理结果正常,但是使用flask部署调用时出现如下报错,推理输出全部为0:[TensorRT] ERROR: ../rtSafe/cuda/caskConvolutionRunner.cpp (408) - Cask Error in checkCaskExecError<false>: 11 (Cask Convolution execution)[TensorRT] ERROR: FAILED_EXECUTION: std::exce原创 2021-04-23 15:52:21 · 3654 阅读 · 3 评论 -
yolov5中的Focus模块的理解
序言v5出来这么久,一直搜不到网上对Focus的理解,还想着白嫖一下结论,但是发现搜出来的都是一知半解,讲的全都是Focus做了什么,愣是没说为什么要这么做。没办法只好自己花点时间深入学习一下,本人也记录一下本人对Focus模块的一些理解,如果有理解错误的地方,还请评论区告知。一、Focus模块的原理Focus模块在v5中是图片进入backbone前,对图片进行切片操作,具体操作是在一张图片中每隔一个像素拿到一个值,类似于邻近下采样,这样就拿到了四张图片,四张图片互补,长的差不多,但是没有信息丢失,这原创 2021-01-16 18:42:36 · 83850 阅读 · 87 评论 -
细数YOLOv5在使用过程中自己改动的部分
序言最近好多项目都用到了yolov5,为了适配项目需求,有时候会对v5的代码部分做一些改动,写这篇文章的目的是为了记录自己改动的部分(本人很健忘),以便下次用的时候翻来看看。一、数据增强部分增加了垂直旋转的增强v5里面提供了很多数据增强方式,针对大众的数据集效果还是很适用的,如果觉得增强效果不理想,也可以自己在代码中增加,我这里就增加了一个垂直的旋转90°的,为了让数据集中包含了垂直的目标数据,比如之前做的卡片四个角检测,如果目标全是水平的卡片,那么检测时卡片位置变为垂直的时候,效果可能就会有折扣,但原创 2021-01-08 16:28:28 · 10802 阅读 · 44 评论 -
VOC格式标注转COCO格式
序言有些时候需要用到coco格式的数据训练,但是labelimg标注的是VOC格式的文件,需要转换一些,原始文件目录格式为:转换方式一直接将单个文件夹的xml转换为json:import xml.etree.ElementTree as ETimport osimport jsoncoco = dict()coco['images'] = []coco['type'] = 'instances'coco['annotations'] = []coco['categories']原创 2021-01-08 14:09:02 · 1212 阅读 · 1 评论 -
深度学习CV岗位面试问题总结(目标检测篇)
序言首先说一下为什么写这篇文章,一方面是因为在平时工作中或者项目上会用到各种各样的算法,虽然用多了心里大概都知道这些算法是什么原理,但是在面试的时候当面试官闻起来,突然一下子就组织不上语言,原理说得零零碎碎,显得非常不专业,相信很多人都有这样的面试经历。另一方面我觉得当读到一篇好的文章或者一段出彩的文字时,看完能够用自己的一句话把文章核心内容总结出来,才能够掌握文章的精髓,当然深度学习的东西,很难用一句话概括出来,但是我们可以总结其中的重点,再通过思维的延申到实现细节上,是不错的学习方式。废话说得太多了原创 2021-01-06 18:39:21 · 19562 阅读 · 6 评论 -
边缘设备实时实例分割—YolactEdge训练笔记
序言最近在刷公众号的时候,突然刷到一篇新出的YolactEdge文章:边缘设备上的实时实例分割(Xaviver:30FPS,RTX2080Ti:170FPS),瞬间被标题吸引了:挖草,这么强?要知道原版的yolact也只是勉强达到实时而已,这个速度这么变态的嘛!赶紧打开官方github star一波,粗略看了一下代码结构,发现和yolact的差不多,配置起来应该不难,趁现在有时间,赶紧train看看。在train之前先看下这篇论文的结果:训练配置pytorch 1.6.0ubuntu 18.0原创 2020-12-24 13:51:18 · 3590 阅读 · 7 评论 -
pytorch转tensorRT步骤
序言最近在摸索pytorch转tensorRT部署,看了很多示例代码,把步骤总结了一下。各种模型转换都大同小异,有所收获,记录一下。一、转换流程pytorch转tensorRT步骤:使用pytorch训练得到pt文件;将pt文件转换为onnx中间件;使用onnxsim.simplify对转换后的onnx进行简化;解析onnx文件构建trt推理引擎;加载引擎执行推理,为引擎输入、输出、模型分配空间;将待推理的数据(预处理后的img数据)赋值给inputs(引擎输入);执行推理,拿到out原创 2020-12-18 14:56:34 · 10737 阅读 · 8 评论 -
Jetson nano系统烧录及pytorch环境配置
前言因为目前业务方向逐渐偏向硬件嵌入部署,所以最近搞了一个jetson nano和rk3399的板子来上手,之前没搞过硬件开发板,刚开始配置的时候遇到了很多坑,写篇博客记录一下过程。Jetson Nano 是一款小型,功能强大的单板计算机,配备了1.4 GHz四核ARM A57 CPU,128核Nvidia Maxwell GPU和4 GB RAM。它具有四个USB A型端口,包括一个USB 3.0端口,用于视频输出的HDMI和DisplayPort端口以及一个千兆位以太网连接器。板载CSI摄像头插槽,原创 2020-12-15 18:50:01 · 3348 阅读 · 7 评论 -
超分辨率学习思路
序言图像超分辨率是指从低分辨率图像中恢复出自然、清晰的纹理,最终得到一张高分辨率图像,是图像增强领域中一个非常重要的问题。近年来,得益于深度学习技术强大的学习能力,该问题有了显著的进展。低分辨率图像一般通过一系列的退化操作得到,在损失了大量细节的同时,也引入了一系列的噪声。基于深度学习的超分辨率过程本质上就是通过网络模型采用成对的训练数据进行有监督学习的训练,进而拟合上述退化操作的逆操作,得到重建后的高清图像。正文好了,废话不多说,知道超分是啥就好了,关于超分领域我也不太了解,只是前段时间和该方面原创 2020-06-06 17:31:57 · 950 阅读 · 0 评论 -
PyTorch从零开始编写YOLOv3网络和侦测代码并加载官方权重
序言本文只涉及代码的编写,不会对YOLOv3原理做太多讲解,如果对YOLOv3原理还不够了解的,请移步YOLOv3原理详解,因为之前官方给的代码比较复杂,所以自己重新整理了一下,在本文中,对YOLOv3的网络和侦测部分的代码重新书写,代码变得更为整洁,并加载官方给的权重文件。环境介绍Windows10Pytorch 1.1.0cuda10Pycharm一、根据cfg文件搭建网络模...原创 2020-02-27 01:32:57 · 2256 阅读 · 6 评论 -
目标检测中评估指标mAP详解和计算方式
相信大家在看一些目标检测论文中经常会看到作者将自己的模型和其他的模型做了mAP比较,mAP作为目标检测中一个非常重要的评估指标,是对模型好坏的评价标准,当时在看YOLOv3、SSD、Faster R-CNN等这些论文的时候,对mAP还不是很熟悉,看了很多的博文,写得都很零碎,很难理解,虽然大概能明白其原理,但是可能对于很多刚进入这个领域的同学来说,难度还是很大的,刚好这几天被困在家没事做,在复习之...原创 2020-02-17 00:58:15 · 29534 阅读 · 9 评论 -
目标检测研究中存在的难点
目标检测目前主要存在的主要问题,也是目标检测未来的发展方向:小目标物体检测;遮挡面积较大的目标检测;区分图像中与目标物体外形相似的非目标物体;实时性检测;小数据量迁移训练效果的提升;目标检测范围应用越来越广,缺乏各种各样的训练样本数据。...原创 2020-04-21 23:07:21 · 7180 阅读 · 0 评论 -
常见的12个深度学习面试问题(提高篇)
序言整理了一篇来自公众号AI公园的文章,原文链接:常见的12个深度学习面试问题,通过对文章知识点整理来巩固所学的知识,也为了以后更好的复习。正文1. 介绍Batch Normalization的意义Batch Normalization 是训练神经网络模型的一种有效方法。该方法的目标是将特征(每层激活后的输出)归一化为均值为 0,标准差为 1。它可以将数据标准化到一个合理的范围,这样做带来...原创 2020-03-29 16:21:15 · 3074 阅读 · 0 评论 -
UNet++学习笔记
序言本文整理于作者知乎原文:研习UNet,UNet++的作者在知乎讲的非常仔细,感兴趣的可以直接去围观,这里只是为了方便记忆做个总结。正文一、图像分割背景在计算机视觉领域,全卷积网络(FCN)是比较有名的图像分割网络,医学图像处理方向,U-Net可以说是一个更加炙手可热的网络,基本上所有的分割问题,我们都会拿U-Net先看一下基本的结果,然后进行“魔改”。UNet和FCN对比:两者...原创 2020-03-25 20:56:07 · 3175 阅读 · 0 评论 -
YOLOv3-SPP介绍
我们知道YOLOv3目前是业界比较流行的检测算法,在速度和精度上相对于其他检测算法,都有很大的优势,但是今天介绍的不是YOLOv3,而是它的改进版本yolov3-SPP,在学习的同时,也随便记录一下,如果有误还请大家指出。1. YOLO各个版本对比首先来看下官方给的在COCO数据集上的表现,可以看到SPP版本相对于前面几个版本,mAP有了好几个百分点的提升,在加了SPP模块之后的YOLOv3为...原创 2020-02-15 16:07:54 · 31790 阅读 · 25 评论 -
浅谈深度学习中Batch_size的大小对模型训练的影响
序言本文根据知乎原文内容进行整理:深度学习中的batch的大小对学习效果有何影响?正文Batch_size的作用:决定了下降的方向。在合理范围内,增大Batch_size的好处:提高了内存利用率以及大矩阵乘法的并行化效率;跑完一次epoch(全数据集)所需要的迭代次数减少,对相同的数据量,处理的速度比小的Batch_size要更快;在一定范围内,一般来说 Batch_Size 越大...原创 2020-03-24 15:01:53 · 32322 阅读 · 4 评论 -
超轻量网络学习笔记
一、预备知识点参数数量和理论计算量1. 参数数量(params):关系到模型大小,单位通常是M,通常参数用float32表示,所以模型大小是参数数量的4倍计算公式:Kh × Kw × Cin × Cout (Conv卷积网络)Cin × Cout (FC全连接网络)2. 理论计算量(FLOPs):是 floating point operations 的缩写(注意 s 小写,区...原创 2020-03-14 23:44:29 · 2748 阅读 · 1 评论 -
YOLOv3有哪些优化策略
序言距离YOLOv3的发布已经快两年了,虽然在这两年里面虽然涌现了很多优秀的框架,但是毫无疑问的是,在工业界目标检测中,YOLOv3仍然很受CV爱好者们的喜爱,尽管新框架检测精度和速度不断提高,但是多数情况下是为了刷榜,并没有像YOLOv3一样普遍受众,这也是为什么距离发布已经快过去两年了,YOLOv3还是这么受爱好者们青睐的原因,不过近日作者在推特上宣布不再从事深度学习视觉领域的研究,这也意味...原创 2020-03-01 15:36:00 · 7987 阅读 · 6 评论