
计算机视觉
世界要你考取功名,但是真诚才是最大本领。
周月亮
世界要你考取功名,但是真诚才是最大本领。
展开
-
深度学习训练技巧总结
模型训练技巧最直接的就是几个超参数的设置根据图片大小来选择网络和超参数如果图片不是很大比如3030,这种情况下做分类就不能用VGG和Resnet这样的网络。此时要么把图像变大要么就是选择小的网络,或者把VGG里pooling的步长设置为1试试,如果类别不多(没有上千),那么直接使用小网络,如果是100100这样的大图片就采用VGG和Resnet这样的大网络。根据图片类别数和数量来选择bat...原创 2020-05-07 09:05:50 · 23987 阅读 · 0 评论 -
多任务学习
深度网络中,多任务的语义信息可以从不同的层次输出,例如GoogLeNet中的两个辅助损失层。例如衣服图像检索系统,颜色这类的信息可以从较浅层就进行输出判断。而衣服的样式风格这类的信息,更接近高层语义,需要从更高的层次输出,这里的输出指的是每个任务对应的损失层的前一层。多任务学习的实际案例:人脸识别、细粒度车辆分类、面部关键点定位于属性分类等领域。在物体检测网络faster R-CNN中也有多...原创 2019-09-12 09:11:04 · 794 阅读 · 0 评论 -
损失函数
参考:1focal lossfocal loss就是一个解决分类问题中类别不平衡、分类难度差异的一个loss。在NLP中也存在大量类别不平衡的任务:序列标注任务中类别是严重不平衡的。在命名实体识别中,一句话里实体是比非实体要少得多,这就是类别严重不平衡的情况。二分类问题的标准loss是交叉熵y∈{0,1} 是真实标签,ŷ 是预测值。二分类几乎都用sigmoid激活函数 ŷ =...原创 2019-09-11 20:04:10 · 1185 阅读 · 0 评论 -
pytorch复现网络AlexNet和VGG
下图是AlexNet的网络结构由上图可见,AlexNet有5个卷积层,然后紧跟着3个全连接层。简图如下图采用的激活函数是ReLU,激活函数表达式是f(x)=max(0,x)如上图所示,AlexNet在每个全连接层后都加上了dropout层。减少过拟合。dropout层以一定的概率随机关闭当前层中神经元激活值。dropout层,不同的神经元组合被关闭,代表着不同的结构,所有这些不同的...原创 2019-08-29 11:51:44 · 779 阅读 · 0 评论 -
基于互向导的半监督皮肤检测
基于数据驱动的半监督皮肤检测方法,用于实现人体图像的鲁棒皮肤检测。先前的方法是尝试在不同的色彩空间建模皮肤颜色,并且训练皮肤分类器。但是这个方法依赖皮肤颜色的分布,而且没有语义信息,所以性能不佳。改进办法,通过身体检测为向导来提升皮肤检测的性能,如果一个身体掩模mask可用,那么对于皮肤检测有两个好处:好处一:为皮肤检测器提供一个先验信息,其中皮肤的较高频率是固定的好处二:检测到一个皮肤...原创 2019-09-12 09:13:31 · 168 阅读 · 0 评论 -
pytorch系统学习
若想进行in-place操作,就比方说y加上x,y的值就改变了,就可以用y.add_(x)这样y就直接被改变了。Torch里面所有带““的操作,都是in-place的。例如x.copy(y)argmax函数:torch.argmax(input, dim=None, keepdim=False)返回指定维度最大值的序号,也就是变成dim这个维度的最大值的index。构建深度学习模型的基本流程...原创 2019-09-12 09:13:48 · 1316 阅读 · 1 评论 -
实操过程中的pytorch小知识点
DataLoader参考:1pytorch 的数据加载到模型的操作顺序是这样的:第一步:创建一个 Dataset 对象第二步:创建一个 DataLoader 对象第三步:循环这个 DataLoader 对象,将img, label加载到模型中进行训练如下代码所示:dataset = MyDataset()dataloader = DataLoader(dataset)num_...原创 2019-09-12 09:12:11 · 2925 阅读 · 0 评论 -
图像的知识
掩膜maskmask是用于部分或完全掩盖对象或者是掩盖部分的图像操作。将mask应用在图形的效果就类似将图形通过遮罩涂在背景上,从而完全或者是部分遮盖了图形的某部分,但是遮罩内的图形是不会变化的。在图像处理中mask常常用来提取ROI区域。下面的例子来说明mask操作,下面图的最后一个图,是使用两个圆形做mask,取两个圆形的交集,所以得到除了交集以外的部分都涂上黑色。所以可以这么说,和原图...原创 2019-09-12 09:14:02 · 577 阅读 · 0 评论 -
DeepLab语义分割
参考:DeepLab V1 V2 V3 V3+及pytorch实现V1DeepLab是针对语义分割任务提出的模型,主要使用了DCNN、CRF、空洞卷积做密集预测。DeepLab是结合了深度卷积神经网络DCNNs和概率图模型DenseCRFs的方法。DCNNs做语义分割时精度不够,原因是DCNNs的高级特征的平移不变性,也叫作高层次特征映射。平移不变性增强了对数据分层抽象的能力,但是也会...原创 2019-09-12 09:14:34 · 1179 阅读 · 0 评论 -
物体检测器自己学anchor
参考:1Anchoranchor是物体检测中的重要概念,通常是人为设计的一组框,作为分类和框回归的基准框。无论是单阶段检测器还是两阶段检测器,都使用了anchor。两阶段检测器的第一阶段是采用RPN生成proposals,是对anchor进行分类和回归的过程。即anchor—proposals—detection bbox。大部分单阶段检测器是直接对anchor进行分类和回归,即anc...原创 2019-09-12 09:14:47 · 590 阅读 · 0 评论 -
神经网络训练中小知识点记录
Faster RCNN和SSD有什么不同,为什么SSD快?不做region proposal,而且是one-stage训练加速的办法加大bacth size,或者先adam再SGD加大batch size需要调节哪些超参数加大学习率,加大epoch...原创 2019-08-06 17:18:07 · 259 阅读 · 0 评论 -
目标检测之ROI Pooling层解析
参考:12ROIs Pooling是Pooling层的一种,特点是输入特征图尺寸不固定,但是输出特征层尺寸固定。ROI即region of interests,指的是特征图上的框。在fast rcnn中,roi是指的是selective search完成之后得到的候选框在特征图上的映射。如下图:而在faster rcnn中是在rpn之后产生的,然后再把各个候选框映射到...原创 2019-08-04 18:54:53 · 5460 阅读 · 2 评论 -
一些术语的比较(tensorflow和pytorch/cpu和gpu/)
tensorflow和pytorchpytorch是一个动态框架,tensorflow是一个静态框架。tensorflow是一个静态框架体现在:需要先构建一个tensorflow的计算图,构建好之后这样的一个计算图是不能变的,然后再传入不同的数据进去进行计算。这种静态框架带来的问题是:固定了计算的流程,势必带来不灵活性,如果要改变计算的逻辑或者是随着时间变化的计算逻辑,这样的动态计算ten...原创 2019-08-01 10:42:16 · 734 阅读 · 0 评论 -
目标检测 CVPR 2019 FCOS
这是一篇anchor-free的目标检测算法。以往的anchor-based算法的缺点:缺点一:检测性能对于anchor的大小、数量、长宽比都非常敏感缺点二:固定的anchor损害检测器的普适性,导致对于不同任务,其anchor都必须重新设置大小和长宽比。缺点三:为匹配真实框,需生成大量anchor,但是大部分anchor在训练时标记为negative,就会造成样本间的不平衡,没有充分利...原创 2019-08-05 20:06:23 · 503 阅读 · 0 评论 -
mmdetection
概述训练检测器的主要单元:数据加载、模型、迭代流水线。数据加载遵循典型约定,使用Dataset和Dataloader用于多个工作人员的数据加载。Dataset返回与模型的forward方法的参数对应的数据项的字典dict。由于对象检测中的数据可能不是相同的大小(图像大小,gt bbox大小等),所以引入一种新的DataContainer类型mmcv来帮助收集和分发不同大小的数据。模型...原创 2019-08-02 17:02:55 · 40142 阅读 · 26 评论 -
目标检测算法总结
参考:目标检测算法之SSD概述目前目标检测算法的主流算法主要分为两类:two-stage方法。比如R-CNN系算法。主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类和回归。two-stage方法的优点是准确度高。one-stage方法。比如yolo和SSD。主要思路是均匀的在图片的不同位置上密集抽样,抽...转载 2019-06-25 09:43:56 · 5445 阅读 · 0 评论 -
自学yolo入门到进阶
参考:参考1原创 2019-07-25 21:13:58 · 4300 阅读 · 3 评论 -
yolo网络参数的解析与存储
参考:yolo网络分析yolo v3论文解析yolo网络结构定义的cfg文件yolo中的网络采用和caffe差不多的方式。都是通过一个顺序堆叠layer对神经网络结构进行定义的文件。区别在于:yolo采用自己定义的cfg文件格式,需要自己实现解析功能。而caffe无需自己实现解析文件的功能,但缺点是对第三方库依赖严重,在编译常出现无法链接的错误。cfg文件的格式可以总结如下:[ne...转载 2019-07-09 21:05:41 · 659 阅读 · 0 评论 -
yolov3训练自己的数据集——第一次实操完整记录
参考:darknetyolo源码解析bacth参数对性能影响小知识点make -j4 表示用4条线程编译(对应自己的电脑,看自己电脑cpu几核几线程)make -j32 用32线程编译darknet源码解析darknet概述darknet是一个轻型的、完全基于C与CUDA的开源深度学习框架,支持CPU和GPU两种计算方式。darknet优点完全由c语言实现,没有任何依...原创 2019-07-09 19:36:24 · 74756 阅读 · 36 评论 -
yolov论文翻译(转载、学习与复盘)
概述yolo仅仅用单个卷积网络就能同时预测多个边界框和它们的类别概率,使用yolo得到图片上的问题是什么和其具体位置。优点:yolo速度非常快,将检测视为回归问题,可以在不到25毫秒的延迟内实时处理流媒体视频,。yolo是在整张图片上进行推断的,与基于滑动窗口和候选框的技术不同,yolo在训练期间和测试期间都会顾及到整张图片,所以隐式的包含了关于类的上下文信息以及外观。Fast-RCNN...转载 2019-06-21 16:21:49 · 2119 阅读 · 0 评论 -
yolov3
目标识别已经有了OverFeat/R-CNN/Fast-RCNN。改进的地方:1. 不要像OverFeat/R-CNN将分类与定位的训练分开进行。而改成:一次计算、一步到位,共2个任务。2. 不要像Fast-RCNN借用selective method单独提炼2000多个regions,直接在原图上训练出98个bounding boxes。3. 不用sliding window,而采用g...转载 2019-06-19 10:01:38 · 395 阅读 · 0 评论 -
yolo过程中的小知识点
不会使用vim编辑器就使用文本编辑器,即不适用命令sudo vim /etc/apt/sources.list而改用sudo gedit /etc/apt/sources.list打开标定软件python3 labelImg.pymAP mean average precision多个类别物体检测中,每一个类别都可以根据recall和precision绘制一条曲线。A...原创 2019-06-18 19:37:10 · 745 阅读 · 0 评论