1. A method for obstacle avoidance for an Unmanned Aerial Vehicle (UAV), the method comprising: providing streaming video captured by a first camera of the UAV as a visual feed of the UAV's flight path to an operator of the UAV; analyzing the streaming video captured by the first camera to identify features in one or more image frames of the streaming video by: detecting a horizon; determining a presence of an object cluttering the horizon; and determining a percentage of a size of the object cluttering the horizon with respect to an area of one of the image frames; determining a score based on the features; selecting one of a plurality of different obstacle avoidance maneuvers based on the score; and performing the selected obstacle avoidance maneuver to alter the flight path of the UAV.