It's difficult to tell but as a long time glasses wearer I can tell you it's probably just the sweat/oils of your head reacting with the metal of your glasses. You might be able to clean some of it off but it's likely just going to be like that going forward.
My previous pair of glasses were like this and got spoilt pretty quickly. Since then I have stuck to using plastic non coated frames. Using one of them for over 5 years.
So, it’s unlikely you can fully restore the finish.
That said, you may be able to clean it with a milder abrasive like sodium bicarbonate/baking soda. Make a paste with some water, and the rub it with a cloth.
I assume it’s the oils reacting with the finish, as mentioned already.
Idk. To me it looks like it was plated and this is where the plating wore off. Using an abrasive will just take the plating off anywhere else it rubs. It's not a great picture though, so idk.
Edit: looking again, yeah I'm pretty sure it's a steel frame with a copper(? maybe something else) plating. I don't think there's any hope of recovering it.
maybe. Regardless, cleaning off the gunk is the first step. baking soda removes more finish with just a light scrub... that finish was going to come off anyhow.
Dremel, polishing paste fine and very fine, polishing wheel and wobbles, and time. Test it on a small part, maybe under the ear piece, if you can pull it. Works with a bit of heat, mostly. Not too much heat, though. More hair dryer than a heat gun. If the discoloration is under the plating it'll be silver in the best case, if it's above it should work.