Respostas no Fórum

Visualizando 15 posts - 166 até 180 (de 393 do total)
  • Autor
    Posts
  • em resposta a: detecção de objetos personalizados #41672
    Gabriel Alves
    Moderador

      Olá Heitor!

      Você está executando no Colab mesmo? Ou em qual ambiente / sistema operacional?

      Recomendo reiniciar a sessão e tente checar se executou na ordem todas as mudanças necessárias para compilação do Darknet (se possível tente clonar novamente o repositório antes). Caso o erro persista, por gentiliza compartilhe aqui o seu Colab pois assim consigo te auxiliar melhor e verificar se pode não haver alguma outra coisa no código ou na instalação interferindo.

      E caso esteja executando em outro serviço cloud (como o AWS por exemplo) dê uma olhada nessa solução aqui.

      • Esta resposta foi modificada 1 ano, 8 meses atrás por Gabriel Alves.
      em resposta a: Dúvida StableDiffusion local #41671
      Gabriel Alves
      Moderador

        Olá! Na verdade os comandos você executa no prompt mesmo (todos os comandos que possuem ! no Colab, porém localmente você vai executar sem a exclamação no início), e depois de feita as instalações você executa o código no PyCharm. Só certifique antes que está executando no PyCharm com o ambiente virtual que você instalou o diffusers, já que você pode ter mais de um ambiente.

        Caso você esteja executando no Windows saiba que é bem comum dar algum problema de incompatibilidade, pelo menos alguns têm reclamado quanto a isso, então se for o seu caso eu sugiro dar uma olhada nesse guia e seguir os passos, pois essa parece ser atualmente a forma mais garantida.

        em resposta a: Dúvida StableDiffusion local #41632
        Gabriel Alves
        Moderador

          Olá Edinalso!

          Para a implementação do Stable Diffusion nesse curso foi feito baseado em código, pois permite algumas vantagens e ainda a possibilidade de deixar “programático” e facilmente reproduzível. Mas caso você deseje executar localmente e usando interfaces então saiba que pode sim sem problemas, assim como no método mostrado no artigo de exemplo, porém aqui você não usará mais comandos ou código, você ficará dependente da interface e portanto para gerar as imagens terá que fazer a partir das opções do menu presente nelas (o que é simples, pelo menos a maioria das interfaces usadas para implementar o SD hoje são bastante intuitivas).

          No entanto, se você deseja instalar localmente usando essa mesma implementação do curso (que é baseada em código) então basta executar os mesmo comandos, para clonar o repositório oficial do diffusers e então importar as funções necessárias. Caso tenha qualquer dúvida enquanto você estiver tentando usar localmente fique à vontade para perguntar, nós iremos auxiliar.

          em resposta a: Mensagem de erro na função ‘rede_neural.predict(caracteres)’ #41631
          Gabriel Alves
          Moderador

            Olá Rafael!

            Eu testei novamente todo o código da aula (treinamento e teste) e não gerou esse erro, rodou sem problemas. Pode ter ocorrido ou algum problema na hora de salvar o modelo treinado, ou ficou diferente alguma parte do seu código.

            Em todo o caso, considerando a possibilidade que seja a segunda opção, sugiro dar uma olhada aqui no código da aula: https://colab.research.google.com/drive/11aOxCRQegn6GbpOzoHeO6pVq5K7bRzHc#scrollTo=Lnz1W0v97fR6

            Caso persista, tente carregar o modelo disponibilizado na pasta do Drive (o arquivo “rede_neural”).

            Se ainda estiver com dificuldades para resolver, peço que compartilhe o seu Colab, pois assim vou conseguir auxiliar melhor, já que pode haver outra coisa em seu código interferindo.

            em resposta a: Como eu adquiro essas imagens positivas e negativas ? #41622
            Gabriel Alves
            Moderador

              Olá! Esse cascade que você cita foi treinado com imagens do “frontal CALTECH dataset”, nesse github há mais detalhes caso tenha curiosidade.

              Mas para treinar seu próprio detector de faces, pode usar imagens positivas de qualquer dataset que contenha na imagem o “objeto” que você deseja detectar; e as negativas seriam qualquer outra coisa que não contenha o seu objeto.

              Tem alguns datasets bastante conhecidos e usados (principalmente em trabalhos de pesquisa) como o AT & T Database e o Yale Face Database B. Na verdade, há tantos datasets que vou deixar abaixo dois artigos que reúne dezenas deles:

              Você pode dar uma olhada neles e escolher qual se adequada melhor aos seus objetivos, ou também nada impede de usar múltiplos datasets (o que pode ser o ideal caso deseja tornar seu modelo mais robusto).

               

              em resposta a: Abrir arquivos TIFF #41621
              Gabriel Alves
              Moderador

                Olá Fernando!

                Para ler imagens nesse formato, você pode usar a própria biblioteca matplotlib (exemplo). Ou, você pode usar a função open() da biblioteca PIL, que já possui suporte a esse formato (mais detalhes aqui). Algumas pessoas já relataram certo problema ao tentar ler esse formato no geral, então como alternativa o que eu recomendo caso isso aconteça com você é fazer antes a conversão do formato .tiff para o .jpg ou .png (png de preferência, para evitar compressão) caso isso não comprometa a sua imagem, claro; assim, você terá uma garantia que poderá carregar suas imagens sem problemas de compatibilidade, pois são formatos mais “universais” e aceitos pelas bibliotecas mais comuns de machine learning e visão computacional. A conversão pode ser feita manualmente usando uma ferramenta como o convertIO, mas se você está trabalhando com muitas imagens isso não é viável, então você pode utilizar um script em python para fazer isso de modo automático, desse modo.

                Gabriel Alves
                Moderador

                  Olá Roberto!

                  Nesse curso você encontra diversas abordagens usadas para segmentação, se a ideia for construir esse programa do zero então encontrará as técnicas de segmentação que são envolvidas nesse processo. Se o seu objetivo é fazer isso voltado para reconhecimento de caracteres, sugiro dar uma olhada também no nosso outro curso Reconhecimento de Textos – com OCR e Python, em um dos projetos mostra como treinar do zero um modelo para fazer a classificação de caracteres – porém é uma abordagem baseada em redes neurais artificiais.

                  Entretanto, se entendi bem a descrição do seu problema, eu acho que ele se refere a classificar números digitais com base no preenchimento ou não de determinadas regiões. Há um artigo que explica como fazer exatamente isso, você pode visualizá-lo aqui. Nesse artigo o autor explica detalhadamente como criar uma lógica de segmentação+classificação usando como base o display de sete segmentos, que é a forma mais popular e conhecida para exibição de números digitais. Acredito que seria bem próximo ou até exatamente o que você precisa, mas caso não seja, peço que forneça mais detalhes do seu projeto.

                  • Esta resposta foi modificada 1 ano, 8 meses atrás por Gabriel Alves.
                  em resposta a: Reconhecimento de textos em imagem #41618
                  Gabriel Alves
                  Moderador

                    Opa! Disponha, Carlos! Que bom que funcionou bem para você =)

                    Realmente o tempo de processamento pode ser bem elevado nesses casos pois o OCR é executado dezenas de vezes na mesma imagem, por isso é bem interessante pensar nessas formas de otimização que você comentou. O que ajuda bastante é processar na GPU, caso já não esteja fazendo isso. Mas no geral, para aperfeiçoar a performance em si vai exigir muita tentativa e erro para tentar ajustar ao máximo, por exemplo se for manter a detecção de círculos em seu algoritmo é interessante testar com diferentes parâmetros para manter somente os círculos mais perfeitos ou não tão pequenos – dá para facilmente criar um filtro com base na área em pixels do círculo, assim ignorando os círculos muito pequenos ou muito grandes detectados na imagem e que portanto seriam falsos-positivos, já que todos os círculos de interesse (que possuem o número dentro) tem o mesmo tamanho.

                    Em último caso, se a sua aplicação não exigir que o resultado seja apresentado instantaneamente no mesmo segundo então seria interessante se concentrar mais agora em maneiras de garantir a precisão do que garantir a velocidade, portanto seguindo essa mesma lógica já pode ser o suficiente.

                    Gabriel Alves
                    Moderador

                      Olá!

                      Primeiramente parabéns pelo seu resultado, e obrigado por contribuir apresentando sua solução!

                      Realmente encontramos essa limitação ao usar a versão gratuita do Colab, devido à memória oferecida pela GPU, o que pode ser um problema ao tentar definir parâmetros muito robustos para alguns algoritmos (como é especialmente o caso do CNN) que exigem um poder computacional muito maior. Mas conforme você comprovou, nesses casos é possível encontrar um modo bem mais otimizado e ainda assim bem preciso usando esses algoritmos mais leves como o Haarcascade.

                      Gabriel Alves
                      Moderador

                        Olá,

                        • Sim, os dois valores são alocados individualmente, por isso que os dois somados não devem exceder a sua memória.
                        • Os dois estão igualmente relacionados ao uso e alocação da memória durante processos da etapa de treinamento, o algoritmo de treinamento do OpenCV faz a distinção entre os dois, porém na prática a recomendação é que esses valores sejam iguais. Mas caso queira saber detalhes mais técnicos sobre a diferença:
                          • “Valores de features pré-calculadas” se refere aos valores numéricos intermediários que são calculados durante o processo de avaliação de features/características do tipo Haar (Haar-like features) nas amostras de treinamento. Esses valores são basicamente o resultado daqueles cálculos matemáticos baseados nas intensidades de pixels das regiões da imagem (representado por aqueles “quadradinhos” preto e branco, conforme mostrado na aula teórica); ao pré-calcular esses valores e armazená-los na memória, o processo de treinamento pode se tornar mais eficiente. Ou seja, esse parâmetro permite controlar a memória alocada especificamente para esses valores.
                          • “Índices de features pré-calculadas” se referem aos índices ou posições das características do tipo Haar que são computadas dentro do conjunto de features. Esses índices ajudam a rastrear quais features foram avaliadas em uma determinada amostra durante o processo de treinamento; ou seja, ao pré-calcular e armazenar esses índices o OpenCV pode otimizar o processo de treinamento pois evita avaliações redundantes das mesmas features nas mesmas amostras, já que essas informações podem ser rapidamente acessadas na memória.
                        • Esta resposta foi modificada 1 ano, 8 meses atrás por Gabriel Alves.
                        Gabriel Alves
                        Moderador

                          Olá Roberto!

                          Esse erro ocorre devido a um erro de digitação, pois ali na linha ao invés de COLOR_BGR2GRB deveria ser COLOR_BGR2RGB

                          Basta fazer essa correção ali em seu código e deve funcionar normal.

                          Caso deseje, você pode ver aqui o código da aula para checar se o restante está ok também:
                          https://colab.research.google.com/drive/1t2vGUlNDolMD0QtJPrHtSSGOAvHQmluU?usp=sharing#scrollTo=uPo6n5V66Nxh

                          Gabriel Alves
                          Moderador

                            Olá Roberto!

                            Esse erro ocorre pois o programa não localiza a variável em questão apontada na mensagem, até então não foi declarada e portanto o programa não tem como acessar o valor.

                            Veja que acontece porque a indentação da função exibir_limiarizacao() está incorreta – a linha onde tem “titulos =” (e as abaixo dela) devem estar indentadas 1 posição à direita, alinhadas às 5 primeiras linhas da função.

                            Então, o problema é que esse restando do código é executado fora da função porém nele é mencionado uma variável que só existe dentro da função, por isso dá erro de “not defined”.

                            Para resolver, basta corrigir a indentação do código conforme expliquei.

                            Caso tenha dúvidas, veja aqui o código correto da aula:
                            https://colab.research.google.com/drive/1t2vGUlNDolMD0QtJPrHtSSGOAvHQmluU?usp=sharing#scrollTo=uPo6n5V66Nxh

                            Gabriel Alves
                            Moderador

                              Olá!

                              Esses parâmetros controlam o tamanho do buffer, portanto é usado para otimizar o treinamento através de um maior uso da memória disponível. O -precalcValBufSize corresponde ao tamanho do buffer para valores de features pré-calculadas (em Mb); e o -precalcIdxBufSize é o tamanho do buffer para índices de features pré-calculadas (em Mb). Quanto mais memória você atribuir, mais rápido o processo de treinamento. No entanto, é importante ressaltar que -precalcValBufSize e -precalcIdxBufSize combinados não devem exceder a memória disponível. Então, caso tenha memória o suficiente você pode aumentar esses valores, para que o comando de treinamento tire proveito de buffers maiores.

                              em resposta a: Onde você encontrou esses arquivos ? #41461
                              Gabriel Alves
                              Moderador

                                Olá!

                                Eles vem junto com o OpenCV caso tenha instado no Windows. Entretanto, nas versões mais recentes esses arquivos .exe do createsamples e traincascade não estão vindo, então você precisa ou compilar eles com o CMake ou (mais recomendado) você pode instalar a versão 3.4.x do OpenCV ou alguma outra anterior à 4. Recomendamos atualmente a 3.4.6, link aqui.

                                Caso já tenha instalado basta desinstalar essa e instalar a outra anterior, pois com essa versão anterior é pra dar certo.

                                Gabriel Alves
                                Moderador

                                  Olá Roberto!

                                  O código de cada seção ou tema você pode acessar clicando no link dentro da aba Materiais, que está presente na primeira aula onde aquele assunto é tratado. Por exemplo, para essa aula “Importação das Bibliotecas” é referente à primeira seção do curso (segmentação usando Técnicas Clássicas), ele é abordado a primeira vez na aula Introdução (link da aula aqui). Na página dessa aula, basta clicar na aba Materiais e clicar no link onde tá escrito “Código fonte – Google Colab”.

                                  Para a aula em questão, o link é esse aqui https://colab.research.google.com/drive/1t2vGUlNDolMD0QtJPrHtSSGOAvHQmluU?usp=sharing

                                  mas para as próximas agora você sabe como localizar o código-fonte completo desenvolvido em aula.

                                  E quanto às imagens usadas durante o curso, todas os arquivos estão presentes dentro da pasta do Drive compartilhado na aula “Recursos para download”, na seção Introdução.

                                  • Esta resposta foi modificada 1 ano, 9 meses atrás por Gabriel Alves.
                                Visualizando 15 posts - 166 até 180 (de 393 do total)