EdgeVO: An Efficient and Accurate Edge-based Visual Odometry