Salta para o conteúdo

Compreender as opções de implementação do YOLOv8

Introdução

Percorreste um longo caminho na tua jornada com YOLOv8. Recolheste diligentemente dados, anotaste-os meticulosamente e dedicaste horas a treinar e avaliar rigorosamente o teu modelo YOLOv8 personalizado. Agora, está na altura de pôr o teu modelo a trabalhar para a tua aplicação específica, caso de utilização ou projeto. Mas há uma decisão crítica que tens pela frente: como exportar e implementar o teu modelo de forma eficaz.

Este guia apresenta-te as opções de implementação do YOLOv8e os factores essenciais a considerar para escolher a opção certa para o teu projeto.

Como selecionar a opção de implementação correcta para o teu modelo YOLOv8

Quando chega a hora de implementar o teu modelo YOLOv8 , é muito importante selecionar um formato de exportação adequado. Conforme descrito na documentaçãoUltralytics YOLOv8 Modes, a função model.export() permite converter o modelo treinado em uma variedade de formatos adaptados a diversos ambientes e requisitos de desempenho.

O formato ideal depende do contexto operacional pretendido para o teu modelo, equilibrando a velocidade, as restrições de hardware e a facilidade de integração. Na secção seguinte, analisaremos mais detalhadamente cada opção de exportação, compreendendo quando escolher cada uma delas.

YOLOv8Opções de implantação do 's

Vamos examinar as diferentes opções de implantação do YOLOv8 . Para obter um passo a passo detalhado do processo de exportação, visita a página da documentaçãoUltralytics sobre exportação.

PyTorch

PyTorch é uma biblioteca de aprendizagem automática de código aberto amplamente utilizada para aplicações em aprendizagem profunda e inteligência artificial. Oferece um elevado nível de flexibilidade e velocidade, o que a tornou uma das favoritas entre investigadores e programadores.

  • Benchmarks de desempenho: PyTorch é conhecido pela sua facilidade de utilização e flexibilidade, o que pode resultar numa ligeira compensação no desempenho bruto quando comparado com outras estruturas que são mais especializadas e optimizadas.

  • Compatibilidade e integração: Oferece uma excelente compatibilidade com várias bibliotecas de ciência de dados e de aprendizagem automática em Python.

  • Suporte e ecossistema da comunidade: Uma das comunidades mais vibrantes, com amplos recursos para aprendizagem e resolução de problemas.

  • Estudos de caso: Comumente utilizados em protótipos de investigação, muitos trabalhos académicos fazem referência a modelos implementados em PyTorch.

  • Manutenção e actualizações: Actualizações regulares com desenvolvimento ativo e suporte para novas funcionalidades.

  • Considerações sobre segurança: Patches regulares para problemas de segurança, mas a segurança depende muito do ambiente geral em que é implantado.

  • Aceleração de hardware: Suporta CUDA para aceleração de GPU, essencial para acelerar o treinamento e a inferência de modelos.

TorchScript

TorchScript alarga as capacidades do PyTorchpermitindo a exportação de modelos para serem executados num ambiente de tempo de execução C++. Isto torna-o adequado para ambientes de produção onde Python não está disponível.

  • Comparações de desempenho: Pode oferecer um desempenho melhor do que o nativo PyTorch, especialmente em ambientes de produção.

  • Compatibilidade e integração: Projetado para uma transição perfeita de PyTorch para ambientes de produção C++, embora alguns recursos avançados possam não ser traduzidos perfeitamente.

  • Suporte da comunidade e ecossistema: Beneficia da grande comunidade do PyTorchmas tem um âmbito mais restrito de programadores especializados.

  • Estudos de caso: Amplamente utilizado em ambientes industriais onde a sobrecarga de desempenho do Pythoné um gargalo.

  • Manutenção e actualizações: Mantido juntamente com PyTorch com actualizações consistentes.

  • Considerações sobre segurança: Oferece maior segurança ao permitir a execução de modelos em ambientes sem instalações completas em Python .

  • Aceleração de hardware: Herda o suporte CUDA do PyTorch, garantindo a utilização eficiente da GPU.

ONNX

O Open Neural Network Exchange (ONNX) é um formato que permite a interoperabilidade de modelos entre diferentes estruturas, o que pode ser fundamental para a implantação em várias plataformas.

  • Referências de desempenho: ONNX modelos podem ter um desempenho variável, dependendo do tempo de execução específico em que são implementados.

  • Compatibilidade e integração: Elevada interoperabilidade em várias plataformas e hardware devido à sua natureza agnóstica em termos de estrutura.

  • Apoio da comunidade e ecossistema: Apoiado por muitas organizações, o que leva a um amplo ecossistema e a uma variedade de ferramentas para otimização.

  • Estudos de caso: Frequentemente utilizado para mover modelos entre diferentes estruturas de aprendizagem automática, demonstrando a sua flexibilidade.

  • Manutenção e actualizações: Sendo uma norma aberta, o ONNX é atualizado regularmente para suportar novas operações e modelos.

  • Considerações sobre segurança: Como acontece com qualquer ferramenta multiplataforma, é essencial garantir práticas seguras no pipeline de conversão e implantação.

  • Aceleração de hardware: Com o ONNX Runtime, os modelos podem tirar partido de várias optimizações de hardware.

OpenVINO

OpenVINO é um kit de ferramentas da Intel concebido para facilitar a implementação de modelos de aprendizagem profunda no hardware da Intel, melhorando o desempenho e a velocidade.

  • Comparações de desempenho: Especificamente otimizado para CPUs, GPUs e VPUs da Intel, oferecendo aumentos significativos de desempenho em hardware compatível.

  • Compatibilidade e integração: Funciona melhor dentro do ecossistema Intel, mas também suporta uma série de outras plataformas.

  • Apoio da comunidade e ecossistema: Apoiado pela Intel, com uma base de utilizadores sólida, especialmente no domínio da visão por computador.

  • Estudos de caso: Frequentemente utilizado em cenários de IoT e computação de ponta, onde o hardware Intel é predominante.

  • Manutenção e atualizações: A Intel atualiza regularmente o site OpenVINO para suportar os modelos de aprendizagem profunda e o hardware Intel mais recentes.

  • Considerações sobre segurança: Fornece características de segurança robustas adequadas à implementação em aplicações sensíveis.

  • Aceleração de hardware: Adaptado para aceleração em hardware Intel, aproveitando conjuntos de instruções e recursos de hardware dedicados.

Para obter mais detalhes sobre a implantação usando OpenVINO, consulte a documentação de integração Ultralytics : Intel OpenVINO Exportar.

TensorRT

TensorRT é um otimizador e tempo de execução de inferência de aprendizado profundo de alto desempenho da NVIDIA, ideal para aplicativos que precisam de velocidade e eficiência.

  • Comparativos de desempenho: Oferece desempenho de alto nível em GPUs NVIDIA com suporte para inferência de alta velocidade.

  • Compatibilidade e integração: Mais adequado para hardware NVIDIA, com suporte limitado fora deste ambiente.

  • Suporte e ecossistema da comunidade: Forte rede de suporte através dos fóruns de desenvolvedores e da documentação da NVIDIA.

  • Estudos de casos: Amplamente adotado em indústrias que requerem inferência em tempo real em dados de vídeo e imagem.

  • Manutenção e atualizações: A NVIDIA mantém o site TensorRT com atualizações frequentes para melhorar a performance e suportar novas arquiteturas de GPU.

  • Considerações sobre segurança: Como muitos produtos NVIDIA, tem uma forte ênfase na segurança, mas as especificidades dependem do ambiente de implantação.

  • Aceleração de hardware: Projetado exclusivamente para GPUs NVIDIA, fornecendo otimização e aceleração profundas.

CoreML

CoreML é a estrutura de aprendizagem automática da Apple, optimizada para desempenho no dispositivo no ecossistema Apple, incluindo iOS, macOS, watchOS e tvOS.

  • Comparações de desempenho: Optimizado para desempenho no dispositivo em hardware da Apple com utilização mínima da bateria.

  • Compatibilidade e integração: Exclusivamente para o ecossistema da Apple, proporcionando um fluxo de trabalho simplificado para aplicações iOS e macOS.

  • Suporte da comunidade e ecossistema: Forte apoio da Apple e uma comunidade de programadores dedicada, com documentação e ferramentas abrangentes.

  • Estudos de caso: Normalmente utilizado em aplicações que requerem capacidades de aprendizagem automática no dispositivo em produtos Apple.

  • Manutenção e actualizações: Atualizado regularmente pela Apple para suportar os mais recentes avanços de aprendizagem automática e hardware Apple.

  • Considerações de segurança: Beneficia do enfoque da Apple na privacidade do utilizador e na segurança dos dados.

  • Aceleração de hardware: Tira o máximo partido do motor neural e da GPU da Apple para tarefas de aprendizagem automática aceleradas.

TF SavedModel

TF SavedModel é o formato do TensorFlowpara guardar e servir modelos de aprendizagem automática, particularmente adequado para ambientes de servidor escaláveis.

  • Comparações de desempenho: Oferece um desempenho escalável em ambientes de servidor, especialmente quando utilizado com TensorFlow Serving.

  • Compatibilidade e integração: Ampla compatibilidade com o ecossistema do TensorFlow, incluindo implementações de servidores empresariais e na nuvem.

  • Suporte da comunidade e ecossistema: Grande apoio da comunidade devido à popularidade do TensorFlow, com uma vasta gama de ferramentas para implantação e otimização.

  • Estudos de caso: Extensivamente utilizado em ambientes de produção para servir modelos de aprendizagem profunda em escala.

  • Manutenção e actualizações: Com o apoio da Google e da comunidade TensorFlow , garante actualizações regulares e novas funcionalidades.

  • Considerações sobre segurança: A implantação usando TensorFlow Serving inclui recursos de segurança robustos para aplicativos de nível empresarial.

  • Aceleração de hardware: Suporta várias acelerações de hardware através dos backends do TensorFlow.

TF GraphDef

TF GraphDef é um formato TensorFlow que representa o modelo como um gráfico, o que é vantajoso para ambientes em que é necessário um gráfico de computação estático.

  • Referenciais de desempenho: Fornece desempenho estável para gráficos de computação estática, com foco na consistência e confiabilidade.

  • Compatibilidade e integração: Integra-se facilmente na infraestrutura de TensorFlow mas é menos flexível em comparação com SavedModel.

  • Suporte da comunidade e ecossistema: Bom suporte do ecossistema do TensorFlow, com muitos recursos disponíveis para otimizar gráficos estáticos.

  • Estudos de caso: Útil em cenários em que é necessário um gráfico estático, como em certos sistemas incorporados.

  • Manutenção e actualizações: Actualizações regulares juntamente com as actualizações principais de TensorFlow.

  • Considerações sobre segurança: Assegura uma implementação segura com as práticas de segurança estabelecidas em TensorFlow.

  • Aceleração de hardware: Pode utilizar as opções de aceleração de hardware do TensorFlow, embora não seja tão flexível como o SavedModel.

TF Leve

TF Lite é a solução da TensorFlowpara aprendizagem automática de dispositivos móveis e incorporados, fornecendo uma biblioteca leve para inferência no dispositivo.

  • Comparações de desempenho: Concebido para velocidade e eficiência em dispositivos móveis e incorporados.

  • Compatibilidade e integração: Pode ser utilizado numa vasta gama de dispositivos devido à sua natureza leve.

  • Suporte da comunidade e ecossistema: Apoiado pela Google, tem uma comunidade robusta e um número crescente de recursos para programadores.

  • Estudos de caso: Popular em aplicações móveis que requerem inferência no dispositivo com uma pegada mínima.

  • Manutenção e actualizações: Regularmente atualizado para incluir as mais recentes funcionalidades e optimizações para dispositivos móveis.

  • Considerações sobre segurança: Fornece um ambiente seguro para executar modelos em dispositivos de usuários finais.

  • Aceleração de hardware: Suporta uma variedade de opções de aceleração de hardware, incluindo GPU e DSP.

TF Borda TPU

TF O Edge TPU foi concebido para uma computação eficiente e de alta velocidade no hardware Edge TPU da Google, perfeito para dispositivos IoT que requerem processamento em tempo real.

  • Comparativos de desempenho: Especificamente optimizado para computação eficiente e de alta velocidade no hardware Edge TPU da Google.

  • Compatibilidade e integração: Trabalha exclusivamente com os modelos TensorFlow Lite nos dispositivos Edge TPU .

  • Suporte e ecossistema da comunidade: Suporte crescente com recursos fornecidos pela Google e por programadores de terceiros.

  • Estudos de caso: Usado em dispositivos IoT e aplicações que requerem processamento em tempo real com baixa latência.

  • Manutenção e actualizações: Continua a ser melhorado para tirar partido das capacidades das novas versões de hardware do Edge TPU .

  • Considerações sobre segurança: Integra-se com a segurança robusta da Google para dispositivos IoT e edge.

  • Aceleração de hardware: Concebido à medida para tirar o máximo partido dos dispositivos Google Coral.

TF.js

TensorFlow.js (TF.js) é uma biblioteca que traz as capacidades de aprendizagem automática diretamente para o browser, oferecendo um novo domínio de possibilidades tanto para os programadores como para os utilizadores da Web. Permite a integração de modelos de aprendizagem automática em aplicações Web sem a necessidade de infra-estruturas de back-end.

  • Comparações de desempenho: Permite a aprendizagem automática diretamente no browser com um desempenho razoável, dependendo do dispositivo do cliente.

  • Compatibilidade e integração: Elevada compatibilidade com tecnologias Web, permitindo uma fácil integração em aplicações Web.

  • Apoio da comunidade e ecossistema: Apoio de uma comunidade de programadores Web e Node.js, com uma variedade de ferramentas para implementar modelos de ML em browsers.

  • Estudos de caso: Ideal para aplicações Web interactivas que beneficiam da aprendizagem automática do lado do cliente sem necessidade de processamento do lado do servidor.

  • Manutenção e actualizações: Mantido pela equipa TensorFlow com contribuições da comunidade de código aberto.

  • Considerações sobre segurança: Executa dentro do contexto seguro do navegador, utilizando o modelo de segurança da plataforma da Web.

  • Aceleração de hardware: O desempenho pode ser melhorado com APIs baseadas na Web que acedem à aceleração de hardware, como o WebGL.

PaddlePaddle

PaddlePaddle é uma estrutura de aprendizagem profunda de código aberto desenvolvida pela Baidu. Foi concebida para ser eficiente para os investigadores e fácil de utilizar para os programadores. É particularmente popular na China e oferece suporte especializado para o processamento da língua chinesa.

  • Comparações de desempenho: Oferece um desempenho competitivo com foco na facilidade de uso e escalabilidade.

  • Compatibilidade e integração: Está bem integrado no ecossistema da Baidu e suporta uma vasta gama de aplicações.

  • Apoio da comunidade e ecossistema: Embora a comunidade seja mais pequena a nível global, está a crescer rapidamente, especialmente na China.

  • Estudos de caso: Utilizado habitualmente nos mercados chineses e por programadores que procuram alternativas a outras grandes estruturas.

  • Manutenção e actualizações: Regularmente atualizado, com destaque para as aplicações e serviços de IA em língua chinesa.

  • Considerações sobre segurança: Enfatiza a privacidade e a segurança dos dados, atendendo aos padrões chineses de governança de dados.

  • Aceleração de hardware: Suporta várias acelerações de hardware, incluindo os chips Kunlun da Baidu.

NCNN

NCNN é uma estrutura de inferência de redes neurais de alto desempenho otimizada para a plataforma móvel. Destaca-se pela sua natureza leve e eficiência, tornando-o particularmente adequado para dispositivos móveis e incorporados onde os recursos são limitados.

  • Benchmarks de desempenho: Altamente otimizado para plataformas móveis, oferecendo inferência eficiente em dispositivos baseados em ARM.

  • Compatibilidade e integração: Adequado para aplicações em telemóveis e sistemas embebidos com arquitetura ARM.

  • Apoio da comunidade e ecossistema: Apoiado por uma comunidade de nicho, mas ativa, centrada em aplicações ML móveis e incorporadas.

  • Estudos de caso: Preferido para aplicações móveis em que a eficiência e a velocidade são críticas no Android e noutros sistemas baseados em ARM.

  • Manutenção e actualizações: Melhoria contínua para manter um elevado desempenho numa gama de dispositivos ARM.

  • Considerações sobre segurança: Concentra-se em executar localmente no dispositivo, aproveitando a segurança inerente do processamento no dispositivo.

  • Aceleração de hardware: Adaptado para CPUs ARM e GPUs, com optimizações específicas para estas arquitecturas.

Análise comparativa de YOLOv8 Opções de implementação

A tabela seguinte apresenta um resumo das várias opções de implementação disponíveis para os modelos YOLOv8 , ajudando-te a avaliar qual a que melhor se adequa às necessidades do teu projeto com base em vários critérios críticos. Para uma análise detalhada do formato de cada opção de implantação, consulta a página da documentaçãoUltralytics sobre formatos de exportação.

Opção de implementação Referências de desempenho Compatibilidade e integração Apoio comunitário e ecossistema Estudos de caso Manutenção e actualizações Considerações de segurança Aceleração de hardware
PyTorch Boa flexibilidade; pode ser um compromisso com o desempenho bruto Excelente com as bibliotecas Python Recursos e comunidade alargados Investigação e protótipos Desenvolvimento regular e ativo Depende do ambiente de implantação Suporte CUDA para aceleração de GPU
TorchScript Melhor para a produção do que PyTorch Transição suave de PyTorch para C++ Especializado mas mais estreito do que PyTorch Indústria onde Python é um estrangulamento Actualizações consistentes com PyTorch Melhoria da segurança sem a total Python Herda o suporte CUDA de PyTorch
ONNX Variável consoante o tempo de execução Alta em diferentes quadros Ecossistema alargado, apoiado por muitas organizações Flexibilidade entre quadros de ML Actualizações regulares para novas operações Assegura práticas de conversão e implementação seguras Várias optimizações de hardware
OpenVINO Optimizado para hardware Intel O melhor no ecossistema Intel Sólido no domínio da visão por computador IoT e edge com hardware Intel Actualizações regulares para hardware Intel Características robustas para aplicações sensíveis Adaptado para hardware Intel
TensorRT Topo de gama em GPUs NVIDIA Melhor para hardware NVIDIA Rede forte através da NVIDIA Inferência de vídeo e imagem em tempo real Actualizações frequentes para novas GPUs Coloca a tónica na segurança Concebido para GPUs NVIDIA
CoreML Optimizado para hardware Apple no dispositivo Exclusivo para o ecossistema Apple Forte apoio da Apple e dos programadores ML no dispositivo em produtos Apple Actualizações regulares da Apple Foco na privacidade e na segurança Motor neural e GPU da Apple
TF SavedModel Escalável em ambientes de servidor Ampla compatibilidade no ecossistema TensorFlow Grande apoio devido à popularidade de TensorFlow Servir modelos à escala Actualizações regulares da Google e da comunidade Funcionalidades robustas para empresas Várias acelerações de hardware
TF GraphDef Estável para gráficos de computação estática Integra-se bem com a infraestrutura TensorFlow Recursos para otimizar gráficos estáticos Cenários que requerem gráficos estáticos Actualizações juntamente com o núcleo TensorFlow Estabelece práticas de segurança em TensorFlow TensorFlow opções de aceleração
TF Leve Velocidade e eficiência em dispositivos móveis/embutidos Ampla gama de suporte de dispositivos Comunidade robusta, apoiada pelo Google Aplicações móveis com uma pegada mínima Últimas funcionalidades para telemóvel Ambiente seguro nos dispositivos dos utilizadores finais GPU e DSP, entre outros
TF Borda TPU Optimizado para o hardware Edge TPU da Google Exclusivo para dispositivos Edge TPU Crescer com o Google e recursos de terceiros Dispositivos IoT que requerem processamento em tempo real Melhorias para o novo hardware do Edge TPU A robusta segurança IoT da Google Concebido à medida para o Google Coral
TF.js Desempenho razoável no browser Conheces bem as tecnologias Web Apoio aos programadores Web e Node.js Aplicações Web interactivas TensorFlow contribuições da equipa e da comunidade Modelo de segurança da plataforma Web Aprimorado com WebGL e outras APIs
PaddlePaddle Competitivo, fácil de utilizar e escalável Ecossistema Baidu, amplo suporte de aplicações Em rápido crescimento, especialmente na China Mercado chinês e processamento linguístico Concentra-te nas aplicações de IA chinesas Dá ênfase à privacidade e segurança dos dados Incluindo os chips Kunlun da Baidu
NCNN Optimizado para dispositivos móveis baseados em ARM Sistemas ARM móveis e incorporados Comunidade de ML móvel/embutida nicho mas ativa Eficiência dos sistemas Android e ARM Manutenção de alto desempenho em ARM Vantagens da segurança no dispositivo Optimizações de CPUs ARM e GPUs

Esta análise comparativa dá-te uma visão geral de alto nível. Para a implementação, é essencial ter em conta os requisitos e restrições específicos do seu projeto e consultar a documentação detalhada e os recursos disponíveis para cada opção.

Comunidade e apoio

Quando estás a começar a trabalhar com YOLOv8, ter uma comunidade útil e apoio pode ter um impacto significativo. Eis como te podes ligar a outras pessoas que partilham os teus interesses e obter a ajuda de que necessitas.

Interage com a comunidade mais alargada

  • Discussões no GitHub: O repositório YOLOv8 no GitHub tem uma secção "Discussões" onde podes fazer perguntas, reportar problemas e sugerir melhorias.

  • Ultralytics Servidor Discord: Ultralytics tem um servidor Discord onde podes interagir com outros utilizadores e programadores.

Documentação e recursos oficiais

  • Ultralytics YOLOv8 Documentos: A documentação oficial fornece uma visão geral abrangente de YOLOv8, juntamente com guias sobre instalação, utilização e resolução de problemas.

Estes recursos vão ajudar-te a enfrentar desafios e a manteres-te atualizado sobre as últimas tendências e melhores práticas na comunidade YOLOv8 .

Conclusão

Neste guia, explorámos as diferentes opções de implementação para YOLOv8. Também discutimos os fatores importantes a serem considerados ao fazer sua escolha. Estas opções permitem-te personalizar o teu modelo para vários ambientes e requisitos de desempenho, tornando-o adequado para aplicações do mundo real.

Não te esqueças de que a comunidade YOLOv8 e Ultralytics é uma valiosa fonte de ajuda. Liga-te a outros programadores e especialistas para aprenderes dicas e soluções únicas que poderás não encontrar na documentação normal. Continua a procurar conhecimento, a explorar novas ideias e a partilhar as tuas experiências.

Bom trabalho!



Criado em 2023-11-12, Atualizado em 2024-03-01
Autores: glenn-jocher (6), abirami-vina (1)

Comentários