diff --git a/aos/vision/blob/codec.cc b/aos/vision/blob/codec.cc
index 51ae129..be11281 100644
--- a/aos/vision/blob/codec.cc
+++ b/aos/vision/blob/codec.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/codec.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 size_t CalculateSize(const BlobList &blob_list) {
   size_t count = Int16Codec::kSize;
@@ -55,5 +54,4 @@
   return data;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/codec_test.cc b/aos/vision/blob/codec_test.cc
index d510e58..889dfbb 100644
--- a/aos/vision/blob/codec_test.cc
+++ b/aos/vision/blob/codec_test.cc
@@ -4,8 +4,7 @@
 
 #include "gtest/gtest.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 TEST(CodecTest, WriteRead) {
   BlobList blobl;
@@ -34,5 +33,4 @@
   EXPECT_EQ(real_len, CalculateSize(blobl));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/contour.cc b/aos/vision/blob/contour.cc
index 6a56f9e..5e82d4c 100644
--- a/aos/vision/blob/contour.cc
+++ b/aos/vision/blob/contour.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/contour.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 // Half-loop of a contour.
@@ -191,5 +190,4 @@
   return plst[0].st;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/find_blob.cc b/aos/vision/blob/find_blob.cc
index ab65e34..8ee8e92 100644
--- a/aos/vision/blob/find_blob.cc
+++ b/aos/vision/blob/find_blob.cc
@@ -2,8 +2,7 @@
 
 #include "aos/vision/blob/disjoint_set.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 struct BlobBuilder {
   BlobBuilder(int i) : min_y(i) {}
@@ -173,5 +172,4 @@
   return blob_set.MoveBlobs();
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/hierarchical_contour_merge.cc b/aos/vision/blob/hierarchical_contour_merge.cc
index c7de4de..06c34d4 100644
--- a/aos/vision/blob/hierarchical_contour_merge.cc
+++ b/aos/vision/blob/hierarchical_contour_merge.cc
@@ -5,8 +5,7 @@
 
 #include "aos/vision/blob/disjoint_set.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 namespace {
 
@@ -248,5 +247,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/move_scale.cc b/aos/vision/blob/move_scale.cc
index 1caa479..45337fc 100644
--- a/aos/vision/blob/move_scale.cc
+++ b/aos/vision/blob/move_scale.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/move_scale.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage MoveScale(const RangeImage &img, int dx, int dy, int scale) {
   std::vector<std::vector<ImageRange>> out_range_list;
@@ -38,5 +37,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/range_image.cc b/aos/vision/blob/range_image.cc
index bf8d09f..92f77cc 100644
--- a/aos/vision/blob/range_image.cc
+++ b/aos/vision/blob/range_image.cc
@@ -3,8 +3,7 @@
 #include <algorithm>
 #include <cmath>
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 namespace {
 
 // Merge sort of multiple range images into a single range image.
@@ -142,5 +141,4 @@
   return area;
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/test_utils.cc b/aos/vision/blob/test_utils.cc
index 7664f8a..0e7240f 100644
--- a/aos/vision/blob/test_utils.cc
+++ b/aos/vision/blob/test_utils.cc
@@ -1,7 +1,6 @@
 #include "aos/vision/blob/test_utils.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage LoadFromTestData(int mini, const char *data) {
   // Consume initial return.
@@ -39,5 +38,4 @@
   return RangeImage(mini, std::move(rows));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/threshold.cc b/aos/vision/blob/threshold.cc
index c4f8a9e..5403bbd 100644
--- a/aos/vision/blob/threshold.cc
+++ b/aos/vision/blob/threshold.cc
@@ -2,8 +2,7 @@
 
 #include "aos/logging/logging.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 namespace {
 
 constexpr int kChunkSize = 8;
@@ -123,5 +122,4 @@
   }
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/threshold_test.cc b/aos/vision/blob/threshold_test.cc
index 67f7116..4b23f3e 100644
--- a/aos/vision/blob/threshold_test.cc
+++ b/aos/vision/blob/threshold_test.cc
@@ -9,9 +9,7 @@
 #include "aos/vision/blob/range_image.h"
 #include "aos/vision/image/image_types.h"
 
-namespace aos {
-namespace vision {
-namespace testing {
+namespace aos::vision::testing {
 
 class YuyvYThresholdTest : public ::testing::Test {
  public:
@@ -189,6 +187,4 @@
   }
 }
 
-}  // namespace testing
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision::testing
diff --git a/aos/vision/blob/transpose.cc b/aos/vision/blob/transpose.cc
index fe4d4a9..b59e8c5 100644
--- a/aos/vision/blob/transpose.cc
+++ b/aos/vision/blob/transpose.cc
@@ -3,8 +3,7 @@
 #include <algorithm>
 #include <limits>
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 RangeImage Transpose(const RangeImage &img) {
   enum EventT {
@@ -87,5 +86,4 @@
   return RangeImage(min_y, std::move(rows));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
diff --git a/aos/vision/blob/transpose_test.cc b/aos/vision/blob/transpose_test.cc
index 6582b5d..a4a9705 100644
--- a/aos/vision/blob/transpose_test.cc
+++ b/aos/vision/blob/transpose_test.cc
@@ -7,8 +7,7 @@
 
 #include "aos/vision/blob/test_utils.h"
 
-namespace aos {
-namespace vision {
+namespace aos::vision {
 
 TEST(TransposeTest, Tranpspose) {
   RangeImage img = LoadFromTestData(20, R"(
@@ -27,5 +26,4 @@
   EXPECT_EQ(ShortDebugPrint({img}), ShortDebugPrint({c}));
 }
 
-}  // namespace vision
-}  // namespace aos
+}  // namespace aos::vision
