论文文献阅读笔记_IN characteristic of learning

论文文献阅读笔记_IN characteristic of learningMGN的核心思想是利用globalfeature+finegrainfeature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。Motivatio…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MGN的核心思想是利用global feature+fine grain feature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。

 

Motivation

1.基于区域的方法主要是通过定位预先设定好的特殊区域来学习局部特征。对于高方差的场景效率并不高而且不鲁棒。

常用的part-based方法分为三类:

(1)根据先验知识,例如对人体结构的知识划分结构

(2)利用RPN定位区域

(3)中层次的注意力机制定位区域

2.基于全局特征的方法容易在小数据集上忽略细节

3.许多方法并不能End2End

 

 

Spot light

1.构建了3个branch,Coarse to fine使用全局特征和局部特征融合

2.End2End

3.同时使用Triplet loss和softmax

 

Result

不额外使用数据集仅使用简单的数据增强就能达到非常好的mAP

使用re-rank后效果更好

 

Structure

这部分直接从我OneNote截取的,重要的部分我已经直接标在图中

论文文献阅读笔记_IN characteristic of learning

 

Loss设计

softmax: 使用normface的版本,不加bias

论文文献阅读笔记_IN characteristic of learning

 

Triplet loss:使用batch hard triplet loss

论文文献阅读笔记_IN characteristic of learning

 

训练时的loss则是将图中所有同类loss相加等除之后再相加avg(triplet)+avg(softmax)

 

Hyper parameters

DataAugmentation:random horizontal flipping

Pretrain:全部加载Resnet50

Optimizer:momentum 0.9

L2_regularizer:5e-4

Learning rate:1e-2(40 epoch)1e-3(60 epoch)1e-4(80 epoch)

 

Evaluation

将所有256-dim的特征concat (8 x 256)=2048

测试的时候将原始特征和flipping后的特征求avg为最终结果

 

Discussion

1.使用Conv4_1的特征作为分支是实验出来的结果,前或后效果都不好

2.粒度多样性,Global学习全局但是粗糙特征,Branch学习局部但是精细特征

3.对于局部特征不应该使用triplet loss,因为切的时候就是等分,局部特征var很大

4.使用softmax有利于模型收敛,而triplet则是为了拉大inter-class var(度量学习了)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188884.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • django不使用外键连接表_创建表时为什么设不了外键

    django不使用外键连接表_创建表时为什么设不了外键外键删除操作如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下:CASCADE:级联操作。如果外键对应的那条数据被删除了,

  • CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突

    CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突当RadioGroup与CompoundButton同时存在且都要监听事件时CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener就会出现冲突,导入任何一个包importandroid.widget.RadioGroup.OnCheckedChangeListen…

  • JAVA——Tess4J简单的图像识别DEMO

    JAVA——Tess4J简单的图像识别DEMO基本概念TesseractOpenSourceOCREngine:包含一个OCR引擎-libtesseract和一个命令行程序-tesseract。Tesseract4添加了一个新的基于LSTM的OCR引擎,该引擎专注于行识别,但仍支持Tesseract3的传统TesseractOCR引擎,该引擎通过识别字符模式进行工作。通过使用传统OCR引擎模式(–oem0),可以与Tesseract3兼容。它还需要训练有素的数据文件来支持旧式引擎,例如tessdata存储库中的文件。…

  • string null转空字符串(空字符串是什么意思)

    今天在自己之前做的项目中,犯了一个错误,是自己考虑不周。在项目中自己需要,从后台数据库中获取数据,然后将数据转成Int类型。但是自己忽略了数据为空的情况。例如:在这里,String字符串为空,用Integer.parseInt()方法进行转换报错。修改之后如下今天自己的错误,导致现场人员在给客户展…

  • C++ override使用详解

    C++ override使用详解C++override从字面意思上,是覆盖的意思,实际上在C++中它是覆盖了一个方法并且对其重写,从而达到不同的作用。在我们C++编程过程中,最熟悉的就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。还有一个典型应用就是在继承中也可能会在子类覆盖父类的方法。   公有继承包含两部分:一是“接口”(interface),二是”实现”

    2022年10月28日
  • t276芯片(芯片st是什么意思)

    ST7789V2是一个单芯片TFT-LCD驱动器。该芯片可以直接连接到外部MCU,支持并行8080系列的8位/9位/16位/18位接口,也支持SPI串行通讯接口。显示数据可以存储在240x320x18bits的片上显示数据RAM中。它可以在没有外部操作时钟的情况下执行显示数据RAM读写操作,以尽量减少功耗。并行接口占用外部MCU芯片引脚较多,但其通讯速率较快,一般只在需要高速刷新及MCU资源比较丰富的场合使用。SPI串行通讯接口占用MCU芯片引脚较少,通讯速率相对并行接口较慢,但因其占用MCU引脚.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号