def METHOD_NAME(self, colors, image, debug):
    draw = image.copy()
    s = (colors.shape[0], 1, colors.shape[1])
    colors = np.reshape(colors, s)
    colors = colors.astype(np.float32)
    scalar = np.mean(colors, axis=0).flatten()
    blackness1 = scalar[0] - scalar[1]
    blackness2 = scalar[1] - scalar[2]
    color = "None"
    if(abs(blackness1) < 30 and abs(blackness2) < 30 and scalar[0] < 100):
        o = [0, scalar[0] - scalar[1], scalar[0] - scalar[2], 0]
        self.num_offset += 1
        self.offset_sum = np.add(o, self.offset_sum)
        color = 'k'
    if(self.offset is not None):
        scalar = np.add(scalar, self.offset)
    a = scalar[0]
    b = scalar[1]
    c = scalar[2]
    if color == 'k':
        cv2.putText(draw, "{} | {} | {} | {}".format(color, np.round(
            a), np.round(b), np.round(c)), (20, 20), 1, 2, (255, 0, 0))
        debug.add_image(draw, "colors", topic="colors")
        return color
    if(abs(a - 255) < 10 and abs(b - 255) < 10 and abs(c - 255) < 100):
        color = 'y'
    elif(a > b and a > c and abs(a - b) > 30):
        color = 'b'
    elif(b > a and b > c):
        color = 'g'
    elif(c > a and c > b):
        color = 'r'
    else:
        color = 'g'
    cv2.putText(draw, "{} | {} | {} | {}".format(color, np.round(
        a), np.round(b), np.round(c)), (20, 20), 1, 2, (255, 0, 0))
    debug.add_image(draw, "colors", topic="colors")
    return color