<?xml-model href='http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng' schematypens='http://relaxng.org/ns/structure/1.0'?><TEI xmlns="http://www.tei-c.org/ns/1.0">
	<teiHeader>
		<fileDesc>
			<titleStmt><title level='a'>Dynamo-Depth: Fixing Unsupervised Depth Estimation for Dynamical Scenes</title></titleStmt>
			<publicationStmt>
				<publisher>Advances in Neural Information Processing Systems 36 (NeurIPS 2023)</publisher>
				<date>12/10/2023</date>
			</publicationStmt>
			<sourceDesc>
				<bibl> 
					<idno type="par_id">10546173</idno>
					<idno type="doi"></idno>
					
					<author>Yihong Sun</author><author>Bharath Hariharan</author>
				</bibl>
			</sourceDesc>
		</fileDesc>
		<profileDesc>
			<abstract><ab><![CDATA[Unsupervised monocular depth estimation techniques have demonstrated encouraging results but typically assume that the scene is static. These techniques suffer when trained on dynamical scenes, where apparent object motion can equally be explained by hypothesizing the object's independent motion, or by altering its depth. This ambiguity causes depth estimators to predict erroneous depth for moving objects. To resolve this issue, we introduce Dynamo-Depth, an unifying approach that disambiguates dynamical motion by jointly learning monocular depth, 3D independent flow field, and motion segmentation from unlabeled monocular videos. Specifically, we offer our key insight that a good initial estimation of motion segmentation is sufficient for jointly learning depth and independent motion despite the fundamental underlying ambiguity. Our proposed method achieves state-of-the-art performance on monocular depth estimation on Waymo Open and nuScenes Dataset with significant improvement in the depth of moving objects. Code and additional results are available at https://dynamo-depth.github.io.]]></ab></abstract>
		</profileDesc>
	</teiHeader>
	<text><body xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Embodied agents acting in the real world need to perceive both the 3D scene around them as well as how objects around them might behave. For instance, a self-driving car executing a lane change will need to know where the nearby cars are and how fast they are moving. Instead of relying on expensive sensors such as LiDAR to estimate this structure, a promising alternative is to use commodity cameras. This has motivated a long line of work on monocular depth estimation using neural networks.</p><p>While neural networks can learn to estimate depth, the dominant training approach requires expensive 3D sensors in the training phase. This limits the amount of training data we can capture, resulting in downstream generalization challenges. One would prefer to train these depth estimators without supervision, for e.g., using unlabeled videos captured from a driving car. This is possible to do if the videos are produced by a camera moving in a static scene, since the apparent motion (i.e., optical flow) of each pixel is then inversely proportional to the depth of the pixel. This provides a useful supervisory signal for learning depth estimation and has been used effectively in the past <ref type="bibr">[48,</ref><ref type="bibr">36]</ref>.</p><p>However, for unsupervised approaches to learn depth, dynamic scenes with moving objects pose a challenge. Here, the apparent pixels motion on the image plane is a combined effect of camera ego-motion (or rigid scene motion) and the independent motion of objects in the scene. Methods that ignore the presence of moving objects and treat the scene as static will then learn erroneous depth, where the depths of moving objects are altered to match their observed motion, as shown in Figure <ref type="figure">1</ref> (b). Past works have tried to overcome this issue by having another module predict independent object motion <ref type="bibr">[31,</ref><ref type="bibr">24,</ref><ref type="bibr">15]</ref>, but the presence of multiple equivalent solutions makes training difficult: even with sophisticated regularizers, the training can converge to the degenerate solution of either predicting the whole scene as static with incorrect depth, or predicting the entire scene as moving on a flat canvas. This results in depth error on moving objects at least 4 times as large as the error on static</p><p>(b) Monocular Depth (c) Rigid Flow (f) Independent Flow Dynamo-Depth (Ours) Static Scene Constraint Input (d) Monocular Depth (e) Rigid Flow (a) Input Frames background even for state-of-the-art methods. Since navigating safely around moving objects is a primary challenge in self-driving, poor depth estimation of moving objects is particularly problematic.</p><p>In this paper, we propose a new architecture and training formulation for this unsupervised learning problem that substantially improves depth accuracy for moving objects. Our key insight is that we need a good initial estimate for which pixels are independently moving (a "motion mask"). With this motion mask at hand, one can easily train depth estimation using the static pixels, and account for independent motion to correctly estimate the depth of the moving objects. However, the challenge is obtaining this motion mask in the first place: how do we identify which pixels are independently moving? First, we introduce two separate network modules that predict complete 3D scene flow and camera ego-motion. The difference between these can then be used to identify the moving objects. Second, we introduce a novel initialization scheme that stops depth training early to prevent the depth estimator from learning erroneous depth for the moving objects. This allows the motion estimation networks to learn the correct scene flow. In sum, we make the following contributions:</p><p>1. We propose a new approach, Dynamo-Depth, for learning depth estimation for dynamic scenes solely from unlabeled videos. In addition to monocular depth, Dynamo-Depth also predicts camera ego-motion, 3D independent flow, and motion segmentation. 2. We propose a new architecture that identifies independent object motion via the difference between the rigid flow field induced by camera ego-motion and a complete scene flow field to facilitate learning and regularization. 3. We propose a novel motion initialization technique that learns an early estimation of motion segmentation to explicitly resolve the ambiguity and disentangle independent motion from camera ego-motion (Figure <ref type="figure">1</ref>). This allows the entire architecture to learn end-to-end without any additional supervision from auxiliary model predictions or ground-truth labels. 4. We evaluate on both nuScenes <ref type="bibr">[3]</ref> and Waymo Open <ref type="bibr">[34]</ref> and demonstrate not only state-of-theart performance in terms of overall depth accuracy and error, but also show large improvements on moving objects by up to 62% relative gain in accuracy and 68% relative reduction in error, while achieving up to 71.8% in F1 score in motion segmentation without any supervision.</p><p>2 Related Work</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Unsupervised Monocular Depth Estimation</head><p>The framework for jointly learning monocular depth and ego-motion from unlabeled consecutive frames was first explored in <ref type="bibr">[48,</ref><ref type="bibr">36]</ref>, where the objective was posed as a novel-view synthesis problem.</p><p>Here, the monocular depth estimated from the target frame is coupled with the predicted ego-motion to warp the reference frame to be photometrically consistent with the target frame. Following these works, 3D geometric consistency <ref type="bibr">[28]</ref> and depth prediction consistency <ref type="bibr">[1]</ref> were imposed across consecutive frames to further constrain the unsupervised learning objective. Furthermore, discrete volumes <ref type="bibr">[19]</ref>, uncertainty estimation <ref type="bibr">[30]</ref>, optical flow based pose estimation <ref type="bibr">[47]</ref>, minimal projection loss with auto-masking <ref type="bibr">[10]</ref>, and multiple input frames during inference <ref type="bibr">[40,</ref><ref type="bibr">25]</ref> were also proposed to improve depth predictions and mitigate influence of occlusion and relative stationary pixels.</p><p>Unsupervised Scene Flow. In addition to predicting depth from a single frame, a closely related task of scene flow estimation -obtaining both the 3D structure and 3D motion from two temporally consecutive images -can also be learned by leveraging the same novel-view reconstruction objective. When trained on sequences of stereo-frames, scene flow can be estimated from both stereo <ref type="bibr">[18,</ref><ref type="bibr">41]</ref> and monocular <ref type="bibr">[16,</ref><ref type="bibr">17]</ref> inputs during inference. Additionally, DRAFT <ref type="bibr">[13]</ref> learned from monocular sequences only by utilizing synthetic data and multiple consecutive frames during inference.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Mitigating Static Scene Constraint</head><p>In essence, the reconstruction objective encourages pixels to be predicted at an appropriate distance away to explain its apparent motion on the image plane, when coupled with the predicted ego-motion. This assumes that all pixel motion can be sufficiently modeled by depth and camera ego-motion alone, which implies an underlying static scene. However, since dynamical objects are common in the wild, such static scene assumption is often violated. To disambiguate independent motion, recent works were proposed to leverage stereo-view information <ref type="bibr">[38,</ref><ref type="bibr">26,</ref><ref type="bibr">11]</ref>, additional input modalities <ref type="bibr">[45,</ref><ref type="bibr">8]</ref>, synthetic data <ref type="bibr">[13]</ref>, supervised segmentation task <ref type="bibr">[21]</ref>, and auxiliary monocular depth network <ref type="bibr">[33]</ref>. Extending from these methods, additional works proposed to mitigate the negative effects by modeling the behavior of dynamical objects without the use of additional modalities and labels.</p><p>Modeling Independent Motion via Optical Flow. Although an explainability mask <ref type="bibr">[48]</ref> can be used to ignore the independently moving regions, recent works exploited the jointly learned optical flow to refine the depth prediction under non-rigid scene settings. This includes predicting a residual optical flow <ref type="bibr">[43,</ref><ref type="bibr">35]</ref> to account for dynamical objects and enforcing forward-backward flow consistency <ref type="bibr">[49]</ref> to discount dynamical regions. EPC++ <ref type="bibr">[27]</ref> directly modeled the dynamical objects by integrating its depth, ego-motion, and optical flow predictions. Additionally, CC <ref type="bibr">[31]</ref> proposed a coordinated learning framework for joint depth and optical flow estimation assisted by a segmentation branch.</p><p>Modeling Independent Motion via 3D Non-Rigid Flow Field. Instead of modeling dynamical objects via 2D optical flow, additional works proposed to explicitly model their 3D independent flow field to encourage accurate depth learning for dynamical objects. To facilitate independent motion learning, various methods <ref type="bibr">[4,</ref><ref type="bibr">12,</ref><ref type="bibr">22,</ref><ref type="bibr">23,</ref><ref type="bibr">2,</ref><ref type="bibr">32]</ref> leveraged semantic priors from off-theshelf pretrained detection or segmentation models to estimate regions that are "possibly moving." Additionally, Dyna-DepthFormer <ref type="bibr">[46]</ref> used multi-frame information to compute the depth map, while iteratively refining the residual 3D flow field via a jointly trained motion network. Finally, Li et al. <ref type="bibr">[24]</ref> proposed to jointly learn monocular depth, ego-motion, and residual flow field via a sparsity loss and RM-Depth <ref type="bibr">[15]</ref> improved upon it via an outlier-aware regularization loss. Unlike <ref type="bibr">[24,</ref><ref type="bibr">15]</ref> where the residual/independent flow is predicted directly, we propose to model the 3D independent flow field via the complete scene flow, which facilitates training and effectively enforces sparsity.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Motivation and background</head><p>When a camera moves in a rigid scene, the apparent motion of image pixels is entirely explained by (a) their 3D position relative to the camera, and (b) the motion of the camera. This fact is used by unsupervised techniques that learn to predict depth from unlabeled videos captured as a camera moves through the scene (as in driving footage). Concretely, one network predicts depth from a target frame and another predicts the motion of the camera from the source frame to the target frame. The two predictions are then used to reconstruct a target frame from the source frame, and a reconstruction loss would serve as the primary training objective.</p><p>What happens if there are moving objects in the scene? Clearly, depth and camera-motion are not sufficient to explain the apparent image motion of these objects, resulting in a high reconstruction loss for these dynamical regions. In principle, the motion of these objects are unpredictable from a single frame, and so even though the network sees a high loss for these objects, the best it can do is to fit the average case of a static object. As such, in principle, moving objects should not be a concern for learning-based techniques. However, in practical driving scenes, there is a large class of moving objects for which the network can in fact minimize the reconstruction loss by predicting an incorrect depth estimate. We describe this class below.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Epipolar ambiguity in driving scenes:</head><p>Consider the simple case of a pinhole camera moving forward along the Z axis (i.e., along its viewing direction). This is in fact the common case of a car driving down the road. In this case, the image location (x, y) and corresponding optical flow ( &#7819;, &#7823;) for a 3D point (X, Y, Z) in the world would be:</p><p>Consider what happens when this 3D point is on an object moving collinear to the camera (e.g., cars in front of the ego-car, or oncoming traffic). In this case, there are two contributions to &#379;: the camera motion and the independent motion of the object. Thus, given ego-motion, one can produce the same optical flow by adding the appropriate amount of independent motion to &#379;, or changing the depth Z.</p><p>For example, an object can appear to move faster if it is either closer and static (i.e., Z is smaller) or it is farther and moving towards the camera (i.e., &#379; is larger). This is a special case of epipolar ambiguity <ref type="bibr">[42]</ref>. This implies that it is possible to model independent motion under the static scene constraint using an erroneous depth estimation. Unfortunately, there are statistical regularities that enable such erroneous learning.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Statistical regularities:</head><p>In self-driving scenes, there is often enough information in object appearance to predict its motion even from a single frame. The high capacity monocular depth network can learn to recover this information, and then alter its depth prediction to better reconstruct the target frame. For instance, in Figure <ref type="figure">1</ref> (b) the depth network may have learnt to recognize the backs of cars on the same or nearby lanes. In the training data, cars seen from the back often travel in the same direction with similar speed as the ego car, and thus have a very small optical flow in consecutive frames. The depth network therefore predicts that the car should be very far away; thus correctly predicting its optical flow, but incorrectly predicting its depth. A similar effect happens when the white van is recognized in its frontal view on the opposite lane, and the depth network predicts it to be closer to the ego-car. This allows the depth network to model the statistically-likely higher optical flow as a result of the object moving towards the camera. Furthermore, the speed of the object can also be roughly estimated from object identity (pedestrian &lt; cyclist &lt; car) and background context (residential &lt; city &lt; highway). Therefore, by recognizing the statistical regularities that give away object motion, the depth model can model the behavior of dynamical objects by predicting incorrect depth values to minimize the reconstruction objective.</p><p>This suggests that simply training a depth network on dynamic scenes is not a good solution, and an alternative framework is needed. However, we do note that learning these statistical regularities about object motion is much harder than learning the depth of the static background, since the background is a lot more consistent in its optical flow across videos and frames. Thus, we observe that this kind of overfitting to dynamical objects only happens later in training; a fact we use below.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Method</head><p>Following past works, we formulate the learning objective as a novel-view synthesis where the target frame is reconstructed from the source frame. As shown in Section 3, modeling the rigid flow induced by camera motion alone is not sufficient for modeling the behavior of dynamical objects and causes performance degradation for moving objects. We address this by learning a separate 3D flow field that captures the independent motion of dynamical objects.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Architecture</head><p>The proposed architecture (Figure <ref type="figure">2</ref>) contains two components that collaborate together to explain the apparent pixels motion on the image plane. the 3D rigid flow field (motion induced by camera while assuming a static scene), which includes the depth network D and ego-motion pose network P. Section 4.1.2 details the independent motion networks that model the 3D independent flow field (motion of dynamical objects), which includes the complete flow network C and motion mask network M. 4.1.1 Rigid Motion Networks: Depth D &amp; Pose P</p><p>Given a source frame I s and a target frame I t , we compute the 3D rigid flow induced by camera motion, F R (p t ), for each target pixel p t as follows. We first obtain the monocular depth map d t by passing I t to the depth network D (Eq. 2). We pass I s and I t to the ego-motion pose network P to obtain the relative camera pose T t !s (rotation and translation) (Eq. 3). We then use the depth and inverse camera intrinsics K<ref type="foot">foot_0</ref> to back-project every target pixel p t to compute its 3D location P t , and transform P t into its corresponding 3D location, Ps , in the source frame via T t !s . (Eq. 4). The "rigid flow" induced by camera motion is then simply F R (p t ) = Ps P t .<ref type="foot">foot_1</ref> </p><p>In addition to the rigid flow F R , we also wish to model object motion via the 3D independent flow, denoted as F I . With independent motion explicitly modeled by F I , we reformulate Ps as Ps = (F I (p t ) + F R (p t ) + P t ) to integrate the contribution of the independent flow vector F I (p t ). However, directly estimating F I via a network turns out to be difficult for two reasons:</p><p>(a) Learning. During training, the network will need to fill in the missing independent motion vector that is appropriate for the current separately predicted monocular depth and ego-motion for a correct reconstruction: a "moving target" during training. Furthermore, it is intuitively much more difficult to learn and predict independent motion directly when the apparent motion in the input frames consists of both rigid and independent motion entangled together, especially in the ambiguous scenarios illustrated in Section 3.</p><p>(b) Regularization. Adding to this complexity, F I (p t ) should be non-zero if and only if the pixel I t (p t ) is independently moving. One could regularize this network to encourage sparsity, but early on when depth and ego-motion predictions are noisy, a high sparsity term would encourage this network to turn off entirely. At the other end of the spectrum, a weak sparsity regularization allows independent flow F I to be active on static regions of the scene, which would "explain away" the rigid motion F R (p t ) when computing Ps and corrupt the learning signal for depth estimation. Also, conventional sparsity regularization on F I (e.g., L 1/2 sparsity loss <ref type="bibr">[24]</ref>) would dampen the magnitude of predicted motion, which reduces F I 's capacity to model fast or far-away moving objects.</p><p>To address these issues, we propose to decompose the prediction of independent flow F I (p t ) in two:</p><p>(1) predicting whether pixel I t (p t ) is independently moving and (2) predicting how it is moving. For (1), we model the probability of independent motion as a binary motion segmentation task where motion mask network M takes the consecutive frames I t and I s and predict a per-pixel motion mask M as shown in Eq. 5. For (2), instead of directly predicting the independent motion, we predict the complete scene flow F C (p t ) via a complete flow network C as shown in Eq. 6.</p><p>From these predictions, we formulate the independent flow field as</p><p>, the residual flow between F C and F R gated by the motion mask M . Intuitively, computing Ps = (F I (p t ) + F R (p t ) + P t ) can be thought of as combining the contribution of the complete flow F C (p t ) and rigid flow F R (p t ) as a weighted average via M (p t ) (Eq. 8).</p><p>) This formulation directly resolves the two aforementioned issues. For (a), C has a simpler learning objective of modeling the full scene flow with per-pixel predictions, i.e. Ps = F C (p t ) + P t . For (b), the sparsity regularization can be applied to M alone without any impact to the learning of C and its ability to learn the complete scene flow.</p><p>Finally, we compute the reconstruction &#206;t (p t ) by sampling I s at the corresponding pixel coordinate ps via ! ps &#8984; K Ps for every target pixel p t .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Loss Function</head><p>We present the overall loss function in Eq. 9. The photometric loss L recon in Eq. 10 serves as the main learning objective, which evaluates the reconstruction &#206;t via SSIM <ref type="bibr">[39]</ref> and L1 weighted by &#8629;.</p><p>The smoothness loss L s in Eq. 11 regularizes the smoothness of the predicted depth map d t , complete flow F C , and motion mask M . The edge-aware smoothness loss l s (z,</p><p>) is weaker around pixels with high color variation. We also use the meannormalized inverse depth d &#8676; t to discourage shrinking of the estimated depth <ref type="bibr">[37]</ref>.</p><p>The motion consistency loss L c in Eq. 12 computes the flow discrepancy F D (p) between the complete scene flow F C (p) and rigid flow F R (p) for static pixels. The probability of pixel p being static is approximated by</p><p>The motion sparsity loss L m in Eq. 13 considers all pixels with flow discrepancy F D lower than the mean value over the frame as putative background, and encourages the motion mask to be 0 by using the cross entropy against label 0, which is denoted as g(&#8226;).</p><p>) Finally, the above-ground loss L g in Eq. 14 penalizes projected 3D points below the estimated ground plane (via RANSAC) where d g t denotes the mean-normalized inverse depth of the ground plane.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Motion Initialization</head><p>Since the reconstruction loss is the main learning signal in the unsupervised approach, the gradient from the reconstruction loss between I t and &#206;t at pixel p t would propagate through the computed sample coordinate</p><p>Here, although it may be ideal to jointly train all models end-to-end from start to finish, in practice, updating the rigid flow vector F R (p t ) and the independent flow vector F I (p t ) jointly from the start would cause the learning problem to be ill-posed, since each component has the capacity to overfit and explain away the other's prediction. Due to the ambiguity between camera motion and object motion as discussed in Section 3, the image reconstruction error alone is not a strong enough supervisory signal to enforce the accurate prediction of all underlying sub-tasks jointly, as a family of solutions of depth and object motion would all satisfy the training objective, ranging from predicting the whole scene as static with incorrect depth to predicting the scene as moving objects on a flat canvas.</p><p>Here, we offer our key insight that a good initial estimate of motion segmentation M would allow the system to properly converge without arising degenerate solutions. As shown in Eq. 8,</p><p>For any pixel p t , Ps &#8673; F C (p t ) + P t if M (p t ) is near 1, and approximates F R (p t ) + P t if M (p t ) is near 0. From this, it is clear that a good motion mask would route the back-propagating gradient to the complete flow network C via F C if p t is moving and route the gradient to the rigid motion networks D and P via F R (p t ) if p t is static.</p><p>Of course, the question is how one can initialize a good motion mask, since it requires identifying the moving objects. Ideally, moving objects would be identified as the pixels that are poorly reconstructed based on depth and ego-motion alone, but as discussed in Section 3, the depth network has the capacity to alter its depth predictions and reconstruct even the moving objects. Nevertheless, we observe that overfitting to the moving objects in this way is difficult, and only happens in later iterations. In earlier training iterations, reconstruction errors for dynamical pixels are ignored (Appendix B.5).</p><p>To ensure a good motion mask M , we first train a depth network assuming a static scene, but stop updates to the depth network at an early stage. We then initialize the independent motion networks C and M from a coarse depth sketch predicted by this frozen early-stage depth network. Thus, without access to any labels or auxiliary pretrained networks, we obtain an initialization for motion mask M that helps in disambiguating and accurately estimating the rigid flow F R and independent flow F I .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Experiments</head><p>Dataset. While Dynamo-Depth is proposed for general applications where camera motion is informative for scene geometry, we focus our attention on the challenging self-driving setting, where the epipolar ambiguity and the statistical regularities mentioned in Section 3 that lead to erroneous depth predictions are highly prevalent. Specifically, we evaluate on three datasets -Waymo Open <ref type="bibr">[34]</ref>, nuScenes <ref type="bibr">[3]</ref>, and KITTI <ref type="bibr">[9]</ref> with Eigen split <ref type="bibr">[6]</ref>.</p><p>On all datasets, we only use the unlabeled video frames for training; ground truth LiDAR depth is only used for evaluation. We evaluate both overall depth estimation accuracy, as well as accuracy computed separately for static scene and moving objects. For the latter evaluation, we use Waymo Open and nuScenes and identify moving objects by rectifying the panoptic labels with 3D box labels to obtain masks for static/moving objects. It is worth quantifying the number of moveable objects per frame in each dataset. Waymo Open has a mean of 12.12 with a median of 9. In nuScenes, the mean is 7.78 with a median of 7. In KITTI, due to lack of per-frame labels, we approximate using its curated object detection dataset, which only has a mean of 5.26 with a median of 4. Additional dataset information and distribution histograms are found in Appendix C.</p><p>Model and Training setup. The proposed method is trained on four NVIDIA 2080 Ti with a total batch size of 12 and an epoch size of 8000 sampled batches. Adam optimizer <ref type="bibr">[20]</ref> is used with an initial learning rate of 5e-5 and drops to 2.5e-5 after 10 epochs. Motion Initialization lasts 5 epochs and takes place after the depth network and complete flow network have been trained for 1 epoch each. After initialization, the system is trained for 20 epochs, totalling approximately 20 hours. The hyperparameter values are the same for all experiments and are provided in Appendix B.1, along with the rest of the details of the model architecture. To demonstrate the generality of the proposed framework, we adopt two architectures for the depth network D, one with a ResNet18 <ref type="bibr">[14]</ref> backbone from Monodepth2 <ref type="bibr">[10]</ref> and another with a CNN/Transformer hybrid backbone from LiteMono <ref type="bibr">[44]</ref>, denoted as Dynamo-Depth (MD2) and Dynamo-Depth, respectively. To be commensurate with baselines, the encoders are initialized with ImageNet <ref type="bibr">[5]</ref> pretrained weights.</p><p>Metrics. Depth performance is reported via commonly used metrics proposed in <ref type="bibr">[7]</ref>, including 4 error metrics (Abs Rel, Sq Rel, RMSE, and RMSE log) and 3 accuracy metrics ( &lt; 1.25, &lt; 1.25 2 , and &lt; 1.25 3 ). We also report precision-recall curve for evaluating binary motion segmentation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Monocular Depth Estimation</head><p>As shown in Table <ref type="table">1</ref>, our proposed approach outperforms prior arts on both nuScenes and Waymo Open across all metrics, with over 57% and 21% reduction in overall Abs Rel for nuScenes and Waymo Open, respectively. This improvement is significant: we repeat the experiment for Dynamo-Depth on Waymo Open 3 times and obtained a 95% confidence interval of 0.119 &#177; 0.003 for Abs Rel and 0.874 &#177; 0.004 for &lt; 1.25. This suggests the challenge and importance of estimating accurate depth for moving objects in realistic scenes. On KITTI, our approach is competitive with prior art. However, KITTI has fewer moveable objects, which better conforms to the static scene constraint and diminishes the importance in modeling independent motion. For instance, LiteMono <ref type="bibr">[44]</ref>, which does not model independent motion, demonstrates superior performance on KITTI but drastically underperforms in nuScenes and Waymo Open, with both datasets having many more moving objects.</p><p>To further evaluate the effectiveness of our approach in modeling independent motion, we split nuScenes and Waymo Open into static background, static objects and moving objects and evaluate depth estimation performance on each partition. As we adopt our depth model from Monodepth2 <ref type="bibr">[10]</ref> and LiteMono <ref type="bibr">[44]</ref>, in Table <ref type="table">2</ref>, we compare our approach against the respective baseline with the same depth architecture. For simplicity, we report Abs Rel and &lt; 1.25. Notably, by explicitly modeling (a) Input Frames (b) Monocular Depth (c) Rigid Flow (d) Independent Flow (e) Motion Mask independent motion, we observe a consistent and significant improvement on moving objects (M.O.) across both architectures and both datasets, with over 48% relative improvement in accuracy and over 67% relative reduction in error for both architectures on Waymo Open. Additionally, we see a substantial improvement on both static moveable objects (S.O.) and static background (S.B.) for both datasets and both architectures. Interestingly, the large reduction in error on static background in nuScenes does not match the corresponding improvement in accuracy, as the large errors on background mainly come from night-time instances where all methods fail, but differ in their respective artifacts (discussed further in Appendix D.2).  [2]  0.136 0.132 0.177 0.201 0.833 0.839 0.778 0.730 0.116 0.110 0.155 0.194 0.878 0.891 0.812 0.750</p><p>In sum, by explicitly modeling independent motion, we are able to outperform the baselines and achieve state-of-the-art performances on both Waymo Open and nuScenes Dataset. Qualitative results are found in Figure <ref type="figure">1</ref> and Figure <ref type="figure">3</ref>, where "Static Scene Constraint" refers to performance of LiteMono <ref type="bibr">[44]</ref> in Figure <ref type="figure">1</ref>. Figure <ref type="figure">4</ref> evaluates the quality of the jointly learned binary motion mask network using precision and recall. We observe a high precision with increasing recall, achieving a F1 score of 71.8% on Waymo Open <ref type="bibr">[34]</ref>. Note that this segmentation quality is achieved without any labels. On nuScenes, Dynamo-Depth achieves a F1 score of 42.8% with 57.2% on day-clear conditions and 21.1% on all other conditions. Notably, the motion mask network is able to segment out small dynamical objects, such as the cyclist in the first row of Figure <ref type="figure">3</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Motion Segmentation and Method Ablation</head><p>In addition, we show our ablation results on Waymo Open in Table <ref type="table">3</ref>. First, we found that ablating the motion consistency loss removes the regularization on the complete flow prediction, which causes the degenerate solution of moving objects on a flat canvas, as indicated by the poor segmentation performance in Figure <ref type="figure">4</ref>. Similarly, by ablating motion initialization, initial independent motion prediction lead to large reconstruction errors, which diverges depth training. In addition, we observe that ablating the above ground prior preserves the performance of motion segmentation and depth of moving objects, but degrades the performance of depth on static background. Intuitively, this prior regularizes the structural integrity of the ground plane. Finally, we observed that the original set of hyperparameter values leads to training divergence when ablating the ImageNet pretrained weights. To compensate, we increase the initial number of epochs for depth learning from 1 to 2 (marked as 7 [2] ) without performing any hyperparameter sweeps.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>In this work, we identify the effects of dynamical objects in unsupervised monocular depth estimation with static scene constraint. To mitigate the negative impacts, we propose to jointly learn depth, ego-motion, 3D independent motion and motion segmentation from unlabeled videos. Our key insight is that a good initial estimation of motion segmentation encourages joint depth and independent motion learning and prevents degenerate solutions from arising. As a result, our approach is able to achieve state-of-the-art performance on both Waymo Open and nuScenes Dataset.</p><p>Limitations and Societal Impact. Our work makes a brightness consistency assumption, where the brightness of a pixel will remain the same. Although common in optical flow, this assumption limits the our method's ability to model scenes with dynamical shadows, multiple moving light sources, and lighting phenomenons (e.g., lens flare). In addition, our work does not introduce any foreseeable societal impacts, but will generally promote more label-efficient and robust computer vision models.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A Visualizations</head><p>In Figure <ref type="figure">5</ref>  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B Implementational Details B.1 Hyperparameters</head><p>Please refer to Table <ref type="table">4</ref> for the hyperparameters used for training. The values are found via Waymo Open and kept the same for other datasets. The trade-off coefficient &#8629; and depth smoothness coefficient sd are set to 0.85 and 0.001, respectively, as in <ref type="bibr">[10]</ref>. The motion smoothness coefficient sc is set to 0.001 to be consistent with sd and was not tuned further. The mask smoothness coefficient sm is set to a much higher value of 0.1 to remove sporadic false positives induced by high frequency image features such as trees and buildings. Since both rigid motion F R and complete motion F C have relatively small magnitudes, we set the motion consistency coefficient c to be 5.0 to properly enforce consistency. Due to the high loss values outputted by binary cross entropy, we set the mask sparsity coefficient to be 0.04 to accommodate. The above ground coefficient g is set to 0.1 after searching across the values 0.01, 0.1, and 1.0.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B.2 Architectural Details</head><p>The depth network D is adopted from two architectures, one with a ResNet18 <ref type="bibr">[14]</ref> backbone from Monodepth2 <ref type="bibr">[10]</ref> and another with a CNN/Transformer hybrid backbone from LiteMono <ref type="bibr">[44]</ref>, denoted as Dynamo-Depth (MD2) and Dynamo-Depth, respectively. For both versions of our model, the pose network P is adopted from Monodepth2 <ref type="bibr">[10]</ref>. The encoders of the complete flow network C and motion mask network M are shared and have the same architecture as P. To obtain per-pixel predictions, the features of the shared encoder are fed into the the separate decoders with the same architecture as the depth decoder in Monodepth2 <ref type="bibr">[10]</ref> and with output per-pixel dimension of 3 and 1 for C and M, respectively.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B.3 Training Details</head><p>For notational simplicity, Figure <ref type="figure">2</ref> only considers the case of a single source frame I s , while in practice, Dynamo-Depth is trained with two source frames: one frame previous and one frame after the target I t . Here, the two respective reconstructions are rectified via a minimal projection loss proposed in <ref type="bibr">[10]</ref> to obtain &#206;t . To enforce forward-backward consistency, the independent motion networks C and M predict a single independent flow field F I that is used to warp both source frames into the target frame, with the appropriate sign change.</p><p>Following Monodepth2 <ref type="bibr">[10]</ref> and LiteMono <ref type="bibr">[44]</ref>, we perform auto-masking to facilitate learning during depth initialization. Afterwards, auto-masking is turned off as the apparently static pixels may belong to dynamical objects traveling with the ego-camera, in which case auto-masking would mask out the corresponding reconstruction loss essential for independent motion learning.</p><p>There is a linear weight ramp for all loss terms that include F C and M at the beginning of each training stage, with the length of 2666 iterations for Waymo and nuScenes, and 8000 iterations for KITTI due to the its limited number of moving objects.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B.4 Ground Plane Estimation</head><p>Concretely, 3D projected points (P t in Eq. 4) belonging to the bottom half of the image are sampled to construct the ground plane d g t via RANSAC (5 points are selected per iteration, for a total of 100 iterations). This assumption does break under cases of traffic jams, but due to the rare occurrence of these scenarios for this learning task assuming a moving camera, the negative effects are limited.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B.5 Difficulties in Overfitting to Dynamical Objects</head><p>In Figure <ref type="figure">6</ref>, we show a qualitative example where a depth network learned with static scene constraint (LiteMono <ref type="bibr">[44]</ref> in this case) would ignore the high reconstruction loss in earlier iterations in (b) and overfit to the moving objects via erroneous depth predictions only in later iterations in (c)-(f).  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C Dataset Details</head><p>We provide additional information of the three datasets used for evaluation.</p><p>For the Waymo Open Dataset <ref type="bibr">[34]</ref>, 76,852 front camera image-triplets from the provided train set containing 798 video sequences are used for training while 2,216 front camera images uniformly sampled from the provided validation set containing 202 video sequences are used for evaluation.</p><p>During training, frames are downsampled to 480 &#8677; 320. We rectify the panoptic labels <ref type="bibr">[29]</ref> with 3D box labels to obtain the corresponding masks for static and moving objects. For the nuScenes Dataset <ref type="bibr">[3]</ref>, 79,760 front camera image-triplets from the provided train set containing 700 video sequences are used for training while 6019 front camera images from the official validation set containing 150 video sequences are used for evaluation (of which 4449 are day-clear). Following <ref type="bibr">[8]</ref>, we consider a sequence to be in the day-clear subset if its description does not contain "night" or "rain". During training, frames are downsampled to 512 &#8677; 288. We rectify the panoptic LiDAR labels with annotated 3D bounding boxes to obtain motion attributes for LiDAR points.</p><p>Notably, as our method learns to explicitly model independent motion, there is no filtering based on camera velocity recordings when constructing the training dataset.</p><p>For the KITTI Dataset <ref type="bibr">[9]</ref>, we follow the Eigen split <ref type="bibr">[6]</ref> with 39,180 image-triplets used for training and 697 images used for evaluation. During training, frames are downsampled to 640 &#8677; 192.</p><p>Finally, we plot the histogram of the number of moveable objects per frame for all three datasets. Shown in Figure <ref type="figure">7</ref>, Waymo Open Dataset has the most moveable objects with a mean of 12.12, followed by nuScenes with a mean of 7.78. Due to the lack of per-frame object labels in KITTI, we evaluate on its curated object detection dataset, which has a mean of 5.26. We note that the real distribution should be much tighter near 0, compared to the detection dataset with all images containing at least 1 moveable object. (b) Monocular Depth (c) Rigid Flow (f) Independent Flow Dynamo-Depth (Ours) Static Scene Constraint Input (d) Monocular Depth (e) Rigid Flow (a) Input Frames D.3 Odometry Evaluation Please refer to Table 8 for odometry evaluation for Dynamo-Depth and Dynamo-Depth (MD2) on both nuScenes day-clear subset and Waymo Open Dataset. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D.4 Scene Flow Comparisons</head><p>We were not able to compare against the mentioned related works in unsupervised scene flow estimation due to the large difference in methodology (stereo-view during training <ref type="bibr">[18,</ref><ref type="bibr">41,</ref><ref type="bibr">16,</ref><ref type="bibr">17]</ref>) and lack of codebase for reproducibility <ref type="bibr">[13]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E Limitations</head><p>As shown in Figure <ref type="figure">10</ref>, dynamical shadows and moving light sources in low-light conditions violate the brightness consistency assumption, which results in erroneous predictions of motion segmentation and monocular depth, respectively.</p><p>(a) Input Frames (b) Monocular Depth (c) Rigid Flow (d) Independent Flow (e) Motion Mask </p></div><note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0"><p>F C , F R , F I and F I + F R are all 3D flow fields visualized as optical flow on the image plane.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1"><p>! &#8226; denotes the conversion from Cartesian to homogeneous coordinate.</p></note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2"><p>All motion segmentation in (e) are uniformly visualized with a range of [0, 1], and corresponding video sequences that contain each example are found in https://dynamo-depth.github.io.</p></note>
		</body>
		</text>
</TEI>
