- 博客(108)
- 资源 (12)
- 收藏
- 关注
原创 百度图片源码流出~按照颜色搜图片~提取图片主体颜色
百度图片中有一个按照颜色搜图片的功能,其核心算法是提取图片主体颜色法,本文将使用python实现提取图片主体颜色算法。
2022-12-14 14:02:47
14926
3
原创 【目标检测】IoU、GIoU、DIoU、CIoU、EIoU 5大评价指标
在目标检测任务中,常用到一个指标IoU,即交并比,IoU可以很好的描述一个目标检测模型的好坏。在训练阶段IoU可以作为anchor-based方法中,划分正负样本的依据;同时也可用作损失函数;在推理阶段,NMS中会用到IoU。同时IoU有着比较严重的缺陷,于是出现了GIoU、DIoU、CIoU、EIoU,下面我们一起看一下这几种IoU。
2022-12-08 07:42:25
38047
5
原创 【目标检测】英雄联盟能用YOLOv5实时目标检测了 支持onnx推理
dcmyolo(dreams create miracles),中文:大聪明目标检测工具包。该项目基于pytorch搭建,构建的目的是提供一个拥有更好性能的 YOLO版本,同时拥有丰富的中文教程和源码细节解读,提供算法工具箱,给出不同体量模型的实验数据,为算法落地带来便利。项目本着方便开发者的目的,开箱即用,推理阶段直接将dcmyolo目录考到项目中,实例化一个类,然后调用即可。下面我将以检测英雄联盟中的英雄、小兵和塔为案例,仔细介绍dcmyolo的使用方法。
2022-11-25 15:12:01
34526
31
原创 常见的机器学习算法的计算复杂度
计算的复杂度是一个特定算法在运行时所消耗的计算资源(时间和空间)的度量。计算复杂度又分为两类,时间复杂度和空间复杂度,本文将介绍两种复杂度,并提供8种算法的复杂度。
2022-11-22 08:49:19
1308
原创 【目标跟踪】pytorch实现DeepSORT+YOLOV5 YOLOFastestv2 含代码
dcmtracking(dreams create miracles),中文:大聪明跟踪工具包。该项目现在实现了基于pytorch的YOLOV5+DeepSORT和YOLOFastestv2+DeepSORT,将持续更新,欢迎关注。
2022-10-31 09:51:58
21783
8
原创 Pytorch优化器全总结(二)Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam(重置版)
这篇文章是优化器系列的第二篇,也是最重要的一篇,上一篇文章介绍了几种基础的优化器,这篇文章讲介绍一些用的最多的优化器:Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam。这些优化器中Adadelta和RMSprop是对上一篇中Adagrad的优化;Adam结合了Momentum 和 RMSprop;Adamax、AdamW、NAdam又是对Adam的改进,可以看到优化器一步一步升级的过程,所以我们放在一篇文章中。
2022-09-16 06:21:49
32425
17
原创 Pytorch优化器全总结(二)Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam
这篇文章是优化器系列的第二篇,也是最重要的一篇,上一篇文章介绍了几种基础的优化器,这篇文章讲介绍一些用的最多的优化器:Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam。这些优化器中Adadelta和RMSprop是对上一篇中Adagrad的优化;Adam结合了Momentum 和 RMSprop;Adamax、AdamW、NAdam又是对Adam的改进,可以看到优化器一步一步升级的过程,所以我们放在一篇文章中。
2022-09-15 09:32:14
38670
10
原创 Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad
这是一个系列,以Pytorch为例,介绍所有主流的优化器,如果都搞明白了,对优化器算法的掌握也就差不多了。作为系列的第一篇文章,本文介绍Pytorch中的SGD、ASGD、Rprop、Adagrad,其中主要介绍SGD和Adagrad。因为这四个优化器出现的比较早,都存在一些硬伤,而作为现在主流优化器的基础又跳不过,所以作为开端吧。
2022-09-06 10:34:18
70323
45
原创 最大似然估计和最小二乘法 含代码
最大似然估计和最小二乘法是机器学习中经常用到的两种方法,它们既有区别又有千丝万缕的联系,而且容易搞混,今天我们以简单的线性回归为例(简单到没有偏执,只有权重w),简单介绍一下两种算法。...
2022-07-29 14:21:27
8938
9
原创 波士顿房价数据集 Boston house prices dataset
因为涉及种族问题(有一个和黑人人口占比相关的变量B),波士顿房价这个数据集将在sklearn 1.2版本中被移除。在这里记录一下。
2022-07-28 17:47:59
12749
2
原创 深度学习参数初始化(二)Kaiming初始化 含代码
Xavier初始化在ReLU层表现不好,主要原因是relu层会将负数映射到0,影响整体方差。而且Xavier初始化方法适用的激活函数有限:要求关于0对称;线性。而ReLU激活函数并不满足这些条件,实验也可以验证Xavier初始化确实不适用于ReLU激活函数。所以何恺明在对此做了改进,提出Kaiming初始化,一开始主要应用于计算机视觉、卷积网络。...
2022-07-13 14:00:01
27772
11
原创 深度学习参数初始化(一)Xavier初始化 含代码
Xavier初始化也称为Glorot初始化,因为发明人为Xavier Glorot。Xavier initialization是 Glorot 等人为了解决随机初始化的问题提出来的另一种初始化方法,他们的思想就是尽可能的让输入和输出服从相同的分布,这样就能够避免后面层的激活函数的输出值趋向于0。........................
2022-06-30 19:54:45
39982
12
原创 损失函数大全Cross Entropy Loss/Weighted Loss/Focal Loss/Dice Soft Loss/Soft IoU Loss
目录一、cross entropy loss二、weighted loss三、focal loss四、dice soft loss五、soft IoU loss总结:一、cross entropy loss用于图像语义分割任务的最常用损失函数是像素级别的交叉熵损失,这种损失会逐个检查每个像素,将对每个像素类别的预测结果(概率分布向量)与我们的独热编码标签向量进行比较。假设我们需要对每个像素的预测类别有5个,则预测的概率分布向量长度为5:每个像素对应的损失函
2022-05-26 09:14:15
6045
4
原创 Hough变换原理-直线检测
霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。import cv2def HoughLinesP_demo(img_path): img = cv2.imread(img_path) org = img.copy() img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 阈值计算 ret, img = cv2.threshold(img, ..
2022-05-25 08:56:19
13178
7
原创 通俗解读人脸检测框架-RetinaFace
2019年何凯明提出Focal Loss时为了验证Focal Loss的可行性,顺便(没错,就是顺便)提出了RetinaNet。RetinaFace是在RetinaNet基础上引申出来的人脸检测框架,所以大致结构和RetinaNet非常像。
2022-05-10 16:24:06
24495
16
原创 全网首发,Swin Transformer+FaceNet实现人脸识别
一、 简介与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层作为特征,而是直接进行端对端学习一个从图像到欧式空间的编码方法,然后基于这个编码再做人脸识别、人脸验证和人脸聚类等。FaceNet主要有两个重点:Backbone和Triplet loss。我们也将主要从这两个方面介绍。代码:oaifaye/facenet-swim-transformer二、Swin Transformer作为Backbone......
2022-05-04 15:33:36
19999
14
原创 ubuntu彻底卸载Nvidia显卡驱动
一、环境ubuntu 18.04.4 LTS二、卸载显卡驱动1.执行卸载sudo apt-get --purge remove nvidia*sudo apt autoremove2.如果也要卸载CUDA:sudo apt-get --purge remove "*cublas*" "cuda*"三、禁用 Nouveau 驱动在安装新的驱动时如果发生如下报错,则需要禁用Nouveau 驱动:ERROR: The Nouveau kernel driver is
2022-04-11 11:27:00
64089
原创 Ubuntu安装CUDA和cuDNN
系统:Ubuntu 18.04.4CUDA:cuda_11.0.2_450.51.05_linuxcuDNN:cudnn-11.1-linux-x64-v8.0.5.39显卡驱动版本:450.80.02
2022-04-08 17:43:08
3871
原创 机器学习模型评估指标总结
本文对机器学习模型评估指标进行了完整总结。机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型。针对不同的机器学习问题(分类、排序、回归、序列预测等),评估指标决定了我们如何衡量模型的好坏。
2022-03-22 15:07:59
1710
原创 OpenCV 模板匹配
下面的代码是在img中找templateimport cv2 def get_sing_loc(img, template): ''' methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR', 'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED'] :return.
2022-03-19 07:22:22
19520
原创 python 图片打水印 透明图片合并
下面的例子是将img2作为水印打到bg上,注意:img2是一个背景透明的pngimport cv2from PIL import Imagedef merge_image(bg, img2, top_left): # 打开背景 bg = Image.fromarray(bg.astype('uint8')).convert('RGB') # 创建底图 target = Image.new('RGBA', (bg.size[0], bg.size[1]), (0,
2022-03-09 12:32:28
19056
原创 深度学习调参tricks总结
寻找合适的学习率(learning rate)学习率是一个非常非常重要的超参数,这个参数呢,面对不同规模、不同batch-size、不同优化方式、不同数据集,其最合适的值都是不确定的,我们无法光凭经验来准确地确定lr的值,我们唯一可以做的,就是在训练中不断寻找最合适当前状态的学习率。比如下图利用fastai中的lr_find()函数寻找合适的学习率,根据下方的学习率-损失曲线得到此时合适的学习率为1e-2。推荐一篇fastai首席设计师「Sylvain Gugger」的一篇博客:How Do
2022-02-10 10:55:41
1480
1
原创 【目标跟踪】一图看懂DeepSORT大流程
多目标跟踪,在DeepSORT提出之前是SORT算法(SORT论文链接),但是它对身份变换的问题,仅仅采取框和框之间距离的匹配方式,没有考虑框内的内容,所以容易发生ID-switch,不过这个问题已经在2017年的论文中进行了解决,即我们今天要介绍的DeepSORT。...
2022-01-28 14:06:39
33859
2
原创 熵、联合熵、相对熵、交叉熵、JS散度、互信息、条件熵
一、熵对于离散型随机变量,当它服从均匀分布时,熵有极大值。取某一个值的概率为1,取其他所有值的概率为0时,熵有极小值(此时随机变量退化成确定的变量)。对于离散型随机变量,假设概率质量函数为p(x),熵是如下多元函数 :伯努利分布的熵为:对于连续型随机变量,假设概率密度函数为p(x),熵(也称为微Differential Entropy分熵 )定义为:二、联合熵联合熵(Joint Entropy)是熵对多维概...
2021-12-10 19:29:25
24676
3
原创 faiss 三种基础索引方式
faiss 三个最基础的 index. 分别是IndexFlatL2,IndexIVFFlat,IndexIVFPQ一、IndexFlatL2 - 最基础的IndexIndexFlatL2索引的结果是精确的,可以用来作为其他索引测试中准确性程度的参考.搜索时,可以以查询向量为中心,返回距离在一定范围内的结果,如返回数据库中与查询向量距离小于0.3的结果。支持IndexFlat, IndexIVFFlat,只支持在CPU使用。import numpy as npimp...
2021-12-07 15:56:08
7653
原创 熵为什么使用log?
首先,信息也是物理量,就像质量kg,我们测量质量的方法是,我们选择一个参照物,把这个物体的质量定义为1kg,当想要测量其它物体的质量时就看这个这个物体的质量相当于多少个参照物的质量,这里的多少个便是kg。上图中待测物体的质量m等于参照物体的质量B乘以参照物体的个数n,所以当知道总质量m要求个数n时,我们用乘法的反函数,既除法来计算。 但是测量信息时,不能用除法,比如抛掷3枚硬币能够产生的结果是2的3次方=8种,而不是2*3=6种,是指数关系而...
2021-12-03 17:26:13
2482
5
原创 ncnn中Yolov3DetectionOutput层各个参数的含义
Yolov3DetectionOutput detection_out 2 1 output1 output2 output 0=20 1=3 2=0.500000 3=0.300000 -23304=12,23.000000,27.000000,37.000000,58.000000,81.000000,82.000000,81.000000,82.000000,135.000000,169.000000,344.000000,319.000000 -23305=6,3.000000,4.
2021-11-19 16:43:43
737
原创 VS2015搭建NCNN开发环境
一、简介NCNN的编译依赖OpenCV和Protobuf,所以需要总共需要安装三个东西。二、安装OpenCV1、下载OpenCVReleases - OpenCV 一般选择最新版,这里以3.4.16为例。2、选择喜欢的目录安装,这里以E:/soft-setup为例,安装之后生成下面几个文件。3、添加path(vs2015对应:E:\soft-setup\opencv\build\x64\vc14\bin;vs2017对应:E:\soft-setup\opencv\buil...
2021-11-15 07:30:00
1123
原创 ONNX转换NCNN
ncnn编译依赖OpenCV和protobuf一、安装OnenCV下载Releases · opencv/opencv · GitHub以OpenCV 4.5.4为例,下载Source code(zip),##源码编译unzip opencv-4.5.4.zipcd opencv-4.5.4mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..mak..
2021-11-04 14:19:22
6023
4
原创 python计算线段角度
返回值范围0-360def angle(x1, y1, x2, y2): if x1 == x2: return 90 if y1 == y2: return 180 k = -(y2 - y1) / (x2 - x1) # 求反正切,再将得到的弧度转换为度 result = np.arctan(k) * 57.29577 # 234象限 if x1 > x2 and y1 > y2: .
2021-10-29 16:37:40
2640
原创 pytorch主流backbone实现
计算机视觉主流backbone收集源码https://github.com/oaifaye/backbone-pytorchdataset network params top1 err top5 err epoch(lr = 0.1) epoch(lr = 0.02) epoch(lr = 0.004) epoch(lr = 0.0008) total epoch cifar100 mobilenet 3.3M 34.0.
2021-09-29 13:17:32
557
原创 pytorch 计算网络参数个数
params = list(net.parameters())k = 0for i in params: l = 1 print("该层的结构:" + str(list(i.size()))) for j in i.size(): l *= j print("该层参数和:" + str(l)) k = k + lprint("总参数数量和:" + str(k))
2021-09-28 15:13:16
414
2
原创 OpenCV与二进制文件互相转换
一、硬盘读取二进制文件# 二进制转numpywith open(image_path, "rb") as file: jpg_bin = file.read() image = cv2.imdecode(np.asarray(bytearray(jpg_bin),dtype='uint8'), cv2.IMREAD_COLOR) # numpy转二进制with open(tmp_image_path, 'wb') as tmp_file: tmp_jpg_bin
2021-09-22 14:30:27
963
原创 PaddleOCR环境配置
PaddleOCR需要一些配置,这里主要记录cuDNN的配置。亲测PaddleOCR需要cuDNNv7.x,CUDA11.0x。这里以cuDNN7.6为例1.下载:cuDNNv7.6cuDNN Archive | NVIDIA Developer 我的CUDA是11.0,但是使用cuDNNv7.6.0 for CUDA10.1也能用,很奇怪。2.解压,打开所在文件夹,将里面的东西拷贝到CUDA根目录sudo cp cuda/include/cudnn.h /usr/local/cu..
2021-09-14 08:23:02
795
原创 【五分钟会,半小时懂】人声分离Demucs
目录效果演示Demucs介绍Demucs的使用Demucs原理效果演示https://www.bilibili.com/video/BV123411i7ZY/https://www.bilibili.com/video/BV1BP4y1a7hG/Demucs介绍Demucs是Facebook开源的声音分离模型,简单易用,结构简单,现在很多应用都以Demucs作为baseline进行优化。Demucs提供了Demucs和Convs - .........
2021-09-09 08:20:09
32067
15
转载 机器学习领域必知必会的12种概率分布(附Python代码实现)
机器学习有其独特的数学基础,我们用微积分来处理变化无限小的函数,并计算它们的变化;我们使用线性代数来处理计算过程;我们还用概率论与统计学建模不确定性。在这其中,概率论有其独特的地位,模型的预测结果、学习过程、学习目标都可以通过概率的角度来理解。与此同时,从更细的角度来说,随机变量的概率分布也是我们必须理解的内容。在这篇文章中,项目作者介绍了所有你需要了解的统计分布,他还提供了每一种分布的实现代码。项目地址:https://github.com/graykode/distribution-is
2021-08-23 08:36:41
666
1
person_pose_json.zip
2019-12-26
bazel-0.80-dist
2019-02-01
机器学习:实用案例解析(中文版,带完整书签)
2019-01-07
机器学习实战:基于Scikit-Learn和TensorFlow
2018-11-21
程序员的数学 三册全
2018-09-30
高等数学 下册
2018-09-30
高等数学 上册
2018-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅