When a vehicle moves through an environment, one method for avoiding obstacles is to calculate the optical flow and move in the direction opposite the maximum optical flow. For example if an observer is moving in the direction of an obstacle on their left, the optical flow on the left side of the image will be greater than that on the right side. This is due to parallax, objects closer to an observer appear to move more quickly than those far away. In this situation, the observer would need to turn right (away from the optical flow) to avoid the obstacle. In order to use this method for obstacle avoidance, the optical flow vectors for the image must be calculated in real time. Since these calculations are computationally expensive, application specific hardware is a natural approach to the problem.
It is difficult to implement low power, real-time computer vision algorithms in software. Thus, hardware solutions are necessary to achieve desired performance in a mobile, embedded platform. We designed optical flow hardware to compute lucas-kanade optical flow. For visual navigation and obstacle avoidance applications, our optical flow algorithm needs to be able to process images at a resolution high enough such that the edges of objects can be perceived. 256×144 should be sufficient for detecting relatively large obstacles, or obstacles at close range. In order to react to these obstacles in real time, a framerate of 24fps minimum (the lowest framerate perceived as video by the human eye) is sufficient for around human walking speed with slow moving obstacles. The important metric here is obstacle speed relative to the observer.
To see how we created an optical flow hardware accelerator see our design and result pages:Design Results