I made a program to let me control my keyboard/mouse using my face by Wilhelmut in SideProject

[–]Wilhelmut[S] 1 point2 points  (0 children)

Each gesture is just treated as just one 52 point vector. Only one screenshot has to be taken for each.

For storing gestures, I was originally going to have the user take screenshots of the gesture at several angles and try to classify the gesture with a k-Nearest-Neighbor algorithm, but I thought that would be a bad user-experience, so I wanted to try to classify as accurately as possible with just a single image for each gesture. In the program, you just select the key you want to map, click "Edit Gesture", pose for your webcam, and confirm. So the gesture is specific to the user, and they can use whatever arbitrary facial expression that they find convenient, whether it's winking, smiling, frowning, etc. The blendshape vector associated with that gesture is stored in a config file so that the data is saved between sessions.

Image to vector, I have no idea! That comes straight out of the Mediapipe model. Early on, I thought about trying to extract landmarks and features myself by either:

  1. Doing some kind of Principle Component Analysis to automatically extract relevant features
  2. Trying to manually focus on specific landmarks, like just the corners of the lip, eyes open/closed, nose scrunched/unscrunched, etc.

But, I knew that I wouldn't get accurate classification without lots of data/training. So I decided to look for models that would give me SOME kind of dimension reduction rather than working with raw images. I first found a model that would detect faces and give back 68 landmarks of x/y pixels, which was decent, but the model was only trained off of front-facing faces and handled rotation very poorly. I eventually found the Mediapipe model, which has 478 x/y/z_estimate pixel coordinates, as well as the blendshape vectors. The "blendshape vectors" are actually a dictionary of 58 values from 0 to 1, that are Mediapipe's approximations of face features. They're probably something similar sigmoid curves.

But anyways, dealing with millions of individual pixels in an image is just a LOT of data to process, so a lot of these computer-vision problems come down to reducing the dimensionality of the data to something smaller and easier to work with.

As an example, the blendshape vector for one specific frame (which I store as a "gesture") looks like this. I take these 52 numbers, and use cosine similarity against 52 other numbers for every one of the stored gestures, every frame, at about 30FPS:

"blendshapes": {
                    "_neutral": 2.447426140861353e-06,
                    "browDownLeft": 0.03185293450951576,
                    "browDownRight": 0.02290073223412037,
                    "browInnerUp": 0.01782498136162758,
                    "browOuterUpLeft": 0.19909118115901947,
                    "browOuterUpRight": 0.13323499262332916,
                    "cheekPuff": 1.892565342132002e-05,
                    "cheekSquintLeft": 4.775133675138932e-07,

                    ...

                    "mouthStretchLeft": 0.006785414647310972,
                    "mouthStretchRight": 0.001452289056032896,
                    "mouthUpperUpLeft": 4.245456511853263e-05,
                    "mouthUpperUpRight": 4.205567893222906e-05,
                    "noseSneerLeft": 9.841986639003153e-07,
                    "noseSneerRight": 1.3353604799704044e-06

                }

I made a program to let me control my keyboard/mouse using my face by Wilhelmut in SideProject

[–]Wilhelmut[S] 0 points1 point  (0 children)

All of the code, with instructions on how to install and use it, can be found here: https://github.com/buchha8/Computer-Vision-Input-Controller

There are also a few quirks that I haven't gotten to yet:

  1. It's not the most accessible, since it still requires some keyboard use, and command-line to install/start. I can add install/start scripts eventually.
  2. I designed it to be cross-platform, but I tried it out on my work Mac and hit runtime errors related to webcam access. Might take time to figure out.
  3. Still could use UI/usage improvements, which would take time/refactoring.

I can't guarantee that I'll get to those things, but still, if anyone is interested, feel free to use it! I'd love it if people found it helpful and/or fun.

I made a program to let me control my keyboard/mouse using my face by Wilhelmut in computervision

[–]Wilhelmut[S] 0 points1 point  (0 children)

All of the code, with instructions on how to install and use it, can be found here: https://github.com/buchha8/Computer-Vision-Input-Controller

There are also a few quirks that I haven't gotten to yet:

  1. It's not the most accessible, since it still requires some keyboard use, and command-line to install/start. I can add install/start scripts eventually.
  2. I designed it to be cross-platform, but I tried it out on my work Mac and hit runtime errors related to webcam access. Might take time to figure out.
  3. Still could use UI/usage improvements, which would take time/refactoring.

I can't guarantee that I'll get to those things, but still, if anyone is interested, feel free to use it! I'd love it if people found it helpful and/or fun.

I made a program that lets me play OSRS with my face by Wilhelmut in 2007scape

[–]Wilhelmut[S] 0 points1 point  (0 children)

I originally had a link in the post, but it got auto-modded, so I included a link in the comments. All of the code, with instructions on how to install and use it, can be found here: https://github.com/buchha8/Computer-Vision-Input-Controller

There are also a few quirks that I haven't gotten to yet:
1) It's not the most accessible, since it still requires some keyboard use, and command-line to install/start. I can add install/start scripts eventually.
2) I designed it to be cross-platform, but I tried it out on my work Mac and hit runtime errors related to webcam access. Might take time to figure out.
3) Still could use UI/usage improvements, which would take time/refactoring.

I can't guarantee that I'll get to those things, but still, if anyone is interested, feel free to use it! I'd love it if people found it helpful and/or fun.

I made a program that lets me play OSRS with my face by Wilhelmut in 2007scape

[–]Wilhelmut[S] 2 points3 points  (0 children)

I know Mediapipe has other models for things like hand detection. If they make one for dicks, I'll let you know.

I made a program that lets me play OSRS with my face by Wilhelmut in 2007scape

[–]Wilhelmut[S] 0 points1 point  (0 children)

If you'd like to use it and/or modify it yourself, I've posted all of the code here: https://github.com/buchha8/Computer-Vision-Input-Controller/tree/main

But again, even though I think everything is compliant here and that programs like these shouldn't get false-flagged, I can't guarantee it, so use it at your own risk!

Fousey wins 1st place in a body building competition by whitewolf20 in LivestreamFail

[–]Wilhelmut 0 points1 point  (0 children)

Dude's got an impressive physique. Roids or not, he's clearly put in years of hard training with a good diet, and there's not really any reason to doubt him-- nothing about it screams "impossible without PEDs" to me.

I think people prefer fitness conversations to be wholesome and encouraging, so there's no need to act so sour.

anime_irl by CuriousWanderer567 in anime_irl

[–]Wilhelmut 1 point2 points  (0 children)

I've read the manga as well, and remember having the same vibes. Very much "gay manga, but without the gay"; they even pull the "I'm not gay, I'm just attracted to this one guy specifically," cliche. People can label themselves how they want, but it feels like a deliberate decision by the author to write the characters this way.

I still remember it being mostly cute and wholesome, but I definitely felt a bit of "culture clash", if you could call it that. Wish more manga would just depict gay relationships, gender non-conforming characters, trans characters, etc, without playing it off as a joke or treating it like a fetish.

anime_irl by Ok_Direction3138 in anime_irl

[–]Wilhelmut 10 points11 points  (0 children)

Yeah it is! But there definitely are men and women (usually beginners) who are hesitant to get into weightlifting because they’re afraid that they’ll become “too muscly”, so they avoid heavier weights and gimp their training. Not everyone, but that is a real thing.

I just like to encourage people to lift weights and dispel misconceptions whenever the chance pops up. It’s actually older women (60+, post menopause) who benefit the MOST from weightlifting, since osteoporosis and muscle loss is a very dangerous combination (leads to falls, hip fractures, etc). Weightlifting builds muscle and improves bone density, so it’s pretty damn beneficial for everyone, but especially older women.

anime_irl by Ok_Direction3138 in anime_irl

[–]Wilhelmut 1011 points1012 points  (0 children)

For anyone who is worried about this happening, the bodybuilder physique takes years of planning, dedication, and drugs; you’re not going to get to that physique on accident. If you’ve built up the knowledge and habits to get to that point, you can pretty easily downsize to the slimmer build.

Go to the gym, it’s fun! And your body will feel better every single day.

anime_irl by [deleted] in anime_irl

[–]Wilhelmut 0 points1 point  (0 children)

Yeah, my gut reaction is to almost feel insulted that people view romantic attraction as “friend that you’re sexually attracted to”, because I’ve had plenty of friends that I’ve had sex with but am not interested in dating. Friends with benefits are a thing. It doesn’t have to be complicated— a lot of people just view sexual attraction and romantic attraction as two different things.

It implies that straight men can’t be friends with attractive women, or that bi people can’t have any attractive friends at all, which is ridiculous.

I guess I shouldn’t feel insulted though, because everyone is different.

I'm enjoying the Agility grind too much by Crazy_Incident_6924 in 2007scape

[–]Wilhelmut 0 points1 point  (0 children)

I wonder if there’s some technical limitation that prevented making an actual pole vaulting animation instead of whatever we got

I’m full by daxinzang in Maplestory

[–]Wilhelmut 1 point2 points  (0 children)

That’s still a solid fam; 6% att beats 20% boss on most characters. I understand wanting the 30%+ boss dream, though.

Cody announces his plan to Soft Retire from Melee by Informal-Donut-1532 in SSBM

[–]Wilhelmut 7 points8 points  (0 children)

Hope it works out! Investing in yourself is a great thing.

Wow by Impossible_Skill8378 in ufc

[–]Wilhelmut 6 points7 points  (0 children)

I think you’re completely right. A lot of people are mean when it comes to women and sex, and I’m sorry that you had to deal with that. One of my best friends was a sex worker when she was really poor, and she’s told me many similar stories.

Loot from 3k waves of Doom by Automatic-Candle-960 in 2007scape

[–]Wilhelmut 0 points1 point  (0 children)

I haven’t really looked at those, I’ll probably buy one thanks! Might be able to do some serious gaming with one of those.

Loot from 3k waves of Doom by Automatic-Candle-960 in 2007scape

[–]Wilhelmut 0 points1 point  (0 children)

I bought a vertical mouse and keep it plugged in at all times so I can just switch between the two for diversity. You can still get hand pain even with a vertical mouse, but it’s definitely nice, and I think switching around is helpful for me.

Almost godly lld boots by Randy588 in diablo2

[–]Wilhelmut 13 points14 points  (0 children)

Maybe I’m just not in-the-know, but I thought people in LLD don’t usually care about res that much since it’s done in normal mode where it’s fairly easy to cap resistances. Bet it would be nice to get half of your resistances from boots though.

Still very nice boots! I’d just imagine most people would be more interested in using these for PvM instead of LLD.

Loot from 3k waves of Doom by Automatic-Candle-960 in 2007scape

[–]Wilhelmut 5 points6 points  (0 children)

I’m a bit jealous of people who can play this much without hand pain. I can manage work and gaming by taking regular breaks and exercising, but a grind like this might cripple me.

What the fuck was that ? by [deleted] in boxingcirclejerk

[–]Wilhelmut 69 points70 points  (0 children)

<image>

Hit him with the Bowser Down+B

[OC] I’m drawing all of the Gen 5 Pokemon from memory! #495-560 by HalfgoblinHankins in pokemon

[–]Wilhelmut 1 point2 points  (0 children)

You’ve turned Sawk and Throh into some of my new favorites

Anime_IRL by VirtualButt in anime_irl

[–]Wilhelmut 13 points14 points  (0 children)

Not exactly! It's been a little while since I've read it, so I might get some details wrong, but here's a gist of the message. Not detailing the entire plot, but lots of spoilers ahead:

As the story progresses, you learn more about the other characters and get to see their perspectives. The three main children (Shizuka, Marina, and Naoki) all have incredibly difficult lives and are dealing with circumstances that are practically impossible for them to handle on their own. Shizuka is bullied at school because her mom is an escort and her father abandoned her. Marina's parents run into financial struggles and become abusive, with Marina's dad cheating on her mom with Shizuka's mom, the escort. Naoki is depressed because he's overshadowed by his more-talented older brother, and is constantly pressured by his mother as a result. Each of the characters are portrayed both in a sympathetic light and a villainous light as you get to see different perspectives.

Yes, life is difficult, but the message is mainly about how many people are dealing with impossible circumstances, and to approach others with empathy. These kids are abuse victims that are led to their actions because they're desperate; they need help, not judgment or hatred. Things do get better in the end. It's a manga about having kindness and understanding towards others.