A Visual Primer to OpenCommand
Introduction
Command is fundamental to pitching and unusually hard to measure.
Over the years, the baseball community made some progress measuring command. COMMANDf/x used the catcher’s glove at release and reported a league-average fastball miss of 13.8 inches. Inside Edge instead has trained observers infer every target manually; Driveline cites an average miss of roughly 11 inches for MLB fastballs. Location+ used a machine learning approach on the end locations and their run values.
OpenCommand is a computer-vision based model that achieves an average miss of 9.91 inches. It’s open-sourced, which means the code and the data are both open to public scrutiny.
How It Works
OpenCommand primarily takes clues from the catcher’s glove.
It translates the glove toward the typical locations of the pitcher’s pitch type, and then shrinks it based on glove dependence.
In summary:
- Detect the glove, the ball, and the broadcast strike zone in every frame, then turn screen pixels into a real-world glove position.
- Pick the frame where the catcher sets the target.
- Shift that position toward where the pitcher’s pitch type usually finishes.
- Shrink the shift by how much that pitcher’s target actually follows the glove.
1. CV Detection
OpenCommand runs YOLO11 detectors, trained on more than 100,000 samples, to find the catcher’s glove, the ball, and the broadcast strike zone graphic in every frame.
The ball and strike zone detections are to turn screen coordinates (glove’s screen_xy) to field coordinates (glove_xyz).
It fits a pinhole camera model for each pitch: camera_xyz and zoom/pan/tilt/roll.
Yellow box: broadcast strike zone detection. Thin white circle: catcher glove detection. Thick white circle: glove detection projected onto strike zone plane.
2. Choosing Target Frame
OpenCommand primarily takes the highest glove position in the pre-pitch window.
That works most of the time. It fails when there is a runner on second and the catcher shows a decoy before moving to the real target.
As a fix, OpenCommand essentially takes the last glove peak by penalizing earlier peaks.
3. Offset
Pitchers don’t necessarily throw at the glove. Here’s an example:
So, OpenCommand shifts the glove by that pitcher’s average offset on that pitch type.
An extreme example is Logan Webb‘s changeup. It typically finishes about fifteen inches away from the glove.
4. Glove Dependence
Here’s an interesting observation: Shane McClanahan‘s fastball targets barely move when the glove moves. On the other hand, Paul Skenes‘ catcher almost exclusively sets up in a small area up and glove side, and each inch of glove movement means more than one inch of target movement.
OpenCommand fits four slopes per pitcher and pitch type (xx, xz, zx, zz) for how far the target moves per inch of glove.
For example, if the target followed the glove one for one, Ohtani’s targets would spread 4.6 inches sideways and 5.6 inches up. Fitting his real dependence tightens that to 2.4 by 1.4.
Validations
The two adjustments make significant differences in the resulting target maps.
Command stabilizes as quickly as Stuff+. Inferred miss reaches a Cronbach’s alpha of 0.5 after about 55 pitches, where Location+ needs about 600 in the same analysis.
It holds up between seasons, too. Across 422 pitchers with 200 or more pitches in both, inferred miss correlates 0.84 from one year to the next. Stuff+ manages 0.74, strikeout rate 0.59, Location+ 0.46, walk rate 0.43, and home run rate 0.18. Only fastball velocity, at 0.93, is stickier.
Per pitch, run value climbs steadily with miss distance and crosses break-even between 11 and 12 inches, about two inches past the league median miss.
It also predicts walk rate faster than walk rate itself does. Below roughly 600 pitches, a pitcher’s inferred miss tracks his rest-of-season walk rate better than his own walk rate, and better than his Location+ at every sample size. If Stuff+ is a fast version of strikeout rate, OpenCommand is a fast version of walk rate.
Added to Stuff+, inferred miss predicts rest-of-season xERA a little better than Stuff+ alone at every sample size.
OpenCommand tracks nearly every pitch it can. Most untracked pitches are due to broadcasts not drawing a strikezone in the video, or cutting to the center field camera too late.
You can find Tom at @tomdoyo and Luke at @lukeblomm on X (Twitter).
The post A Visual Primer to OpenCommand appeared first on Baseball Prospectus.