Los siguientes son los pasos necesarios:
a) Toma una foto
b) corregir la distorsión de la cámara
- ¿Debería alguien ser responsable del daño causado por la IA, programado para el aprendizaje de refuerzo, y en ese caso, a quién?
- ¿Cuánto del aprendizaje automático debo saber para participar en un simple hackathon?
- ¿Podemos predecir la personalidad humana en función del uso de las redes sociales utilizando Machine Learning?
- ¿Necesito detener todo y aprender IA? ¿Cuánto tiempo pasará antes de que Robots tome mi trabajo como desarrollador web?
- Soy estudiante de tercer año de CSE. ¿Cómo puedo construir mi propia tecnología de reconocimiento de gestos para proyectos?
c) transformar la imagen a una perspectiva conocida.
Después de estos pasos, las cosas se vuelven interesantes. Tomemos el ejemplo más simple.
Conoce el país donde está presente su automóvil y, por lo tanto, conoce el conjunto de señales de tráfico. Desde aquí puede adoptar el enfoque basado en la visión por computadora o el enfoque basado en el aprendizaje profundo.
Para el enfoque CV,
a) Convertir a escala de grises. El color no es importante ya que la mayoría de los signos utilizan un conjunto de colores estandarizado.
b) Ejecute el operador Sobel o cualquier otro algoritmo de degradado. También puede ejecutar la detección de bordes de Canny.
c) el paso 2 le dará bordes en la imagen. Puede dar sentido al tipo de imagen mirando los bordes.
Para DL,
a) Tome suficientes fotos del conjunto estándar de imágenes a través de la cámara del automóvil.
b) Repita el paso A bajo diversas condiciones de iluminación.
c) Normalizar los valores de píxeles de la imagen
d) Alimentar a la red profunda. ResNet, VGG, GoogLeNet son algunos ejemplos de excelentes redes DL de clasificación de imágenes que puede ver.
e) Una vez completada la capacitación, la red podrá detectar señales de tráfico de una imagen determinada.
Sorprendentemente, incluso el Lenet básico implementado en el siguiente fragmento de código en aproximadamente 20 líneas de código sería 90% preciso al clasificar las señales de tráfico:
modelo = secuencial ()
model.add (Conv2D (32, kernel_size = (3, 3),
activación = ‘relu’,
input_shape = input_shape))
model.add (Conv2D (64, (3, 3), activación = ‘relu’))
model.add (MaxPooling2D (pool_size = (2, 2)))
model.add (Dropout (0.25))
model.add (Flatten ())
model.add (Denso (128, activación = ‘relu’))
model.add (Dropout (0.5))
model.add (Denso (num_classes, activación = ‘softmax’))
model.compile (loss = keras.losses.categorical_crossentropy,
optimizador = keras.optimizers.Adadelta (),
métricas = [‘precisión’])
model.fit (x_train, y_train,
batch_size = batch_size,
épocas = épocas,
detallado = 1,
validation_data = (x_test, y_test))
Código de crédito: Github