摘要:GluonCV是分布式机器学习社区(DMLC)发布的深度学习计算机视觉工具箱,提供了计算机视觉顶级的算法实现与基本运算(另一个是自然语言处理工具箱GluonNLP). GluonCV简单易用,有很多训练好的模型,通过一行代码就可以下载使用,非常方便. 由于GluonCV是基于MXNet,所以,要先安 阅读全文
posted @ 2020-05-25 15:38 MSTK 阅读(23) 评论(0) 推荐(0) 编辑
摘要:非极大值抑制(Non-Maximum Suppression,NMS)是在目标检测中广泛应用的一种方法:首先对每一个预测框给出一个分类和置信度,对每一类的框,按照置信度从小到大排序;然后选中置信度最大的框,依次和前面的同类框计算IOU,对于IOU大于阈值的框,就直接删除掉(也可以理解成将这些框的置信 阅读全文
posted @ 2020-05-13 18:08 MSTK 阅读(32) 评论(0) 推荐(0) 编辑
摘要:Python对List的排序主要有两种方法:一种是用sorted()函数,这种函数要求用一个变量接收排序的结果,才能实现排序;另一种是用List自带的sort()函数,这种方法不需要用一个变量接收排序的结果.这两种方法的参数都差不多,都有key和reverse两个参数,sorted()多了一个排序对 阅读全文
posted @ 2020-04-30 17:34 MSTK 阅读(70) 评论(0) 推荐(0) 编辑
摘要:2. Network Architecture 网络分为两个部分:第一部分是backbone卷积网络,用于提取整张图的特征;第二部分是head,用于对ROI进行处理,分为两个分支,一个分支用来对box分类和回归,另一部分进行mask预测。 网络的Backbone采用ResNet或者FPN(Featu 阅读全文
posted @ 2020-03-31 20:23 MSTK 阅读(35) 评论(0) 推荐(0) 编辑
摘要:网络的结构如下: 采用FPN结构,Backbone是RetinalNet,分成了P3~P7共5个Layer,分别训练不同尺寸的Box.每个Layer对应的Head有2个分支,包括一个单独的分支用来预测分类,另一个分支用来预测两部分,一部分是Box坐标的回归,另一部分是GT Box和Anchor之间的 阅读全文
posted @ 2020-02-24 16:11 MSTK 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Keras定义Layer的方法. 阅读全文
posted @ 2020-01-31 18:05 MSTK 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Keras的TimeDistributed层主要用途是在时间维度上进行全连接. 比如Faster RCNN,1张图生成了16个ROI,需要对每一个ROI进行分类和回归,ROI的维度是7×7×512,长度和宽度都是7,512个通道,16个ROI的的维度是16×7×7×512,需要得到16个分类和回归, 阅读全文
posted @ 2019-12-31 21:04 MSTK 阅读(221) 评论(0) 推荐(0) 编辑
摘要:MASK-RCNN是一个多用途的网络,可以用来做目标检测,实例分割或者人体姿态识别.主要结构如下. 简单的说,就是首先用Faster-RCNN获得ROI,再进行ROI Align,然后输出ROI的分类,同时输出分割掩码. 1. Faster-RCNN和ROI Align Faster-RCNN是一个 阅读全文
posted @ 2019-11-30 21:53 MSTK 阅读(101) 评论(0) 推荐(0) 编辑
摘要:RetinaNet,SSD,YOLOv3,Faster R-CNN等都是Anchor-based的检测器,即需要预定义的Anchor boxes来进行训练。FCOS是一种Anchor-free和Proposal-free的检测器,即不需要预定义Anchor boxes来进行训练,从而节省了对计算资源 阅读全文
posted @ 2019-10-30 23:15 MSTK 阅读(161) 评论(0) 推荐(0) 编辑
摘要:CornerNet是一种anchor free的目标检测方法,不需要设置anchor,而是通过检测关键点(Keypoints),即目标的左上角(Top-Left Corners)和右下角(Bottom-Right Corners),再进行配对,来实现目标的检测。 网络的前半部分是一个卷积网络,后半部 阅读全文
posted @ 2019-09-30 14:45 MSTK 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1. Learning rate不合适,如果太大,会造成不收敛,如果太小,会造成收敛速度非常慢; 2. Batch size太大,陷入到局部最优; 3. 网络太简单,一般情况下,网络的层数和节点数量越大,拟合能力就越强,如果层数和节点不够多,无法拟合复杂的数据,也会造成不收敛. 阅读全文
posted @ 2019-08-20 01:21 MSTK 阅读(1724) 评论(0) 推荐(0) 编辑
摘要:1. Cross entropy 交叉熵损失函数用于二分类损失函数的计算,其公式为: 其中y为真值,y'为估计值.当真值y为1时, 函数图形: 可见此时y'越接近1损失函数的值越小,越接近0损失函数的值越大. 当真值y为0时, 函数图形: 可见此时y'越接近0损失函数的值越小,越接近1损失函数的值越 阅读全文
posted @ 2019-07-28 17:26 MSTK 阅读(5099) 评论(0) 推荐(0) 编辑
摘要:TensorFlow出现这个错误是因为网络的输入被原样输出,也就是说同一个东西既被输入网络,又被输出网络. 阅读全文
posted @ 2019-06-23 18:01 MSTK 阅读(491) 评论(0) 推荐(0) 编辑
摘要:Keras出现了下面的错误: 原因是使用了Keras backend的reshape操作: 但是Keras backend并不是一个Layer,于是出现了上面的错误.解决的方法是使用Lambda,Lambda用于定义一个Layer,其中没有需要学习的变量,只是对Tensor进行一些操作.先定义一个r 阅读全文
posted @ 2019-06-12 12:33 MSTK 阅读(847) 评论(0) 推荐(0) 编辑
摘要:对下面的Dict: 如果用value从大到小排序: 如果对key排序,用d[0];默认的是从小到大排序,如果是从大到小,需要用reverse = True. 注意返回的是一个List,不再是Dict. 阅读全文
posted @ 2019-05-18 14:14 MSTK 阅读(7059) 评论(0) 推荐(0) 编辑
摘要:2.2 边框回归 边框回归使用下面的几个公式: xywh是预测值,带a的是anchor的xywh,带*的是GT Box的xywh,可以看作是anchor经过一定的变换回归到附近的GT Box. 阅读全文
posted @ 2019-04-27 23:36 MSTK 阅读(122) 评论(0) 推荐(0) 编辑
摘要:Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢。判断是否在循环迭代过程中增加了新的计算节点,可以用下面的语句: 如果增加了新的计算节点,就会报错,如果没有报错,说明没有增加计算节点。 阅读全文
posted @ 2019-03-31 18:13 MSTK 阅读(1038) 评论(0) 推荐(1) 编辑
摘要:加州大学洛杉矶分校在PLOS Computing Biology上发表了一篇文章,分析了深度卷积网络(DCNN)和人类识别物体方法的不同:深度卷积网络(DCNN)是依靠物体的纹理进行识别,而人类是依靠物体的轮廓进行识别。如对下面的图a,人类依靠轮廓很快就能识别出这是一只熊,速度和准确性超过深度卷积网 阅读全文
posted @ 2019-02-12 22:30 MSTK 阅读(374) 评论(0) 推荐(0) 编辑
摘要:Kaiming He的这篇论文提出了一个新问题,在目标检测、实例分割和人体关键点检测等领域,预训练的模型是否真的起了作用?通过实验,得出结论:迭代次数较少时,使用预训练模型效果更好;但是只要迭代次数充分多,使用预训练的模型和使用随机初始化的模型效果差距不大。可见预训练模型并不是那么重要。 阅读全文
posted @ 2019-01-31 12:43 MSTK 阅读(156) 评论(0) 推荐(0) 编辑
摘要:首先,导入os,再按照PCI_BUS_ID顺序,从0开始排列GPU, 然后就可以选择用哪一个或者那几个GPU运行: 用0号GPU,即'/gpu:0'运行; 用0号和1号设备,即'/gpu:0'、'/gpu:1'运行; 用7号设备,即'/gpu:7'运行,但是'/gpu:7'根本不存在,于是就只能用C 阅读全文
posted @ 2018-12-31 15:28 MSTK 阅读(1848) 评论(0) 推荐(0) 编辑
摘要:2. 区域建议网络 区域建议网络(Regional Proposal Network, RPN),根据特征图上每一个点的向量,为这个点生成k个矩形建议框。每一个点输出的内容包括:reg层4个输出x、y、w、h,其中x、y是矩形建议框中心的目标,w、h是矩形建议框的宽度和高度,cls层输出两个数字,分 阅读全文
posted @ 2018-12-24 16:40 MSTK 阅读(149) 评论(0) 推荐(0) 编辑
摘要:运行下面的代码: 出错: 这是因为换成了Python3.6.5,Python3.6.5已经删除了has_key()方法,改成了下面的写法: 就可以正常运行了。 阅读全文
posted @ 2018-12-20 22:18 MSTK 阅读(2701) 评论(0) 推荐(0) 编辑
摘要:Keras版本的Faster R-CNN源码下载地址:https://github.com/yhenon/keras-frcnn下载以后,用PyCharm打开(前提是已经安装了Tensorflow-gpu和Keras),打开以后可以看到项目的结构: 修改requirements.txt,设置Kera 阅读全文
posted @ 2018-11-23 18:16 MSTK 阅读(4435) 评论(5) 推荐(0) 编辑
摘要:首先,创建一个环境用来安装Tensorflow: 安装以后,在Anaconda Navigator可以看到已经增加了一个新环境: 在cmd窗口中输入: 安装Tensorflow的GPU版本: 在PyCharm中,File->Settings->Projector Interpretor,在Proje 阅读全文
posted @ 2018-11-08 20:30 MSTK 阅读(3200) 评论(0) 推荐(0) 编辑
摘要:目标检测是一种基于目标几何和统计特征的图像分割,最新的进展一般是通过R-CNN(基于区域的卷积神经网络)来实现的,其中最重要的方法之一是Faster R-CNN。 1. 总体结构 Faster R-CNN的基本结构如下图所示,其基础是深度全卷积网络(ZF或者VGG-16)。在深度全卷积网络输出的特征 阅读全文
posted @ 2018-10-30 20:08 MSTK 阅读(118) 评论(0) 推荐(0) 编辑
摘要:Python 2安装的是mysql-python,Python 3安装mysql-python以后,仍然不能import MySQLdb,原来Python 3应该安装mysqlclient,就可以import MySQLdb了。 阅读全文
posted @ 2018-09-23 17:48 MSTK 阅读(2391) 评论(0) 推荐(0) 编辑
摘要:连接时MySQL出现了下面的错误: 解决的办法是先停止MySQL服务,在my.ini文件的最下面加入一行: 再启动MySQL服务,就可以了。 阅读全文
posted @ 2018-09-23 17:09 MSTK 阅读(319) 评论(1) 推荐(0) 编辑
摘要:以前是在Cent OS中运行Tensorflow,,经常需要切换操作系统,很不方便,于是决定在Windows 7下安装Tensorflow。 过程还是挺复杂的,需要安装的包括:Visual Studio、Anaconda、CUDA、cuDNN、PyCharm、Tensorflow-gpu等。 Vis 阅读全文
posted @ 2018-09-13 16:58 MSTK 阅读(886) 评论(0) 推荐(0) 编辑
摘要:一般情况下,import的文件和被import的文件在同一个路径下面,import也比较方便。如果这两个文件不在一个路径下面,import就比较麻烦了,需要在被import的文件路径下面新建一个__init__.py文件,可以是一个没有代码的空文件。 比如被import的文件路径是../A/B/b. 阅读全文
posted @ 2018-08-18 19:15 MSTK 阅读(19141) 评论(0) 推荐(0) 编辑
摘要:首先定义一个tf.train.Saver类: 其中,max_to_keep参数设定只保存最后一个参数,默认值是5,即保存最后5个模型,如果设置成0,训练过程中的所有模型都会被保存。 模型训练好以后,保存模型: 其中,sess是Session,ckpt_dir + "/nn_model.ckpt"是保 阅读全文
posted @ 2018-07-31 14:17 MSTK 阅读(153) 评论(0) 推荐(0) 编辑