You need to provide at least 5mA to a 47Ω resistor, the visible LED, and the emitter in the optoisolator. The maximum forward voltage for the LED and optoisolator are specified as 2.2V and 1.15V, respectively, for a total of 3.35V. At 5mA you will also have about 0.25V across the resistor, so the maximum total voltage drop is about 3.6V.
If you are using an Arduino pin to sink current by pulling low then we need to look at the \$V_{OL}\$ specification for the ATmega. If we check the specification for the part, with a 5V supply, we see that it will sink at least 10mA while pulling down the output pin to 0.9V or less. So, it looks like the Arduino can indeed drive the optoisolator and LED. Will the LED be bright enough for you? It's hard to say. The LED manufacturer recommends 16mA to 18mA.
Now, what happens if the forward voltage of the LED and optoisolator are at their minimum values...will we be trying to sink too much current? The ATmega specifies a maximum pin current of 40mA. At 40mA we get about 2V across the resistor. The minimum voltage for the LED is specified as 1.8V but there is no minimum specified for the optoisolator. Let's say it is 1V. So now our total voltage drop is 4.8V, which means that the ATmega would need to be able to pull down to 0.2V will sinking 40mA. That doesn't look possible but the published specifications don't give us all of the information we need.
The bottom line is that it might work. But, the LEDs will not be as bright as if you used the transistor. There would also be some risk of drawing large currents through the ATmega, which will cause it to be warmer and introduce more switching noise on the ground lines. The safe approach is to keep the transistors, but you can try it if you want.