By Dr. Lance B. Eliot, the AI Trends Insider
Earlier in my career, I was a software engineer doing work for a global company that was based in New York and had offices in at least thirty other countries. While working on a new piece of software for the company, I was told somewhat after-the-fact that the software would eventually be used by non-English speakers and that it had to be ready-to-go in all of our other countries. We had offices in Germany, France, Britain, Netherlands, and so on. We also had offices in Japan, South Korea, China, and various other Asian locales. Thus, the languages were different and even the character sets used to express the languages were different. So much for having the actual needed requirements upfront before we started writing the code. I figured this new requirement would entail a rather sizable rewriting effort. Sigh.
My software development manager shrugged off the request and told me that this was a no-brainer request. He indicated that all we would need to do is invoke the double-byte capability of the compiler and then get someone to translate the text being displayed on the screens and reports, and voila the program would be perfectly suited for any of the other countries and languages that would use the software. I fell for this on a classic “hook, line, and sinker” basis, in that I didn’t really want to have to do any kind of a massive rewrite anyway, and thus the idea that it was flip-a-switch approach sounded pretty good to me. Perhaps as a young software engineer I had a bit too much exuberance and willingness to accept authority, I suppose.
We opted to use a system-based text translator to get the English into other tongues, rather than hiring a human to do the translations. This seemed easy and cheap as a means of getting the text into other languages. We translated all of the text being used in the program and stored those translations into tables. The program would merely ask at startup what language the person wanted to use, and from then on the program would select from the appropriate translated text stored in the tables in the code. When we tested the program, we assumed that the internationalizing of it was good, and did not actually try it out, and only had English-speaking users be our testers. Once the English-speakers gave us the thumbs up that the program was working correctly, we let everyone know it was ready for a full global rollout.
And sure enough, a fiasco and chaos ensued.
The auto-converter had done a lousy job of figuring out the semantics of the English text and how to best translate it into another language. It was one of those proverbial circumstances of text conversion seemingly gone mad. If you’ve ever read a Fortune Cookie message and laughed at the translation, you know what I mean about bad text translations. I remember one foreign hotel I stayed in that had a sign at the lobby check-in desk that said hotel guests were expected to complain at the front desk between the hours of 8:00 a.m. and 10:00 a.m. each day, implying that we were obligated to do so, rather than clarifying that if we had a complaint that it was that time of the day in which we could share it. That’s how the auto-converter had translated a lot of the text in the program.
Not only was the text poorly translated, it turns out that the screens looked all messed-up due to the text being either longer or shorter than what the screen mock-ups had been. We had very carefully ensured that in English the screen text was well aligned, doing so both vertically and horizontally on the screen. There had been much effort put into making sure that the screen was crisp looking and easy to understand. With the translated text varying in sizes, it moved things around on the screen and looked like a mess.
The canned reports that we had developed came out the same messed-up kind of way. Columns no longer were in their proper place due to headers that pushed things over in one direction or another because the text for the headers now was varying in sizes as based on the language being used. Furthermore, a few of the reports turned out to have a mixture of English and the other languages being used, since the user could input text and we had assumed that any user that entered text would be entirely entering the text in their own language. Some of the users typed in text in English, even though the program thought it was supposed to be using receiving the chosen language such as say German. The program wasn’t setup to translate the entered text, which some users assumed that the program would do for them.
We also discovered that the colors and various images used on the screens were not good choices for some of the countries. There were some countries that had various customs and cultural practices that the program did not properly abide by in terms of images shown and colors used.
We also had a part of the program that entered time for labor time tracking purposes and it too had missed the boat in terms of cultural differences. It allowed for entry on the basis of rounded hours, for example that you worked for 1 hour, 2 hours, and so on. In some of the countries, they kept track of hours to a fraction of an hour, either due to regulatory requirements or due to country customary practices. Thus, they wanted to enter 1.5 hours or 1.2 hours, but the program automatically rounded the entry to the nearest highest next number of hours. This was very frustrating for those countries and users, and also made turmoil out of how they were doing time tracking.
I suppose it is possible to look back and find this to be a rather quaint and humorous story. You can imagine that at the time, nobody was seeing much humor in any of this. There was a tremendous amount of finger-pointing that took place. Who had approved this lousy implementation for internationalization of the program? Why hadn’t a more thoughtful approach been taken to it? How soon could a properly done internationalized version be rolled out? How could we be sure that the new version was accurately able to handle the international aspects of usage?
What does this have to do with self-driving cars?
At the Cybernetic Self-Driving Car Institute, we are working on making sure that the AI for self-driving cars is internationalized.
I am sure that you are thinking this must be a no-brainer. Similar to my story herein, isn’t the internationalization of a self-driving car simply a flip-the-switch kind of effort? Sadly, many of the companies making self-driving car software are either not considering the internationalization of their systems, or they are assuming that once they’ve got it all perfected in the United States that it will be a breeze to convert it over to be used in other countries.
They are in for quite a shock.
This mindset is frequently seen in the United States. Make software that works here, and we pretty much figure it will be an easy knock-off to get it to work elsewhere. No provision is put toward preparing for that future. Instead, toss the work of it onto the backs of whomever comes along later on and wants it to be internationalized. I certainly do have sympathy for the system developers too, since they are often under the gun to get the system running, and trying to explain that it is taking you a bit longer because you are trying to infuse internationalization into it will not get you much leeway. We’ll worry about that later, is the usual mantra from the top of the corporate ladder.
I had one software developer that is doing work for a major auto company that told me the only difference between what they are developing now in the United States and what will need to be redone in other countries is the roadway signs translations. In other words, he figured that the word “Stop” on a stop sign would need to be translated, and that otherwise the whole self-driving car was pretty much ready to go in other countries.
We’ve been looking closely at what it takes to really and in a practical way have self-driving cars work in other countries besides the United States. It is a whole lot more than merely translating street signs.
There is an entire infusion of country customs and practices that need to be embodied throughout the self-driving car systems and its AI.
Let’s consider Japan as an example.
The roads in Japan tend to be narrower than the roads are in the United States. You might at first figure that a road is a road, in that whether it is narrower or wider shouldn’t make any difference to a self-driving car. Stay within your lanes, and it doesn’t seem to matter if the road width is tight or wide. Not so.
If the AI of the self-driving car has “learned” about driving on United States roads, for example by using massive sets of driving data to train neural networks, those neural networks have as a hidden assumption aspects about the widths of the roadway. They have gotten infused within the system that there is a certain available latitude to vary within a lane, allowing the self-driving car to veer within the lane by a particular tolerance. This kind of tolerance for Japanese roads tends to be much tighter than the norm in the United States. The AI of the self-driving car will not necessarily realize (when suddenly plopped down in Japan) that there is an ongoing need to be more careful about maneuvers within its lane and as it goes into other lanes.
Another aspect relatively common in Japan consists of bicycle riders that tend to be somewhat careless and meander into car traffic when in the at-times crowded city driving environs. For those of you in the United States that have been to New York City, you’ve likely seen bike riding messengers that think they are cars and weave throughout car traffic. Multiply that tenfold and you’ve got a city like Tokyo. Why does this make a difference? The AI for a self-driving car in the United States would tend to assume that a bike rider is not going to become a key factor during driving of the car. Meanwhile, in Japan, detecting the presence of the bike riders is crucial, along with predicting what they will do next, and then have the AI contend with those aspects. This is not something that U.S. based self-driving car makers are particularly caring about right now.
Other more apparent differences exist too, of course. Drivers in Japan are seated on the right side of the car and traffic moves on the left. This does require changing key aspects of some of the core systems within the self-driving car AI. Right turns at red lights are generally not allowed, though again this is also something that a self-driving car in the United States would usually be properly programmed to handle (we have by-and-large right-turn-on-red, but there are exceptions).
Speaking of roadway signs, sometimes signs in Japan are intentionally translated into English so that visitors will be able to hopefully comprehend an important sign that otherwise is shown only in the native language. One of my favorites consists of a detour sign that said “Stop: Drive Sideways,” which is a great example of how sometimes translations are amiss (do we need to make a self-driving car that can drive sideways?). Another example that has been reported in the news consisted of this alleged narrative on a car rental brochure in Tokyo: “When passenger of foot heave in sight, tootle the horn. Trumpet him melodiously at first, but if he still obstacles your passage then tootle him with vigor.”
Continuing the aspects of internationalizing, there are other illustrative aspects about driving in Japan that further highlight the self-driving car aspects that need to be considered. For example, the roads in many parts of Japan tend to be rougher due to the frequent seismic movement and so the self-driving car is likely to get bounced around a lot. Are the sensors on the self-driving car ready for this kind of frequent and common place jarring? On some of the self-driving cars being tested today, the sensors are very fragile and I doubt they can handle a barrage of bumps and jarring, along with whether even the sensors will be able to collect crisp data for purposes of sensor fusion.
Most of the highways in Japan tend to be toll roads. I’ve previously discussed at some length the aspects of having self-driving cars deal with toll roads. If a self-driving car is at a Level 5, it means that the AI should be able to drive in whatever circumstances a human driver can drive. When it comes to toll roads, right now, most of the auto makers and tech companies making self-driving cars are assuming that the self-driving car will let the human occupant deal with the toll road specifics. This though can’t be the case presumably for a true Level 5 self-driving car.
Another aspect in Japan is that there tends to be a lot of speeding through red lights at intersections once the light has gone red. Certainly the same kind of thing happens in the United States, but it often seems to be more prevalent in Japan. The AI of a self-driving car needs to consider how to handle this aspect, which is going to be recurring frequently while driving in Japan. The cars coming behind the self-driving car are going to want the self-driving car to rush through a red light just like the human driven cars. If not, the human driven cars are going to potentially ram into the back of a self-driving car that opts to come to a legally proper stop but that is a kilter to the customs and norms of the drivers in that country.
For parking purposes, especially in Japanese major cities, there are often parking towers that require a car to be driven onto a waiting pan, which then rotates upward and brings down a next empty pan. Imagine this is like a kind of Ferris wheel, but used to park cars. You can therefore in tight city space park more cars by having them parked up on a tower. A Level 5 self-driving car should have AI that allows it to properly park on such towers, and also be able to resume motion once the self-driving car is released from the parking tower.
There is a tendency in some areas of Japan to have cars decide to stop at the edge of a road, blocking traffic. Human drivers do this all the time. The AI needs to ascertain what is taking place and avoid hitting the stopped car. One might also ask whether the AI should abide by that same custom. In other words, should the AI go ahead and be willing to stop at the edge of the road and potentially block oncoming traffic?
Some of the software developers that are doing the AI for self-driving cars are telling me that they won’t let the self-driving car do anything that seems either illegal or dangerous in terms of driving of the car. But, if the custom in a country is that there is a standard practice of stopping a car to let passengers in or out, or wait for someone, shouldn’t that still be provided by the self-driving car?
This brings us to an important element of consideration about self-driving cars. Should the self-driving car decide what is proper or not proper in terms of driving practices and then permeate that across the globe? The at-times subset of “righteous” developers of the AI for self-driving cars would say yes. They would say that it is wrong for a self-driving car to rush a red light at an intersection, or to park at the side of the road and become a roadway hazard to other cars. They therefore are refusing to allow the AI to do such things.
Here’s another one that gets them rankled. In some countries, the hitting of small animals such as squirrels or even cats is widely accepted if those animals veer onto the roadway and become a roadway obstacle. There are developers here in the United States that find this driving behavior abhorrent and so they are insisting that the self-driving car would need to take whatever evasive maneuvers it could to ensure that it didn’t hit a squirrel or a cat. But, if this AI then endangers the human occupants or actually causes injury to the occupants in the self-driving car, one would need to question whether the avoidance of hitting the small animal was “right” or not. In that country, and in its customs, it would have been well accepted to hit the animal, even though in say the United States it might be considered abhorrent.
For a Level 5 self-driving car, the automation and AI is supposed to be able to drive the car in whatever manner that a human driver could have driven the car. The question then arises, what about internationalizing of that crucial principle? Does this mean that if a human driver in country X drives in a certain manner Y, and yet that manner Y is contrary in some fashion to driving manner Z, and that driving manner Z is acceptable in certain countries, what should the self-driving car be able and made to do?
Our view so far is that a self-driving car should do as the locals do.
We are developing AI that embodies the customs and practices of specific countries and therefore will drive like a local drivers. The AI needs to be aware of the differences in laws and regulations, the differences in language, the differences in the driving environment (such as roadways, highways, etc.), and also the differences in how people in that country actually drive (their customs and everyday practices).
I know that some dreamers say that once we have all self-driving cars and no more human-driven cars that then we can have a homogeneous driving practice across the entire globe. That day is far, far, far, far away into the future. For now, we need to figure out how to have self-driving cars that mix with human driven cars. You’ve probably seen Western drivers that try to drive in a foreign country and seen how the other human drivers there will berate the westerner for not abiding by local customs in driving. We are aiming to have self-driving cars that blend into the driving practices of the local international location. Self-driving cars need to earn their international driver’s license and be able to drive like a local. Our motto for self-driving cars is “do as the locals do, within reason, and be flexible about it.”
This content is originally posted in AI Trends.