A method for determining a predicted state of a traffic signal, the method executable on a processor, the method comprising: receiving, by the processor, a video of the traffic signal; generating, based on the video, a plurality of still images of the traffic signal; determining, for each still image of the plurality of still images by a first Machine Learning Algorithm, a vector for each bulb of the traffic signal in the respective still image, thereby generating a plurality of vectors corresponding to the video, each vector indicating a predicted likelihood of each of a plurality of statuses of the respective bulb, wherein a first status of the plurality of statuses corresponds to a first color and a second status of the plurality of statuses corresponds to a second color, and wherein a third status of the plurality of statuses indicates whether the bulb is lit; the first MLA having been trained based on a plurality of labeled still images of traffic signals, and each labeled still image of the plurality of labeled still images indicating a status of each bulb of the traffic signal of the respective labeled still image; determining, based on the plurality of vectors, and by a second MLA, a predicted state of the traffic signal, the second MLA having been trained based on a plurality of labeled vectors, wherein each labeled vector is indicative of a predicted likelihood of each of the plurality of statuses for a given bulb of a given traffic signal, and wherein each labeled vector is associated with a label indicating an actual state of the given traffic signal; and storing an indicator of the predicted state of the traffic signal. receiving, by the processor, a video of the traffic signal; generating, based on the video, a plurality of still images of the traffic signal; determining, for each still image of the plurality of still images by a first Machine Learning Algorithm, a vector for each bulb of the traffic signal in the respective still image, thereby generating a plurality of vectors corresponding to the video, each vector indicating a predicted likelihood of each of a plurality of statuses of the respective bulb, wherein a first status of the plurality of statuses corresponds to a first color and a second status of the plurality of statuses corresponds to a second color, and wherein a third status of the plurality of statuses indicates whether the bulb is lit; the first MLA having been trained based on a plurality of labeled still images of traffic signals, and each labeled still image of the plurality of labeled still images indicating a status of each bulb of the traffic signal of the respective labeled still image; each vector indicating a predicted likelihood of each of a plurality of statuses of the respective bulb, wherein a first status of the plurality of statuses corresponds to a first color and a second status of the plurality of statuses corresponds to a second color, and wherein a third status of the plurality of statuses indicates whether the bulb is lit; the first MLA having been trained based on a plurality of labeled still images of traffic signals, and determining, based on the plurality of vectors, and by a second MLA, a predicted state of the traffic signal, the second MLA having been trained based on a plurality of labeled vectors, wherein each labeled vector is indicative of a predicted likelihood of each of the plurality of statuses for a given bulb of a given traffic signal, and wherein each labeled vector is associated with a label indicating an actual state of the given traffic signal; and the second MLA having been trained based on a plurality of labeled vectors, wherein each labeled vector is indicative of a predicted likelihood of each of the plurality of statuses for a given bulb of a given traffic signal, and wherein each labeled vector is associated with a label indicating an actual state of the given traffic signal; storing an indicator of the predicted state of the traffic signal.