Update README.md

a
This commit is contained in:
CowwanVT 2024-02-05 18:42:22 -05:00 • committed by GitHub
parent 327a90a16e
commit df9a15ed25
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -24,48 +24,48 @@ Numpy
OpenCV
onnxruntime
<br>
<br>
# Changes (in no particular order):
-Major restructure
-I've broken out major chunks of functionality into separate files to make them easier to deal with and read
-I've tried to break functions down into multiple smaller parts when possible
-I've taken a more object oriented approach in some places
-I've removed features that didn't fit my needs
-Removed functionlaity for tracking multiple faces
-Removed options I didn't forsee myself using (this was intended to be just for me)
-Added more threading and multi-processing
-The webcam (and some new image processing) are now on a separate process
-Previews are now a separate process because I didn't want to deal with the related performance weirdness
-Console messages are now handled via a helper thread, idk if it does any good, but it can't hurt
-VTS communication is also handled via a helper thread
-Added image pre-processing
-I'm now applying a gamma curve to the webcam output to make faces more visible
-The gamma curve is calculated after face tracking is done, it uses a copy of the webcam frame and face location data so get the average brightness of the face
-This has drasitcally improved low light performance
-It also lets me run the webcam with no gain
-Removed the separate library that handled the webcam, then broke that off into a separate library again
-The stuff around the webcam is still simpler now, most of the existing cases didn't apply to my use case
-Revamped the way features are calculated and normalized
-This was kind of my original intent, my eyes kept registering as closed when they were not
-Removed features that didn't seem to be used by Vtube Studio
-Added functionality to apply response curves to features
-Removed the calibration period in favor of a system where the limits of features slowly decay towards a center point
-Removed the average from the way featured are normalized
-Added a feature to prevent errant eye movements
-Each eye has an average confidence and standard deviation calculated every frame
-eye movements more than two standard deviations below average are severely restricted
-The restriction is based on how far the confidence is from the cutoff point
-Added early exits to situations where subsequent steps will fail
-The main process skips frames when the webcam falls behind, once webcam latency is long enough to be late it will remain behind otherwise
-Added warnings to various states such as late webcam frames, longer than ideal frames, and early exits
-Changed which stats are shown on exit, added some stats that get tracked like webcam latency
-Added conditions to skip steps when they are unnecessary, such as not rotating the eye images for small angles
I'll list more as I remember them
# Changes (in no particular order):<br>
<br>
-Major restructure<br>
-I've broken out major chunks of functionality into separate files to make them easier to deal with and read<br>
-I've tried to break functions down into multiple smaller parts when possible<br>
-I've taken a more object oriented approach in some places<br>
-I've removed features that didn't fit my needs<br>
-Removed functionlaity for tracking multiple faces<br>
-Removed options I didn't forsee myself using (this was intended to be just for me)<br>
-Added more threading and multi-processing<br>
-The webcam (and some new image processing) are now on a separate process<br>
-Previews are now a separate process because I didn't want to deal with the related performance weirdness<br>
-Console messages are now handled via a helper thread, idk if it does any good, but it can't hurt<br>
-VTS communication is also handled via a helper thread<br>
-Added image pre-processing<br>
-I'm now applying a gamma curve to the webcam output to make faces more visible<br>
-The gamma curve is calculated after face tracking is done, it uses a copy of the webcam frame and face location data so get the average brightness of the face<br>
-This has drasitcally improved low light performance<br>
-It also lets me run the webcam with no gain<br>
-Removed the separate library that handled the webcam, then broke that off into a separate library again<br>
-The stuff around the webcam is still simpler now, most of the existing cases didn't apply to my use case<br>
-Revamped the way features are calculated and normalized<br>
-This was kind of my original intent, my eyes kept registering as closed when they were not<br>
-Removed features that didn't seem to be used by Vtube Studio<br>
-Added functionality to apply response curves to features<br>
-Removed the calibration period in favor of a system where the limits of features slowly decay towards a center point<br>
-Removed the average from the way featured are normalized<br>
-Added a feature to prevent errant eye movements<br>
-Each eye has an average confidence and standard deviation calculated every frame<br>
-eye movements more than two standard deviations below average are severely restricted<br>
-The restriction is based on how far the confidence is from the cutoff poin<br>t
-Added early exits to situations where subsequent steps will fail<br>
-The main process skips frames when the webcam falls behind, once webcam latency is long enough to be late it will remain behind otherwise<br>
-Added warnings to various states such as late webcam frames, longer than ideal frames, and early exits<br>
-Changed which stats are shown on exit, added some stats that get tracked like webcam latency<br>
-Added conditions to skip steps when they are unnecessary, such as not rotating the eye images for small angles<br>
<br>
I'll list more as I remember them<br>
<br>
![OSF.png](https://raw.githubusercontent.com/emilianavt/OpenSeeFace/master/Images/OSF.png)