fig

基于MATLAB&摄像头的实时目标跟踪

一笑奈何 提交于 2021-01-22 06:56:08
硕士毕业前夕所写的一篇博客,一直没有发表出来,没想到今天有同事竟然翻到了我好几年不更新的博客,所以就把这篇文章贴出来,算是填补这几年不更新博客的空白吧。 MATLAB界面设计功能强大,同时制作出的界面美观大方,功能上亦是非常直观,另外由于本文前述部分算法仿真也是基于MATLAB所实现,故可有效避免MATLAB与其他语言的混合编程,以减少软件界面设计难度。MATLAB为用户开发图形界面提供了一个方便高效的集成开发环境—GUIDE,几乎所有的工作都能够在GUIDE所提供的环境和工具中实现。在编写完成后,GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时还能够生成包含GUI初始化和组建界面布局控制代码的M文件。当然基于MATLAB的GUI设计也可避开GUIDE的使用,但相对来说更为复杂,不够直观,且效率会大大降低。 在MATLAB 2014a环境下,通过在命令行输入guide或单击MATLAB主窗口的快速启动按钮即可以打开GUIDE编辑对话框。在新建的空GUI中添加自己需要的菜单、按钮等控件,最后通过编写回调函数完成需要的控件功能,即可完成整个GUI软件界面的编写,在GUIDE下所生成的界面框架如图 所示,在此基础上只要想应的为每个按键、坐标及编辑框添加相应的回调函数和句柄及设置相应参数即可完成整个GUI的设计工作。

语义分割算法之DeepLabV3+论文理解及源码解析

时光总嘲笑我的痴心妄想 提交于 2021-01-22 04:24:39
前言 之前讲了DeepLabV1,V2,V3三个算法,DeepLab系列语义分割还剩下最后一个DeepLabV3+,以后有没有++,+++现在还不清楚,我们先来解读一下这篇论文并分析一下源码吧。论文地址:https://arxiv.org/pdf/1802.02611.pdf 背景 语义分割主要面临两个问题,第一是物体的多尺度问题,第二是DCNN的多次下采样会造成特征图分辨率变小,导致预测精度降低,边界信息丢失。DeepLab V3设计的ASPP模块较好的解决了第一个问题,而这里要介绍的DeepLabv3+则主要是为了解决第2个问题的。我们知道从DeepLabV1系列引入空洞卷积开始,我们就一直在解决第2个问题呀,为什么现在还有问题呢?我们考虑一下前面的代码解析推文的DeepLab系列网络的代码实现,地址如下:https://mp.weixin.qq.com/s/0dS0Isj2oCo_CF7p4riSCA 。对于DeepLabV3,如果Backbone为ResNet101,Stride=16将造成后面9层的特征图变大,后面9层的计算量变为原来的4倍大。而如果采用Stride=8,则后面78层的计算量都会变得很大。这就造成了DeepLabV3如果应用在大分辨率图像时非常耗时。所以为了改善这个缺点,DeepLabV3+来了。 算法原理 DeepLabV3+主要有两个创新点。 编解码器

四两拨千斤!深度主动学习综述2020

只愿长相守 提交于 2021-01-20 11:25:04
点击上方 “ 机器学习与生成对抗网络 ”,关注"星标" 获取有趣、好玩的前沿干货! 推荐阅读: 弱水三千,只取你标!AL(主动学习)结合GAN如何? 本文转载自知乎,为最近新出的论文 A Survey of Deep Active Learning 中文版介绍,原文作者调研了189 篇文献综述了深度主动学习的进展。文章较长,建议先收藏再阅读。 https://zhuanlan.zhihu.com/p/218011458 论文地址: https://arxiv.org/pdf/2009.00236.pdf A bstract 主动学习试图通过标记最少量的样本使得模型的性能收益最大化。而深度学习则对数据比较贪婪,需要大量的数据供给来优化海量的参数,从而使得模型学会如何提取高质量的特征。近年来,由于互联网技术的快速发展,使得我们处在一个信息洪流的时代,我们拥有海量的未标记数据。 借此,深度学习引起了研究人员的强烈兴趣,并且得到了快速的发展。和深度学习相比,研究人员对于主动学习的研究兴趣相对较低。这主要是由于在深度学习兴起之前,传统的机器学习所需要的标注样本相对较少。因此,早期的主动学习很难体现出应有的价值。尽管深度学习已经在各个领域取得了突破性进展,但是这绝大部分的成功都要归功于现有的大量标注数据集的公开。 然而,大量高质量的标注数据集的获取需要消耗大量的人力

机器学习(二):理解线性回归与梯度下降并做简单预测

北慕城南 提交于 2021-01-19 21:44:53
预测从瞎猜开始 按 上一篇文章 所说,机器学习是应用数学方法在数据中发现规律的过程。既然数学是对现实世界的解释,那么我们回归现实世界,做一些对照的想象。 想象我们面前有一块塑料泡沫做的白板,白板上分布排列着数枚蓝色的图钉,隐约地它们似乎存在着某种规律,我们试着找出规律。 白板上的图钉( 数据 )如上图所示,我们有没有一种方法( 数学算法 )来寻找规律( 模型解释 )呢? 既然不知道怎么做,那我们瞎猜吧! 我拿起两根木棒在白板前比划,试着用木棒表示数据的规律。我随便放了放,如下图所示: 它们似乎都在一定程度上能表示蓝色图钉的规律,那么问题来了,绿色(虚线)和红色(实线)哪一个表示更好呢? 损失函数(成本函数) 好与坏是很主观的表达,主观的感受是不可靠的,我们必须找到一种客观的度量方式。我们想当然的认为误差最小的表示,是最好的。那么,我们引出一种量化误差的方法---最小二乘法。 最小二乘法 :使误差的平方和最小的办法,是一种误差统计方法,二乘就是平方的意思。 $$ SE = \sum{(y_{pred} -y_{true})^2} $$ 最小二乘法的解释是这样的,我们用 预测值-实际值 表示单点的误差,再把它们的 平方和 加到一起来表示整体误差。( 平方的好处可以处理掉负数值,用绝对值的和也不是不可以。 )我们用这个最终值来表示损失(成本),而可以表示损失(成本)的函数就叫做损失函数

深度学习面试题04:随机梯度下降法、批量梯度下降法、小批量梯度下降

我的未来我决定 提交于 2021-01-15 05:06:16
目录    一元线性回归模型    一元线性回归代价函数图像    梯度下降求解    SGD、BGD、Mini-batchGD的特点    参考资料 在《深度学习面试题03改进版梯度下降法Adagrad、RMSprop、Momentum、Adam》中讲到了多种改进的梯度下降公式。而这篇文章和03篇描述的不是一个事情,我们从一个例子说起,就知道改良的GD算法和本节介绍的GD算法的不同点了。 一元线性回归模型 举例:以房屋面积预测房屋价格 假设函数可以设置为 返回目录 一元线性回归代价函数图像 每一个预测值都与真实值存在一个差距,差距的平方和就可以作为一个代价函数。 因此代价函数为: 如下图所示(为方便观察,做了一个截断) 代码为: from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) w = np.arange(-5, 8, .25 ) b = np.arange(-15, 15, .25 ) x = np.array([1,2,3,4 ]) y = np.array([3.2,4.7,7.3,8.5 ]) w, b = np.meshgrid(w, b) R = 0 for

CornerNet 算法笔记

≯℡__Kan透↙ 提交于 2021-01-14 12:58:34
论文名称:CornerNet: Detecting Objects as Paired Keypoints 论文链接: https://arxiv.org/abs/1808.01244 代码链接: https://github.com/princeton-vl/CornerNet 简介 这篇文章是ECCV2018的一篇目标检测论文,该论文的创新之处在于使用Keypoints代替原来的anchor思想进行目标检测,提出检测目标左上点和右下点来确定一个边界框,提出一个新的池化方法:corner pooling,在mscoco数据集上达到42.2%的ap,精度上是当时的单阶段目标检测器的state of the art,但是速度略慢,大约1fps(论文为Titan X 244ms/f),无法满足工程需求。 相对于基于anchor检测器创新意义有: anchor数量巨大,造成训练正负样本不均衡(anchor机制解决方式为难例挖掘,比如ohem,focal loss) anchor超参巨多,数量,大小,宽高比等等(比如yolo多尺度聚类anchor,ssd的多尺度aspect ratio) 算法整体架构 如上图fig1,经过特征提取主干网络(主干网络为Hourglass-104)后分为两个分支(两个分支分别接前面提到的corner pooling,随后细谈),一个分支生成目标左上点热力图

Python 数据分析—画图

与世无争的帅哥 提交于 2021-01-10 08:58:01
一、matplotlib的用法 折线图+一些常用的设置 #显示中文 import matplotlib as mpl mpl.rcParams['font.sans-serif'] = [u'SimHei' ] mpl.rcParams['axes.unicode_minus'] = False fig,ax = plt.subplots() fig.set_size_inches(12,6) #设置图像大小 ax.plot(data.iloc[:,1:3]) #画图 ax.set_xlabel('X轴',fontsize=15) #x轴的名称 ax.set_ylabel('Y轴',fontsize=15 ) ax.legend(['A','B']) #标签 ax.set_xticks(np.arange(-10,120,10)) #设置x轴的坐标 plt.yticks(fontsize=15) #设置坐标的字体大小 plt.title('折线图标题',fontsize=20) data = pd.DataFrame({'A':np.random.rand(100)*20,'B':np.random.rand(100)*12,'C':np.random.rand(100)*17,'D':np.random.rand(100)*10}) 直方图 这里简直要吐血,要先设置set

Python 数据分析—第八章 画图

时光总嘲笑我的痴心妄想 提交于 2021-01-10 08:47:59
一、matplotlib的用法 折线图+一些常用的设置 # 显示中文 import matplotlib as mpl mpl.rcParams[ ' font.sans-serif ' ] = [u ' SimHei ' ] mpl.rcParams[ ' axes.unicode_minus ' ] = False fig,ax = plt.subplots() fig.set_size_inches( 12,6) # 设置图像大小 ax.plot(data.iloc[:,1:3]) # 画图 ax.set_xlabel( ' X轴 ' ,fontsize=15) # x轴的名称 ax.set_ylabel( ' Y轴 ' ,fontsize=15 ) ax.legend([ ' A ' , ' B ' ]) # 标签 ax.set_xticks(np.arange(-10,120,10)) # 设置x轴的坐标 plt.yticks(fontsize=15) # 设置坐标的字体大小 plt.title( ' 折线图标题 ' ,fontsize=20) 直方图 这里简直要吐血,要先设置set_xticks 在设置set_xticklabels fig,ax = plt.subplots() ax.bar(range( 4 ),data.sum()) ax.set_xticks

回归算法比较【线性回归,Ridge回归,Lasso回归】

爱⌒轻易说出口 提交于 2021-01-08 08:58:29
代码实现: 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Mon Jul 16 09:08:09 2018 4 5 @author: zhen 6 """ 7 8 from sklearn.linear_model import LinearRegression, Ridge, Lasso 9 import mglearn 10 from sklearn.model_selection import train_test_split 11 import matplotlib.pyplot as plt 12 import numpy as np 13 # 线性回归 14 x, y = mglearn.datasets.load_extended_boston() 15 x_train, x_test, y_train, y_test = train_test_split(x, y, random_state= 0) 16 17 linear_reg = LinearRegression() 18 lr = linear_reg.fit(x_train, y_train) 19 20 print ( " lr.coef_:{} " .format(lr.coef_)) # 斜率 21 print ( " lr.intercept_:{} "

线性回归——lasso回归和岭回归(ridge regression)

戏子无情 提交于 2021-01-08 08:23:24
[toc] 线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重。 lasso 回归和岭回归(ridge regression)其实就是在标准线性回归的基础上分别加入 L1 和 L2 正则化(regularization)。 本文的重点是解释为什么 L1 正则化会比 L2 正则化让线性回归的权重更加稀疏,即使得线性回归中很多权重为 0,而不是接近 0。或者说,为什么 L1 正则化(lasso)可以进行 feature selection,而 L2 正则化(ridge)不行。 线性回归——最小二乘 线性回归(linear regression),就是用线性函数 $f(\bm x) = \bm w^{\top} \bm x + b$ 去拟合一组数据 $D = {(\bm x_1, y_1), (\bm x_2, y_2), ..., (\bm x_n, y_n)}$ 并使得损失 $J = \frac{1}{n}\sum_{i = 1}^n (f(\bm x_i) - y_i)^2$ 最小。线性回归的目标就是找到一组 $(\bm w^ , b^ )$,使得损失 $J$ 最小。 线性回归的拟合函数(或 hypothesis)为: $$ f(\bm x) = \bm w^{\top}