Desde cero: el modelo de compilación y ejecute la aplicación para realizar una inferencia en las imágenes
Se recomienda configurar un entorno virtual para no entrar en conflicto con otras versiones existentes y posiblemente no compatibles de Python (entre 3.8 y 3.11). Las versiones de Python son limitadas debido a los requisitos de la biblioteca de Scikit-Learn. Esta instalación de la versión Scikit-Learn (1.4.0) se maneja por los requisitos.txt. Si decide no usar un entorno virtual, asegúrese de desinstalar otras versiones no compatibles de Python. También verifique las versiones de dependencias no compatibles existentes en el archivo requisitos.txt. Esto puede ser un poco difícil, por lo que es mejor usar un entorno virtual y dejar que Python descubra todas las versiones aceptables para usted.
1 - Descargar/instalar versión utilizable de 64 bits Python (cualquier cosa entre 3.8 y 3.11)
2 - Desde el símbolo del sistema de Windows instalar virtualenv –Ejemplo: PIP install virtualEnv
3 -Cree un VirtualEnv en su directorio de proyecto -Exemplo: Python -M VirtualEnv - -Python Python310 ASL [Si usa Python 3.10] -para ver qué versiones de Python están instaladas en su sistema: Py -0 -! Advertencia: si usa Windows/PowerShell, es posible Set -EXECUCIONSPOLICY -COPE CurrentUser -ExecutionPolicy sin restricciones -force
4 -Active su nuevo VirtualEnv desde dentro de su directorio de proyecto -Example :. asl scripts activar
5 -Debería ver un símbolo del sistema actualizado que muestre un VirtualEnv activado -Exemplo: (ASL) PS C: Projects Capstone ASL
6 -Verifique la versión de Python utilizada por VirtualEnv -Example: Python --Version --output: Python 3.10.0 [o cualquiera que sea su versión]
7 -CD en el directorio VirtualEnv -Ejemplo: CD ASL
8-Clone GitHub Repo to Local Machine-Exemplo: Git Clone https://github.com/cpetrella-sketch/asl-recognition.git --output: clonación en 'asl-recognition' ... remoto: objetos enumeradores: 518, hecho. Remoto: Contación de objetos: 100% (88/88), hecho. Remoto: COMPRIMIENDO ESTÁS: 100% (54/54), hecho. Remoto: total 518 (Delta 35), reutilizado 72 (Delta 27), 430 objetos receptores reutilizados: 100% (518/518), 40.60 MIB | 3.62 MIB/S, hecho. Resolución de deltas: 100% (270/270), hecho.
9 -Instale las dependencias de Python requeridas -Directorio de cambio: CD. Asl -Recognition ASLML
--Stall Dependencias -Ejemplo: PIP Install -r requisitos.txt --output: ... Instalación de paquetes recopilados:
10 - Descargue los conjuntos de datos de capacitación y prueba de los enlaces a continuación –full_training_dataset.zip (2.51 gb) https://drive.google.com/file/d/1ups86xkwbjnrwf7qnhexk4infllgjvtk/view?usp=sharing –extract y salvar a ~./Asl-recognition a DIR debe ser: ~./ASL-Recognition/ASLML/Images/Full_Training_Dataset/-El directorio debe tener un subdirector para cada letra en alfabeto (excluyendo J, Z)
–Full_testing_dataset.zip (38.8 mb) https://drive.google.com/file/d/1urn66jntxcs-s_1kvrsh11pe3vbp3vd-/view?usp=shaINing –extract y guardar en ~./Asl-recedtition/aslml/data/-ruta a la ruta de la ruta de la ruta de la ruta: ~./ASL-Recognition/ASLML/Images/Full_Testing_Dataset/-El directorio debe tener un subdirector para cada letra en alfabeto (excluyendo J, Z)
11 - Cree un conjunto de datos de referencia a partir de imágenes full_training_dataset - Ejemplo: desde adentro ./asl-recognition/aslml/ - dentro de create_dataset.py, cambie el "SumplesizeSePercentage" a su frecuencia de muestreo deseada. El valor predeterminado se establece en el 100% de todas las imágenes. - Python. Create_dataset.py - Salida: Actualmente trabajando en el Directorio A ... Actualmente trabajando en el Directorio B ... ... Actualmente trabajando en el Director V ... Actualmente trabajando en el Directorio Y ...
Tamaño de muestra del conjunto de datos Seleccionado: 10% Total número de imágenes procesadas (10% del conjunto de datos completos): 8033 detecciones exitosas (79.73359890451886%): 6405 detecciones fallidas: 1628 detección de punto de referencia completado ... exportando coords X/y y etiquetas a 'datos.
12 - Encuentre los mejores parámetros del clasificador de bosques aleatorios y capacite un modelo en el conjunto de datos - Ejemplo: de ~./ASL -Recognition/ASLML - Python. Train_classifier.py - Salida: dividir los datos en pruebas y capacitación con 20.0% reservado para las pruebas.
Inicio de búsqueda de cuadrícula ... ajuste 5 pliegues para cada uno de los 16 candidatos, totalizando 80 ajustes [cv] end bootstrap = true, max_depth = none, min_samples_leaf = 1, min_samples_split = 2, n_estimators = 100; Total Time = 5.1S [CV] end bootstrap = true, max_depth = none, min_samples_leaf = 1, min_samples_split = 2, n_estimators = 100; tiempo total = 5.4s ... [cv] end bootstrap = false, max_depth = 10, min_samples_leaf = 2, min_samples_split = 2, n_estimators = 200; Tiempo total = 9.6S [cv] end bootstrap = false, max_depth = 10, min_samples_leaf = 2, min_samples_split = 2, n_estimators = 200; Tiempo total = 9.2 aquí son los mejores parámetros encontrados:
{'bootstrap': false, 'max_depth': ninguno, 'min_samples_leaf': 1, 'min_samples_split': 2, 'n_estimators': 200} Informe de clasificación:
precision recall f1-score support
S 0.74 0.95 0.83 58
T 0.94 0.96 0.95 53
U 0.67 0.73 0.70 56
V 0.81 0.75 0.78 59
W 1.00 0.96 0.98 56
X 0.98 0.94 0.96 52
Y 0.97 0.97 0.97 58
accuracy 0.91 1281
Macro AVG 0.92 0.91 0.91 1281 AVG ponderado 0.92 0.91 0.92 1281
91.49102263856362% de las muestras se clasificaron correctamente
Tiempo de ejecución: 103.08926582336426 segundos
13 - Pruebe la precisión del modelo recién creado en los nuevos datos de prueba - Ejemplo: desde ~./Asl -Recognition/aslml - python. InferenceNester.py - salida: archivo de imagen: hand2_a_dif_seg_2_cropped.jpeg Inside Infalling Classifier falló en detectar los terrenos en los usuarios: Imagen de los usuarios: HAND2_ADIF.
Archivo de imagen: a0001_test.jpg detectó con éxito puntos de referencia en la imagen del usuario: a0001_test.jpg
El modelo predijo que un nombre es: ¡un correcto!
Archivo de imagen: a0024_test.jpg detectó con éxito puntos de referencia en la imagen del usuario: a0024_test.jpg
El modelo predijo que un nombre es: ¡un correcto! …
Archivo de imagen: HAND3_Y_DIF_SEG_5_CROPPED.JPEG detectó con éxito puntos de referencia en la imagen del usuario: HAND3_Y_DIF_SEG_5_CROPPED.JPEG
El modelo predijo que un Dirname es: y correcto !!
Uso de Modelo capacitado de RandomTorestClassifer: porcentaje de detección exitosa del punto de referencia: 69% porcentaje de detección de predicciones de letras exitosas: 76%
Número total de imágenes de prueba disponibles: 2510 26% de muestreo aleatorio. Número total de imágenes procesadas: 622 Número total de predicciones correctas: 332 Número total de predicciones incorrectas: 103 Número total de detecciones de referencia exitosas: 435 Número total de detecciones de puntos de referencia fallidas: 187
Usar aplicación
14 - Copiar el modelo recién creado a CGI -bin - Ejemplo: copiar 'aslmodel.job' desde ' . Asl-Recognition aslml modelos 'a' . Asl -Recognition asllocal build modelos '15 -desde el interior del directorio' ~. Asl -Recognition asllocal build ', inicie el servidor web -Ejemplo: python -m http.server --cgi 8990 -salida: servir http en :: puerto 8990 (http: // [::]: 8990/)
Usar aplicación
1 - Abra un navegador web y acceda a la página web - Ejemplo: http: // localhost: 8990 2 - cargue una imagen de gesto de .jpg ASL para inferencia - haga clic en el botón "Cargar archivo" - Seleccione una imagen de su almacenamiento local - Espere el estado POBLE - Ejemplo: Localhost: 8990 dice que dice - Haga clic en "OK" - Pantalla con la imagen de la imagen Subiendo y la influencia Resulta - Resultado - Ejemplo - Ejemplo: Localhost: 8990 dice que la carga exitosa - Haga clic en "OK" - Pantalla con la imagen Subiendo y la influencia Resulta - Resultado - Ejemplo - Ejemplo - Ejemplo: Localhost: 8990 dice que la carga exitosa - Haga clic en "OK" - Pantalla con la imagen Subiendo y el estado de influencia - Resultado - Ejemplo - Ejemplo: Localhost: 8990 dice NAVE.