By Dr. Lance B. Eliot, the AI Insider for AI Trends and a regular contributor
A reporter for a major news publication was recently invited to take a ride in one of the prominent so-called self-driving cars (I question whether we can reasonably call today’s automation-enhanced cars as self-driving, see my piece on this question). Eagerly accepting the offer, the reporter chronicled the trip and even recorded video that was then posted with the reported story. In the video, the car approached an intersection and though the car had the right-of-way, it came to a crawl when it spotted a pedestrian that had made a motion at the far edge of the pedestrian walkway as though the person was going to enter into the crosswalk. The reporter commented on the timid nature of the automation that was driving the car. A human driver would have likely barreled ahead, unless perhaps the human driver was someone just learning to drive. We’ve all seen those neophyte drivers in the marked vehicles that warn you they are a student driver and you should be on the ready for them to hit the brakes or make some other overly cautious maneuver.
Being exceedingly cautious in driving a car is generally a good practice, but of course not if it tends to confound other drivers and inadvertently lead to a collision. The reporter was probably lucky that a car behind the self-driving car did not slam into them. Other drivers that would have perceived the pedestrian as not a threat would be frustrated by the sudden slow down and might have been caught unawares that the self-driving car wanted to suddenly slow down. There is a delicate dance of cars and pedestrians. Cars react to pedestrians. Pedestrians react to cars. Furthermore, there can be a domino or cascading effect too. A car might react to a pedestrian, which then causes other cars to react to both the pedestrian and the reaction of the first car that exhibited a reaction. Or, we might have a pedestrian that reacts to a car, and then suddenly have other pedestrians all reacting too. There are lots of combinations and permutations in the dance of the pedestrians and cars.
In the self-driving car arena, one of the more famous examples of a self-driving car reaction to a pedestrian involved an Uber self-driving car in San Francisco. The Uber self-driving car essentially skyrocketed through a red light at an intersection, meanwhile there was a pedestrian in the crosswalk, though admittedly the pedestrian was far from danger of actually getting hit by the self-driving car. I suppose we’ve all done this kind of thing before, wherein we rush a yellow light that went to red as we zoomed past a pedestrian standing in the crosswalk (well, I’m not saying I’ve ever done this, just to be clear). The act of the Uber car was caught on video and posted for all the world to witness. Uber then pulled their self-driving cars out of California temporarily due to the bad press that they got on this incident. As I’ve mentioned in my other pieces, Uber just happened to get caught on video and I assure you that the other self-driving cars have all done the same kind of action at one time or another.
Let’s do a quick recap. I’ve described an incident by one self-driving car that came to a crawl because it spotted a pedestrian, while we have another incident of a self-driving car that presumably did not spot the pedestrian and unknowingly zipped along. Woe is the pedestrian. Today’s self-driving cars are still trying to figure out the nature of pedestrians and what to do about them. You might be surprised to know that dealing with pedestrians is actually a rather difficult problem for self-driving cars. Human drivers after a while become accustomed to the vagaries of pedestrians and develop various rules-of-the-road and intuition about what pedestrians are going to do. Plus, since human drivers have themselves been or are pedestrians at times, they have learned what cars driven by other humans will do in reacting to pedestrians.
If you’ve ever been to New York City (NYC), you might have witnessed the delicate and at times crass dance of the pedestrians and the cars that seems to take place in that particular cultural milieu. Generally, pedestrians in New York City do not seem to believe that they need to abide by the laws involving the proper ways to cross a street. Jaywalking is considered to be a right. Often, the NYC pedestrian will give a glaring stare at a human driver, as though the jaywalker is telegraphing don’t tread on me, and so the car driver backs down to let the pedestrian cross. Some NYC human drivers though also provide a hardened stare in return, as though they are daring the pedestrian to cross the street. All of this is somewhat akin to running with the bulls at Pamplona. This is a kind of dance that can lead to someone getting gored.
In other cities like Boston and Los Angeles, the stare-down can be completely different. Bostonians seem to prefer to not stare at each other, trying to pretend that neither of them exist. If there is eye contact made between pedestrian and driver then something has to be decided between them. On the other hand, by just stepping off the sidewalk and walking into the street without making eye contact, the Bostonian pedestrian is saying that they have the right-of-way. You would almost think this could lead to greater calamity than the NYC approach, but for locals it seems to do okay. In Los Angeles, there tends to be a politer kind of stare-down, involving one stare saying go ahead and another kind of stare saying don’t you dare make the first move.
Why is this pertinent to self-driving cars? Right now, self-driving cars don’t do anything about trying to communicate with pedestrians. In fact, it is an incredible technological feat for a self-driving car to even identify that a pedestrian exists, let alone try to predict the behavior of the pedestrian and get into their mind. Gradually, we will ultimately have self-driving cars that can understand “the theory of mind” involving pedestrians and even other drivers, but we are a long way from that day.
I realize that some of you might be yelling out that there are pedestrian detection capabilities on today’s cars and asking what about those capabilities. Owners of certain Toyota model cars are perhaps already familiar with the pedestrian detection that Toyota provides. Known as PCS with PD (that’s code for Pre-Collision System with Pedestrian Detection), the car is equipped with a camera aimed forward of the car and also with a front-grill mounted radar device. The radar and the camera try to work together and figure out whether a pedestrian is in-front of the car. If a pedestrian is detected, or believed to have been detected, the automation assists the human driver of the car. An audio and visual alert tries to warn the human driver to take cautionary or evasive action. A human driver that responds by braking will then get added assistance by the automation, which can apply even greater force to the braking, in an effort to aid the human driver. In certain circumstances, if the human driver does not react and try to brake, then the PCS/PD of the car will automatically start applying the brakes in an effort to avoid striking the pedestrian.
Though the PCS with PD should be applauded for what it tries to do, let’s be forthright and acknowledge that this is barely any true sense of pedestrian detection. The limitations of this existing technology are huge. First, it will only spot pedestrians that are directly in front of the car. Pedestrians coming at your car from the side are not going to be readily detected. When going in reverse, pedestrians behind you are not going to be detected. Toyota freely concedes that pedestrians might not be detected at all, depending upon their size, their profile, their motion, their angle to the car, the brightness of the lighting around the car, etc.
For developers of self-driving car automation, you might want to take a look at OpenCV. This is a large-scale open source effort toward creating sophisticated Computer Vision (CV) capabilities. OpenCV has been used for pedestrian detection and provides some fascinating insights about how hard a problem this is. The simplest example of detecting a pedestrian involves looking at a picture and trying to find the pedestrian in that picture. At first, most of the pedestrian detection algorithms could not differentiate between say a telephone pole and a human. They were both vertical in height and so might be considered alike. These algorithms were modified to find the vertical height as a torso and then also look for a head, arms, and legs. This reduces the number of the false positives, such as no longer categorizing a telephone pole or other such objects as pedestrians. In essence, it went from looking for a blob to looking for a structure with certain characteristics.
There are though other false positives that can readily pass the test of looking for these human physical characteristics. For example, a road sign that shows a stick figure of a person can be misconstrued as an actual human pedestrian because the cartoon drawing has a torso, arms, legs, and a head. Similarly, a bronze statue of a mayor that might be at a corner or on the sidewalk near to the roadway could be misconstrued as a pedestrian. In one sense, it is usually safer to mistakenly identify a false positive than it does to make the mistake of generating a false negative. A false negative occurs when the pedestrian detection fails to detect that a pedestrian might be present.
Why would automation fail to detect a pedestrian? There are currently numerous ways that a pedestrian will not be “seen” by automation. Using a camera alone is extremely weak as a detection method because the picture might be unable to showcase that a pedestrian exists in the photo. Imagine a photo taken in bright sunlight with the photo all washed out due to the brightness of the sun. The pedestrian might be in the photo but the overly white area of the picture causes them to not be readily detected. Even if the photo is pristine, suppose the pedestrian is standing perfectly still and has their arms pressed to their body and their legs are tightly touching. Remember when you were a child and tried to hide by compressing your body? This can happen by chance, and it makes detection harder because the photo analysis might not reveal that there are arms and legs, which is considered a clue to whether the pedestrian is there or not.
There might also be occlusion in the photo, involving one object hiding another object. I was standing at an intersection the other day when a Fedex worker with a dolly had a big box that he was hoping to deliver across the street. From the perspective of a human driver in the roadway, all you would have seen was a large box and barely even his head, which was slightly sticking up above the box. Whenever objects are in front of a pedestrian, such as the box and the Fedex worker, it will make photo detection of the pedestrian much harder. You can even have multiple pedestrians all standing together, and it will be hard to differentiate between one pedestrian and the other pedestrians. One particularly notable danger in a group setting is the classic case of a small child that suddenly darts out from a crowd of pedestrians.
Keep in mind that pedestrians come in all shapes and sizes. There are small children to be detected. There are elderly to be detected. There are individuals to be detected. There are groups of pedestrians to be detected. Is that a parent holding the hand of a child? Is that a blind person with a cane? These are all the kinds of pedestrian detection that we as human drivers do on a daily basis. If you ask a student driver whether or not they saw a pedestrian standing on the sidewalk, they often cannot tell you for sure whether they saw the pedestrian. The student driver is so consumed with driving the car that they had not yet perfected the ability to also look for pedestrians. Self-driving cars are in that same boat today.
Notice that I have been discussing the detection of pedestrians in photos. Let’s up the ante. We know that pedestrians aren’t always going to be standing still and happily smiling to have their picture taken. The real trick involves video analysis for pedestrians. A true pedestrian detection system needs to find pedestrians within moving images. The OpenCV effort provides examples of how hard it is to gauge pedestrians while they are in motion. One moment the pedestrian might be easily detected, and the next moment as they walk behind an electrical junction box they are occluded and disappear from view. Trying to find pedestrians when they are in motion can be very tricky.
Making the pedestrian detection doubly tricky, you need to also realize that the car itself will also likely be in motion. Sure, there are cases when the car is waiting at an intersection and is motionless due to a red light or a stop sign, but most of the time the car will be zooming along. You therefore have a car in motion that is trying to capture video of humans that are in motion. The blur effect can be tremendous. You’ve probably taken pictures from a moving car and gotten a blurred image of what is around you. The automation needs to try and overcome the blur and figure out what’s actually in the pictures or video.
Plus, all of this pedestrian detection needs to be done in real-time. It’s one thing to have a photo or video that you can run computer programs to analyze and let the analysis take hours to do, but it is another game entirely to have to find pedestrians in real-time and within split seconds be able to discern what is a pedestrian and what is not. A car moving along on the road at 20 miles per hour is taking in streams of video and must be continually analyzing it to find the pedestrians. This takes tremendous processing power and lots of computing to do. Self-driving cars are gradually getting loaded with lots of computing to handle these kinds of tasks, and the increasing miniaturization of computer processors and their decreasing costs are an important contributor toward advances in self-driving cars.
So far, I’ve focused mainly on pedestrian detection in this discussion. Yes, knowing that a pedestrian exists is crucial to dealing with pedestrians, but it is only the start. You need to also figure out what the pedestrian is going to do. If a pedestrian has already appeared in front of your car, let’s say they have been standing in the middle of the road, it is pretty easy to decide that maybe the car should take some evasive action. On the other hand, if the pedestrian is innocently standing to the side of the road, you need to have some kind of smarts to predict what the pedestrian is going to do next. Is it the type of person that is more or less likely to suddenly run into the road? This is where predictive capabilities and the theory of mind comes to play.
I was driving down the street in a residential neighborhood one day, minding my own business, and I happened to see out of the corner of my eye a teenage boy crouching over near some bushes up ahead. I didn’t think much about this aspect since he was quite a distance from the roadway. All of a sudden, he stood-up, his arm raised and he hurled something. It happened very fast and I could not see what he was tossing. To my shock and surprise, my windshield suddenly became all blurred and I could barely look out the car. He had tossed a water balloon at my windshield and the exploding balloon dispersed a wave of water across the glass. Within a split second or two, I realized it was water and hastily turned on my windshield wipers. This had been a very dangerous act by the teenager since I could have swerved off the road, or maybe have hit a pedestrian that might have been in front of my car but that I couldn’t see due to the sudden water occlusion on my windshield.
Would a self-driving car and its pedestrian detection be able to predict that the teenage boy might toss something at the car? Maybe yes, maybe no. With the advent of machine learning, and with self-driving cars that share their learning with each other, if one such self-driving car had this same encounter it would share it with the other cars so they too would be on the watch for this. In my own personal case, I now seem to be especially wary whenever I see someone crouching off the side of the road. Don’t want to seem paranoid and I realize the odds of this happening again is slim. The point simply is that once experienced, it is a scenario that can become part of one’s experience, and also be generalized to cover other like situations that might occur.
I had mentioned earlier that in various cities there is a cultural basis for the dance between the pedestrian and cars. If self-driving cars are made to overly flinch when it detects a pedestrian, as happened to the reporter that I mentioned at the start of today’s piece, pedestrians are sure to figure this out. In other words, pedestrians tend to adopt to the behaviors of the drivers. If I know that I can fake out a self-driving car and get it to slow down or stop, merely by making a head-fake toward the road, I am probably going to do so, either for fun or because I want to cross the road and make sure the car allows me to do so. I am predicting that for each of the models and brands of self-driving cars, they will each have their own tolerances of pedestrian detection and reaction, and eventually pedestrians will know which such cars to challenge and which to acquiesce to.
The pedestrian detection will get better as more sensory devices are added into the mix of the self-driving cars. I mentioned that the Toyota cars are using both cameras and a radar device. This combination is handy. If the camera provides images that are blurred or unable to be readily analyzed, the radar provides a secondary way to detect pedestrians. If the radar has troubles getting a detection, then the camera provides a back-up method for it. By having several sensory devices and doing a proper job of sensor fusion, the odds of getting true detections is increased, and the odds of false positives and false negatives goes down.
One of the claimed advantages of self-driving cars is that they will eliminate all pedestrian injuries or deaths due to colliding with cars. I have debunked this notion in one of my pieces. It will be quite a while before we’ll have self-driving cars that can be as appropriately wary of pedestrians as savvy humans are. The self-driving car makers are slowly gaining ground into the pedestrian detection realm, mainly right now with only simplistic methods. I expect that we will soon have a self-driving car crisis-in-faith because some self-driving car will plow into a pedestrian. It is bound to happen. Let’s try to get the self-driving car makers to avoid this calamity and put more effort into their pedestrian detection and reaction systems. I vote for no roadkill’s. Let’s be safe out there.
This content is original to AI Trends.