Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difference between Hero6 and Hero7 data? #47

Closed
noobtoob4lyfe opened this issue Dec 20, 2018 · 24 comments
Closed

Difference between Hero6 and Hero7 data? #47

noobtoob4lyfe opened this issue Dec 20, 2018 · 24 comments

Comments

@noobtoob4lyfe
Copy link

noobtoob4lyfe commented Dec 20, 2018

Hello and thanks again for making all this great work available.
I'm noticing that the quality of the gyro data in the GPMF varies from the Hero6 and the Hero7. If you compare the two camera's gyro readings under a high amount of vibration (for example when attached to a drone), the Hero 6 gives higher quality data that matches the video more closely than the Hero 7 which will look much more noisy and error-filled. I assume this isn't a problem with the gyro itself because the fantastic Hypersmooth stabilization of the hero 7 has no problem handling the same vibration of the drone. Is there some sort of filtering that happens to the gyro samples before they are written to GPMF in the Hero 6 that is not active in the Hero 7? It was my understanding the hardware of the two camera was identical with exception of more ram for performing the hypersmooth stuff. Very curious about this. Thanks!

@dnewman-gpsw
Copy link
Collaborator

I this will take some investigation time. Yes, they should be the same. I expect it has something to do with the new Hypersmooth stabilization which runs the Gyro at a much higher frequency than the data it stores -- all that sub-frame, rolling-shutter compensation, goodness comes from gyro data significantly faster than the 200Hz stored. I'm guessing the HERO6 used IMU based hardware downsampling, but HERO7 might be doing it downsampling elsewhere (this is what I will try and determine.)

@noobtoob4lyfe
Copy link
Author

Thanks for the quick reply! It certainly feels like what you are saying is the case when you look at the differences in gyro streams. I ran another test with the rig pictured below and uploaded the files in the hope that it might be helpful to you. Thanks for looking into this!
image
hero 6 black https://drive.google.com/open?id=1iH_w_2KaMehvsBI8lq6x0SCow1dKeizb
hero 7 black https://drive.google.com/open?id=1sUXWDUMjpicGYMb5-rUE7-rUMm0N__QB

@noobtoob4lyfe
Copy link
Author

noobtoob4lyfe commented Jan 8, 2019

Is there any sort of filtering/averaging I could do to the hero7 gyro data improve it to the level of the hero6 you think? Or is 200hz way too low-frequency to get any signal out of the noise?

@dnewman-gpsw
Copy link
Collaborator

Sorry for the long delay on this one. I first set up my own HERO6 to HERO7 IMU comparison and didn't find significant differences. I was expect to be a noise or a downsampling issue, then I tested your sources, which I should have done first. The only issue I'm seeing with your HERO7 data has a larger than average gyro bias. Could this be throwing off your comparisons?

@noobtoob4lyfe
Copy link
Author

noobtoob4lyfe commented Jan 10, 2019

Thanks again for looking at this! I'm no expert but it doesn't feel like a bias thing to me, because If I shoot a clip while walking, or riding a bike, or any other application that doesn't involve strong mechanical vibrations everything looks virtually identical to the hero 6. I've had some friends send me some drone clips from their Hero7s and the issue is consistent with their cameras as well. If I take a few seconds from both my uploaded test shots and graph the differences you can really see the problem clearly, especially if you look at the Yaxis (yellow line). (hero7 is the top image and hero6 is the bottom)
hero7_vibes
hero6_vibes
It really feels like the Hero 6 is being filtered or has a higher quality downsample as you hypothesized. Could there be a different time in the hero7 recording pipeline that this info could be grabbed to improve the quality possibly?

@noobtoob4lyfe
Copy link
Author

noobtoob4lyfe commented Jan 28, 2019

Here's a much better way to show the issue. If I overlay an artificial horizon on the drone clips you can really see what I'm talking about. before I take off when I'm turning and rotating the cameras by hand you can see the horizons looking very good in both clips, but after takeoff when the vibes start you can see Hero 7 slipping and sliding all over the place. The broader motions are still doing what they should which really makes me think it's not a bias problem but a filtering or down-sampling one as you said earlier. I don't suppose there's anything I could do to improve this by conditioning the data somhow? Or would this need a firmware update to be be fixed? https://drive.google.com/open?id=1CdtANhsY2ef4x67CzV9AxkLdbiBAR7Xs

@dnewman-gpsw
Copy link
Collaborator

I have not found a good fix for this. The IMU data stored with H7 is simply not a clean as H6. I have reported the bug, and hopeful it does not reoccur in future cameras.

@noobtoob4lyfe
Copy link
Author

Thanks very much for your time on this! Is there any chance this might be patched in the next firmware update?

@dnewman-gpsw
Copy link
Collaborator

I don't know that is can be, it might be a limitation of the IMU hardware configuration which was designed for the best results in Hypersmooth.

@noobtoob4lyfe
Copy link
Author

Thanks again for the info! That's interesting. From this teardown here https://gethypoxic.com/blogs/technical/gopro-hero7-teardown the author claims the only hardware changes from the Hero 6 to the Hero 7 are the Apple MFI, The 2GB of ram, and Pericom PI3USB9281 charging component. If that's true, does't it seem possible that Hero 6 style of gyro recording may work on that configuration?

@dnewman-gpsw
Copy link
Collaborator

The IMU parts might be the same, but the wiring for the clocking is different. Something (beyond my understanding) was changed with the IMU to support Hypersmooth, it was more than just the increase in memory.

@noobtoob4lyfe
Copy link
Author

Also very interesting. Thanks!

@kikislater
Copy link

Different wiring or different algorithm ?

@noobtoob4lyfe
Copy link
Author

noobtoob4lyfe commented Mar 20, 2019

Just wanted to ask one more thing before I give up. I understand that "Something (beyond my understanding) was changed with the IMU to support Hypersmooth". What if a firmware update was produced that only changed the shooting modes where hypersmooth is NOT active. Would it be possible to use the Hero6 style gyro recording in only those modes? Or is this a hardware thing that's beyond what the firmware can control?

@dnewman-gpsw
Copy link
Collaborator

I believe it is a hardware change beyond firmware control.

@hypoxic
Copy link

hypoxic commented Mar 29, 2019 via email

@tenten8401
Copy link

tenten8401 commented Dec 13, 2019

Any update on this out of curiosity? Since the GoPro itself is still getting all the data, is there any way it can be downsampled in the firmware before outputting it? Am I thinking about this the wrong way? I would think if Hypersmooth works as well as it does without funky vibration-dampening mounts it'd be possible to get some cleaner gyro data to use, maybe via a firmware update that adds some additional downsampling and/or filtering in non-stabilized modes. Would it be possible to just output gyro data at a higher frequency and do filtering in post? Just a thought, probably spewing nonsense.

I and many others would love to have a Hero 7 with usable gyro data out, I don't want to have to downgrade to a Hero 6.
cc @dnewman-gpsw

@Moksh-2000
Copy link

So what's the final result @dnewman-gpsw , @hypoxic , @tenten8401 , @kikislater , @noobtoob4lyfe

I'm excited to hear some good news 😁

@tenten8401
Copy link

tenten8401 commented Oct 16, 2021 via email

@Moksh-2000
Copy link

No go unfortunately. Ended up just buying an 8 :( Oct 16, 2021 7:12:46 PM Moksh @.***>:

So what's the final result @dnewman-gpsw[https://github.com/dnewman-gpsw] , @hypoxic[https://github.com/hypoxic] , @tenten8401[https://github.com/tenten8401] , @kikislater[https://github.com/kikislater] , @noobtoob4lyfe[https://github.com/noobtoob4lyfe] I'm excited to hear some good news 😁 — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub[#47 (comment)], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ABPDNBZ5BE5IDYXBU3BRANDUHIBF7ANCNFSM4GLNJ6KQ]. Triage notifications on the go with GitHub Mobile for iOS[https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675] or Android[https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub]. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAA/CAYAAABXXxDfAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAAmSURBVGiB7cEBDQAAAMKg909tDwcUAAAAAAAAAAAAAAAAAAAAJwY+QwABivJx1AAAAABJRU5ErkJggg==###24x24:true###][Tracking image][https://github.com/notifications/beacon/ABPDNB5GDZW7HHC7LRZYACLUHIBF7A5CNFSM4GLNJ6K2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHBJ5VQI.gif]

What about change the gyro or make fw can do filter the gyro data as need rsgo then maybe it possible , right ?

@tenten8401
Copy link

tenten8401 commented Oct 20, 2021 via email

@Moksh-2000
Copy link

@tenten8401 we can change fw , right ? So why we need gopro to solve this problem

Anyway I bought this camera and now in my hand , so what can I do ? And it's naked 😅 , if I sell them loss me even without used any other way to use rsgo ?

@tenten8401
Copy link

tenten8401 commented Oct 20, 2021 via email

@Moksh-2000
Copy link

Yeppp thanks mat 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants