맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

python/컴퓨터 비전

OpenCV (feat. 아나콘다): Open Source Computer Vision Library

IT성민 2021. 3. 22. 03:30

간단한 설명

  • 영상 처리와 컴퓨터 비전 관련 오픈 소스 라이브러리 입니다. 2,500개가 넘는 알고리즘으로 구성되어있고요 간략히 쓰임새를 나열해 보면,
  • -영상 처리, 컴퓨터 비전, 기계 학습과 관련된 전통적인 알고리즘이 있고,
  • -얼굴 검출과 인식, 객체 인식, 객체 3D 모델 추출, 스테레오 카메라에서 3D 좌표를 생성합니다.
  • -고해상도 영상 생성을 위한 이미지 스티칭, 영상 검색, 적목현상 제거, 안구운동추적등을 할 수 있습니다.
  • -4만 7천 이상의 이용자그룹과 정말 많은 다운로드 횟수를 가지고있어 많은 사람들이 사용하고 있습니다
  • 구글, 야후, 마이크로 소프트, 인텔, IBM, 소니, 혼다......등등 대기업부터 신생기업들까지 사용합니다.
  • C, C++, 파이썬, java, 매트랩 인터페이스를 제공합니다.
  • 윈도우, 리눅스, 안드로이드, 맥 OS등 다양한 운영체제를 지원합니다.

설치 방법(아나콘다 이야기)

    설치하기 이전에 Anaconda에 대해서 알아볼 필요가 있습니다. 아나콘다는 파이썬을 포함해서 여러가지의 라이브러리를 포함하고 있습니다.

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
여러가지 라이브러리를 포함하고 있습니다.

    그런데 라이브러리만 포함하는것이 아니라 편리한 기능을 제공하는데요. 가상환경을 제공합니다. 가상환경을 여러개를 만들고 각각의 가상환경에 자신이 원하는 라이브러리를 설치하고 환경을 관리할 수 있다는겁니다. 가령 예를들어, 어떤 사람이 프로그램을 만들었는데 자신이 세팅해둔 환경에서만 돌아가겠죠? 다른사람이 그사람이 만들어낸 프로그램을 실행시키고 싶다면 자신도 그사람의 환경과 동일하게 세팅을 해줘야 합니다. 하지만 내 컴퓨터는 하나이기 때문에 나에게 최적화된 환경셋팅을 무너뜨리고 싶지느 않을겁니다. 그럴때! 가상환경을 만들어줘서 거기에다가 복잡하고 잡스러운 일들을 수행하면 됩니다. 복잡하고 잡스러운일들을 정리하는것도 간단한데요. 그냥 날려버리면 됩니다!!!

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
여러개의 가상환경을 만들어주기도 합니다!!

Conda 명령어

아나콘다 버전확인 conda --version
아나콘다 업데이트 conda update conda
가상환경 생성 conda create --name <가상환경 이름> python=3.7
설치된 가상환경 리스트 확인 conda info --envs
가상환경 활성화 conda activate <가상환경 이름>
가상환경 비활성화 conda deactivate <가상환경 이름>
가상환경 설치 package확인 conda list --name <환경이름>
가상환경 package의 conda 이용 설치(예: tensorflow) conda install -c anaconda tensorflow
conda install -c anaconda tensorflow-gpu
가상환경 package의 pip이용 설치(예: scipy) pip install scipy
가상환경 삭제 conda remove --name <환경이름> --all
openCV 설치 pip install opencv-python
pip install opencv-contrib-python

conda install -c conda-forge opencv (이걸 써줘야합니다)

    위의 명령어들은 Anaconda Prompt에서 사용가능한 명령어들 입니다. 가상환경을 새로 이름을 붙이고 생성하면, D:\ProgramData\Anaconda3\envs 경로 아래 생기게 됩니다. 저는 D드라이브에 아나콘다를 설치했습니다. envs는 environments의 약자인것 같더군요. openCV를 아나콘다를 사용해서 설치하는 방법은 간단합니다. conda install -c conda-forge opencv 를 아나콘다프롬프트에 써주기만 하면 됩니다. 물론 자신이 원하는 특정한 가상환경에 설치 해야 하므로 미리 가상환경 포인터를 원하는 곳에 옮겨줘야합니다.

    여기서는 conda activate <환경이름> 으로 활성화 해주면 아나콘다 프롬프트에서는 가상환경의 포인터가 활성화된 환경으로 옮겨갑니다. 여튼 conda activate <원하는 가상환경> 해주고 conda install -c conda-forge opencv 를 처줘야 합니다.

    여기서 주의할 점은 pip install opencv-python을 해줘도 된다는 점인데요, 만약 이러면 아나콘다 설치 폴더의 Lib/site-packages 안에 패키지가 저장되므로 주의해야 합니다. 물론 pip uninstall opencv-python 해주면 언인스톨 되어서 괜찮습니다만 여러 스택오버플로우 얘기를 보아하니 언인스톨해줘도 찌꺼기가 남아있는경우엔 다시 reinstall해주고 uninstall해주면 된다는 이야기가 있습니다. 다행이 저는 uninstall로 싸게 먹혔죠.

    사실 pip로 설치한 openCV도 동작합니다. 전역으로 설정되어있어서 어느 파이썬 인터프리터를 파이참에 설정해주어도 openCV를 사용할 수 있습니다. 물론 문제라면 모든 가상환경에서 접근이 가능해서 모두가 사용한다는점??이겠죠.

1. Xcode 설치하기

** 기존에 있던 Xcode 또는 사용할 터미널 또는 Homebrew가 Rosetta를 이용하여 실행되지 않는지 확인해야함!!!

설정되어있다면 반드시 해제!!!해야함

라이센스 동의

sudo xcodebuild -license 

설치

sudo xcode-select --install

2. Homebrew 설치하기

홈브류는 맥북의 패키지를 관리하는 역할

/usr/bin/ruby -e "%(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

홈브류 명령..?을 추가하고 싶다면 이걸 입력하고

nano ~/.zshrc

열리는 창에 아래를 입력하고 (HOMEBREW의 절대 경로는 다를 수 있으므로 더블 체크 하세요..)

export PATH=$PATH:/opt/homebrew/bin

 ctrl+ X 를 입력

source ~/.zshrc

3. Conda 설치하기

github.com/conda-forge/miniforge#miniforge3

conda-forge/miniforge

A conda-forge distribution. Contribute to conda-forge/miniforge development by creating an account on GitHub.

github.com

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

이 사이트 들어가서

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

다운받는다.

터미널에서 실행하기

bash bash <Miniforge3-MacOSX-arm64.sh 의 절대경로>

나는 파일 경로를 applications 에 다운 받아서 저런 경로 인데 <>지우고 그냥 저 파일의 절대 경로를 써주면 된다

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
일단 여기까진 성공

그다음 막 뭐가 쳐져서 ctrl+ c 하면

Do you accept the license terms? [yes|no]

yes 입력

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

ENTER 치면 설치가 시작된다!!

엄청 긴 설치 화면을 지나면

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

질문이 한번더 나오는데 역시 yes를 입력하면

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

conda 설치 완료~

터미널을  종료하고 다시 열어서 아래 코드를 실행한다.

conda create --name <설정이름>

<>지우고 쓰면 됨

 proceed 에서 y 입력

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
conda activate <환경이름> 
conda install -y python==3.8.6

나는 파이썬 3.9.1 이 깔려있긴한데 tensorflow도 그렇고 애플이 지원하는 패키지를 쓰려면 3.8을 쓰는게 나을 거같아서 시키는 대로 했다.

** conda deactivate 하고 아래를 실행하고 따라하는 거 추천.. conda deactivate 는 해야되는지 모르겠지만 그냥 했다..a

원래 brew install 만 해도되는 것 같은데 나는 이렇게 하라고 터미널에서 알려줘서 아래 그대로 실행

arch -arm64 brew install wget
arch -arm64 brew install cmake
4. numpy 설치


아까 설정한 환경이 activate 상태로 아래를 실행해야한다.

wget https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha0/tensorflow_macos-0.1alpha0.tar.gz
tar xvf tensorflow_macos-0.1alpha0.tar.gz
cd tensorflow_macos/arm64
pip install --upgrade --no-dependencies --force numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl 
cd ~
5. OpenCV 컴파일
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
cd opencv-4.5.0
mkdir build && cd build

기존에 build가 존재했다면 삭제하고 다시 5번 처음부터 시작

cmake \
  -DCMAKE_SYSTEM_PROCESSOR=arm64 \
  -DCMAKE_OSX_ARCHITECTURES=arm64 \
  -DWITH_OPENJPEG=OFF \
  -DWITH_IPP=OFF \
  -D CMAKE_BUILD_TYPE=RELEASE \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D OPENCV_EXTRA_MODULES_PATH=/Users/(자기 경로로 수정해서 쓰기)/opencv_contrib-4.5.0/modules \
  -D PYTHON3_EXECUTABLE=/Users/(자기 경로)/miniforge3/(설정한 가상환경 이름)/dev/bin/python3 \
  -D BUILD_opencv_python2=OFF \
  -D BUILD_opencv_python3=ON \
  -D INSTALL_PYTHON_EXAMPLES=ON \
  -D INSTALL_C_EXAMPLES=OFF \
  -D OPENCV_ENABLE_NONFREE=ON \
  -D BUILD_EXAMPLES=ON ..

결과화면

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

Python 3: Libraries ,numpy (no generated 어쩌구..) 로 뜨면 일단 cmake의 경로를 확인하고 

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

이런 에러가 뜨면 그냥 처음부터 로제타로 열려있는게 없는지, Homebrew 도 로제타로 설치한것이 아닌지 확인하고 다시 하는 것이 속편하다..

make -j8

이 명령어를 실행하면 5분정도 걸리는데 엄청 긴 무언가들이 나온다..

맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
sudo make install
맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi

후...됏다...

Sym-link OpenCV 4 on macOS to virtual environment site-packages.  
cd ~
mdfind cv2.cpython
맥 아나콘다 opencv 설치 - maeg anakonda opencv seolchi
cd /Users/(계정이름)/miniforge3/envs/dev/lib/python3.8/site-packages

# 하튼 miniforge3 의 절대 경로로 설정하면됨