Actor and Action Video Segmentation from a Sentence

本文介绍了一篇CVPR2018 Oral文章,该研究首次利用NLP技术实现视频分割。论文提出一种框架,输入为句子与视频数据集,输出为视频掩码。框架包括句子编码器、视频编码器及视频掩码解码器三部分。

CVPR2018 Oral的一篇关于跨媒体(Video与NLP结合)的文章,paper链接 https://arxiv.org/abs/1803.07485,一作是荷兰阿姆斯特丹大学的PHD,作者的homepage https://kgavrilyuk.github.io/,code和datasets还没有被released出来。
个人瞎扯:这是我见过的第一篇发表出来的用NLP做video segmentetion的文章,其实还有一篇已经挂载arxiv上面了,现在应该是在投ECCV 2018。
文章要做的事情(video segmentation from a sentence)
输入:sentence+video dataset    输出:video mask

可视化的分割结果如下所示。
example of visualized segmentation mask
与state-of-the-art方法定量的对比结果如下所示。
comparision with state-of-the-art

method
video segmentation from a sentence framework如下所示。
video segmentation framework
从这个framework中可以看出,文章主要分为三部分。

  • sentence encoder。首先加padding使所有的sentence长度一样,然后用在Google News dataset上面做fine-tuning的模型提取300-300-Dim的word2ver向量,然后在用1-Dim CNN提取feature。文章在ablation study中做过分析,1-Dim CNN比vanilla LSTM和bidirectional LSTM效果都要好。
  • video encoder。同样是先加padding使所有video的frame一样长,然后再用I3D encoder video,其中有两个trick。
    – 1.在feature map的空间位置上面做L2 Norm。
    – 2.把空间位置作为额外的通道学习空间关系(qualifiers),例如left of,above等等。
  • video mask decoder。直接在video representation基础上采用deconvolutional neural network(kernel size 8 x 8 and stride 4, followed by a convolutional layer with a kernel size of 3 x 3 and a stride of 1),分别采用3个scale(32x32,128x128和512x512)的response map做loss function,highest-resolution response map是final segmentation prediction,其中也有两个trick。
    – 1.tanh activation function and L2-normalization on the features。
    – 2.dynamic filters。
在Unreal Engine 5中,可以通过蓝图系统使用 **Spawn Actor From Class** 节点动态生成Actor实例。该节点允许开发者根据指定的类模板,在运行时创建新的Actor,并将其放置在世界中的特定位置和旋转角度上[^1]。 ### 使用 Spawn Actor From Class 节点生成Actor 要使用该节点,首先需要在蓝图中指定一个有效的Actor类。这个类可以是项目中已有的蓝图类,也可以是通过变量传入的类引用。接下来,设置生成Actor的变换参数,包括位置、旋转和缩放(通常使用 `Make Transform` 节点构造)。 - **Class 输入引脚**:用于指定要生成的Actor类。可以连接一个类变量或直接从下拉菜单中选择一个类。 - **Transform 输入引脚**:提供Actor生成时的初始变换信息,包括位置、旋转和缩放。 - **Spawn Parameters 输入引脚**(可选):允许设置生成参数,例如所有者(Owner)、Instigator 和是否启用物理模拟等[^2]。 生成成功后,节点会返回一个指向新生成Actor的引用,可用于后续逻辑操作,如绑定事件或修改属性。 ### 示例流程 在蓝图中实现Actor生成的典型流程如下: 1. 获取目标Actor类的引用,可通过变量或直接选择。 2. 构造目标变换矩阵,使用 `Make Transform` 节点组合 FVector 和 FRotator。 3. 连接至 `Spawn Actor From Class` 节点,并执行生成操作。 4. 检查输出引脚以获取生成结果,并进行后续处理。 以下是一个简单的蓝图逻辑示意(伪代码表示): ```cpp UClass* ActorClass = LoadClass<AActor>(nullptr, TEXT("Blueprint'/Game/PathToYourBlueprint.BP_MyActor'")); if (ActorClass) { FTransform SpawnTransform(FVector(0, 0, 0)); AActor* SpawnedActor = GetWorld()->SpawnActor<AActor>(ActorClass, &SpawnTransform); } ``` ### 注意事项 - 确保生成的类有效且存在于项目内容中,否则可能导致运行时错误。 - 可结合 `Load Class` 节点实现动态加载类资源,提高灵活性。 - 若需频繁生成大量Actor,建议优化生成逻辑并避免不必要的重复计算,以提升性能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值