fbpx
Sigmoidal
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

Como Treinar o YOLOv9 em um Dataset Personalizado

Carlos Melo por Carlos Melo
fevereiro 29, 2024
em Deep Learning, Python, Tutoriais, Visão Computacional
0
160
COMPARTILHAMENTOS
5.3k
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

Treinar o YOLOv9 em um conjunto de dados personalizado envolve etapas como preparação das imagens específicas para a tarefa de detecção, realizar as anotações e configurar corretamente o formato a ser exportado.

Neste artigo, vamos mostrar como treinar um modelo YOLOv9 em um dataset personalizado. Especificamente, vamos treinar um modelo de Visão Computacional capaz de detectar e rastrear foguetes da SpaceX. Mas caso você queira, poderá usar qualquer outro conjunto de dados.

Caso você seja aluno da minha Especialização em Visão Computacional, saiba que há uma aula inteira dedicada sobre o modelo.

 

Aprenda Visão Computacional na Prática

O que é YOLOv9

Lançado em 21 de fevereiro de 2024, pelos pesquisadores Chien-Yao Wang, I-Hau Yeh e Hong-Yuan Mark Liao através do artigo “YOLOv9: Aprendendo o Que Você Quer Aprender Usando Informações de Gradiente Programável”, o novo modelo YOLOv9 demonstrou precisão superior em comparação com modelos YOLO anteriores.

Implementando conceitos como Informações de Gradiente Programável (PGI) para mitigar perdas de transmissão de dados em redes profundas, e Rede de Agregação de Camadas Eficientes Generalizadas (GELAN) para otimizar a eficiência dos parâmetros, você irá se surpreender com o desempenho da arquitetura inovadora.

Eu escrevi um artigo introdutório, então se você quer saber mais detalhes técnicos sobre o YOLOv9, confira este link.

Como Instalar o YOLOv9

Instalar o YOLOv9 não é tão simples quanto instalar pacotes do PyPI ou Conda, uma vez que ainda não há um pacote oficial disponível.

No entanto, para facilitar o processo de instalação e torná-lo acessível a todos, eu criei um fork do repositório original e um notebook do Google Colab para facilitar o aprendizado.

💡 Clique neste link para acessar o Jupyter Notebook que preparei para você instalar o YOLOv9 no Google Colab.
# Verifique se a GPU está ativada
!nvidia-smi

# Clone o repositório YOLOv9
!git clone https://github.com/carlosfab/yolov9.git

# Mude o diretório de trabalho atual para o repositório YOLOv9 clonado
%cd yolov9

# Instale as dependências necessárias do YOLOv9 a partir do arquivo requirements.txt
!pip install -r requirements.txt -q

Inicialmente, o comando !nvidia-smi é executado para verificar se uma GPU está ativa e disponível para uso. Após isso, o repositório YOLOv9 é clonado do GitHub usando !git clone https://github.com/carlosfab/yolov9.git.

O comando subsequente, %cd yolov9, navega para o diretório do repositório clonado. Por último, o comando !pip install -r requirements.txt -q instala todas as dependências necessárias listadas no arquivo requirements.txt de forma silenciosa.

# Importa as bibliotecas necessárias
import sys
import os
import requests
from tqdm.notebook import tqdm
from pathlib import Path
from PIL import Image
from io import BytesIO
import matplotlib.pyplot as plt
from matplotlib.pylab import rcParams
from IPython.display import display, Image
from PIL import Image as PILImage


# Configura os diretórios para código e dados
CODE_FOLDER = Path(".").resolve()  # Diretório de código
WEIGHTS_FOLDER = CODE_FOLDER / "weights"  # Diretório para pesos do modelo
DATA_FOLDER = CODE_FOLDER / "data"  # Diretório para dados

# Cria os diretórios para pesos e dados, se eles não existirem
WEIGHTS_FOLDER.mkdir(exist_ok=True, parents=True)
DATA_FOLDER.mkdir(exist_ok=True, parents=True)

# Adiciona o diretório de código ao caminho do Python para importação de módulos
sys.path.append(str(CODE_FOLDER))

Para começar, importamos as bibliotecas necessárias para o nosso projeto. Com as importações concluídas, definimos então as seguintes variáveis-chave:

  • CODE_FOLDER: Especifica o caminho do diretório para o código, garantindo que todos os scripts e módulos estejam centralmente localizados para fácil acesso e gestão.
  • WEIGHTS_FOLDER: Designa um diretório para armazenar os pesos do modelo.
  • DATA_FOLDER: Este diretório é identificado para armazenar nossas amostras de dados. É usado para inferência após o modelo personalizado ter sido treinado.
# URLs dos arquivos de pesos
weight_files = [
    "https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-c.pt",
    "https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-e.pt",
    "https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-c.pt",
    "https://github.com/WongKinYiu/yolov9/releases/download/v0.1/gelan-e.pt"
]

# Itera sobre a lista de URLs para baixar os arquivos de pesos
for i, url in enumerate(weight_files, start=1):
    filename = url.split('/')[-1]
    response = requests.get(url, stream=True)
    total_size_in_bytes = int(response.headers.get('content-length', 0))
    block_size = 1024  # 1 Quilobyte
    progress_bar = tqdm(total=total_size_in_bytes, unit='iB', unit_scale=True, desc=f"Baixando arquivo {i}/{len(weight_files)}: {filename}")
    with open(WEIGHTS_FOLDER / filename, 'wb') as file:
        for data in response.iter_content(block_size):
            progress_bar.update(len(data))
            file.write(data)
    progress_bar.close()

Este trecho de código baixa os arquivos de pesos do modelo YOLOv9 a partir dos URLs fornecidos. Ele itera pela lista weight_files, buscando cada arquivo via requisições HTTP e salvando-os no WEIGHTS_FOLDER.

Como Treinar um Modelo YOLOv9 com Dados Personalizados

Criar um conjunto de dados personalizado do zero, o que envolve coletar imagens, anotá-las e formatá-las corretamente, pode ser muito trabalhoso e demorado.

Felizmente, a Roboflow revolucionou essa tarefa, tornando-a significativamente mais simples e eficiente. Vamos ver como isso funciona na prática.

Como Treinar YOLOv9 em Conjunto de Dados Personalizado usando Roboflow
Rocket Detect é o conjunto de dados usado para treinar a rede neural por trás do Autotrack, o sistema de rastreamento automático de foguetes da NASASpaceflight.

Com a missão Starship Flight 3 agendada para meados de março de 2024, é a oportunidade perfeita treinarmos um modelo capaz de identificar e rastrear foguetes. Utilizaremos este conjunto de dados da Roboflow para treinar nosso modelo.

Este conjunto de dados é estruturado em três classes principais para auxiliar na identificação e rastreamento de elementos associados a lançamentos de foguetes. As classes são definidas da seguinte forma:

  • Engine Flames: Captura as chamas produzidas pelo motor do foguete durante o lançamento.
  • Rocket Body: Representa o corpo principal do veículo de lançamento, incluindo todas as seções estruturais do foguete.
  • Space: Tipicamente retratado como um ponto distante na imagem.

A versão mais recente do conjunto de dados Rocket Detect é extensa, compreendendo mais de 28.000 imagens. Para evitar sessões prolongadas no Colab, utilizaremos a versão 36 do conjunto de dados, que inclui 12.041 imagens.

# Instalação da biblioteca Roboflow
!pip install -q roboflow

# Importação da biblioteca Roboflow
import roboflow

# Autenticação no Roboflow
roboflow.login()  # Nota: Certifique-se de configurar sua chave API do Roboflow antes de chamar login()

# Inicialização do cliente Roboflow
rf = roboflow.Roboflow()

# Download do conjunto de dados
project = rf.workspace("nasaspaceflight").project("rocket-detect")
dataset = project.version(36).download("yolov9")

Neste bloco, estamos instalando a biblioteca Roboflow usando !pip install -q roboflow. Após isso, autenticamos no Roboflow executando roboflow.login(), o que necessita de uma chave API que deve ser configurada após você criar sua conta.

Em seguida, instanciamos o cliente Roboflow com rf = roboflow.Roboflow(). Para preparar nosso conjunto de dados para o YOLOv9, identificamos nosso projeto dentro do espaço de trabalho do Roboflow por meio de project = rf.workspace("nasaspaceflight").project("rocket-detect"), e então baixamos a versão 36 do conjunto de dados, que é especificamente formatada para o YOLOv9, usando dataset = project.version(36).download("yolov9").

Treinar o Modelo YOLOv9

Para treinar o modelo YOLOv9, utilizaremos a Interface de Linha de Comando (CLI). É importante familiarizar-se com o comando e seus parâmetros antes de iniciar o processo de treinamento.

Abaixo está um exemplo de um comando de treinamento que emprega a arquitetura GELAN-C:

!python train.py \
--batch 16 --epochs 20 --img 640 --device 0 \
--data {dataset.location}/data.yaml \
--weights {WEIGHTS_FOLDER}/gelan-c.pt \
--cfg models/detect/gelan-c.yaml

Vamos detalhar os argumentos da linha de comando que usaremos:

  • --batch: O tamanho do lote para o carregador de dados. Pode ser ajustado com base na memória GPU disponível.
  • --epochs: Número de épocas para as quais queremos treinar.
  • --img: Define o tamanho da imagem, padronizando o tamanho de entrada para o treinamento do modelo.
  • --device: Atribui o treinamento para ser executado no dispositivo com ID 0, indicando tipicamente a primeira GPU.
  • --data: Caminho para o arquivo YAML do conjunto de dados.
  • --weights: Especifica os pesos iniciais para o treinamento.
  • --cfg: Indica o arquivo de configuração a ser usado.

Seu modelo começará o treinamento. Uma vez finalizado, os resultados de cada sessão de treinamento serão automaticamente armazenados em {CODE_FOLDER}/runs/train/.

from prettytable import PrettyTable
import time

# Caminho do diretório que você deseja listar
directory_path = f'{CODE_FOLDER}/runs/train/exp'

# Criar uma tabela bonita
table = PrettyTable()
table.field_names = ["Nome do Arquivo", "Tamanho (KB)", "Data de Modificação"]

# Listar arquivos no diretório
for filename in os.listdir(directory_path):
    filepath = os.path.join(directory_path, filename)
    if os.path.isfile(filepath):
        # Obter o tamanho do arquivo
        size = os.path.getsize(filepath) / 1024  # Tamanho em KB
        # Obter a data de modificação
        mod_time = os.path.getmtime(filepath)
        mod_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(mod_time))
        # Adicionar linha à tabela
        table.add_row([filename, f"{size:.2f}", mod_time])

# Ordenar a tabela por nome do arquivo (opcional)
table.sortby = "Nome do Arquivo"

# Exibir a tabela
print(table)

pretty_table_results_yolov9.png

YOLOv9 gera vários arquivos no diretório de saída. Para revisar esses arquivos, você pode facilmente navegar pelo diretório e modificar o nome do arquivo no comando abaixo conforme necessário para acessar arquivos específicos.

# Caminho para a imagem 'results.png'
results_image_path = f'{CODE_FOLDER}/runs/train/exp/results.png'

# Exibir a imagem com um tamanho específico
Image(filename=results_image_path, width=800)

O mAP do modelo em IoU=0.5 é 0.79724, mostrando um forte desempenho de detecção. O mAP através do intervalo de IoU de 0.5 a 0.95 é 0.47729, indicando uma boa detecção de objetos em vários níveis.

Para validar o melhor modelo, use o seguinte comando.

!python val.py \
--img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 \
--data {dataset.location}/data.yaml \
--weights {CODE_FOLDER}/runs/train/exp/weights/best.pt

Salvando e Carregando Pesos

Durante ou após o treinamento no Google Colab, é comum encontrar o desafio de desconexões após um período de inatividade ou ao atingir o limite máximo de uso contínuo.

Para mitigar esse problema e garantir a continuidade do trabalho, como estamos usando o ambiente do Google Colab, é recomendado salvar os pesos do modelo treinado no Google Drive.

Como Salvar Pesos no Google Drive

Para salvar de forma segura os pesos do seu modelo no Google Drive, executaremos o seguinte código.

# from google.colab import drive
# import shutil

# Montar o Google Drive
drive.mount('/content/drive')

# Definir os caminhos de origem e destino
source_path = f'{CODE_FOLDER}/runs'
destination_path = '/content/drive/MyDrive/yolov9-rocket-detect'

# Verificar se o diretório de destino existe; se sim, removê-lo
if os.path.exists(destination_path):
    shutil.rmtree(destination_path)

# Copiar o conteúdo do Google Drive para o ambiente Colab
shutil.copytree(source_path, destination_path)
print("Pesos de treinamento copiados para o Google Drive com sucesso.")

Para começar, você deve montar o Google Drive no ambiente Colab. Isso é feito usando a biblioteca google.colab e invocando drive.mount('/content/drive'), que solicita autenticação.

Em seguida, determine o caminho de origem e o caminho de destino no Google Drive. A função shutil.copytree(source_path, destination_path) é então usada para copiar toda a estrutura do diretório da origem para o destino.

Como Carregar Pesos do Google Drive

Para carregar os pesos salvos no seu modelo para inferência, siga estes passos:

from google.colab import drive
import shutil

# Montar o Google Drive
drive.mount('/content/drive')

# Definir os caminhos de origem e destino
source_path = '/content/drive/MyDrive/yolov9-rocket-detect'
destination_path = f'{CODE_FOLDER}/runs'

# Verificar se a origem contém os arquivos necessários
if os.path.exists(source_path):
    shutil.copytree(source_path, destination_path, dirs_exist_ok=True)
    print("Pesos de treinamento carregados do Google Drive com sucesso.")
else:
    print("Diretório de pesos não encontrado no Google Drive.")

Monte o Google Drive no seu ambiente Colab usando drive.mount('/content/drive'), espelhando os passos tomados durante o processo de salvamento, mas com caminhos de origem e destino invertidos. Utilize shutil.copytree(source_path, destination_path, dirs_exist_ok=True) para transferir os pesos de volta ao seu espaço de trabalho.

Executar Inferência em filmagens da SpaceX

Com um modelo YOLOv9 treinado personalizado, agora é possível realizar inferência em filmagens de lançamentos de foguetes da SpaceX.

# Baixar a filmagem de teste
!wget -P {DATA_FOLDER} https://github.com/carlosfab/visao-computacional/raw/main/data/Falcon_9_USSF_124.mp4

# Executar inferência no modelo personalizado
!python detect.py \
  --img 1280 --conf 0.1 --device 0 \
  --weights {CODE_FOLDER}/runs/train/exp/weights/best.pt \
  --source {DATA_FOLDER}/Falcon_9_USSF_124.mp4

Para iniciar a inferência, usamos o script detect.py, especificando os melhores pesos do nosso modelo localizados em {CODE_FOLDER}/runs/train/exp/weights/best.pt.

Para visualizar o vídeo processado no Colab, a biblioteca moviepy oferece um método conveniente.

from moviepy.editor import VideoFileClip

# Caminho para o vídeo processado
processed_video_path = f"{CODE_FOLDER}/runs/detect/exp/Falcon_9_USSF_124.mp4"

# Carregar o vídeo usando MoviePy
clip = VideoFileClip(processed_video_path)

# Exibir o vídeo no notebook com largura ajustada
clip.ipython_display(width=600)

Aqui, mostramos dois exemplos do nosso modelo detector de foguetes.

 

Nosso modelo reconhece impressionantemente as chamas do motor e o corpo do foguete. Ele detecta com precisão o foguete mesmo quando esse  se torna um mero ponto na tela.

Conclusões

  • Avanços do YOLOv9: A introdução do YOLOv9, apresentando Informação de Gradiente Programável e Rede de Agregação de Camadas Eficientes Generalizadas, representa um salto significativo na tecnologia de detecção de objetos.
  • Treinamento em Dados Personalizados: O guia delineia uma abordagem abrangente para treinar o YOLOv9 em um conjunto de dados personalizado, enfatizando o processo desde a preparação do conjunto de dados até o treinamento do modelo, destacando especificamente o exemplo de rastreamento de lançamentos da SpaceX.
  • Papel da Roboflow: A utilização da Roboflow para gerenciamento de conjuntos de dados sublinha os ganhos de eficiência na preparação de dados para treinamento, destacando sua importância na otimização do fluxo de trabalho de treinamento do modelo.
  • Salvar e Carregar Pesos: Estratégias para salvar e carregar pesos do modelo no ambiente do Google Colab são discutidas, abordando possíveis interrupções nas sessões de treinamento.
  • Insights de Inferência: Demonstrar inferência em filmagens da SpaceX com um modelo YOLOv9 treinado personalizado mostra a capacidade do modelo de detectar e rastrear elementos específicos de forma eficaz.

Neste artigo, tivemos um walkthrough detalhado para treinar o modelo YOLOv9 em um conjunto de dados personalizado. No processo, também realizamos um experimento de treinamento do mundo real para detecção e rastreamento de foguetes.

Se você decidir construir este projeto, ampliar suas capacidades ou treinar com algum outro dataset personalizado, por favor, compartilhe suas experiências comigo no LinkedIn.

Compartilhar11Compartilhar64Enviar
Post Anterior

YOLOv9: Aprenda a Detectar Objetos

Próximo Post

Model Monitoring

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

O Que é Amostragem e Quantização no Processamento de Imagens
Artigos

O Que é Amostragem e Quantização no Processamento de Imagens

por Carlos Melo
junho 20, 2025
Carlos Melo e Sérgio Sacani – Ciência Sem Fim
Youtube

Carlos Melo e Sérgio Sacani – Ciência Sem Fim

por Carlos Melo
janeiro 16, 2025
Visão Computacional

Processamento de Nuvens de Pontos com Open3D e Python

por Carlos Melo
janeiro 2, 2025
Meta Movie Gen para gerar vídeos a partir de textos
Youtube

Inteligência Artificial criando filmes? Conheça Movie Gen, a nova ferramenta da META.

por Carlos Melo
outubro 30, 2024
O que é Visão Computacional - Podcast Data Hackers
Carreira

O que é Visão Computacional — Data Hackers Episódio #92

por Carlos Melo
agosto 12, 2024
Próximo Post
Model Monitoring

Model Monitoring

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Pós-Graduação em Data Science Pós-Graduação em Data Science Pós-Graduação em Data Science

Mais Populares

  • Introdução ao MediaPipe e Pose Estimation

    Introdução ao MediaPipe e Pose Estimation

    487 compartilhamentos
    Compartilhar 195 Tweet 122
  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    408 compartilhamentos
    Compartilhar 163 Tweet 102
  • O Que é Amostragem e Quantização no Processamento de Imagens

    9 compartilhamentos
    Compartilhar 4 Tweet 2
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    383 compartilhamentos
    Compartilhar 153 Tweet 96
  • Processamento de Nuvens de Pontos com Open3D e Python

    44 compartilhamentos
    Compartilhar 18 Tweet 11
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
Green Card aprovado por habilidades extraordinárias em Data Science

Green Card aprovado por habilidades extraordinárias em Data Science

julho 14, 2025
O Que é Amostragem e Quantização no Processamento de Imagens

O Que é Amostragem e Quantização no Processamento de Imagens

junho 20, 2025
DeepSeek vazamento de dados de usuários

DeepSeek: Vazamento de dados expõe dados de usuários

fevereiro 1, 2025
DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA

DeepSeek R1 vs OpenAI o1 – Qual é o Melhor Modelo de IA?

janeiro 25, 2025

Seguir

  • Aqui nós 🇺🇸, a placa é sua. Quando você troca o carro,  por exemplo, você mesmo tira a sua placa do carro vendido e instala a parafusa no carro novo.

Por exemplo, hoje eu vi aqui no “Detran” dos Estados Unidos, paguei a trasnferência do title do veículo, e já comprei minha primeira placa. 

Tudo muito fácil e rápido. Foi menos de 1 hora para resolver toda a burocracia! #usa🇺🇸 #usa
  • Como um carro autônomo "enxerga" o mundo ao redor?

Não há olhos nem intuição, apenas sensores e matemática. Cada imagem capturada passa por um processo rigoroso: amostragem espacial, quantização de intensidade e codificação digital. 

Esse é o desafio, representar um objeto 3D do mundo real, em pixels que façam sentido para a Inteligência Artificial.

🚗📷 A visão computacional é a área mais inovadora do mundo!

Comente aqui se você concorda.

#carrosautonomos #inteligenciaartificial #IA #visãocomputacional
  • 👁️🤖Visão Computacional: a área mais inovadora do mundo! Clique no link da bio e se inscreva na PÓS EM VISÃO COMPUTACIONAL E DEEP LEARNING! #machinelearning #datascience #visãocomputacional
  • E aí, Sergião @spacetoday Você tem DADO em casa? 😂😂

A pergunta pode ter ficado sem resposta no dia. Mas afinal, o que são “dados”?

No mundo de Data Science, dados são apenas registros brutos. Números, textos, cliques, sensores, imagens. Sozinhos, eles não dizem nada 

Mas quando aplicamos técnicas de Data Science, esses dados ganham significado. Viram informação.

E quando a informação é bem interpretada, ela se transforma em conhecimento. Conhecimento gera vantagem estratégica 🎲

Hoje, Data Science não é mais opcional. É essencial para qualquer empresa que quer competir de verdade.

#datascience #cientistadedados #machinelearning
  • 🎙️ Corte da minha conversa com o Thiago Nigro, no PrimoCast #224

Falamos sobre por que os dados são considerados o novo petróleo - para mim, dados são o novo bacon!

Expliquei como empresas que dominam a ciência de dados ganham vantagem real no mercado. Não por armazenarem mais dados, mas por saberem o que fazer com eles.

Também conversamos sobre as oportunidades para quem quer entrar na área de tecnologia. Data Science é uma das áreas mais democráticas que existem. Não importa sua idade, formação ou cidade. O que importa é a vontade de aprender.

Se você quiser ver o episódio completo, é só buscar por Primocast 224.

“O que diferencia uma organização de outra não é a capacidade de armazenamento de dados; é a capacidade de seu pessoal extrair conhecimento desses dados.”

#machinelearning #datascience #visãocomputacional #python
  • 📸 Palestra que realizei no palco principal da Campus Party #15, o maior evento de tecnologia da América Latina!

O tema que escolhi foi "Computação Espacial", onde destaquei as inovações no uso de visão computacional para reconstrução 3D e navegação autônoma.

Apresentei técnicas como Structure-from-Motion (SFM), uma técnica capaz de reconstruir cidades inteiras (como Roma) usando apenas fotos publicadas em redes sociais, e ORB-SLAM, usada por drones e robôs para mapeamento em tempo real.

#visãocomputacional #machinelearning #datascience #python
  • ⚠️❗ Não deem ideia para o Haddad! 

A França usou Inteligência Artificial para detectar mais de 20 mil piscinas não declaradas a partir de imagens aéreas.

Com modelos de Deep Learning, o governo identificou quem estava devendo imposto... e arrecadou mais de €10 milhões com isso.

Quer saber como foi feito? Veja no post completo no blog do Sigmoidal: https://sigmoidal.ai/como-a-franca-usou-inteligencia-artificial-para-detectar-20-mil-piscinas/

#datascience #deeplearning #computerVision #IA
  • Como aprender QUALQUER coisa rapidamente?

💡 Comece com projetos reais desde o primeiro dia.
📁 Crie um portfólio enquanto aprende. 
📢 E compartilhe! Poste, escreva, ensine. Mostre o que está fazendo. Documente a jornada, não o resultado.

Dois livros que mudaram meu jogo:
-> Ultra Aprendizado (Scott Young)
-> Uma Vida Intelectual (Sertillanges)

Aprenda em público. Evolua fazendo.

#ultralearning #estudos #carreira
  • Como eu usava VISÃO COMPUTACIONAL no Centro de Operações Espaciais, planejando missões de satélites em situações de desastres naturais.

A visão computacional é uma fronteira fascinante da tecnologia que transforma a forma como entendemos e respondemos a desastres e situações críticas. 

Neste vídeo, eu compartilho um pouco da minha experiência como Engenheiro de Missão de Satélite e especialista em Visão Computacional. 

#VisãoComputacional #DataScience #MachineLearning #Python
  • 🤔 Essa é a MELHOR linguagem de programação, afinal?

Coloque sua opinião nos comentários!

#python #datascience #machinelearning
  • 💘 A história de como conquistei minha esposa... com Python!

Lá em 2011, mandei a real:

“Eu programo em Python.”
O resto é história.
  • Para rotacionar uma matriz 2D em 90°, primeiro inverto a ordem das linhas (reverse). Depois, faço a transposição in-place. Isso troca matrix[i][j] com matrix[j][i], sem criar outra matriz. A complexidade segue sendo O(n²), mas o uso de memória se mantém O(1).

Esse padrão aparece com frequência em entrevistas. Entender bem reverse + transpose te prepara para várias variações em matrizes.

#machinelearning #visaocomputacional #leetcode
  • Na última aula de estrutura de dados, rodei um simulador de labirintos para ensinar como resolver problemas em grids e matrizes.

Mostrei na prática a diferença entre DFS e BFS. Enquanto a DFS usa stacks, a BFS utiliza a estrutura de fila (queue). Cada abordagem tem seu padrão de propagação e uso ideal.

#machinelearning #visaocomputacional #algoritmos
  • 🔴 Live #2 – Matrizes e Grids: Fundamentos e Algoritmos Essenciais

Na segunda aula da série de lives sobre Estruturas de Dados e Algoritmos, o foco será em Matrizes e Grids, estruturas fundamentais em problemas de caminho, busca e representação de dados espaciais.

📌 O que você vai ver:

Fundamentos de matrizes e grids em programação
Algoritmos de busca: DFS e BFS aplicados a grids
Resolução ao vivo de problemas do LeetCode

📅 Terça-feira, 01/07, às 22h no YouTube 
🎥 (link nos Stories)

#algoritmos #estruturasdedados #leetcode #datascience #machinelearning
  • 💡 Quer passar em entrevistas técnicas?
Veja essa estratégia para você estudar estruturas de dados em uma sequência lógica e intuitiva.
⠀
👨‍🏫 NEETCODE.io
⠀
🚀 Marque alguém que também está se preparando!

#EntrevistaTecnica #LeetCode #MachineLearning #Data Science
  • Live #1 – Arrays & Strings: Teoria e Prática para Entrevistas Técnicas

Segunda-feira eu irei começar uma série de lives sobre Estruturas de Dados e Algoritmos. 

No primeiro encontro, falarei sobre um dos tipos de problemas mais cobrados em entrevistas: Arrays e Strings.

Nesta aula, você vai entender a teoria por trás dessas estruturas, aprender os principais padrões de resolução de problemas e aplicar esse conhecimento em exercícios selecionados do LeetCode.

📅 Segunda-feira, 23/06, às 21h no YouTube

🎥 (link nos Stories)

#machinelearning #datascience #cienciadedados #visãocomputacional
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning gpt-3 histograma IA generativa image formation inteligência artificial jupyter kaggle keras machine learning matplotlib mnist nft openai opencv overfitting pandas profissão python redes neurais redes neurais convolucionais regressão linear regressão logística salário scikit-learn seaborn sklearn tensorflow titanic tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Sem Resultado
Ver Todos Resultados
  • Home
  • Cursos
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.