目标检测
文章平均质量分 74
进我的收藏吃灰吧~~
热爱AI,热爱CV
展开
-
目标检测 -- 基于训练好的YOLO深度学习网络模型实现自动辅助标注
在实际工程中,我们一般会先用少量的数据集进行人工标注,然后训练一个简单的深度学习网络模型,然后基于该网络模型进行预测,对剩余大量测试图片进行初步标注,然后基于机器标注之后的结果进行人工微调标注框,这样即省时又省力。这篇blog主要就讲讲基于训练好的YOLO v5模型实现自动辅助标注。...原创 2022-07-08 10:56:01 · 2416 阅读 · 0 评论 -
YOLO V6系列(三) -- 损失函数的计算
在上篇blogYOLO V6系列(二) – 网络结构解析里面大概介绍了美团视觉出的YOLO V6算法的网络结构,这篇主要解析下YOLO V6算法的损失函数的计算过程以及实现代码原创 2022-07-07 17:45:14 · 1646 阅读 · 1 评论 -
YOLO V6系列(二) -- 网络结构解析
在YOLO V6系列(一) – 跑通YOLO V6算法这篇blog中简单的介绍了YOLO V6算法的训练及测试过程。那么后面,尽可能地对源码进行解析。首先,先对YOLO V6算法的网络架构进行解析吧~原创 2022-07-06 16:30:44 · 2655 阅读 · 2 评论 -
YOLO V6系列(一) -- 跑通YOLO V6算法
近期,看到美团视觉发布了YOLO V6算法,从名字看,感觉上是YOLO系列的一个新的里程碑吧,所以好好研究研究~原创 2022-07-05 16:02:47 · 2584 阅读 · 0 评论 -
YOLO系列 --- xml2txt脚本
YOLO算法的数据格式基本上都是VOC格式的,我在网上看了很多xml2txt的脚本,发现很多还是有一些问题的,并不能直接运行得到正确的txt文件。所以特地写一篇blog原创 2022-06-29 14:32:00 · 2048 阅读 · 1 评论 -
NVIDIA-SMI详解
NVIDIA-SMI详解最重要的就是Volatile GPU-Util,表示的是你GPU的利用情况(已经用绿框标注)ps:如果想实时查看GPU的使用情况(每1s刷新一次):watch -n 1 nvidia-smi原创 2022-02-23 15:38:08 · 2900 阅读 · 0 评论 -
目标检测 --- Depthwise Convolution(深度可分离卷积)原理与思考
目标检测 — Depthwise Convolution(深度可分离卷积)原理与思考最近在研究mobilenet,其中有一层网络结构–Depthwise Convolution(深度可分离卷积),然后就拎出来仔细研究下~参考:https://cloud.tencent.com/developer/article/1453992https://www.zhihu.com/question/265434464一、算法原理1、先说一下常规的卷积操作假设输入的feature map的shape为(原创 2021-11-29 16:44:18 · 10561 阅读 · 3 评论 -
YOLOV4 -- SE注意力机制
YOLOV4 – SE注意力机制在YOLOV4与YOLOV3的区别主要介绍了V3和V4之间的区别,但是仔细研究代码Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(一)- 特征提取网络会发现其实在V4中还多出一个trick,那就是注意力机制!一、概念YOLOv4中引入注意力机制,就是希望网络能够自动学出来图片需要注意的地方。比如人眼在看一幅画的时候,不会将注意力平等地分配给画中的所有像素,而是将更多注意力分配给人们关注的地方。从实现的角度来讲,注意力机制就是通过神经网络的操作生成原创 2021-10-13 10:44:42 · 5408 阅读 · 9 评论 -
SSD针对小物体检测效果不好的现象的思考
SSD针对小物体检测效果不好的现象的思考最近在用ssd-caffe进行物体检测,但是在使用的过程中,发现ssd对小物体的检测效果很不好。阅读了为什么SSD(Single Shot MultiBox Detector)对小目标的检测效果不好?这篇blog,感觉还是体会很深,所以就该blog进行以下探讨~~~~一、 问题的出现首先,为什么会出现SSD针对小物体检测效果不好的现象?答:SSD-CAFFE网络框架采用的是VGG16作为backbone,而ssd采样了conv4_3,fc7…conv9_2原创 2021-10-09 16:57:49 · 895 阅读 · 0 评论 -
darknet模型转化为caffe模型
darknet模型转化为caffe模型基于基于Darknet框架利用YOLOV3/V4跑通自己数据,可以得到基于darknet框架所得到的weights权重文件,同时还有一个cfg训练文件。但是,如果想将训练好的yolov3模型迁移到海思相机端,那么就必须要转成caffemodel和prototxt格式,那么就有了darknet模型转化为caffe模型的需求~参考链接:https://blog.csdn.net/qq_40421682/article/details/106855155...转载 2021-09-22 15:28:55 · 813 阅读 · 0 评论 -
基于Darknet框架利用YOLOV3/V4跑通自己数据
基于Darknet框架利用YOLOV3/V4跑通自己数据一、Darknet框架安装YOLOV3:https://github.com/pjreddie/darknetYOLOV4:https://github.com/AlexeyAB/darknet注:由于V3和V4内部有一些区别,具体的不同可看我之前写的一篇blogYOLOV4与YOLOV3的区别,所以要根据你的需求下载不同版本的框架源码(我用v4为例子)。其中,打开Makefile文件:GPU=0 #是否打开GPU,1-打开,0-关闭C原创 2021-09-17 16:09:24 · 971 阅读 · 0 评论 -
caffe中的iteration,batch_size, epochs
caffe中的iteration,batch_size, epochs理解举个例子吧~比如现在训练集一共是60000张图片1.batch_size:该值是一个超参数,意味着用户希望模型一次能训练多少张图片2.iteration:该值也是一个超参数,一般在caffe中的solver.prototxt设置,表示用户要进行多少次的训练,假设batch_size设置为100张,iteration设置为1w轮,那么就表示模型一共要将10w*100张图片进行训练,由于超过总图片数量,那么就会进行多次循环训练。原创 2021-09-09 13:55:59 · 202 阅读 · 1 评论 -
跑通caffe-ssd demo代码(训练、测试自己数据集)
跑通caffe-ssd demo代码(训练、测试自己数据集)ssd网络我就不多介绍了,CSDN上面一搜一大把。这篇主要讲讲如何跑通caffe代码~github:caffe-ssd一、代码结构在caffe-ssd中能用到的文件我全部在上述图片中标出来了,到时候具体的再细说~caffe-ssd的环境自己百度吧,网上很多安装教程~二、数据集准备训练模型,首先第一个事情就是准备数据集。在利用caffe训练分类模型的时候,通常使用lmdb或者hdf5格式的数据,但是在该项目中使用的是lmdb格式的(其原创 2021-08-14 10:39:56 · 1330 阅读 · 0 评论 -
SimpleHumanPose代码及原理分析(三)-- loss损失函数
SimpleHumanPose代码及原理分析(三)-- loss损失函数在上一篇blog中,已经把SimpleHumanPose的数据前处理部分给搞定了,具体可参见:SimpleHumanPose代码及原理分析(二)-- data与label前处理简单的进行总结一下:首先,默认输入的图片大小为256*256的,然后backbone为resnet。图片首先从256的shape一直进行下卷积到16,然后从16通过上卷积(这个上卷积才是SimpleHumanPose的核心)到64。就比如说,输入的shape原创 2021-07-14 10:54:05 · 277 阅读 · 0 评论 -
Tensorflow2.0—Centernet网络原理及代码解析(三)- 损失函数的构建
Tensorflow2.0—Centernet网络原理及代码解析(三)- 损失函数的构建在Tensorflow2.0—Centernet网络原理及代码解析(一)- 特征提取网络和Tensorflow2.0—Centernet网络原理及代码解析(二)- 数据生成中已经把Centernet网络基本的backbone和数据生成讲完了,还剩一个损失函数的构建~在train.py中model = centernet(input_shape, num_classes=num_classes, backbone=b原创 2021-03-11 10:55:44 · 1496 阅读 · 0 评论 -
Tensorflow2.0—Centernet网络原理及代码解析(二)- 数据生成
Tensorflow2.0—Centernet网络原理及代码解析(二)- 数据生成这篇blog来看看Centernet网络中真实值是如何编码来的~首先,在train.py中有一行是调用数据生成文件的gen = Generator(Batch_size, lines[:num_train], lines[num_train:], input_shape, num_classes)来看下它的参数:Batch_size:批次大小,可自己设定。这里为了简单,只设置为2lines[:num_train原创 2021-03-09 11:20:08 · 593 阅读 · 0 评论 -
Tensorflow2.0---Centernet网络原理及代码解析(一)- 特征提取网络
Tensorflow2.0—Centernet网络原理及代码解析(一)- 特征提取网络目前,目标检测已经被anchor base类型的网络所承包了,anchor free类型的算法已经越来越少了,最近看大佬的blogTensorflow2 搭建自己的Centernet目标检测平台,就想自己尝试学习下anchor free的内容,先把代码过一遍,然后再总结下原理。这篇blog,就先把它的特征提取网络看一遍吧~~在centernet中,backbone的选择性比较多,一般常见的有Hourglass Ne原创 2021-03-04 15:27:53 · 1176 阅读 · 1 评论 -
目标检测---CIOU原理及代码实现
目标检测—CIOU原理及代码实现最近刚写完一篇YOLO V4-tiny的blog,其中Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(三)- 损失函数的构建涉及到了CIOU。所以特地单独领出来写一篇blog记录一下。在YOLO V3中,对于位置的损失函数,使用的还是普通的smooth-l1损失函数,但是到了YOLO V4中,关于位置的损失函数已经变成CIOU了。一、原理,公式关于它的原理,在YOLOV4与YOLOV3的区别中已经有了大致的介绍。二、优点相比于IOU的优点原创 2021-03-03 14:23:53 · 17726 阅读 · 5 评论 -
Tensorflow2.0---YOLO V4-tiny网络原理及代码解析(三)- 损失函数的构建
Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(三)- 损失函数的构建YOLO V4中的损失函数与V3还是有比较大的区别的,具体的可以看YOLOV4与YOLOV3的区别。代码是在nets文件夹下面的loss.py文件中,在train.py中引用的是:model_loss = Lambda(yolo_loss, output_shape=(1,), name='yolo_loss', arguments={'anchors': anchors, 'num_c原创 2021-03-03 10:10:15 · 1319 阅读 · 0 评论 -
Tensorflow2.0---YOLO V4-tiny网络原理及代码解析(二)- 数据的生成
Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(二)- 数据的生成在Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(一)- 特征提取网络中已经把YOLO V4的特征提取网络给讲完了,这篇blog来讲讲数据的生成(其实,v4与v3的数据生成的方式几乎相同)。首先,来看下真实框编码的主函数位置在哪?它是在train.py中,这就是它的主函数:data_generator。def data_generator(annotation_lines, batch_原创 2021-03-01 14:00:05 · 941 阅读 · 1 评论 -
Tensorflow2.0---YOLO V4-tiny网络原理及代码解析(一)- 特征提取网络
Tensorflow2.0—YOLO V4-tiny网络原理及代码解析(一)- 特征提取网络先来看看YOLO V4-tiny的特征提取网络是长什么样子的。个人认为,大体的框架与YOLO V3的相似,只不过在里面加了3个tricks,让网络更加容易训练图片转载:https://blog.csdn.net/weixin_44791964/article/details/107302710一般来说,YOLO V4-tiny与YOLO V4差别在于tiny版本最后只有两个yolo head。同时,一般原创 2021-02-24 17:00:28 · 7199 阅读 · 1 评论 -
Tensorflow2.0---SSD网络原理及代码解析(一)
Tensorflow2.0—SSD网络原理及代码解析(一)在目标检测领域中,一般我们分为单阶段和双阶段。其中,双阶段最著名的就是Faster RCNN,单阶段有之前讲过的YOLO系列,还有一个比较经典的就是今天要讲的SSD目标检测网络算法。废话不多说,直接上干货~一、主体思路主干网络是VGG16,但是与VGG16还是有一点区别:1、将VGG16的FC6和FC7层转化为卷积层。2、去掉所有的Dropout层和FC8层;3、新增了Conv6、Conv7、Conv8、Conv9。目的:因为原始的V原创 2021-02-05 11:00:42 · 749 阅读 · 0 评论 -
Tensorflow2.0---SSD网络原理及代码解析(五)- 损失函数的计算
Tensorflow2.0—SSD网络原理及代码解析(五)- 损失函数的计算前面写了三篇关于SSD代码的讲解,还有最后一个关键代码—损失函数的计算,废话不多说,直接上干货~model.compile(optimizer=Adam(lr=learning_rate_base),loss=MultiboxLoss(NUM_CLASSES, neg_pos_ratio=3.0).compute_loss)这行代码是进行损失计算函数的调用。损失函数被包装成一个MultiboxLoss类,最后一个comp原创 2021-02-05 10:48:00 · 692 阅读 · 1 评论 -
Tensorflow2.0---SSD网络原理及代码解析(四)- 数据生成与编码
Tensorflow2.0—SSD网络原理及代码解析(四)- 数据生成与编码在Tensorflow2.0—SSD网络原理及代码解析(二)-锚点框的生成和Tensorflow2.0—SSD网络原理及代码解析(三)- 特征提取网络中,已经把两个关键的点给讲完了,这篇blog就讲讲数据生成与编码,我个人认为这一节是最难的也是最关键的~这里,为了debug,我就在训练文件夹中保留了两个标签打好的图片数据如何生成这样的数据,可以看我之前写的一篇blog:Keras—数据预处理操作。在train.py主文件中原创 2021-02-04 11:53:48 · 491 阅读 · 0 评论 -
Tensorflow2.0---SSD网络原理及代码解析(三)- 特征提取网络
Tensorflow2.0—SSD网络原理及代码解析(三)- 特征提取网络model = SSD300(input_shape, NUM_CLASSES, anchors_size)这行代码进行SSD特征提取网络的构建。一起来看看内部代码是如何实现的~首先,先进行VGG16网络的搭建。上述就是VGG16网络,用一个dict按照name进行保存。然后return回SSD特征提取网络代码中。接下来,就是对特定的网络层进行处理了~# 对conv4_3的通道进行l2标准化处理 # 38,38原创 2021-02-03 13:14:25 · 599 阅读 · 0 评论 -
Tensorflow2.0---SSD网络原理及代码解析(二)-锚点框的生成
Tensorflow2.0—SSD网络原理及代码解析(二)-锚点框的生成分析完SSD网络的原理之后,一起来看看代码吧~代码转载于:https://github.com/bubbliiiing/ssd-tf2在train.py中有一行代码:priors = get_anchors((input_shape[0], input_shape[1]), anchors_size)这行代码是用于生成锚点框的,原理对应于第一篇博客中2.1知识点。我们进get_anchors函数,发现它是在anchors原创 2021-02-03 10:11:07 · 940 阅读 · 0 评论 -
YOLOV4与YOLOV3的区别
YOLOV4与YOLOV3的区别20年的11月份的时候,正式开始接触v4。时间过去了小半年了,最近突然忘记了v4里面的所谓那些tricks,所以特地做一篇blog(怕过段时间又忘记了~)。首先,先大概的说下二者之间的差别:1.特征提取网络的不同2.激活函数的不同3.loss的不同4.数据处理的不同5.学习率的不同参考:https://blog.csdn.net/weixin_44791964/article/details/106533581https://blog.csdn.net/原创 2021-01-29 11:02:28 · 14084 阅读 · 1 评论 -
闲聊!谈谈目标检测中对坐标进行预测的相关问题~
闲聊!谈谈目标检测中对坐标进行预测的相关问题~今天,在刷zh的时候,偶然看到了一篇blog,直接上图~https://www.zhihu.com/question/304307091?sort=created(我省略了作者的信息了~若侵权,请联系我删除)一、问题刷到这条blog,我很高兴!因为在我deep learning的学习过程中,也一直有这样的问题。我一眼就能看懂作者的意思,他的想法就是:为什么我喂进了一张待预测的图片到训练好的网络中,网络输出的就是最终的预测结果。就比如说吧,现在是y原创 2021-01-27 11:49:02 · 1632 阅读 · 0 评论 -
YOLO系列---YOLO V1原理及代码(一)
YOLO系列—YOLO V1原理及代码(一)yolo系列是第一个单阶段的目标检测网络,与RCNN系列算法(二阶段,即两个网络分别对图片的分类问题,定位问题进行预测)具有本质的区别。同时,由于其单网络的特性,所以训练与预测速度会加快很多,可以实现实时的目标检测任务~代码链接:https://github.com/hizhangp/yolo_tensorflow参考:https://blog.csdn.net/weixin_42278173/article/details/81778217https:原创 2021-01-14 14:38:10 · 1827 阅读 · 1 评论 -
Tensorflow---Faster RCNN网络(细节,代码部分函数)(五)
Tensorflow—Faster RCNN网络(细节,代码部分函数)(五)经过了四个blog的介绍,Faster RCNN网络也基本上讲完了,但是里面还有一些细节没有扣明白,这明显就不符合本人的作风啊~所以特地抽出一篇blog来介绍下内部一些难懂的点。值得注意的,这篇blog的内容大部分是通过在网上自己搜索出来的答案,最后加上自己的理解才写上去的,所以若有错误的地方,还请大佬们指正~一、utils.convert_collection_to_dict'''在原文中的位置:Faster_RCNN_原创 2021-01-07 15:47:09 · 230 阅读 · 0 评论 -
Tensorflow---Faster RCNN网络(预测过程)(四)
Tensorflow—Faster RCNN网络(预测过程)(四)https://blog.csdn.net/weixin_42206075/article/details/112026162https://blog.csdn.net/weixin_42206075/article/details/111984086上面两篇blog中,已经对Faster RCNN的训练阶段进行了解释,下面就是Faster RCNN的预测过程的代码实现。在run step1~4的py文件之后,会生成上图的三个文原创 2021-01-05 11:38:39 · 340 阅读 · 0 评论 -
Tensorflow---Faster RCNN网络(faster rcnn的训练)(三)
Tensorflow—Faster RCNN网络(faster rcnn的训练)(三)在https://blog.csdn.net/weixin_42206075/article/details/111984086照片blog中,已经介绍了第一大部分:rpn_train的代码。通过step1_train_rpn.py,我们训练了RPN网络(分别每次放入256个样本进行训练),然后根据训练好的RPN网络在每个训练图片中选取2000个ROI区域,后续将该img_num * 2000个左右的ROIs放入fast原创 2021-01-04 14:07:57 · 364 阅读 · 2 评论 -
Tensorflow---Faster RCNN网络(RPN的训练)(二)
Tensorflow—Faster RCNN网络(RPN的训练)(二)在Tensorflow—Faster RCNN网络(一)博客中,简单的将Faster RCNN网络的原理讲解了一遍,下面几篇blog就进行代码的分步实现~这里,还是要再次感谢两位大佬的无私分享,不然可能到现在都搞不清楚~转载原理文章链接:https://zhuanlan.zhihu.com/p/32404424实现代码链接:https://github.com/MingtaoGuo/Faster_RCNN_TensorFlow原创 2020-12-31 15:15:22 · 689 阅读 · 3 评论 -
Tensorflow---Faster RCNN网络(一)
Tensorflow—Faster RCNN网络(一)Faster-RCNN是一个非常有效的目标检测算法,虽然是一个比较早的论文, 但它至今仍是许多目标检测算法的基础。Faster-RCNN作为一种two-stage的算法,与one-stage的算法相比,two-stage的算法更加复杂且速度较慢,但是检测精度会更高。注:研究Faster-RCNN也有快一年了,在CSDN和github上面也是搜遍了大多的文章和代码,对其原理和实现代码一直都是似懂非懂的感觉,最近时间比较宽松,准备好好研究下Faster原创 2020-12-30 14:09:57 · 855 阅读 · 0 评论 -
目标检测---SSP net网络
目标检测—SSP net网络ssp net网络其实是在RCNN网络的基础之上做的一些变动,目的是为了解决RCNN其中包含的一些问题,在了解SSP net之前,先需要了解一下两个知识点:感受野和金字塔池化~~SSP net感受野上图中,由map1到map3,是在做卷积的过程,其feature map一直在缩小。map3所对应的map1感受野其实就是11 * 11的图片区域,对应于map2感受野其实就是7 *7的图片区域~上述公式其实是由卷积公式的推导:只不过卷积的计算公式是由上一层的大小计算下一层原创 2020-12-23 17:13:20 · 1435 阅读 · 0 评论 -
Keras---数据预处理操作
Keras—数据预处理操作文件格式一般来说,目前目标检测中常用的数据集有coco数据集,voc数据集VOC数据集是目标检测经常用的一个数据集,从05年到12年都会举办比赛(比赛有task: Classification 、Detection(将图片中所有的目标用bounding box框出来) 、 Segmentation(将图片中所有的目标分割出来)、Person Layout)VOC2007:中包含9963张标注过的图片, 由train/val/test三部分组成, 共标注出24,640个物体原创 2020-12-15 10:24:39 · 797 阅读 · 1 评论 -
Keras---使用Keras实现Resnet网络
Keras—使用Keras实现Resnet网络网络结构图片引用:https://blog.csdn.net/yao1249736473/article/details/89330791说明:1.所谓的“残差网络”,在我个人理解结合参考网上大佬的blog,我大概总结了下:其实说白了,当我们在做简单的维度叠加,使其网络深度足够深的时候,其实越往后作用就越小,反而还会使模型难训练。因为这是属于一种叫做“恒等映射”,但是当我们做残差的时候,就相当于打破了这个“恒等”,使模型可以更好的训练。2.残差的原创 2020-12-14 16:53:09 · 3758 阅读 · 2 评论 -
R-CNN原理详解与代码超详细讲解(四)--train_predict代码讲解
R-CNN原理详解与代码超详细讲解(四)–train_predict代码讲解config代码IMAGE_WIDTH = 227IMAGE_HEIGHT = 227IMAGE_CHANNEL = 3CLASS_NUMBER = 3ALEX_NET_MAT_FILE_PATH = "C:/Users/user/Desktop/05_rcnn/AlexNet预加载模型/imagenet-caffe-alex.mat"ORIGINAL_FINE_TUNE_DATA_FILE_PATH = r'C:原创 2020-12-01 15:47:46 · 1360 阅读 · 0 评论 -
R-CNN原理详解与代码超详细讲解(三)--data_utils代码讲解
R-CNN原理详解与代码超详细讲解(三)–data_utils代码讲解check_directory代码详解def check_directory(path, created=True, error=False): """ 检查文件或者文件夹路径path是否存在,如果不存在,根据参数created和error进行操作<br/> 要求created和error只能有一个为True :param path: :param created: 当文件夹不存原创 2020-12-01 11:06:39 · 1471 阅读 · 1 评论 -
R-CNN原理详解与代码超详细讲解(二)--Alexnet模型和SVM模型
R-CNN原理详解与代码超详细讲解R-CNN原理原创 2020-11-30 17:03:41 · 1393 阅读 · 2 评论