ZYangChen / MoCha-Stereo

[CVPR2024] The official implementation of "MoCha-Stereo: Motif Channel Attention Network for Stereo Matching”. & [Arxiv] The official implementation of "Motif Channel Opened in a White-Box: Stereo Matching via Motif Correlation Graph"
MIT License
125 stars 4 forks source link

关于MCCV代码实现的问题。 #13

Closed WangTengfeifei closed 1 week ago

WangTengfeifei commented 3 months ago

您好,非常感谢您的工作。在阅读了您的论文和代码之后,我对两个论文公式的代码实现的问题有疑问。

  1. 在公式(5)中,我是否可以认为是分别对CAMP和偏移了d个视差的CAMP进行3D卷积后,进行了内积计算?但是,我在您的代码里面并未找到这个内积计算的过程,只有单独对CAMP进行了3D卷积?请问这一部分在哪里实现?或许是我对代码理解上有问题?
    #mca 1/4
    normal_feature[0] = self.high_frequency_sliding_window_filter(normal_feature[0])
    motif_4x = F.softmax(self.sw_4x(normal_feature[0]), dim=1)#torch.Size([B, 4, 80, 184])
    #camp
    CAMP_4x = motif_4x.unsqueeze(1) * normal_feature[0].unsqueeze(2) #torch.Size([B, 256, 4, 80, 184])
    CAMP_4x = CAMP_4x.transpose(1, 2) #torch.Size([B, 4, 256, 80, 184])
    #Conv3d_layer 这一部分似乎只做了单独的3D卷积操作?
    channel_correlation_volume_4x = self.Conv3d_layer_4x(CAMP_4x).squeeze(1)
  2. 在公式(6)中,是否对应的是hourglass模块?是否可以理解成跟CoEX模型一样的聚合方式?只不过聚合的特征信息,使用了经过3D卷积的CAMP获得结构信息?

再次感谢您的工作,期待您的回复。

ZYangChen commented 1 week ago

您好。

  1. 3D卷积后的特征用于匹配代价计算,内积计算是匹配代价计算的过程。论文中的公式5合并了这两个步骤。

  2. 不是。公式6依然是匹配代价计算的一部分。这部分我们参考了GwcNetIGEV-Stereo,直接计算Group-wise Correlation。