Ask Slashdot: Image Recognition For Race Timing?
First time accepted submitter int2str writes "Autocross is a form of motorsports practiced in the U.S. and around the world where car enthusiasts explore the capabilities of their car in an open parking lot or similar suited area. It's point-to-point racing (not closed circuit). Most of these events are organized by car clubs and volunteers. Timing is usually done with a form of detection beam at start and finish that gets interrupted by the car crossing the beam. Many commercial systems are available. All of these system require the operator to enter the car's number or ID and requires the cars finishing in the order they started. So if one car is not able to finish, the operator has to intervene, or timing is broken. For closed circuit racing, transponder systems are available to address this problem. But such systems require sensor loops in the track or overhead (bridge setup) and the transponders are expensive. Do you think it would be possible to design a timing system using off-the-shelf parts and open source solutions to uniquely distinguish about 100 participating vehicles and time them from a start to a finish point, independently of their finishing order?"
Read below for some more details:
int2str continues: "My initial idea would be:
- Use (web-?)cameras at each end that feed into a Linux based notebook (USB/Ethernet).
- Start recoding still images as fast as possible when motion is detected
- Identify unique shape, numbers, barcode, qr code or similar in the images, that have been attached using a magnet to the vehicle's door.
Difficulties to overcome:
- Camera with high enough shutter speed to get recognizable image of vehicle traveling 30-60mph
- Quickly and accurately identify a unique symbol or shape
So far I've started looking into OpenCV as a possible tool for image recognition, but have not been able to find a capture solution. Does anybody have experience with something like this? The solution would be open source and well documented as to benefit the many car clubs around the country and the world."
What exactly is the problem here?
Someone flopped a steamer in the gene pool.
Some large numbers on the sides or hood of the car would make image recognition, if not trivial, at least relatively simple.
I worked in Face Recognition as a research assistant for my MS. I was part of a group designing a robust end-to-end system for the purposes of identifying people in a wide variety of conditions. This problem seems easier because you can assume that the cars will be in one location within one time frame, the camera is fixed and everything in your data set will cross this line unless they break down, they will have almost identical 3D structure (unlike the face), and you can expect some identifying marks on the front end that crosses the finish line. As long as you have some sort of identifying marks, you can use standard face/object recognition techniques to identify the vehicle. There are some pretty advanced algorithms out there. The best out there when I was actively working in face recognition was STASM and Pittpatt. Better yet, if you had some unique identifier expected at some part of the vehicle, you can easily make the problem much easier. For example, have each one use an infrared identification tag located in precisely the same spot relative to the build of the vehicle.
That brings me to an interesting point, / . is just "the ramblings of socially-inept, technology-literate news-mongers".
Put giant QR code stickers on the hood/doors. Done.
How about sticking a big barcode to the competition number panel and use a simple barcode scanner to ID the vehicle as the beam breaker is triggered?
There is already an outfit doing motorcycle road racing using RFID. it would work in this instance as well.
I autocross and I've been thinking about the same problem. I even thought about writing my own free software and building plans for off-the-shelf/cheap-to-make transponders ($1200 for a wireless transmitter unit? jesus).
The problem is that if a car doesn't finish and misses the timing mark--the software shoudl just let you to fix it up. You should be able to say "this car didn't finish" (has a missing tick) or "ignore this tick" (some corner worker tripped the lights accidentally). Then it shoudl be able to just recalculate the times affected. It seems so simple to me, I am baffled that it hasn't been implemented.
All the cars starts in the same order, all the numbers are known at hte start time and cars never pass each other. So you have always same-sequence travel of cars. All you need to do is fix occassional lacks of ticks or extra ticks. No need to re-run the cars.
I'd suggest using the best software available: the human brain.
Version 1
Aim a camera at the finish line. Aimed to capture the racer's number and any other identifying information. Set the camera to be triggered by the interruption of an IR beam. Place a clock in the picture field.
During / after the race, find each racer's picture and record the time.
Version 2
Aim a video camera at the finish line.
Use a laser pointer as a finish line. Aim it at something white and make sure it is visible as a racer crosses
Put a clock in the field.
After the race, fast forward and write down the time each racer crossed.
As a bonus, you have photo evidence in case there is any dispute.
The world is made by those who show up for the job.
What happens if two dudes show up in a blue Miata?
No sig for you. YOU GET NO SIG!
They're similar to QR codes but optimized for the needs of robotics (similar to your needs).
In robotics, the main need is for robust recognition, and accuracy.
QR codes are much more complicated because they need a lot more "payload" bytes (millions of unique codes), whereas you only need to distinguish between a couple hundred codes
there is even source code available:
http://april.eecs.umich.edu/wiki/index.php/April_Tags
I have run timing & scoring for track events (I don't AutoX), but you are under-estimating the problem. Time tolerances for a winning finish can be as close as .0001 seconds. Any variation in the delay for a camera or the time needed to process the image could be a serious problem. Another problem would be car placement, cars will not always cross the line in a nice, neat manner.
Those problems can have real monetary consequences when you factor in the product contingencies (free race tires and other products) that are commonly provided by manufacturers to winning amateur motor sports and AutoX participants. Not to mention the possible impact on season long points races for championships.
Timing loops and lights are very accurate, with loops easily meeting the .0001 second requirement we adhere to. I have personally seen time attack contests decided by a .0003 second margin of victory. Price for loop systems is more than the light based systems, but I have enough experience with the loop systems to know they are very accurate when set up correctly.
If you do want to go home-brew, your best bet might be to mix cameras with timing lights. Get the timing from the lights and let the camera based system assign the the light's times to each specific car assuming you can get the recognition working correctly.
AForge has the components you need to compliment a IR system: motion tracking and object identification. I've used it on a similar project for a cup team to get corner exit ride heights and yaw. Camera shutter speed shouldn't be much of an issue with just about any off the shelf camera. Camera position will require a bit of testing but that will be pretty obvious. Using video as an alternative with an off the shelf camera is another matter. Here frame rates rule. Even if you jump through the hoops to get 60 FPS you would only have captured the start and stop times with .016 of a second.
Automaticallt take your pics and upload to dropbox, pay mechanical turks to identify and enter data, profit!
How quickly can Bluetooth establish a connection? Use the optical beams to determine the time that a car passes a point, and give each driver a Bluetooth headset that has been paired with laptops used to record the timing.
You can test the range to make sure it will work--you should only need a few meters. You can get cheap headsets for somewhere around $50, probably less.
I have no idea if this would actually work, but it should be possible to do a test run with parts you probably already have.
As a race organizer, timing chips are a PIA, it would be awesome if facial recognition could track everyone at the start and finish. We're talking up to 10,000 people though, and you'd have to have a photo on file to identify each person. The finish would be easy, everyone is spread out, but at the start you have a lot of faces crossing the starting line simultaneously. Aside from being kind of creepy, is it workable?
Never let a lack of data get in the way of a good rant.
I know this has a scalability problem (i.e. the cost of equipment goes up linearly with the number of contestants) but you could build a self-contained GPS device that tracks a car's position throughout the event. Have it record position information to flash as often as possible (Sparkfun has a GPS receiver that will update position 10 times/sec for US $61). At the end of the event, everyone turns in their GPS device and their position recordings are uploaded into a computer.
Now one may argue that GPS position error could be enough to make the winner ambiguous (i.e. "photo finish"). But position errors due to RF propagation are "systemic", in that they would affect all receivers in the same vicinity pretty much equally. Further, with a large number of position samples and high update rate, post-processing could be done to calculate trajectory of the possible winners as they approach the finish line. It simply isn't possible to accelerate or decelerate so quickly that you can't interpolate position and velocity in the vicinity of the finish line.
For the "systemic position errors", a single reference GPS receiver at a stationary location next to the finish line can be used to determine position "wander" due to RF, ephemeris, selective availability (even though it's off these days) and use this to subtract out this systemic error from everyones' position data.
Would be fun to build :-)
Don't know if it would work in auto sports but sounds like a use for RFID, http://en.wikipedia.org/wiki/Radio-frequency_identification#Race_timing
There are several practical issues with optical systems for automated vehicle recognition- number and class markings are already tough to get consistent without requiring an additional barcode or QR large enough (some competitors would gripe about a huge barcode) to be useful at the 30'+ distance finish line sensors are set back to minimize getting hit by spinning cars. Add in the fact that existing markings some times fall off on course, or competitors in dual driver cars forget to change numbers between runs, and it's tough to be certain you'd have something consistent to try to recognize.
The national T&S system uses a wireless barcode reader operated by a worker in the starting queue to read stickers placed on competitors helmets to register cars in the T&S software. Locally, we position the T&S trailer to allow the operators to manually enter vehicles as they enter the start queue. Human eyes really are the most flexible here "shouldn't 80ES be 180ES?".
I like one of the comments above about a webcam triggered by the finish light taking a picture with a clock display in it. Unless there was OCR to immediately post the result to the software, the results feedback would be too slow for our region- we have real time announcement of finish stats, and the software can post results to a web server real time for smartphone access in paddock. The T&S software uploads a small file to the web server in the 20ish second gap between finishing cars.
Apologies for not offering solutions, but hopefully the extra info about some of the issues can help shape a solution.
This is pretty much a tracking problem, I would use the open source Predator Tracking algorithm to track each of the car simultaneously. The problem I see is if it is going to be fast enough for 100 cars, but it is worth to investigate it. http://info.ee.surrey.ac.uk/Personal/Z.Kalal/ Alternatively, thinking about using open source-hardware as a solution, use the open source Arduino Micro-controller Piece the sensor you need, and you will have your system at a much lower price ! http://www.arduino.cc/
Why not put an RFID tracker on each car? They're relatively cheap and you can store some encrypted identifier in it. Pillar or mat sensors would pick up when the car crosses the line, though it might be a challenge finding sensors that'd pick up a car at 60mph...
Special paint that reflects/absorbs only at certain frequencies. You have a 'stickers' that go on all four corners of the vehicle. The finish line has a spread-spectrum laser array blasting across it. When a car crosses the line, each car is tagged with unique tape. The laser light reflected will be unique to the vehicle. You triangulate the reflected lights timings and use that in conjunction with the wavelength reflected back and you've got a car and you've got a time.
Unique tape on each car. Cheap, replaceable. Not a perfect solution, but some variant of this involving selected emission/absorption is a winning ticket. I made this up in 1 minute and have no idea if there are any preexisting solutions that do this. For the pedants; yes tape could peel off and yes people could cheat some how I'm sure, blah blah blah, and I'm sure there is a more optimal solution blah blah blah, and I'm sure you'll have issues in X Y Z situation with A B C conditions blah blah blah. Go make something better and sell it.
'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
An Australian security company has developed and is selling to petrol stations and some other businesses a number plate recognition program that is capable (I have seen it in operation) of reading and identifying car number plates with reasonable (98% +) accuracy at a distance of about 50 Metres (Maybe more, but the one I saw was working at that distance) on cars driving on a normal suburban road (speed limit 60 Kmh).
With larger numbers such as the display numbers on a race car, or the vest on a foot racer I don't think it would have any difficulty. And for the racers who 'forget' to change their numbers across multiple vehicles, well I am sure that they could live with their personal results being posted a little later after someone had checked the image generated as they crossed the line.
In some events at the club level in rallying you are disqualified if you are not showing your numbers for the various judges and officials to easily identify you during the race (much as that goes against the general slashdot desire for privacy and anonymity at all times)
da da da dum indeed.
There has been a lot of work for recognizing images in video. Here, if you're smart you should be able to do the recognition given a single still, which means it's just ordinary image processing after extraction from the video.
Make it easier on yourself by making the numbers something like bright yellow on blue with a white border (for instance). Then just look for segments of each image with high response for yellow and blue. Then extract the video and pass it through an OCR tool.
Also, put the camera somewhere like the apex of a turn where they have to slow down and you'll be perpendicular to the side of the car (with enough distance that your camera rig doesn't get creamed).
Accuracy hard to achieve. You'd have to carefully track the latency between the webcams image and the software timestamping the video data. Not an easy coding excercise, and would require calibration with accurate timing equipment. This latency also better be stable. I don't know too much about using linux for realtime work but I have heard it has some latency issues at the kernel level that causes trouble for audio pro's.
If you want to do this with a web cam and a bit of code on a linux machine, well 30fps video gets you a lower bound of 33ms time resolution. That's before the camera feeds to the USB data channel, then any gamer will tell you USB has some latency, and then software has to process the image data. High powered laptop and a good camera might be able to do all this as low as 100ms before it can timestamp the data. Image processing for identifying the vehicle can then happen at any time. This would need to be carefully accounted for in deciding who wins a race.
Proper race timing needs to be 3 decimal places, at 200kph (124mph) a 1/1000th of a second ammounts to 6cm of difference. Races are really won and lost on as little as this and often the timing is done even finer.
After logging in slashdot still does not take you back to the page you were on. It's been that way for 20 years.
First, I'm not familiar with car racing so apologies if my observation is idiotic.
The problem I see with having bar codes or RFID measure the time is how the car crosses the finish line. Because the OP mentioned a beam being interrupted I imagine the finish is determined by the front of the car touching the finish line (not unlike any other type of racing) so if the time is measured by a barcode or image on the roof or door then how do you match that with the front of the vehicle. Also, if the time is measured by when a sensor picks up an RFID tag then again you have issues with mat / receiver sensitivity and tolerances in the transponder triggering the sensor.
Because only one car is on the track at a time you do have some wiggle room, I'm sure there would be many ways to accomplish this but it seems like you're already doing what would seem like the 'best' approach:
System where both IR beams are hooked up the same time, beam 1 starts the time, beam 2 stops the timer. Before each car, race official 'initialized' the timer system by entering information about the car racing, this would solve two issues, the first is that it would reset the timer back to zero, the other being that if the previous car didn't cross the finish beam to stop the timer, the initialize process would automagically flag the previous car as not finishing (not sure how that would effect the time for that driver though). You could also put in other beams throughout the course that would give you times up to that point in the race. So, if you have a start beam, mid course beam and finish line beam, the start beam would start the time, the mid course beam would just grab the time but keep the timer going, the finish line beam would stop the timer.
Is this feasible, too simplistic or am I overlooking something important?
Do what thou wilt shall be the whole of the Law - Aleister Crowley
Two cameras? One camera that the cars drive over or under and a 2nd camera perpendicular looking at the side of the same car. Place a barcode on the front of the car... shutter speed would not be so much of an issue as the car would approach the camera for a relatively long period of time. The second camera marks when the car crosses the finish line.
I say have you heard of the Boston marathon or near any popular marathon. They attach a RFID chip to the sneaker and record when it crosses the start and at the end. They collect the start and stop of thousands of people on the same day and crossing in large groups out of order.
There is also open source license plate recognition.
You could have every driver use a fingerprint reader and part of the start and finish is the drivers running to/from the car.
I have been working on a racing timing system for RC; https://picasaweb.google.com/104667803940601062545/Spiked3#5624165831383052962 is an older screenshot, but you get the idea. In my research I came across this; https://sites.google.com/site/easylapcounter/home which does recognize based on imagery. Your idea certainly seems feasible. for RC, we just byte the bullet and use the expensive MyLaps (AMB) transponder system ($3000 base + $125 per transponder). I assume they have some huge patent on it because it seems like it would easy and cheap to copy, yet no one has done it. Good luck.
slashdot troll = you make a compelling argument I do not like the implications of.
I think my cell phone can do this already
The problem with magnetic stickers is... Corvettes have fiberglass body panels. :-)
I once ran timing, here are my thoughts:
Personally, I don't think that transponders are expensive, and I think they'd be a great solution which would absolutely fail because of politics. "You mean I have to buy a $100 device (or rent for $5/event) to mount to my $40,000 car that has $2,000 rims and $1,400 tires?!? What do you think I am, made of money?!?"
I suspect you won't be able to do good detection except if the cars stop at the end. That's something you'll have to play with though, maybe you can set up a zone past the end where they have to stop to get recognized, or *MAYBE* the camera can deal with them if they stick to the recommended speed off the track. Cameras are very bad at getting sharp shots of sideways motion though. It'll also depend on the conditions out.
I imagine you will need to use a hardware timing device that runs in real-time and then you can pull the time off in the non-realtime OS. That or you'll need to run real-time OS extensions. Maybe you can get something reasonable out of a hardware interrupt like a serial/parallel port line change. The normal x86 Linux clock is 1ms resolution, and plenty of jitter, so just expecting to use the clock under Linux is probably unrealistic.
These people are as serious as a heart attack about this hobby. Saying "Accurate to within a few thou is probably good enough" is a good way to see exactly how good your insurance plan is. :-)
You're going to have to deal with things like a car leaving the starting line with "185" on it's side and crossing the finish with "85", "18", or even "1 5" on it. :-)
The "Predator" OpenCV system sounds like it would be awesome to try in this situation.
Consider setting up a place where the cars can go to get recognized and their number entered, maybe at the starting line, but maybe a dedicated area. Predator/OpenCV may be able to detect things like the letter that fell off during the run, but it may also mis-detect in some cases. You'll probably need someone eye-balling the start and finish anyway.
Good luck with that. I tried writing up some documentation for how to run the system I at our Autocross after they trained me on it, and I had my ass handed to me...
QR codes are the right idea. The real money you'll need to spend is on the camera and near-realtime PC to process it.
I've had good luck using GigEVision under Linux. There's a bunch of vendors out there that have Linux drivers for their GigEVision cameras and the specialized acquisition hardware is just an ethernet card. You probably want something that goes at least 30 fps sustained (probably about 1-3k for a camera, depending on resolution and bells and whistles). That's plenty enough to be able to interpolate vehicle trajectories between frames to get down to millimeter accuracy, assuming your optics package gives you the resolution.
Webcams are probably a no-go because you'll want higher resolution in order to be able to observe and recognize the codes over a wide finishline area, and USB 2.0 is limited in the amount of bandwidth you can get.
I've heard about systems in cities that read number plates and time you between their different locations to see if you are speeding, I'm guessing a system like this could be used, just a matter of if it is cost effective or not.
Yes, try to do the identification task immediately, but ensure that the system has the needed abilities to deal with problems. Rain, mud, or a bug on your lens could interfere with the intended operation.
Not all vehicles are steel. Magnets might not hold your barcode on all vehicles.
Seems that RFID tags on the cars would solve that. No need to use facial recognition software - too complicated. In the railway industry they use barcodes on the side of railcars to keep track of them. That's another inexpensive idea. Just have the cars go single file through a laser barcode reader or through the local supermarket checkout...
What exactly is the problem here?
Was already mentioned in the summary question. Transponder location is the problem. You fall down on the detection of where the finish line is.
Find me someone intimately familiar with an Android phone, or barcodes, or RFID, who can also grok basic SQL, and somone intimately familiar with the particular practical difficulties of SCCA timing, and I'll have your solution in-place, tested and working, before lunch.
This isn't rocket surgery.
(And if you give us until supper, it might even have a fancy web interface.)
Kid-proof tablet..
the timing and identification of race entrants or individuals is a very easy thing... this has been solved using RFID tag's to identify the entrants and the same timing devices to actually do the timing...
How about a big QR code on each door and a camera hooked up to a laptop at the way-points?
I can think of three options:
1) Expensive, but available immediately:
There is license plate reading software in use on highways in Europe. These turnpike systems use cameras to read the license plates and LIDAR 3D laser scanners to reliably measure the size of a truck. The lase information should provide very reliable timing data, but likely are an overkill.
As others suggested special markers on the cars could be easier to identify then license plates.
2) cheaper in development but higher material cost for each race
Put an android phone with GPS in each car and write a small app that tells the measurement system when they are approaching the goal line.
3) very low deployment cost but more development cost
Paint an reflective bar code on the side of the car. A fixed laser is pointing across the goal line. Connect the light detector picking up the reflection to a sound board. This will give you 25us accuracy on the timing and the pattern of the reflection will tell you which car it is. The system will even get you a very accurate speed measurement.
Options 1 and 2 only tell you the ordering of the cars. Detailed timing must be measured with another system. It might be sufficient to interpolate camera frame data.
Based on a beam triggered start and finish you could use a still camera with a timestamp and a clock in sight. At the same time place a tag on all cars on the same height and distant from the front of the car. Combine a visual tag with a RFID tag in one and you have double signalling of both start and finish. Comparing those two can be done in milliseconds when connected to a laptop and only uses a networked connection between the two laptops.
I would couple the beams with RFID tag (tag identifies the car, while the beams do all the timing). I would also suggest maybe getting together with another club and sharing the gear or a local university (with this one could probably get them to help make up a good system). As long as you choose separate race days. I'd also imagine quick setup and dismantle is needed?
Get two line lasers. Modulate the beams at 20kHz for the start beam and 22kHz for the finish line beam. Direct the beams from overhead down to the start/finish lines. Design a timer/detector (I'll volunteer whenever I have time!) whose receptor is at least 1 inch in length and mount that to the top of each car. Each detector also has a small radio transmitter and a unique ID code.
When the car passes under the start beam the timer is started and is stopped when under the stop beam. At the stop beam the transmitter sends the ID and the E.T. (staggered so no 2 cars would omit at the same time).
Now, this isn't one of those races where the cars are covered in mud at the finish line, is it?
If I didn't have absolutely NOTHING to do, I wouldn't be here.
Stick a different 2D barcode on each car, mount a camera in a location that can see the barcode at the finish line. When the car crosses the finish line, take a picture and search for the barcode.
So many things missing from the OP's requirements like:
Must work in ALL weather conditions (fog, rain, snow, dust)
Must be accurate to 1 ms
Must identify which DRIVER is in the car as more than one person may be driving any given car, and drivers may have full face helmets
Must handle backward/spinning/sliding finishes
Must process in near realtime ( 20sec between finishes)
Must handle multiple cars on course at once (at least 3 running)
Must handle GoKarts and other strange pieces of machinery that may not have roof/hood/doors
Portable/Lightweight/Packable
What else is my caffeine starved brain missing?
I'm your Huckleberry.
Cat got your tongue? Don't want to spill the beans?
Why not outline some basics of your design and we'll help identify where the weaknesses are. Cause there's a HUGE hole there right now...
I'm timed races with AMB systems and I own an AMB transponder for my race car, which are more expensive than the RC versions. The problem is front money. But my old region had dozens of transponders that they'd rent to participants for a nominal fee. I'm sure they made up the cost of a transponder from the rental monies.
Why not break the problem down into two parts?
First, use the existing photocell equipment for timing the vehicles start and end times. These are cheap and proven; I know a lot of autos clubs use or have previous used these. Second, use your web cams at the pre-start and cool down lane to grab a face to ensure that the start and stop times correspond to the same driver. Then the system can adjust for cars that DNF, and you could probably figure out the problem of someone walking through the lights in software.
Every auto-x I've been to has a starter. Just have that person ask "Ready? Ok, look here for your picture" and send them on the course. Remember that you'll also want to be able to identify the drivers AND the cars for cases where two drivers share a car (which is no uncommon in my area). Car is also important to make sure the specific driver is driving the right car for the class entered. Also add a camera to the cool-down lane and have a person there, or design the lane such that people will be looking at a certain spot, your camera.
Failing that, what about RFID tags? Swipe on course, swipe off. That could be cheated, so perhaps the webcam could be backup enforcement of the actual driver.
Because you know nothing. Most systems are too expensive for grassroots racing, even your so called "cheap solutions".
If you can't be good, be good at it!
Light beam gives accurate timing. E-Tag (as used in motorway tolling) identifies the car. http://en.wikipedia.org/wiki/E-TAG http://en.wikipedia.org/wiki/DSRC Software matches the potentially less precise E-Tag activation time to the accurate light beam detection and you have your car and time recorded.
I don't know how timing is normally done for auto races, but I've been part of the staff at a few track & field events, such as the Nike Indoor Nationals, and seen how the timing is done there. There's a special camera that captures a single column of pixels, carefully aligned with the finish line, that records a rapid sequence of images whenever something changes in its field of view. The software assembles all these one-pixel-wide images into a single image whose horizontal axis is time rather than space. You can clearly see each runner, though arms and legs often look a little curved since they're moving as they pass through the plane of the finish line. In particular, the ID number tags worn by each runner are clearly visible.
Recognition isn't automatic, but it doesn't need to be. The operator just clicks on the front of each runner's shoulder (the part that "counts" for finishing the race) and reads the number from the runner's ID tag, and the time value associated with that column of pixels is recorded as that runner's finish time. So there's a human delay involved in matching the time measurements to the runners, but no human delay in the measurements themselves.
The company that did the timing at the races where I worked was CFPI Timing, and the tech page on their website has lots of details. Apparently the camera system I described is made by FinishLynx.
Several posts have objected to the frame rates of consumer video cameras as limiting resolution. However, this can be overcome.
For one, there are high-speed cameras with much higher frame rates. They are quite costly, though, and not necessary for this applicaiton.
I propose you use a multiple-exposure camera. Such things do exist in the digital world. Charge is allowed to accumulate for an extended period. You use a strobe to produce multiple images. You can use an infrared strobe to avoid disturbing participants.
In either case, much more light will be needed than with conventional video, because of the short exposure times. So, I don't know how practical this would be in terms of lighting.
I have experience with this technique in another sport, that involves hitting a small ball on a grass course... Said balls can travel at 100mph or higher, so we are in the range.
Contestants (be it cars, people whatever) have an RFID tag (probably passive, 900Mhz RFID) in a name tag or other tag (tag on dash of car) that will give you decent interval timing.
For the finish line, or where timing is more critical, you can supplement with a camera (photo finish if you will).
900Mhz RFID is typically good for 15+ feet (depending on the size of the tag) and can be used reliably up to about 45 feet (big tag on big metal object - like a rail car). Tags can be very cheap - about 25 cents. To 'track humans' you need to keep the tags off the skin (skin detunes/absorbes RF energy) so you need a slightly thicker name tag (foam backed) for reliable reading at range.
Oh, and its already been done. I believe runners right now use a low frequency RFID tag tied to their shoe laces and they have to run over a mat. Low frequency RFID is based more on magnetic fields - thus short range only.
As for cheating, the top competitors in a marathon are watched pretty carfully and their are lots of witnesses. The people running it for themselves.... well who cares if they cheat. Sorta like using an aim-bot on single player mode.
TODO: create/find/steal funny sig.
http://www.automaticnumberplaterecognition.co.uk/
"Don't belong. Never join. Think for yourself. Peace." V.Stone, Microsoft Corporation
You're on the right track here, but let's divide the task into subtasks.
We don't need to produce a fully automated solution at the first iteration, so we set up the webcams and the beam-gates with synchronised clocks. Post-race, the software is used by the marshalls to verify timing thus: it lines up a table of screen grabs, each row representing what it thinks is one car, the marshall clicks "OK" if they all match, or either clicks a button to identify a "drop out" (at which point the following photos are shuffled down to following rows) or an overtake (in which case the remainder of the row is switched with the corresponding images in the next row).
This solution is dead straightforward and lets you use the equipment and optimise webcam position for clear images, and gives you an immediate efficiency improvement, rather than moving straight to a completely new automated setup that will undoubtedly fail and probably be rejected by the competitors and organisers as being pointless.
When you find a suitable OCR or barcode solution, you will have the infrastructure in place to run it in parallel with the computer-aided-manual process, so you can iron out the difficulties without causing any serious disruption to the administration of the race.
HAL
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Get a digital camera, that can be triggered externally, with low (and known) latency.
Use a flash. It will 1) eliminate the need for shutter speed and 2) illuminate the scene so the camera can use a small aperture, and not need auto focus.
Use barcodes as identifying symbols - there is plenty of barcode scanning software. Turn it "sideways" if needed for further robustness against motion blur
Print the barcode on a reflective material. Then it could easily be the brightest spot in the photo - easy to identify.