We present a snake-based scheme for efficiently detecting contours of objects with complex boundary concavities. The proposed method is composed of two steps. First, the object's boundary is detected using the proposed snake model. Second, snake points are optimized by inserting new points and deleting unnecessary points to better describe the object's boundary. We use the Frenet formula to calculate the binormal vector at snake points and use the result to control the direction of movement for snake points near boundary concavities. The proposed algorithm can successfully extract objects with boundary concavities. Experimental results have shown that our algorithm produces more accurate segmentation results than the conventional algorithm.