Long Range colour sensor. Any suggestions?

So I'm currently working on a small project for visually impaired with 1 of the inputs being able to read in colours from a pedestrian crossing that will alert the user when the light is red it tells them to stay put and green to go.

Now on a small scale I can use TCS34725 to prove the concept but in terms of longer range, does anyone have recommendations?

I was told by a friend I could try investing in using a cheap webcam for the job as well but I have no clue how I could even start with that as it would involve using OpenCV which I'd have to learn as I have no experience with using. However a webcam could also be useful for crossings like pelican crossings which offer no indication bar waiting cars to show you can cross and likewise if no crossing at all but pavement runs out.

So keeping that in mind does anyone know where I could start looking for a colour sensor or webcam for longer ranges of colour detection and perhaps vehicle detection?

Webcam comes to mind indeed. But you won't be able to do anything useful with it with an Arduino. At the very least you'll need a Raspberry Pi, or maybe something even more powerful. Image recognition may be dead easy for our brain, but it's a very complicated task.

Yeah it was mentioned to my to use a raspberry pi for that type of task, is there anyway for arduino and raspberry pi to communicate between the two? Cause at the very least i would only be using the PI and webcam to detect colours from traffic lights and whether or not road is clear and then feedbacking to arduino which would then give the appropriate output to that response.

is there anyway for arduino and raspberry pi to communicate between the two?

Of course. Serial link comes to mind. Maybe there are other methods. Do some Google for this.

The hard part of your project is going to be the image recognition itself.
Step one (that's the "easy" one) is to have your software recognise a pedestrian light in an image.
Step two, getting a lot harder already, is have your software recognise the pedestrian light where the model is different, where you don't look at it straight, etc.
Then the really hard part. How are you going to make sure what you see is the pedestrian light of your crossing, not another traffic light (e.g. the one next to it that's for the cars, or a pedestrian light that is for another crossing) or something entirely different?

If you really want to move forward building this, I suggest you try to get in touch with the people that develop self-driving cars. You'll be running into the same difficulties, and it seems they have traffic lights pretty well figured out by now. That's the level of sophistication you're asking for, at the very least, unless you'd be happy to live with the knowledge that someone got killed as they relied on your contraption, but it gave the wrong signals.

I think it's going to be much easier to have your local government install some of those tick-tick-tick signals that make a green light audible at the pedestrian crossings, than to do anything like this. It being directly coupled with the light signals makes it a lot more reliable, too.