Cruise, the driverless car startup acquired by GM for $581 million in 2016, today detailed in a blog post how its fleet of over 180 self-driving Chevrolet Bolts are learning to anticipate human drivers’ behaviors. It’s part of a new series the company is publishing on Medium called How Self-Driving Cars Think, each installment of which will spotlight a different component of Cruise’s autonomous stack.

“Every day, San Franciscans drive through six-way intersections, narrow streets, steep hills, and more. While driving in the city, we check mirrors, follow the speed limit, anticipate other drivers, look for pedestrians, navigate crowded streets, and more,” wrote Cruise software engineer Rachel Zucker and staff software engineer Shiva Ghose. “In SF, each car encounters construction, cyclists, pedestrians, and emergency vehicles up to 46 times more frequently than in suburban environments, and each car learns how to maneuver around these aspects of the city every day.”

One of these obstacles is double-parked cars — lots and lots of double-parked cars. The probability of encountering one in downtown San Francisco is 24:1 compared with the suburbs, according to Cruise, making learning to maneuver around them safely a necessity.

GM Cruise

In order to do this, Cruise’s cars must first identify them, which they accomplish by “looking” for a number of cues such as vehicles’ distance from road edges, the appearance of brake and hazard lights, and distance from the furthest intersection. They additionally use contextual cues like vehicle type (delivery trucks double-park frequently), construction activity, and the relative scarcity of nearby parking.

Cruise’s Bolts perceive these things through sensors — specifically lidar sensors from Velodyne, as well as short- and long-range radar sensors, articulating radars, and video cameras. Cameras recognize vehicle indicator light state and road features (such as safety cones or signage), while lidars and radars measure distance and speed, respectively. Then, machine learning models running on onboard computers derive from the raw bitstreams objects like bikes, pedestrians, and other vehicles.

GM Cruise

A type of AI architecture called a recurrent neural network (RNN) determines whether a vehicle is double-parked, given all available sensory and map information (including parking availability, road type, and lane boundaries). Zucker and Ghose note that RNNs are unique in their ability to remember long-term dependencies, which effectively enable Cruise’s cars to accumulate decision-making confidence.

Sussing out a driving trajectory requires a generalizable policy, and Cruise’s is Model Predictive Control (MPC), a collection of algorithms that leans on a model of system behavior to figure out the best action at each step. The end result are driverless cars that can overtake double-parked cars in sunshine or in rain, while yielding to cyclists and oncoming traffic.

GM Cruise

Cruise is considered a pack leader in a global market that’s anticipated to hit revenue of $173.15 billion by 2023. Although it hasn’t yet launched a driverless taxi service (unlike competitors Waymo and Yandex) or sold cars to customers, it’s driven more miles than most — around 450,000 in California last year, according to a report it filed with the state’s Department of Motor Vehicles — and it’s attracted about $1.15 billion (bringing its total raised to $7.25 billion) at a $19 billion valuation from T. Rowe Price Associates, General Motors, SoftBank Vision Fund, Honda, and other investors.

For all of its successes so far, though, Cruise has had its fair share of setbacks.

It backtracked on plans to test a fleet of cars in a five-mile square section in Manhattan, and despite public assurances that its commercial driverless taxi service remains on track, it’s declined to provide timelines or launch sites. In more disappointing news, Cruise drove less than 450,000 collective miles all of last year in California, falling far short of its projected one million miles a month. For the sake of comparison, Alphabet’s Waymo, which was founded about four years before Cruise, has logged more than 10 million autonomous miles to date.

But the company isn’t letting that deter it from its driverless ambitions. Cruise is currently testing third-generation vehicles in Scottsdale, Arizona and the metropolitan Detroit area, with the bulk of deployment concentrated in San Francisco. And Cruise earlier this year announced a partnership with DoorDash to pilot food and grocery delivery in San Francisco this year for select customers, shortly after revealing a fourth-generation car featuring automatic doors, rear seat airbags, and other redundant systems that lacks a steering wheel.