diff --git a/y2023/vision/aprilrobotics.cc b/y2023/vision/aprilrobotics.cc
index 7ccde65..3ad6671 100644
--- a/y2023/vision/aprilrobotics.cc
+++ b/y2023/vision/aprilrobotics.cc
@@ -8,6 +8,8 @@
 
 DEFINE_double(min_decision_margin, 75.0,
               "Minimum decision margin (confidence) for an apriltag detection");
+DEFINE_int32(pixel_border, 3,
+             "Size of image border within which to reject detected corners");
 
 namespace y2023 {
 namespace vision {
@@ -18,13 +20,12 @@
                                              std::string_view channel_name)
     : calibration_data_(event_loop),
       ftrace_(),
-      image_callback_(
-          event_loop, channel_name,
-          [&](cv::Mat image_color_mat,
-              const aos::monotonic_clock::time_point eof) {
-            HandleImage(image_color_mat, eof);
-          },
-          chrono::milliseconds(5)),
+      image_callback_(event_loop, channel_name,
+                      [&](cv::Mat image_color_mat,
+                          const aos::monotonic_clock::time_point eof) {
+                        HandleImage(image_color_mat, eof);
+                      },
+                      chrono::milliseconds(5)),
       target_map_sender_(
           event_loop->MakeSender<frc971::vision::TargetMap>("/camera")),
       image_annotations_sender_(
@@ -147,6 +148,8 @@
       .stride = image.cols,
       .buf = image.data,
   };
+  const uint32_t min_x = FLAGS_pixel_border;
+  const uint32_t max_x = image.cols - FLAGS_pixel_border;
 
   ftrace_.FormatMessage("Starting detect\n");
   zarray_t *detections = apriltag_detector_detect(tag_detector_, &im);
@@ -163,6 +166,13 @@
     zarray_get(detections, i, &det);
 
     if (det->decision_margin > FLAGS_min_decision_margin) {
+      if (det->p[0][0] < min_x || det->p[0][0] > max_x ||
+          det->p[1][0] < min_x || det->p[1][0] > max_x ||
+          det->p[2][0] < min_x || det->p[2][0] > max_x ||
+          det->p[3][0] < min_x || det->p[3][0] > max_x) {
+        VLOG(1) << "Rejecting detection because corner is outside pixel border";
+        continue;
+      }
       VLOG(1) << "Found tag number " << det->id << " hamming: " << det->hamming
               << " margin: " << det->decision_margin;
 
