{"id":30893618,"url":"https://github.com/themightyoarfish/deepvo","last_synced_at":"2025-09-08T20:45:11.306Z","repository":{"id":77438741,"uuid":"124221116","full_name":"themightyoarfish/deepVO","owner":"themightyoarfish","description":":video_camera: Tensorflow implementation of RCCN visual odometry by Wang et al.","archived":false,"fork":false,"pushed_at":"2019-03-22T09:32:46.000Z","size":5266,"stargazers_count":52,"open_issues_count":0,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-30T06:26:02.200Z","etag":null,"topics":["deep-learning","python","robotics","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themightyoarfish.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-03-07T10:44:04.000Z","updated_at":"2025-02-16T14:24:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"2aeacd9c-550a-494f-85c9-e5da69984a6c","html_url":"https://github.com/themightyoarfish/deepVO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/themightyoarfish/deepVO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themightyoarfish%2FdeepVO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themightyoarfish%2FdeepVO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themightyoarfish%2FdeepVO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themightyoarfish%2FdeepVO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themightyoarfish","download_url":"https://codeload.github.com/themightyoarfish/deepVO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themightyoarfish%2FdeepVO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231484,"owners_count":25245601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","python","robotics","tensorflow"],"created_at":"2025-09-08T20:45:07.357Z","updated_at":"2025-09-08T20:45:11.297Z","avatar_url":"https://github.com/themightyoarfish.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Status\nNot functional (i.e. does not converge with our data). But can be a useful starting point since the paper author's code is not public.\n\n---\n\n# A TensorFlow implementation of _DeepVO: Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks_\n\nThis is our submission for the ANN with TensorFlow course, winter 2017. **Please note that this implementation does not seem entirely correct. Convergence was observed only on a dataset with random moves forwards and backwards, without rotation.**\n\n## Data Acquisition\nIn order to make use of the full 720 resolution of the LifeCam 3000, you must do two things\n- Tell the device driver to use this resolution via `v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=1` (the pixel format is probably not important, but you may need to adjust the ros node accordingly)\n- In the `usb_cam_node`, set height and width parameters appropriately.\n\n## Data Preprocessing\n### Bagfile conversion\nThe first thing to do is to convert the rosbag sensor recordings with the\nconversion tool (which you can find [here](https://github.com/themightyoarfish/bag_to_pose_cam_data)) like this\n```\nbag_to_cam_pose_data -b \u003cfile\u003e.bag  -d \u003coutdir\u003e -x -P\n```\nThe `-P` flag is to dump one npy file for each image and pose. The `-x`\nflag is for writing float image arrays instead of uint8.\nThis will create `images` and `poses` folders inside the chosen directory.\n### Further preprocessing\nUse the `preprocess_data.py` script to prepare the data for our network\n* with `-d \u003cpath-to-data\u003e` you give it the path where the `images/` and\n  `poses/` folders are located. *All modifications are done in-place*\n* `-f` will map the images to (0, 1)\n* `-m` will subtract the mean (over the entire set) from each image\n* `-p` will add Pi to all pose angles. The robot's EKF output is in the\n  range (-pi, pi), but we want (0, 2pi)\n\n## Potential Problems\n- We are not sure if the timestamps of pose and camera messages are correct and thus whether the training data is good enough\n- We have no control over the exposure time of the camera. Auto-exposure differences while driving around might make the problem more difficult\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemightyoarfish%2Fdeepvo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemightyoarfish%2Fdeepvo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemightyoarfish%2Fdeepvo/lists"}