diff --git a/aos/vision/blob/codec_test.cc b/aos/vision/blob/codec_test.cc
index 53dc3bb..d510e58 100644
--- a/aos/vision/blob/codec_test.cc
+++ b/aos/vision/blob/codec_test.cc
@@ -1,6 +1,7 @@
 #include "aos/vision/blob/codec.h"
 
 #include <algorithm>
+
 #include "gtest/gtest.h"
 
 namespace aos {
diff --git a/aos/vision/blob/range_image.h b/aos/vision/blob/range_image.h
index a735442..d962788 100644
--- a/aos/vision/blob/range_image.h
+++ b/aos/vision/blob/range_image.h
@@ -38,8 +38,12 @@
   RangeImage() {}
 
   bool operator==(const RangeImage &other) const {
-    if (min_y_ != other.min_y_) { return false; }
-    if (ranges_ != other.ranges_) { return false; }
+    if (min_y_ != other.min_y_) {
+      return false;
+    }
+    if (ranges_ != other.ranges_) {
+      return false;
+    }
     return true;
   }
   bool operator!=(const RangeImage &other) const { return !(*this == other); }
diff --git a/aos/vision/blob/stream_view.h b/aos/vision/blob/stream_view.h
index 4cee7b4..0db69e5 100644
--- a/aos/vision/blob/stream_view.h
+++ b/aos/vision/blob/stream_view.h
@@ -1,12 +1,12 @@
 #ifndef _AOS_VISION_BLOB_STREAM_VIEW_H_
 #define _AOS_VISION_BLOB_STREAM_VIEW_H_
 
+#include <memory>
+
 #include "aos/vision/blob/range_image.h"
 #include "aos/vision/debug/debug_window.h"
 #include "aos/vision/image/image_types.h"
 
-#include <memory>
-
 namespace aos {
 namespace vision {
 
diff --git a/aos/vision/blob/threshold.cc b/aos/vision/blob/threshold.cc
index 047d8db..c4f8a9e 100644
--- a/aos/vision/blob/threshold.cc
+++ b/aos/vision/blob/threshold.cc
@@ -29,14 +29,16 @@
     for (int x = 0; x < fmt.w / kChunkSize; ++x) {
       // The per-channel (YUYV) values in the current chunk.
       uint8_t chunk_channels[2 * kChunkSize];
-      memcpy(&chunk_channels[0], current_row + x * kChunkSize * 2, 2 * kChunkSize);
+      memcpy(&chunk_channels[0], current_row + x * kChunkSize * 2,
+             2 * kChunkSize);
       __builtin_prefetch(current_row + (x + 1) * kChunkSize * 2);
 
       for (int i = 0; i < kChunkSize; ++i) {
         if ((chunk_channels[i * 2] > value) != in_range) {
           const int here = x * kChunkSize + i;
           if (in_range) {
-            current_row_ranges.emplace_back(ImageRange(current_range_start, here));
+            current_row_ranges.emplace_back(
+                ImageRange(current_range_start, here));
           } else {
             current_range_start = here;
           }
diff --git a/aos/vision/blob/transpose_test.cc b/aos/vision/blob/transpose_test.cc
index a5c2964..374b5bf 100644
--- a/aos/vision/blob/transpose_test.cc
+++ b/aos/vision/blob/transpose_test.cc
@@ -1,8 +1,9 @@
 #include "aos/vision/blob/transpose.h"
-#include "aos/vision/blob/test_utils.h"
 
 #include <algorithm>
 #include <string>
+
+#include "aos/vision/blob/test_utils.h"
 #include "gtest/gtest.h"
 
 namespace aos {
