well, there is a big misunderstanding with the PWM in general. The pwm does not control the current neither the voltage, rather the power. what i mean i simple words is that, if a resistor of 1 ohm is connected to a source of 1v, it will draw 1A, everyone know this. Now if we PWM this source with 50% duty cycle, will the resistor draw half the amps of half the voltage? Neither! It will still draw 1A at 1V, since the PWM does not change the voltage. BUT, in time, the PWM pulses delivers HALF the power on the LED, since 50% duty cycle means hat half of the time the LED is off, and half it is on. These for the PWM.
Now for the current -> The LEDs are absolutely proportional to the current. Half the current means half the brightness. BUT, half the current does not mean half the voltage at all. For example, the current may change from 0 to full in a voltage range of 2.8 to 3.2, and this region is absolutely NOT linear (it is exponential).
To your question if this circuit will work, yes it will work(the pull-up resistor is too high - make it 1Kohm or less). To your question if this circuit will be linear, no it will be not. But do you really want it to be linear? I am not sure if linear is best for your application, this is something that you'd rather test (and share with us

)