What could two garden photos honestly tell us?

A wide garden photo makes tomato watching harder than it sounds. Fruit can hide behind leaves, move in the wind, or be picked between photos. Shade and camera movement can make an unchanged tomato look different.

We could not promise an exact count, follow every fruit across images, or forecast harvest day from that view. We chose a narrower question:

Can GardenSeer notice that visible ripening appears to have increased since a recent comparable photograph?

“Appears” matters here. We are asking about visible change in an image, not diagnosing a plant or telling anyone when to harvest.

We started by labeling the photos ourselves

We reviewed 18 private garden images by hand. We drew a boundary around each tomato we could confirm, so the color check would look inside the fruit instead of counting every orange flower or red patch in the scene. These boundaries are called masks.

18reviewed images
190object masks
126confirmed tomatoes
56warm-color hard negatives
8ambiguous objects excluded

We marked 56 warm-colored lookalikes that were not tomatoes, including the kinds of objects that had fooled the earlier color check. In model testing these are hard negatives. They helped us test whether the software could separate likely fruit from orange flowers and other distractions. Eight uncertain objects stayed in the review record but were excluded from training and color scoring.

We trained a private experimental Mask R-CNN model with TorchVision on 14 earlier images and saved four later images to check it. We chose the score threshold before looking at those four, rather than adjusting it afterward to make the result look better.

What the test images actually show

The numbers need context. These are approved, privacy-safe crops from the actual private test, not mockups or generated pictures.

Sanitized CVAT canvas crop showing tomato objects outlined in a garden photograph
Step 1 — A person outlined the tomatoes. This CVAT canvas comes from one of the 18 test images. Blue outlines mark objects reviewed as tomatoes. Dates, view name, filename, frame number, account details, and object IDs were removed. These outlines are human labels, not software detections.
Six neutrally labeled tomato-mask samples from the private mask-local color review
Step 2 — Color was checked inside each mask. The scorer ranked all 126 confirmed tomato masks. These six examples retain the original pixels and mask overlays but omit filenames, dates, ranks, annotation IDs, and individual scores. The red tint marks a human-reviewed tomato area; it does not mean the tomato was judged ripe.

Privacy boundary: These approved images were cropped and redacted without generative editing. Exact dates, camera directions, filenames, object IDs, individual scores, account details, and image metadata were removed. Full captures, annotations, storage references, and model weights remain private and off this site.

It missed many tomatoes, but saw the broader change

The detector was not good enough to count fruit. At the score threshold chosen before evaluation, tomato-box precision was 46.2% and recall was 31.6% using an overlap threshold of 0.50. The stricter mask check scored 38.5% precision and 26.3% recall.

EvaluationPrecisionRecallWhat it supports
Tomato boxes at IoU 0.5046.2%31.6%Diagnostic only; not exact counts
Tomato masks at IoU 0.5038.5%26.3%Diagnostic only; not fruit identity
Combined ripe-color event4 of 4 held-out frames classified as expectedFeasibility signal only

The broader ripening-change check gave a better early signal. It stayed quiet on both earlier held-out views and fired on both later views, matching the expected garden-level result on all four frames.

Sanitized close crop from an earlier held-out no-event frame with red tomato proposal boxes
Step 3A — Earlier view, no event. The red rectangles show candidate tomato boxes over the original image pixels. Labels, scores, date, camera direction, and wider garden context were removed. This view did not trigger the garden-level event.
Sanitized close crop from a later held-out event frame with overlapping tomato proposal boxes
Step 3B — Later view, event. This view triggered the garden-level event. The overlapping red boxes show a known problem: the software can propose the same fruit more than once. That is another reason not to use it for an exact count.

Why 4 of 4 is not an accuracy score: The images span only two dates, and both later views probably show the same fruit. Four frames are not four independent ripening events. This result supports another test, not a dependable alert rate.

What the private workflow does now

We built a small private workflow to test the idea without sending alerts. When a new image passes basic checks, the system can compare it with a recent usable image from the same view and record a possible garden-level ripening change.

1Validate

Set aside photos too poor to compare.

2Compare

Use a recent, usable photo from the same view.

3Guard

Stop when image quality or camera movement makes the result shaky.

4Record

Save why it flagged a change, its confidence, the photos, thresholds, and method version.

5Review

Let a person confirm or reject the private candidate.

A waiting period and a check across camera views help prevent one visible change from creating a burst of duplicate records. We save the threshold and method version with each candidate, so later reviewers can understand how it was produced.

This is shadow mode: no push notification, email, text, or garden action follows a candidate. The system can make mistakes privately while we learn where it fails.

What four held-out images cannot tell us

We do not yet know how this method behaves across many new days, tomato varieties, glare, moving shade, wind, rain, pruning, harvest, blocked views, or a camera moved back to an old position. Nor have we shown that it catches every obvious ripening change.

  • We do not have a dependable exact tomato count.
  • We do not have reliable fruit identity across dates or views.
  • We do not have a calibrated days-to-ripen forecast.
  • We do not yet know the real false-alert burden for a grower.
  • We do not yet know how many obvious events the system misses.

These unknowns shape the next test. They also keep any future message cautious: “New visible ripening may have appeared,” not a precise count or a promise about harvest day.

What we need to see before sending an alert

The next check needs fresh photos that did not shape the current rule. We will keep the threshold and method fixed while a person reviews possible changes, obvious misses, unusable images, and camera-movement problems.

  1. Collect new photos across ordinary changes in light and weather.
  2. Record every private candidate and every obvious ripening change it misses.
  3. Measure false alarms and missed changes at the garden level, not as fruit counts.
  4. Count the times poor images or camera movement make a comparison unusable.
  5. Check whether the waiting period and cross-view duplicate check keep repeated records under control.
  6. Decide in advance how much review work would be acceptable.

Only then should we consider an optional, carefully worded notification. If the method fails, the paired photos and review decisions should still show us where it went wrong.

What this means

A useful observation needs a record behind it.

This test did not produce a reliable tomato counter. It suggests a narrower possibility: a camera may help flag visible change if it also keeps the earlier image, shows its uncertainty, and leaves room for a person to say the system was wrong.