Do zero - construir modelo e executar a aplicação para executar a inferência nas imagens
A configuração do uso de um ambiente virtual é recomendada para não entrar em conflito com outras versões existentes e possivelmente não compatíveis do Python (entre 3.8 e 3.11). As versões Python são limitadas devido aos requisitos da biblioteca Scikit-Learn. Esta versão Scikit-Learn (1.4.0) é tratada pelo requisitos.txt. Se você decidir não usar um ambiente virtual, desinstale outras versões não compatíveis do Python. Verifique também as versões não compatíveis existentes de dependências listadas no arquivo requisitos.txt. Isso pode ser um pouco árduo, por isso é melhor usar um ambiente virtual e deixar o Python descobrir toda a versão aceitável para você.
1 - Baixe/instale a versão Python utilizável de 64 bits (qualquer coisa entre 3.8 e 3.11)
2 - No prompt de comando do Windows, instale o virtualenv –Example: pip instalar virtualenv
3 -Crie um VirtualEnv no seu diretório de projeto -Exemplo: Python -m Virtualenv -Python Python310 ASL [se estiver usando o Python 3.10] -para ver quais versões do Python estão instaladas em sua Política de Sistema: Py -0 -! Set -ExecutionPolicy -Scope CurrentUser -executionPolicy irrestrito -force
4 -Ative seu novo VirtualEnv de dentro do seu diretório de projeto -Exemplo:. Asl scripts Activate
5 -Deve ver um prompt de comando atualizado mostrando um Virtualenv ativado -Exemplo: (ASL) PS C: Projects Capstone ASL
6 -Verifique a versão do Python usada por Virtualenv -Exemplo: Python --version -Output: Python 3.10.0 [ou qualquer que seja a sua versão]
7 -CD no diretório VirtualEnv -Exemplo: CD ASL
8-clone o repo do github para a máquina local-exemplo: clone git https://github.com/cpetrella-sketch/asl-recognition.git-output: clonando em 'asl-reconhecimento' ... remoto: enumering Objects: 518, feito. Remoto: Counting Objetos: 100% (88/88), Concluído. Remoto: Compactando objetos: 100% (54/54), feito. Remoto: Total 518 (Delta 35), reutilizado 72 (Delta 27), 430 objetos de recebimento de pacote: 100% (518/518), 40,60 MIB | 3.62 MIB/S, Concluído. Resolvando deltas: 100% (270/270), feito.
9 -Instale as dependências do Python necessárias -Diretório da Change: CD. ASL -RECONCIÇÃO ASLML
-Instalar dependências --example: pip install -r requisitos.txt - -output: ... instalando pacotes coletados:
10 - Download both Training and Testing Datasets from the below links –Full_Training_Dataset.zip (2.51 GB) https://drive.google.com/file/d/1Ups86xkwbjnrWF7qNheXk4iNfLLgjvtK/view?usp=sharing –Extract and save to ~./ASL-Recognition/aslml/data/ – path para dir deve ser: ~./ASL-reconhecimento/aslml/imagens/full_traning_dataset/-O diretório deve ter um subdirectory para cada letra no alfabeto (excluindo J, Z)
–FULL_TESTING_DATASET.ZIP (38,8 MB) https://drive.google.com/file/d/1urn66jntxcs-s_1kvrsh11pe3vbp3vd-View?usp=sharing –Extract e salvar para ~. ~./ASL-reconhecimento/ASLML/Images/Full_testing_dataset/-O diretório deve ter um subconjunto para cada letra no alfabeto (excluindo J, Z)
11 - Crie um conjunto de dados de marco a partir de imagens FULL_TERNAING_DATASET - Exemplo: de dentro ./asl-recognition/aslml/ - dentro da Create_dataSet.py, altere a “AmosplesizePercentage” para a taxa de amostra desejada. O padrão é definido como 100% de todas as imagens. - Python. Create_dataset.py - saída: atualmente trabalhando no diretório A ... atualmente trabalhando no diretório B ...… atualmente trabalhando no diretório V ... atualmente trabalhando no diretório Y ...
Tamanho da amostra do conjunto de dados Selecionado: 10% Número total de imagens processadas (10% do conjunto de dados completo): 8033 Detecções bem -sucedidas (79.73359890451886%): 6405 Detecções falhas: 1628 Detecção de referência completa ... Exportação X/Y Coordes e etiquetas para 'Dados.
12 - Encontre os melhores parâmetros de classificadores da floresta aleatória e treine um modelo no conjunto de dados - Exemplo: de ~.
Pesquisa de grade inicial ... Ajustando 5 dobras para cada um dos 16 candidatos, totalizando 80 ajustes [CV] Bootstrap = True, max_depth = Nenhum, min_samples_leaf = 1, min_samples_split = 2, n_estimators = 100; Tempo total = 5,1s [CV] Bootstrap = true, max_depth = nenhum, min_samples_leaf = 1, min_samples_split = 2, n_estimators = 100; Tempo total = 5,4s… [CV] Bootstrap de ponta = false, max_depth = 10, min_samples_leaf = 2, min_samples_split = 2, n_estimators = 200; Tempo total = 9,6s [CV] Bootstrap = false, max_depth = 10, min_samples_leaf = 2, min_samples_split = 2, n_estimators = 200; Tempo total = 9.2s Aqui estão os melhores parâmetros encontrados:
{'bootstrap': false, 'max_depth': nenhum, 'min_samples_leaf': 1, 'min_samples_split': 2, 'n_estimators': 200} Relatório de classificação:
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% das amostras foram classificadas corretamente
Tempo de execução: 103.08926582336426 segundos
13 - Teste a precisão do modelo recém -criado em novos dados de teste - Exemplo: de ~./ASL -reconhecimento/aslml - python. Inferencetester.py - saída: Arquivo de imagem: hand2_a_dif_seg_2_cropped.jpeg Inside Falha no Classificador de inferência para detectar LandAlks no usuário
Arquivo de imagem: a0001_test.jpg detectou pontos de referência com sucesso na imagem do usuário: a0001_test.jpg
O modelo previu um nome de direção é: um correto !!
Arquivo de imagem: a0024_test.jpg detectou pontos de referência com sucesso na imagem do usuário: a0024_test.jpg
O modelo previu um nome de direção é: um correto !! ...
Arquivo de imagem: hand3_y_dif_seg_5_cropped.jpeg detectou pontos de referência com sucesso na imagem do usuário: hand3_y_dif_seg_5_cropped.jpeg
O modelo previu um Y Dirname é: y correto !!
Usando modelo treinado RandomForestClassifer: Porcentagem de marcos bem -sucedidos Detecção de marcos: 69% Porcentagem de previsões de cartas Detecção: 76%
Número total de imagens de teste disponíveis: 2510 26% amostragem aleatória. Número total de imagens processadas: 622 Número total de previsões corretas: 332 Número total de previsões incorretas: 103 Número total de detecções de marcos bem -sucedidos: 435 Número total de detecções de marco sem sucesso: 187
Use o aplicativo
14 - Copiar modelo recém -criado para CGI -BIN - Exemplo: Copie 'aslmodel.job' de ' . ASL-reconhecimento aslml modelos 'para' .ASL-Recognitionasllocalbuildmodels' 15 - From inside the '~.ASL-Recognitionasllocalbuild' directory, start the web server -- example : python -m http.server --cgi 8990 – output : Serving HTTP on :: port 8990 (http://[::]:8990/) ...
Use o aplicativo
1 - Abra um navegador da web e acesse a página da web - Exemplo: http: // localhost: 8990 2 - Faça upload de uma imagem de gesto .jpg ASL para inferência - Clique no botão "Faça o upload" - Selecione uma imagem - clique "Ok - Updin - Updin - Aguarde o status Pop -up - Exemplo: Localhost: 8990 EXPLEAR - Clique" Ok "Ok"