pip install opencv

Neste tutorial, aprenderá como pip instalar o OpenCV em Ubuntu, macOS, e o Raspberry Pi.

Em tutoriais anteriores de instalação do OpenCV recomendei a compilação a partir do código fonte; no entanto, no ano passado tornou-se possível instalar o OpenCV via pip, o próprio gestor de pacotes do Python.

Embora instalar a partir do código fonte lhe dê o maior controlo sobre a sua configuração do OpenCV, é também o mais difícil e o mais demorado.

Se procura a forma mais rápida possível de instalar OpenCV no seu sistema, pretende usar pip para instalar OpenCV (mas há algumas coisas que o podem fazer tropeçar pelo caminho, por isso certifique-se de ler o resto deste guia).

2019-11-21 Update: Foi emitida uma actualização para este post do blog devido a problemas de compatibilidade com OpenCV no BusterOS do Raspberry Pi 4 a correr BusterOS usando este método de instalação de pip. Certifique-se de encontrar as actualizações via ctrl + f enquanto procura por “2019-11-21 Update”.

Para aprender a instalar o OpenCV no seu sistema, basta continuar a ler.

Procura o código fonte para este post?

Saltar para a Secção de Downloads

pip install opencv

No resto deste tutorial, descreverei brevemente os pacotes OpenCV que pode instalar via pip, o gestor de pacotes Python.

A partir daí, irei demonstrar como instalar pip OpenCV em Ubuntu, macOS, e o Raspberry Pi.

Finalmente, irei rever alguns problemas comuns que poderão encontrar ao utilizar pip para instalar o OpenCV.

Gostaria de apontar uma importante advertência a este método de instalação do OpenCV antes de começarmos.

Os PyPi/PiWheels hospedaram versões do OpenCV que estamos a discutir hoje não incluem algoritmos “não-livres” tais como SIFT, SURF, e outros algoritmos patenteados. Este é um excelente método para instalar OpenCV se precisar de um ambiente rápido no qual não precisará de executar programas contendo os algoritmos não-livres – se não for esse o caso, terá de completar uma compilação completa do OpenCV.

Os dois pacotes pip OpenCV: opencv-python e opencv-contrib-python

Antes de começarmos, quero lembrar-vos que os métodos que aqui venho hoje são pacotes OpenCV não oficiais pré-construídos que podem ser instalados via pip – não são pacotes OpenCV oficiais lançados pelo OpenCV.org.

Apenas porque não são pacotes oficiais não significa que se deva sentir desconfortável ao usá-los, mas é importante que compreenda que não são endossados e suportados directamente pela equipa oficial do OpenCV.org.

Tudo o que foi dito – há quatro pacotes OpenCV que são instaláveis em pip no repositório PyPI:

  1. opencv-python: Este repositório contém apenas os módulos principais da biblioteca do OpenCV. Se for um leitor PyImageSearch não quer instalar este pacote.
  2. opencv-contrib-python: O repositório opencv-contrib-python contém os dois módulos principais juntamente com os módulos contrib – esta é a biblioteca que recomendo que instale, pois inclui todas as funcionalidades do OpenCV.
  3. opencv-python-headless: O mesmo que opencv-python mas sem funcionalidade GUI. Útil para sistemas sem cabeça.
  4. opencv-contrib-python-headless: O mesmo que opencv-contrib-python, mas sem funcionalidade GUI. Útil para sistemas sem cabeça.

Again, na grande maioria das situações você vai querer instalar opencv-contrib-python no seu sistema.

Você NÃO quer instalar ambos opencv-python e opencv-contrib-python – escolha UM deles.

Como instalar o OpenCV em Ubuntu

Você tem duas opções para instalar o OpenCV em Ubuntu com pip:

  1. Instale no seu sistema site-packages
  2. Instale num ambiente virtual site-packages (de preferência)

Primeiro, instale pip

Se não tiver pip, terá de o obter primeiro:

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Opção A: Instale o OpenCV no seu sistema Ubuntu com pip

Não recomendaria este método a menos que tenha um caso de uso particular em que não queira ambientes Python isolados e independentes.

P>Pip vamos instalar opencv-contrib-python no nosso sistema:

$ sudo pip install opencv-contrib-python

Em questão de segundos, o OpenCV está pronto para ir nos pacotes do site do seu sistema!

Opção B: Instale o OpenCV no Ubuntu num ambiente virtual com pip

Existem enormes benefícios para os ambientes virtuais Python.

O principal benefício é que pode desenvolver múltiplos projectos no seu sistema com pacotes isolados (muitos com dependências de versão) sem ter de turvar as águas do seu sistema. Também é livre de adicionar e remover ambientes virtuais à medida que avança.

P>Posto de forma simples: Os ambientes virtuais Python são uma boa prática para o desenvolvimento Python. As probabilidades são, deve saltar para o bandwagon.

As minhas ferramentas de escolha são virtualenv e virtualenvwrapper mas pode escolher uma alternativa como venv ou Anaconda (conda para abreviar).

Aqui está como instalar virtualenv e virtualenvwrapper , ambos viverão no seu sistema site-packages e gerir os pacotes de sítios do ambiente virtual de cada projecto:

$ pip install virtualenv virtualenvwrapper

Antes de podermos continuar, precisa primeiro de adicionar algumas linhas ao seu ~/.bashrc perfil. Abra o ficheiro utilizando nanovim , ou emacs e anexe estas linhas ao final:

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Guardar o ficheiro. Depois “source it” no seu terminal:

$ source ~/.bashrc

Vai ver alguma saída de terminal que configura o virtualenvwrapper. Tem agora acesso a novos comandos de terminal:

  • Criar um ambiente com mkvirtualenv .
  • Activar um ambiente (ou mudar para um diferente) com workon .
  • Desactivar um ambiente com deactivate .
  • Remove um ambiente com rmvirtualenv .
  • Certifica-te de que lês os documentos!

Vamos criar um ambiente virtual Python 3 para OpenCV chamado cv:

$ mkvirtualenv cv -p python3

E agora com uma varinha mágica (pip), pode instalar o OpenCV numa questão de segundos no seu novo ambiente:

$ pip install opencv-contrib-python

Como instalar o OpenCV em macOS

MacOS é semelhante ao Ubuntu para instalar o OpenCV em pip.

Again, tem duas opções para instalar o OpenCV em macOS com pip:

  1. Instale no seu sistema site-packages
  2. Instale num ambiente virtual site-packages (de preferência)

Instale pip

Se não tiver pip, terá de o obter primeiro:

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Opção A: Instale o OpenCV no seu sistema macOS com pip

Não faça isto.

Porquê? Na verdade recomendo que vá à Opção B e utilize um ambiente virtual.

Okay, bem, se insiste em instalar no seu sistema macOS, então é tão fácil como instalar pip OpenCV via:

$ sudo pip install opencv-contrib-python

Em questão de segundos, OpenCV está pronto para ir nos pacotes de sítios do seu sistema.

Opção B: Instale o OpenCV em macOS num ambiente virtual com pip

Apenas como gerir pacotes é uma brisa com pip….

…gerir projectos e as suas dependências é uma brisa com ambientes virtuais.

Você deve usar ambientes virtuais Python se estiver a levar a sério o desenvolvimento da visão computacional (ou qualquer desenvolvimento para esse efeito).

Não me interessa que sistema usa (seja ele virtualenvvenv , ou conda /Anaconda), aprenda apenas a usar um e mantenha-se fiel a ele.

Aqui está como instalar o virtualenv e o virtualenvwrapper, ambos viverão no seu sistema site-packages e gerem os sites-packages do ambiente virtual de cada projecto:

$ pip install virtualenv virtualenvwrapper

A partir daí, precisa de adicionar as seguintes linhas ao seu ~/.bash_profile (note que para macOS o nome do ficheiro é .bash_profile e para Ubuntu é .bashrc .

Abrir o ficheiro usando nanovim , ou emacsnano vem na maioria dos sistemas):

$ nano ~/.bash_profile

…e anexar estas linhas ao final:

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Guardar o ficheiro – se estiver a utilizar nano os atalhos do teclado estão listados na parte inferior da janela.

Então “source it” no seu terminal:

$ source ~/.bash_profile

Verá algumas linhas de saída do terminal indicando que o virtualenvwrapper está configurado. Tem agora acesso a novos comandos de terminal:

  • mkvirtualenv : Faça um novo ambiente virtual.
  • workon : Activar/trocar para um ambiente virtual. Lembre-se, pode ter tantos ambientes quantos desejar.
  • deactivate : Salta de um ambiente virtual e estará a trabalhar com o seu sistema.
  • rmvirtualenv : Elimina um ambiente virtual.
  • não se esqueça de ler os documentos!

Vamos criar um ambiente virtual Python 3 para OpenCV chamado cv:

$ mkvirtualenv cv -p python3

E agora, usando pip, e com um piscar de olhos, pode instalar o OpenCV em macOS numa questão de segundos no seu novo ambiente:

$ pip install opencv-contrib-python

Como instalar pip OpenCV em Raspberry Pi

Earlier neste post mencionei que uma das desvantagens de instalar OpenCV é que não tem qualquer controlo sobre a compilação em si – os binários são pré-construídos para si, o que, embora agradável, também significa que não pode incluir quaisquer optimizações adicionais.

Para o Raspberry Pi, estamos com sorte.

Dave Jones (criador do módulo picamera Python) e Ben Nuttall do piwheels.org do Raspberry Pi, um repositório de pacotes Python que fornece rodas ARM (ou seja pacotes binários pré-compilados) para o Raspberry Pi.

Utilizando PiWheels poderá instalar o Pip OpenCV numa questão de segundos (o mesmo é verdade para outras bibliotecas Python que podem demorar muito tempo a compilar, incluindo NumPy, SciPy, scikit-learn, etc.).

Então como instruir o comando pip para usar o PiWheels?

A resposta curta é “Nada!”

Se estiver a usar o Raspbian Stretch ficará satisfeito por saber que o comando pip irá verificar o PiWheels para um binário pré-compilado antes de verificar o PyPI, permitindo ao seu Pi poupar um monte de ciclos de CPU (e a si um monte de tempo de instalação).

Outras vezes, quando Ben e Dave juntaram o binário OpenCV para PiWheels perguntaram-me que instruções deviam usar – recomendei a minha instalação optimizada do OpenCV para o Pi de framboesa – que é exactamente as instruções que eles seguiram!

Se acabar por usar pip para instalar o OpenCV no seu Raspberry Pi, fique descansado, está a usar a versão optimizada.

Vamos começar a aprender como instalar pip OpenCV no nosso Raspberry Pi.

Instale pré-requisitos no seu Raspberry Pi

O Raspberry Pi requer que instale alguns pacotes de sistema antes de começar:

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5$ sudo apt-get install libatlas-base-dev$ sudo apt-get install libjasper-dev

Instale pip no seu Raspberry Pi

O gestor de pacotes Python, “pip”, pode ser obtido via wget:

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Agora tem duas opções:

  1. Instale o OpenCV no seu Python global site-packages no seu Raspberry Pi
  2. Instale o OpenCV num ambiente virtual no seu Raspberry Pi

Opção A: Instale OpenCV no seu sistema Raspberry Pi com pip

Não recomendaria esta opção se quiser poder utilizar diferentes versões de OpenCV em ambientes isolados.

Mas muitas pessoas utilizam os seus Raspberry Pis apenas para um propósito/projecto e não precisam de ambientes virtuais.

Dito isto, é uma grande confusão limpar se mudar de ideias mais tarde e quiser utilizar ambientes virtuais, por isso recomendo que salte esta opção e siga a Opção B.

Para instalar o OpenCV no seu sistema Raspberry Pi, certifique-se de usar o sudo desta forma:

$ sudo pip install opencv-contrib-python==4.1.0.25

2019-11-21 Actualização: Os leitores relataram que algumas versões do OpenCV 4 como instalado via pip não funcionam correctamente no Raspberry Pi. Poderá encontrar um erro "undefined symbol: __atomic_fetch_add8" para libatomic quando import cv2 de Python se não utilizar a versão específica do OpenCV mencionada no bloco de código acima.

numa questão de segundos, o OpenCV está pronto para ir nos pacotes do seu site Raspberry Pi, juntamente com quaisquer outros pacotes que possa ter instalado.

Opção B: Instale OpenCV num ambiente virtual com pip no seu Raspberry Pi

Ambientes virtuais são definitivamente o caminho a seguir se o seu Raspberry Pi tiver múltiplos propósitos (ou se for como eu e testar a compatibilidade de código entre várias versões de software para publicações em blogs a toda a hora ?).

Aqui está como instalar o virtualenv e o virtualenvwrapper, as ferramentas que utilizo para o fazer:

$ pip install virtualenv virtualenvwrapper

Então precisa de adicionar as seguintes linhas ao seu ~/.bashrc . Abra o ficheiro utilizando nanovim , ou emacs e anexe estas linhas ao final:

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Guardar o ficheiro. Depois “source it” no seu terminal:

$ source ~/.bashrc

Edição final será impressa indicando que o virtualenvwrapper está pronto. Certifique-se de o inspeccionar para detectar erros.

Tem agora acesso a novos comandos do terminal:

  • Criar um ambiente com mkvirtualenv .
  • Activar um ambiente (ou mudar para um diferente) com workon .
  • Desactivar um ambiente com deactivate .
  • Remove um ambiente com rmvirtualenv .
  • Certifica-te de que lês os documentos!

Para criar um ambiente virtual Python 3 que alojará o OpenCV e outros pacotes que instalar, basta usar mkvirtualenv e o comando abaixo:

$ mkvirtualenv cv -p python3

Agora tem um ambiente virtual chamado cv . Pode activá-lo a qualquer momento via:

$ workon cv

E agora com uma viragem no pulso, pode instalar o OpenCV em cv :

$ pip install opencv-contrib-python==4.1.0.25

2019-11-21 Update: Os leitores relataram que algumas versões do OpenCV 4 como instalado via pip não funcionam correctamente no Raspberry Pi. Pode encontrar um erro "undefined symbol: __atomic_fetch_add8" para libatomic quando import cv2 de Python se não utilizar a versão específica do OpenCV mencionada no bloco de código acima.

É tudo o que há com PiWheels!

Aposto que está a usar o PiCamera como o seu sensor de imagem. Pode instalar o módulo Python usando o seguinte comando (basta tomar nota das aspas):

$ pip install "picamera"

Testar a nossa instalação pip do OpenCV

Sabia que o 3.3+ do OpenCV tem um módulo DNN que pode executar modelos de Aprendizagem Profunda?

Pode ficar surpreendido, mas a sua versão de OpenCV pode fazer isto fora da caixa agora, com pouco ou nenhum software adicional.

Vamos realizar a detecção de objectos em vídeo com um Detector de Tiro Único MobileNet.

Aqui está o que precisa de instalar primeiro (assumindo um cv ambiente virtual):

$ workon cv$ pip install imutils$ pip install "picamera" # if you're using a Raspberry Pi

Agora verifique duas vezes se tem todo o software pronto, abrindo uma shell Python:

$ workon cv$ pythonPython 3.6.3 (default, Oct 4 2017, 06:09:15) on darwinType "help", "copyright", "credits" or "license" for more information.>>> import cv2>>> cv2.__version__'4.0.1'>>> import imutils>>>

O Raspberry Pi mostrará uma versão diferente de Python 3, que é esperada.

Agora é hora de descarregar o código.

Não se esqueça de usar a secção “Downloads” deste post do blogue para descarregar o código fonte + rede neural SSD pré-treinada MobileNet.

De lá, execute o seguinte comando:

$ python real_time_object_detection.py \--prototxt MobileNetSSD_deploy.prototxt.txt \--model MobileNetSSD_deploy.caffemodel loading model... starting video stream... elapsed time: 55.07 approx. FPS: 6.54

Figure 1: Um pequeno clip de detecção de objectos em tempo real com aprendizagem profunda e OpenCV

Estou a usar um Macbook Pro. Um framerate de 6 FPS é bastante bom usando um CPU num portátil.

P>Raspberry Pis são limitados em termos de recursos, por isso podemos aproveitar alguns truques para criar a ilusão de FPS mais elevados. Se estiver no Raspberry Pi, execute o seguinte comando:

$ python pi_object_detection.py \--prototxt MobileNetSSD_deploy.prototxt.txt \--model MobileNetSSD_deploy.caffemodel loading model... starting process... starting video stream... elapsed time: 48.55 approx. FPS: 27.83

Aqui criei a ilusão de 27 FPS rápidos no Raspberry Pi enquanto a rede neural em fundo só é capaz de processar 0.9 FPS.

Como é isto possível?

Treading e filas.

É um pouco avançado, mas se ler o post original do blog (para o Raspberry Pi), compreenderá o processo. Além disso, poderá impressionar os seus amigos e familiares.

O que deve ter em atenção quando usar pip para instalar o OpenCV

Para começar, nem todas as distribuições Python terão uma versão do OpenCV que seja instalável em pip.

Novas versões do Python e sistemas operativos mais recentes (e para não mencionar, versões mais antigas que atingiram o seu fim de vida) podem não ter uma versão do OpenCV pronta para ir no repositório PyPI, uma vez que a comunidade de código aberto ainda não teve oportunidade de lançar tal versão.

Nessas situações você pode:

  1. Esperar até que os binários para a sua combinação de Python e SO sejam carregados.
  2. Li>Or qual seria a minha recomendação – compilar a partir da fonte (Ubuntu, macOS, RPi).

Segundamente, alguns leitores, incluindo utilizadores Anaconda, relataram problemas na utilização de funções GUI tais como cv2.imshow e cv2.waitKey .

Nestes cenários, o OpenCV irá errar dizendo que não foi compilado com suporte GTK ou QT.

Simplesmente colocado:

  • Você será capaz de usar todas as outras funções do OpenCV mas não será capaz de usar nenhuma das funções GUI, em particular as do módulo highgui.
  • A solução aqui é compilar a partir da fonte (Ubuntu, macOS, RPi).

p>Terceiro, sei que os leitores relataram problemas ao executar import cv2 nos seus terminais, Notebooks Jupyter, ou shells Python – isto não é um problema com a instalação pip do OpenCV.

Na maioria, mas não em todas as situações, o erro não está relacionado com a sua instalação real do OpenCV.

Em vez disso, é mais provável que seja um problema com a sua compreensão de alguma combinação de:

  1. Os comandos que foram executados e como utilizá-los correctamente.
  2. Pensando que um comando executado correctamente, mas que em vez disso resultou num erro.
  3. Falecer de aceder ao seu ambiente virtual Python (se estiver a utilizar um).

Vai querer verificar os seus comandos, repetir os passos, e examinar de perto a sua saída antes de relatar um problema importando o cv2 bindings.

Finalmente, a versão do OpenCV que será instalada via pip não inclui algoritmos “não livres” tais como SIFT, SURF, e outros algoritmos patenteados. Se não precisar de usar algoritmos patenteados, então é dourado. Caso contrário, recomendo que compile o OpenCV a partir da fonte através de um dos meus tutoriais de instalação para o seu sistema.

Sumário

No tutorial de hoje, aprendeu como instalar pip OpenCV no seu sistema operativo.

Especificamente, abordámos como instalar OpenCV via pip em Ubuntu, macOS, e Raspberry Pi.

Embora instalar OpenCV via pip possa ser o método mais fácil para começar, tenha em mente que pode deparar-se com outros problemas.

Se se deparar com erros ou problemas ao usar a sua instalação de OpenCV via pip, não se esqueça de consultar a secção “O que procurar quando usar pip para instalar OpenCV” deste post.

Espero que tenha gostado do tutorial de hoje!

Para ser notificado quando futuros posts do blog forem publicados aqui no blog PyImageSearch, não se esqueça de introduzir o seu endereço de e-mail no formulário abaixo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *