O que é e como funciona o paisagens do recife
O paisagens do recife é um gerador de datasets sintéticos voltado para treinamento de modelos de detecção de objetos no formato YOLO. A ideia básica é tirar print screens de gravações de trânsito da cidade do Recife e gerar automaticamente imagens com caixas delimitadoras anotadas em formato YOLO (.txt). Você escolhe o tipo de objeto que quer — carros, motos, caminhões, pedestres — e o sistema processa tudo em lote. A ferramenta é open source e roda localmente. Isso significa que você não precisa de API key, não paga mensalidade e os dados ficam na sua máquina. O repositório oficial fica no GitHub do autor bruno-fn. O link direto é https://github.com/bruno-fn/paisagens-do-recife . Se quiser baixar já, esse é o ponto de partida.
paisagens do recife — o guia prático
Vou explicar na ordem que faz sentido, não na ordem dos livros didáticos. Porque o primeiro problema que você vai enfrentar não é técnico, é de expectativa. O que a maioria das pessoas não percebe de cara: o dataset gera imagens com iluminação, ângulo e resolução bastante homogêneos. As fotos vêm de um conjunto fixo de vídeos do Recife. Se você treinar só com isso, seu modelo vai performar muito bem em cenários similares e mal em qualquer coisa fora da distribuição original. Isso é distribution shift, conceito básico, mas todo mundo ignora na hora de usar dados sintéticos.
Para instalar, o processo é simples. Você precisa de Python 3.8 ou superior, Git e uma GPU com CUDA se quiser rodar mais rápido. A instalação segue estes passos: Abra o terminal e clone o repositório. Rode git clone https://github.com/bruno-fn/paisagens-do-recife.git . Entre na pasta com cd paisagens-do-recife . Instale as dependências com pip install -r requirements.txt . Se estiver no Windows, às vezes o package opencv-contrib-python dá problema de compilação. A solução que funcionou pra mim foi desinstalar e rodar pip install opencv-python==4.8.1.78 antes do requirements. Funciona.
Depois da instalação, o fluxo de geração é o seguinte. Execute o script principal com python generate_dataset.py . O script pede para você informar quantas imagens quer, quais classes de objetos e o tamanho de saída. Ele processa os vídeos, extrai frames, aplica as annotações e salva tudo em uma pasta com a estrutura padrão do YOLO: arquivos .jpg para as imagens e .txt para os rótulos. O tempo de geração depende do hardware. No meu setup, com uma RTX 3060, consigo gerar cerca de 500 imagens por minuto. Sem GPU, o mesmo processo leva aproximadamente 12 minutos para 500 imagens. A diferença é significativa se você precisa de milhares de samples.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Aqui vai algo que não está no readme e que te economiza horas: o script original não faz balanceamento de classes automaticamente. Se você solicitar 80% carros e 20% motos, ele vai priorizar carros nos frames, mas a distribuição real ainda depende de quantos objetos aparecem em cada frame. Para contornar isso, eu rodo o gerador duas vezes com pesos diferentes e depois mesclo os datasets manualmente. Simples e eficiente. Outro ponto que causa dor de cabeça: a qualidade das anotações. Em frames com muitos objetos sobrepostos ou parcialmente ocultos, o gerador às vezes cria bounding boxes sobrepostas incorretamente. Eu resolvi isso com um script pós-processamento que usa Non-Maximum Suppression (NMS) nos rótulos antes de treinar. Roda em menos de 2 segundos pra qualquer quantidade razoável de arquivos.
Quando usar e quando não usar
O paisagens do recife é útil quando você precisa de volume rápido de dados rotulados para um domínio específico de trânsito brasileiro. É especialmente bom para projetos acadêmicos, protótipos e validação de arquitetura de rede antes de investir em anotação manual. Não é indicado como único conjunto de treino se o seu modelo será implantado em produção. A falta de variação de câmera, clima e cenário limita severamente a generalização. Nestes casos, o recomendável é combinar o dataset sintético com pelo menos 2 mil imagens reais anotadas. A proporção que costuma funcionar melhor é 70% real e 30% sintético. Mais que isso e o modelo começa a overfit em padrões artificiais.
Se o seu objetivo é detecção em condições adversas — chuva forte, noite, neblina — o dataset atual não cobre esses cenários. Você vai precisar complementar com outros conjuntos ou gerar suas próprias variações com aumento de dados (data augmentation) focado nesses atributos.
Alternativas
Existem outras opções no mercado. O roboflow possui datasets similares com comunidades ativas. O COCO e o KITTI são padrões do setor, mas exigem mais trabalho de adaptação para o contexto brasileiro. Se o foco for especificamente veículos e trânsito urbano no Nordeste, o paisagens do recife continua sendo uma das opções mais diretas e rápidas disponíveis gratuitamente. O download oficial permanece no repositório do GitHub mencionado acima. Basta clonar, ajustar os parâmetros no arquivo de configuração e rodar. Não tem complicação adicional além do que já descrevi.
O que mais vejo gente errando é tentar usar as imagens cruas sem fazer split adequado entre treino, validação e teste. O script gera tudo misturado. Você precisa rodar um separador depois. Eu uso sempre 70-15-15. Leva menos de um minuto com um script simples de shuffle e divisão. Se seguir esses passos, o resultado é um dataset funcional em torno de 30 minutos do início ao fim, considerando instalação e geração de 2 mil imagens. Mais do que isso depende do nível de refinamento que você quer aplicar nos rótulos e na augmentação.