Bom dia Chara tudo bem ? sabe me dizer se o algoritmo teachable faz distinção de cores dos objetos ? Digo pois pretendo usar um projeto de robótica, onde necessito da distinção de formato e cores... abs
Alguém sabe como resolver quando o input e o output não funcionam no site? Eu montei o banco de dados com videos e fiz o treinamento, mas o reconhecimento no input e output não está ocorrendo, alguém sabe qual pode ser o problema?
Excelente conteudo, se eu quisesse acrescentar a detecção do objeto com o tensor flow para fazer um quadro ao redor da imagem e dizer o nome dela como eu faria?
Olá Douglas, o tensorflow tem um resultado muito bom porém não é o framework mais "amigável" para trabalhar com detecção rs, eu recomendaria outro método mais simples de usar como por exemplo o yolov8, porém tanto o tensorflow como o yolo vai precisar de uma preparação diferente das imagens, é necessário gerar as anotações (labels) para cada imagem antes de treinar o modelo final. Abaixo tem um material sobre esse processo. towardsdatascience.com/custom-object-detection-using-tensorflow-from-scratch-e61da2e10087
Ola. Parabens wellington pelo video!!! muito bom!!! vi o video do estacionamento tambem. show demais. vc poderia fazer isso em um auditorio para mostrar cadeiras vagas ? seria legal. e teria uma dificuldade em caso de estar escuro. funciona tambem ou tem que colocar iluminaçao infra? grato. Luiz.
Ideia legal! acredito que a questão da iluminação seria realmente um desafio grande nesse ambiente, algumas técnicas morfológicas ajuda bastante, porém dependendo do nível de iluminação seria mesmo interessante analisar iluminação com infra.
Olá Diego, apesar da imagem de capa demonstrar bounding box, esse modelo atende apenas para classificação de imagens, ou seja, ele olha a imagem como um todo e retorna uma classificação, os modelos que fazem a detecção de objetos (retornam bounding box) são diferente, exemplo yolo, haarcascade, lenet e etc...
muito bom eu conseguir fazer aqui = ao seu so que eu queria adicionar aquele quadrado com o nome indentificando na imagem?? como e que tem que colocar no codigo para ficar assim ?? eu tentei usar outros e nao deu certo .. tem como vc me ajudar pq so aparece la na barra do Shell mais eu preciso que apareça na imagem mesmo tem como me ajudar ?? Obs eu tentei colocar (frame) = a um outro video seu .. so que nao deu Certo Pq esse codigo começa com (imgS) deus de ja agradeço
Vinicius, esse método específico não funciona assim com bounding boxes (o quadrado ao redor do objeto), se você necessita de fato identificar a posição do objeto na imagem pode usar outras formas de detecção de objetos, ou usar o modelo teachable machine dessa forma que faço no vídeo abaixo: ruclips.net/video/qgTerD7-CeM/видео.html
Estranho, geralmente a página é bem estável, o processamento pode demorar um pouco oque é normal, mas travar não é muito comum, acredito que se tem algum problema o Google deve resolver em breve.
boa tarde, no meu PyCharm pra cada item no loop ele exibe uma mensagem dizendo "1/1 [==============================] - 0s 20ms/step", acaba poluindo a tela, sabe como remover essa mensagem? Muito bom vídeo, ajudou bastante
Se seu código está extamente igual ao da aula então pode ser a versão da biblioteca, estou com TensorFlow na versão 2.6.0, verifique qual versão você está utilizando.
Tive um problema ao executar seu código, me dá vários erros que não consigo resolver e não são problemas de compatibilidade, vou deixar o erro abaixo, talvez você possa me ajudar a ver porque isso acontece: raceback (última chamada mais recente): Arquivo "c:\Users\pgram\OneDrive\Desktop\pp\teachablemachineproject-main\project.py", linha 5, em modelo = load_model('Keras_model.h5') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\ saving\ saving_api.py", linha 183, em load_model retornar legado_h5_format.load_model_from_hdf5 ( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\legacy_h5_format.py", linha 133, em load_model_from_hdf5 modelo = saving_utils.model_from_config( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config retornar serialização.deserialize_keras_object( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object deserializado_obj = cls.from_config( ^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\sequential.py", linha 333, em from_config camada = saving_utils.model_from_config( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config retornar serialização.deserialize_keras_object( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object deserializado_obj = cls.from_config( ^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\sequential.py", linha 333, em from_config camada = saving_utils.model_from_config( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config retornar serialização.deserialize_keras_object( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object deserializado_obj = cls.from_config( ^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\model.py", linha 517, em from_config retornar funcional_from_config( ^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\funcional.py", linha 517, em funcional_from_config camada_processo(dados_camada) Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\functional.py", linha 497, em process_layer camada = saving_utils.model_from_config( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config retornar serialização.deserialize_keras_object( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 504, em deserialize_keras_object deserializado_obj = cls.from_config(cls_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\ops\operation.py", linha 210, em from_config raiseTypeError( TypeError: Erro ao desserializar a classe 'DepthwiseConv2D' usando config={'name': 'expanded_conv_thoughtwise', 'trainable': True, 'dtype': 'float32', 'kernel_size': [3, 3], 'strides': [ 1, 1], 'preenchimento': 'mesmo', 'data_format': 'channels_last', 'dilation_rate': [1, 1], 'grupos': 1, 'ativação': 'linear', 'use_bias': Falso , 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'bias_regularizer': Nenhum, 'activity_regularizer': Nenhum, 'bias_constraint': Nenhum, 'profundidade_multiplicador': 1, 'profundidade_initializer': {'class_name': 'VarianceScaling', 'config': {'scale': 1, 'mode': 'fan_avg', 'distribution': 'uniform', 'seed': None}}, 'profundidade_regularizer': Nenhum, 'profundidade_constraint': Nenhum}. Exceção encontrada: argumentos de palavras-chave não reconhecidos passados para DepthwiseConv2D: {'groups': 1}
Geralmente esse erro pode estar relacionado a biblioteca h5py que é instalada automaticamente com as dependências, como estamos usando uma versão mais antiga do tensorflow tente voltar algumas versões na biblioteca h5py, exemplo versão 2.7.1
Olá, é simples, em vez de abrir o vídeo com cv2.VideoCapture(), basta usar cv2.imread('caminho_imagem') para abrir a imagem, nesse caso não é necessário usar o loop "While True:" basta fazer os processos de redimencionar a imagem em diante.
@@devideias1155 vlw tinha dado certo é pq na hora de jogar a foto pra testar se a inteligência tava sabendo aí só tava pedindo pra abrir a webcam mas atualizei a página e refiz aí dps deu certo pra upar a foto. Vlw
Quero agradecer ao mano pela ajuda, me salvou horas de trabalho. +1 Inscrito!
Cara muito obg msm, salvou minha APS. +1 Inscrito!
Bom dia Chara tudo bem ? sabe me dizer se o algoritmo teachable faz distinção de cores dos objetos ? Digo pois pretendo usar um projeto de robótica, onde necessito da distinção de formato e cores... abs
Sim, ele consegue faz distinção de cores
Aí depende, existe dois modelos, um com cores é maior resolução, e outro em preto em branco com baixa resolução. Eu recomendo o de cores
O melhor que já vi.
Show, cara! Me inscrevi
Legal .... muito bem explicado!!
Excelente vídeo 👏👏👏.
Faça um vídeo lendo as placas de carro em tempo real. Vai ser top aprender.
Valeu! .. Boa dica!
Alguém sabe como resolver quando o input e o output não funcionam no site? Eu montei o banco de dados com videos e fiz o treinamento, mas o reconhecimento no input e output não está ocorrendo, alguém sabe qual pode ser o problema?
Pode fornecer mais detalhes? Por exemplo está gerando algum erro?
Excelente conteudo, se eu quisesse acrescentar a detecção do objeto com o tensor flow para fazer um quadro ao redor da imagem e dizer o nome dela como eu faria?
Olá Douglas, o tensorflow tem um resultado muito bom porém não é o framework mais "amigável" para trabalhar com detecção rs, eu recomendaria outro método mais simples de usar como por exemplo o yolov8, porém tanto o tensorflow como o yolo vai precisar de uma preparação diferente das imagens, é necessário gerar as anotações (labels) para cada imagem antes de treinar o modelo final. Abaixo tem um material sobre esse processo.
towardsdatascience.com/custom-object-detection-using-tensorflow-from-scratch-e61da2e10087
Muito obrigado@@devideias1155
Esse anjo ainda disponibiliza o código🥺🙌
Ola. Parabens wellington pelo video!!! muito bom!!! vi o video do estacionamento tambem. show demais. vc poderia fazer isso em um auditorio para mostrar cadeiras vagas ? seria legal. e teria uma dificuldade em caso de estar escuro. funciona tambem ou tem que colocar iluminaçao infra? grato. Luiz.
Ideia legal! acredito que a questão da iluminação seria realmente um desafio grande nesse ambiente, algumas técnicas morfológicas ajuda bastante, porém dependendo do nível de iluminação seria mesmo interessante analisar iluminação com infra.
O meu fica dando erro: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 28: invalid start byte
Olá Matheus, qual versão do tensorflow e keras voce está utilizando?
@@devideias1155 Tensorflow e Keras 2.12.0, me ajuda nisso por favor
Muito bom, mas como desenhar um bounding box nos objetos detectados? Nao encontrei como extrairo as informações para desenhar o retangulo.
Olá Diego, apesar da imagem de capa demonstrar bounding box, esse modelo atende apenas para classificação de imagens, ou seja, ele olha a imagem como um todo e retorna uma classificação, os modelos que fazem a detecção de objetos (retornam bounding box) são diferente, exemplo yolo, haarcascade, lenet e etc...
muito bom eu conseguir fazer aqui = ao seu
so que eu queria adicionar aquele quadrado com o nome indentificando na imagem??
como e que tem que colocar no codigo para ficar assim ??
eu tentei usar outros e nao deu certo .. tem como vc me ajudar
pq so aparece la na barra do Shell
mais eu preciso que apareça na imagem mesmo
tem como me ajudar ??
Obs eu tentei colocar (frame) = a um outro video seu .. so que nao deu Certo
Pq esse codigo começa com (imgS)
deus de ja agradeço
Vinicius, esse método específico não funciona assim com bounding boxes (o quadrado ao redor do objeto), se você necessita de fato identificar a posição do objeto na imagem pode usar outras formas de detecção de objetos, ou usar o modelo teachable machine dessa forma que faço no vídeo abaixo:
ruclips.net/video/qgTerD7-CeM/видео.html
@@devideias1155 vixi mano ja tava pegando ele como referência
Infelizmente não consegui, a página dá sempre erro, tentei com menos classes, menos imagens e com menor qualidade e a página encrava sempre
Estranho, geralmente a página é bem estável, o processamento pode demorar um pouco oque é normal, mas travar não é muito comum, acredito que se tem algum problema o Google deve resolver em breve.
qual copilador vc está usando?
Olá, ao que você se refere quando diz "copilador"? O python (a linguagem que utilizo) é interpretada, diferente de linguagens compiladas.
Quando pergunto isso é qual plataforma vc utiliza para escrever os códigos em Python?
boa tarde, no meu PyCharm pra cada item no loop ele exibe uma mensagem dizendo "1/1 [==============================] - 0s 20ms/step", acaba poluindo a tela, sabe como remover essa mensagem?
Muito bom vídeo, ajudou bastante
Se seu código está extamente igual ao da aula então pode ser a versão da biblioteca, estou com TensorFlow na versão 2.6.0, verifique qual versão você está utilizando.
@@devideias1155 ok obrigado
Tive um problema ao executar seu código, me dá vários erros que não consigo resolver e não são problemas de compatibilidade, vou deixar o erro abaixo, talvez você possa me ajudar a ver porque isso acontece: raceback (última chamada mais recente):
Arquivo "c:\Users\pgram\OneDrive\Desktop\pp\teachablemachineproject-main\project.py", linha 5, em
modelo = load_model('Keras_model.h5')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\ saving\ saving_api.py", linha 183, em load_model
retornar legado_h5_format.load_model_from_hdf5 (
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\legacy_h5_format.py", linha 133, em load_model_from_hdf5
modelo = saving_utils.model_from_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config
retornar serialização.deserialize_keras_object(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object
deserializado_obj = cls.from_config(
^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\sequential.py", linha 333, em from_config
camada = saving_utils.model_from_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config
retornar serialização.deserialize_keras_object(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object
deserializado_obj = cls.from_config(
^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\sequential.py", linha 333, em from_config
camada = saving_utils.model_from_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config
retornar serialização.deserialize_keras_object(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 495, em deserialize_keras_object
deserializado_obj = cls.from_config(
^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\model.py", linha 517, em from_config
retornar funcional_from_config(
^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\funcional.py", linha 517, em funcional_from_config
camada_processo(dados_camada)
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\models\functional.py", linha 497, em process_layer
camada = saving_utils.model_from_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\ saving_utils.py", linha 85, em model_from_config
retornar serialização.deserialize_keras_object(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\legacy\ saving\serialization.py", linha 504, em deserialize_keras_object
deserializado_obj = cls.from_config(cls_config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Arquivo "c:\Users\pgram\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\ops\operation.py", linha 210, em from_config
raiseTypeError(
TypeError: Erro ao desserializar a classe 'DepthwiseConv2D' usando config={'name': 'expanded_conv_thoughtwise', 'trainable': True, 'dtype': 'float32', 'kernel_size': [3, 3], 'strides': [ 1, 1], 'preenchimento': 'mesmo', 'data_format': 'channels_last', 'dilation_rate': [1, 1], 'grupos': 1, 'ativação': 'linear', 'use_bias': Falso , 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'bias_regularizer': Nenhum, 'activity_regularizer': Nenhum, 'bias_constraint': Nenhum, 'profundidade_multiplicador': 1, 'profundidade_initializer': {'class_name': 'VarianceScaling', 'config': {'scale': 1, 'mode': 'fan_avg', 'distribution': 'uniform', 'seed': None}}, 'profundidade_regularizer': Nenhum, 'profundidade_constraint': Nenhum}.
Exceção encontrada: argumentos de palavras-chave não reconhecidos passados para DepthwiseConv2D: {'groups': 1}
Geralmente esse erro pode estar relacionado a biblioteca h5py que é instalada automaticamente com as dependências, como estamos usando uma versão mais antiga do tensorflow tente voltar algumas versões na biblioteca h5py, exemplo versão 2.7.1
como faz pra fazer com fotos??
Olá, é simples, em vez de abrir o vídeo com cv2.VideoCapture(), basta usar cv2.imread('caminho_imagem') para abrir a imagem, nesse caso não é necessário usar o loop "While True:" basta fazer os processos de redimencionar a imagem em diante.
@@devideias1155 vlw tinha dado certo é pq na hora de jogar a foto pra testar se a inteligência tava sabendo aí só tava pedindo pra abrir a webcam mas atualizei a página e refiz aí dps deu certo pra upar a foto. Vlw