End-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers
提出问题
目标检测的目标是预测一个bbox的集合和各个bbox的标签。目前的检测器不是直接预测一个目标的集合,而是使用替代的回归和分类去处理大量的propoasls、anchors或者window centers。模型的效果会受到一系列问题的影响:后处理去消除大量重叠的预测、anchors的设计、怎么把target box与anchor关联起来。怎么能够简化这个流程,使得目标检测简单起来
做了什么
把目标检测看做是一种set prediction的问题,我们的方法也直接移除了一些人工设计的组件,例如NMS和anchor的生成。使用transformer来完成这一任务,在coco数据集上有着可以和faster-rcnn媲美的准确率与效率。
使用Github Action实现Android自动打包
Android权限学习
CoLA Weakly-Supervised Temporal Action Localization with Snippet Contrastive Learning
CoLA Weakly-Supervised Temporal Action Localization with Snippet Contrastive Learning
提出问题:
弱监督时间动作定位(WSTAL)的目的是只通过视频级别的标签,对未裁剪的视频进行动作定位。目前存在的模型大都是遵循“localization by classification”的过程,定位对视频级别分类贡献最大的时间区域,一般来说,它们单独处理每个片段(或帧),因此忽略了有效的时间上下文关系
做了什么
- 提出利用视频片段对比学习来实现动作定位
- 提出了一个Snippet Contrast (SniCo) Loss来从特征空间中hard snippet的表示,它指导网络感知精确的时间边界,避免时间间隔中断。
- 由于没有办法访问帧级别的注释,引入了一种hard snippet挖掘算法,来定位潜在的hard snippet(这里的hard snippet可以理解为在背景和动作过渡区域的snippet,具有比较强的欺骗性)。
RefineLoc Iterative Refinement for Weakly-Supervised Action Localization
RefineLoc Iterative Refinement for Weakly-Supervised Action Localization
提出问题
在目标检测领域,使用pseudo ground truth(类似于伪标签)进行细化大大减少了完全监督和弱监督对象检测之间的性能差距,因为时间动作定位很多内容是从目标检测当中引用过来的,那么是否能把使用pseudo ground truth这个方法引用到时间动作定位当中呢。
pseudo ground truth的概念是指来自弱监督模型的一组采样对象预测,在下一次细化迭代中将其假定为实际对象位置。
做了什么
提出RefineLoc模型,一种弱监督的时间定位方法,它通过利用pseudo ground truth实况来评估迭代细化策略
Volley学习
Volley学习
Volley是一个可让 Android应用更轻松、(最重要的是)更快捷地联网的 HTTP 库,是谷歌官方使用异步http网络请求库,所以为了连接网络还是需要学习一下这个玩意。总所周知Android主线程是不能访问网络的,但是Volley是可以直接在主线程上使用,因为他底层帮我们实现了开线程这些事情。
目前查看了一下Volley和相关的资料,发现其实介绍的都挺好的,这里的话就介绍一下简单的使用吧,如果想了解更多一些可以查看官方教程和郭霖的教程:
https://developer.android.com/training/volley
https://blog.csdn.net/guolin_blog/article/details/17482095
首先需要访问网络所以我们需要在AndroidManifest中加入权限
1 | <uses-permission android:name="android.permission.INTERNET" /> |
隐式intent
隐式intent
Intent 分为两种类型:
- 显式 Intent:通过提供目标应用的软件包名称或完全限定的组件类名来指定可处理 Intent 的应用。通常,您会在自己的应用中使用显式 Intent 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。例如,您可能会启动您应用内的新 Activity 以响应用户操作,或者启动服务以在后台下载文件。
- 隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理。例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。
启动Activity时使用Intent,当使用显示Intent时,Intent对象是显式命名的某个具体的Activity组件时,系统立即启动该组件。
当使用隐式Intent时,Android 系统通过将 Intent 的内容与在设备上其他应用AndroidManifest中申明的Intent filter进行比较,从而找到要启动的相应组件。如果 Intent 与 Intent 过滤器匹配,则系统将启动该组件,并向其传递Intent对象。如果多个 Intent 过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。
具体过程如图所示:

- Activity A 创建包含操作描述的
Intent,并将其传递给startActivity() - Android 系统搜索所有应用中与 Intent 匹配的 Intent 过滤器。寻找到匹配项
- 该系统通过调用匹配 Activity (Activity B) 的
onCreate()方法并将其传递给Intent,以此启动匹配 Activity。
简单理解显示和隐式的区别就类似于租房子,显示Intent就是自己知道自己需要什么样的房子,并且已经确认自己想租的房子在那个小区那个单元那个房间(具体类名),而隐式Intent是只知道自己想租房,然后条件是什么,比如:房间大小、是否是独卫、是否能养宠物,然后把这些条件交给中介(Android系统),最终由中介挑选出一些合适的房间,由自己挑选是否租房。
SQLite学习
SQLite学习
SQLite是Android自带的数据库,是学习Android所必须了解的内容之一。
由于JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,会消耗太多的系统资源,对于手机这种内存受限设备来说并不合适。因此Android 提供了一些新的 API 来使用 SQLite 数据库。
1 | 数据库存储在 data/data/< 项目文件夹 >/databases/ 下。 |
为了比较好的学习该部分内容我们需要举个例子,所以我们以学生表格(学生表格平时,平时学习最多)为例来学习该内容。
| _id | uuid | name | birth_date | gender |
|---|---|---|---|---|
| 1 | 12154453131 | zhangsan | 1309564646 | 0 |
| 2 | 87478478994 | lisi | 1235465487 | 1 |

