{"id":25239713,"url":"https://github.com/ericshantos/fs_detector_model","last_synced_at":"2026-05-15T08:07:27.967Z","repository":{"id":276416453,"uuid":"929217580","full_name":"ericshantos/fs_detector_model","owner":"ericshantos","description":"Modelo de reconhecimento facial baseado no modelo MobileNetV2","archived":false,"fork":false,"pushed_at":"2025-02-08T04:03:35.000Z","size":28601,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T20:09:51.850Z","etag":null,"topics":["mobilenetv2","neural-networks","notebook-jupyter","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericshantos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-08T03:14:49.000Z","updated_at":"2025-02-08T04:03:38.000Z","dependencies_parsed_at":"2025-02-08T05:27:31.846Z","dependency_job_id":null,"html_url":"https://github.com/ericshantos/fs_detector_model","commit_stats":null,"previous_names":["ericshantos/fs_detector_model"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericshantos/fs_detector_model","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericshantos%2Ffs_detector_model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericshantos%2Ffs_detector_model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericshantos%2Ffs_detector_model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericshantos%2Ffs_detector_model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericshantos","download_url":"https://codeload.github.com/ericshantos/fs_detector_model/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericshantos%2Ffs_detector_model/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272077690,"owners_count":24869288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mobilenetv2","neural-networks","notebook-jupyter","tensorflow"],"created_at":"2025-02-11T18:59:57.145Z","updated_at":"2025-10-29T03:20:58.635Z","avatar_url":"https://github.com/ericshantos.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reconhecimento facial baseado em transfer learning: Fernanda Montenegro e Fernanda Torres\n\n## Descrição\nEste projeto implementa um modelo de reconhecimento facial baseado em **Transfer Learning**, utilizando o modelo **MobileNetV2** para classificar imagens das atrizes **Fernanda Montenegro** e **Fernanda Torres**. O objetivo é explorar técnicas de **Deep Learning** e **aprendizado por transferência**.\n\n## Tecnologias Utilizadas\n- Python\n- TensorFlow/Keras\n- OpenCV\n- NumPy\n- Google Colab\n\n## Estrutura do Projeto\n```\nfs_detector_model/\n│-- assets/\n│     │-- montenegro_e_torres.jpg      # Imagem de teste para previsão \n│     │-- resultado.png                # Resultado da rede neural  \n│-- dataset/                           # Diretório contendo as imagens de treino e validação\n│-- fs_detector_model.ipynb            # Notebook Jupyter com todo o código\n│-- fs_detector_model.h5               # Modelo treinado salvo\n```\n\n## Como Executar\n\n\u003e Atenção: para utilizar este caderno jupyter, é necessário usar o ambiente do Google Colab.\n\n## Treinamento do Modelo\n1. **Carregamento do MobileNetV2**\n   - O modelo base é carregado sem a camada de classificação final.\n   - Camadas personalizadas são adicionadas para adaptar ao problema.\n2. **Configuração da Rede Neural**\n   - Camada de pooling global.\n   - Camada densa com 1024 neurônios (ReLU).\n   - Camada de saída com duas classes (Softmax).\n   - Camadas do MobileNetV2 são congeladas para preservar os pesos pré-treinados.\n3. **Pré-processamento de Imagens**\n   - Aumento de dados usando `ImageDataGenerator`.\n   - Normalização dos valores dos pixels.\n4. **Treinamento**\n   - O modelo é treinado por 10 épocas usando `Adam` como otimizador e `categorical_crossentropy` como função de perda.\n5. **Salvamento do Modelo**\n   - O modelo final é salvo no arquivo `fs_detector_model.h5` para futuras previsões.\n\n## Testando o Modelo\n1. **Carregar o modelo salvo**\n   ```python\n   from tensorflow.keras.models import load_model\n   model = load_model('fs_detector_model.h5')\n   ```\n2. **Realizar previsão em uma imagem**\n   ```python\n   import cv2\n   import numpy as np\n   \n   image = cv2.imread('montenegro_e_torres.jpg')\n   image_array = np.expand_dims(image, axis=0) / 255.0\n   \n   predictions = model.predict(image_array)\n   ```\n3. **Exibir a classe predita**\n   ```python\n   class_indices = {'Montenegro': 0, 'Torres': 1}\n   classes = {v: k for k, v in class_indices.items()}\n   \n   predicted_class = classes[np.argmax(predictions)]\n   confidence = np.max(predictions)\n   \n   print(f\"Previção: {predicted_class} com confiança {confidence:.2f}\")\n   ```\n4. **Visualização do resultado com OpenCV**\n   - A imagem é processada para detecção de rostos usando o classificador Haar Cascade.\n   - Cada rosto é classificado e rotulado na imagem com sua respectiva confiança.\n   - Exibição da imagem anotada com `cv2_imshow()` no Google Colab.\n\n## Resultado do modelo\n\n![](./assets/resultado.png)\n\n## Licença\nEste projeto está licenciado sob a **MIT License**. Consulte o arquivo `LICENSE` para mais informações.\n\n---\nDesenvolvido por **Eric dos Santos** - 2025\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericshantos%2Ffs_detector_model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericshantos%2Ffs_detector_model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericshantos%2Ffs_detector_model/lists"}