0%

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

提出问题

在目标检测领域,使用pseudo ground truth(类似于伪标签)进行细化大大减少了完全监督和弱监督对象检测之间的性能差距,因为时间动作定位很多内容是从目标检测当中引用过来的,那么是否能把使用pseudo ground truth这个方法引用到时间动作定位当中呢。

pseudo ground truth的概念是指来自弱监督模型的一组采样对象预测,在下一次细化迭代中将其假定为实际对象位置。

做了什么

提出RefineLoc模型,一种弱监督的时间定位方法,它通过利用pseudo ground truth实况来评估迭代细化策略

阅读全文 »

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 来启动组件,这是因为您知道要启动的 Activity 或服务的类名。例如,您可能会启动您应用内的新 Activity 以响应用户操作,或者启动服务以在后台下载文件。
  • 隐式 Intent :不会指定特定的组件,而是声明要执行的常规操作,从而允许其他应用中的组件来处理。例如,如需在地图上向用户显示位置,则可以使用隐式 Intent,请求另一具有此功能的应用在地图上显示指定的位置。

启动Activity时使用Intent,当使用显示Intent时,Intent对象是显式命名的某个具体的Activity组件时,系统立即启动该组件。

当使用隐式Intent时,Android 系统通过将 Intent 的内容与在设备上其他应用AndroidManifest中申明的Intent filter进行比较,从而找到要启动的相应组件。如果 Intent 与 Intent 过滤器匹配,则系统将启动该组件,并向其传递Intent对象。如果多个 Intent 过滤器兼容,则系统会显示一个对话框,支持用户选取要使用的应用。

具体过程如图所示:

img

  1. Activity A 创建包含操作描述的 Intent,并将其传递给 startActivity()
  2. Android 系统搜索所有应用中与 Intent 匹配的 Intent 过滤器。寻找到匹配项
  3. 该系统通过调用匹配 Activity (Activity B) 的 onCreate() 方法并将其传递给 Intent,以此启动匹配 Activity。

简单理解显示和隐式的区别就类似于租房子,显示Intent就是自己知道自己需要什么样的房子,并且已经确认自己想租的房子在那个小区那个单元那个房间(具体类名),而隐式Intent是只知道自己想租房,然后条件是什么,比如:房间大小、是否是独卫、是否能养宠物,然后把这些条件交给中介(Android系统),最终由中介挑选出一些合适的房间,由自己挑选是否租房。

阅读全文 »

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
阅读全文 »

实用小软件

自己开发或者写文档的时候经常需要使用一些工具软件,在这里记录一下

阅读全文 »

ConstraintLayout学习

介绍

ConstraintLayout似乎是现在Android官方目前推荐的一个layout,性能也不错,但是我目前还不是很会使用这个东西,所以看网上的资料学习了一下爱,顺便记录一下。

阅读全文 »

Activity之间通讯

Activity之间经常需要传输数据,我们常用的方法就是使用Intent

阅读全文 »

Android编程权威指南第1章挑战练习

定制 toast 消息

这个练习需要你定制toast消息,改在屏幕顶部而不是底部显示弹出消息。这需要使用Toast 类的setGravity方法,并使用Gravity.TOP重力值。具体如何使用,请参考Android开发者文档。

答案

参考官方给定的Toast例子结合对setGravity函数的讲解

我们只需要在QuizActivity中的函数中填入下属代码即可

1
2
3
4
5
6
7
8
9
10
        mTrueButton = (Button) findViewById(R.id.true_button);
mTrueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast toast = Toast.makeText(QuizActivity.this, R.string.correct_toast, Toast.LENGTH_SHORT);
// 第一章挑战练习:设置toast在上方显示
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();
}
});

参考:

Android的设备配置和配置修饰符

介绍

设备配置是一系列特征组合,用来描述设备当前状态。这些特征有:屏幕方向、屏幕像素密度、屏幕尺寸、键盘类型、底座模式以及语言等。 通常,为匹配不同的设备配置,应用会提供不同的备选资源。比如:为适应不同分辨率的屏幕,向项目添加多套标就是这样一个使用案例。 可以说这些各种各样的配置只是为了兼容各种各种乱七八糟的设备

阅读全文 »