Skip to content
This repository has been archived by the owner on Jul 8, 2023. It is now read-only.

Commit

Permalink
Merge branch 'dev' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
ElvinC committed Feb 7, 2021
2 parents 7cf491f + e2d61aa commit 42a4e0b
Show file tree
Hide file tree
Showing 48 changed files with 4,060 additions and 604 deletions.
2 changes: 1 addition & 1 deletion GPMF_gyro.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def parse_gyro(self):

# Calibration scale shouldn't change
self.gyro_scal = stream["SCAL"]
print(self.gyro_scal)
#print(self.gyro_scal)


# Convert to angular vel. vector in rad/s
Expand Down
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,24 @@ The launcher containing all the utilities is available by executing `gyroflow.py
* Symmetrical slerp-based quaternion low-pass filter
* Blackbox data import
* Undistort and rotation perspective transform
* Semi-automatic temporal gyro/video sync. Not super robust but works most of the time.
* Semi-automatic temporal gyro/video sync.
* Blackbox orientation handling and wide interval sync.
* Stabilization UI without video player
* (Basic) gyro orientation presets for GoPro cameras


**Work in progress:**
* Documentation
* Improved low-pass filter and more stabilization modes (Time-lapse, separate pitch/yaw/roll smoothness control etc.)

* Stabilization UI. Working barebone version without video player added. Feel free to try it out using Hero 6 or Hero 8 files or files modified with BlackboxToGPMF, but this is still work in progress.
* Gyro orientation presets
* blackbox orientation handling. Testing ways of avoiding the need for manual sync in blackbox explorer using more robust sync algorithm.

**Not working (yet) and _potential_ future additions and ideas:**
* Improved low-pass filter and more stabilization modes (Time-lapse, separate pitch/yaw/roll smoothness control etc.)
* Incorporate acceleration data in orientation estimation for horizon lock (Probably just a complementary filter. Kalman is overkill but could be fun to learn).
* Automatic camera alignment identification with respect to gyro
* Streamlining/optimizing the image processing pipeline
* Rolling shutter correction (and determination?)
* Try different calibration pattern? Asymmetric circles/ChArUco?
* Streamlining/optimizing the image processing pipeline (more hardware acceleration etc.)
* Rolling shutter correction (and determination?) + RS-aware gyro sync.
* Automatic determination of required crop
* Integration with external logger hardware
* Native support for other cameras with internal gyro if there's interest (insta360, sony A7 series?)
* Support for reading and writing professional video formats
* Native support for other cameras with internal gyro (insta360, sony A7 series?)
* Support for reading and writing professional video formats (video editor plugin?)
2 changes: 1 addition & 1 deletion _version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.1.1-alpha"
__version__ = "0.2.0-alpha"
15 changes: 14 additions & 1 deletion blackbox_extract.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,22 @@ def get_gyro_data(self,cam_angle_degrees=0):

return self.final_gyro_data





#testing
if __name__ == "__main__":
bbe = BlackboxExtractor("test_clips/GX015563.MP4_emuf_004.bbl") # btfl_all.bbl


with open("test_clips/GX010010.MP4.bbl") as f:
#print(f.readline())
pass


#exit()

bbe = BlackboxExtractor("test_clips/GX010010.MP4.bbl") # btfl_all.bbl
gyro_data = bbe.get_gyro_data()
print(gyro_data)
print(bbe.n_of_logs)
1,254 changes: 1,254 additions & 0 deletions bundled_images.py

Large diffs are not rendered by default.

Loading

0 comments on commit 42a4e0b

Please sign in to comment.