Indoor Positioning on Smartphones Using Built-In Sensors and Visual Images