Wearable sensors are being widely used to monitor daily human activities and vital signs. Accelerometer-based step counters are commonly available, especially after being integrated into smart- phones and smart watches. Moreover, accelerometer data is also used to measure step length and frequency for indoor positioning systems. Yet, accelerometer-based algorithms are prone to over- counting, since they also count other routine movements, including movements of the phone, as steps. In addition, when users walk really slowly, or when they stop and start walking again, the accelerometer-based counting becomes unreliable. Since accurate step detection is very important for indoor positioning systems, more precise alternatives are needed for step detection and counting. In this paper, we present a robust and reliable method for counting foot steps using videos captured with a Samsung Galaxy® S4 smartphone. The performance of the proposed method is com- pared with existing accelerometer-based step counters. Experiments have been performed with different subjects carrying five mobile devices simultaneously, including smart phones and watches, at different locations on their body. The results show that camera-based step counting has the lowest average error rate for different users, and is more reliable compared to accelerometer-based counters. In addition, the results show the high sensitivity of the accelerometer- based step counters to the location of the device and high variance in their performance across different users.