자율주행

아나콘다 설치와 가상환경 설정

coding art 2022. 8. 27. 17:41
728x90

1-2 Python, Front End, Back End, Virtual Environment

 

“인공지능 기반 자율주행”은 초보자에게는 대단히 복잡하다고 느낄 수밖에 없는 주제로서 초보자로서는 미처 준비하지 못한 다양한 이론 및 경험이 필요할지도 모르겠다. 하지만 처음부터 충분한 배경을 갖추고 시작하기는 어렵더라도 자율주행 내용 이해를 돕기 위해서 필수적이라 할 수 있는 기초적인 도구를 먼저 배워 학습 효율을 배가할 필요가 있을 것이다.

 

내연기관이라든지 전기차든지 자율주행 차량의 기계적 구조는 너무나 잘 알려져 있어 특별한 연구 대상은 아니다. 하지만 자율주행 차량에서는 부착된 센서들의 입력을 가지고 인공지능에 의한 인지 작용을 통해 자율주행을 해야 하므로 자율주행 소프트웨어 시스템이 주목을 받게 되는 것이다.

 

인간 운전자의 인지 작용에는 두 눈의 관찰에 의한 시각정보 처리가 핵심을 이룬다. 반면 자율주행 컴퓨터 시스템에서 실세계의 환경을 인식하기 위한 센서로는 카메라, 레이더, 라이다가 있을 수 있는데 그 중 카메라가 바로 시각 센서에 해당한다고 볼 수 있다. 즉 카메라로부터 얻어지는 프레임 이미지를 인간처럼 인공지능 코드에 의해서 인간의 인지작용을 대체해야 할 것이다.

 

자율주행 인공지능에 의한 인지 작업을 위한 후보 툴로서는 파이선(python) 언어가 지원되는 TensorFlow, PyTorch, OpenCV가 잘 알려져 있다. 그 중 인텔사가 제공하는 OpenCV는 카메라 영상을 기반으로 하는 비전 시스템 개발에 적합한 툴이다. 물론 구글이 제공하는 TensorFlow 또는 Meta(FaceBook)사가 제공하는 PyTorch도 자율주행에서 생성되는 이미지에 포함된 객체들을 사전학습(pretrained)에 의해 쾌속 인지가 가능하도록 하는 중요한 역할을 한다.

 

Back End 즉 문제 해결을 위한 솔버로 볼 수 있는 OpenCV, TensorFlow, PyTorch를 비롯한 라이브러리 툴 들을 사용하여 코드를 작성하기 위해서는 이들을 편리하게 다룰 수 있는 Front End 즉 통합적인 편집 실행 시스템이 필요하다.

 

파이선 코드 언어 차원에서 가장 잘 알려진 Front End가 바로 Anaconda이다.

 

아울러 윈도우즈 10 체계에서 Anaconda를 설치하고 인지 작업을 위한 코드를 작성 실행시키기 위해서는 가상환경(virtual environment) 설정이 필수적이다. OpenCV, TensorFlow, PyTorch와 같은 인공지능 지원 라이브러리들은 자체적으로 복잡하기도 하려니와 상호 간에 충돌이 발생할 수도 있기에 종속성(dependency)을 감안하여 윈도우즈 시스템이나 여타의 다른 가상 환경들과는 무관하게 독립적으로 작동할 수 있도록 설치해야 한다.

 

초보자들이 Anaconda를 윈도우즈 10 체계에 설치할 경우 기본적으로 설치되어 있는 가상환경이 바로 basic 인데 이 가상 환경에 OpenCV를 추가로 설치할 수도 있으며 아니면 별도로 naming 하여 OpenCV 가상환경을 설치해도 무방하다. 단 TensorFlow 와 PyTorch는 서로 내부 구조와 사용법이 서로 다르므로 함께 설치하지 않도록 주의하자. 반면에 OpenCV 와 TensorFlow를 함께 설치하는 것은 큰 문제가 없다.

 

1-3 윈도우즈 10 아나콘다3(64비트) OpenCV 설치

 

Front End(코드 개발용 편집기)로 사용 중인 아나콘다에서 제공하는 명령 튜토리얼에 따라서 가칭 practice 라는 명칭으로 가상환경을 설치해 보도록 하자.

가상 환경 설치 후 사용할 편집기(IDE)는 2종류로서 쥬피터와 스파이더를 들 수 있다.

 

쥬피터는 셀(cell) 기준 인터프리터(Interpreter)로 사용된다. 즉 게산기에서처럼 한 줄 한줄 명령을 실행시킴에 편리하다. 반면에 스파이더 편집기의 경우는 명령 뭉치로 이루어진 소위 script 방식이라고 한다. 즉 코드 전체를 한 번에 실행시킬 수 있는 개념이다. 하지만 스파이더에도 버그를 찾기에 편리하도록 몇 줄 단위로 실행 시킬 수 있는 기능이 제공된다.

 

2022년 8월 현재 파이선은 3.9 버전 이상이며 TensorFlow 는 2.9 버전을 넘어서고 있다. OpenCV는 python-opencv 와 같이 연동하여 설치되므로 python 버전에 매치되는 OpenCV를 설치하게 됨에 유의하자.

 

처음 아나콘다를 설치하는 경우에는 아나콘다 홈페이지를 방문하여 무료 버전을 다운받아 설치한다. 홈페이지에서 다운로드 위치가 자주 변경되므로 눈치껏 알아서 다운받자.

 

다운로드 버튼을 클릭만 해도 아래와 같이 아나콘다 설치 파일이 다운되어 있음을 알 수 있다. 과거에는 –Windows-x86_64 말고도 –Windows-x86_32 버전도 있었다. 하지만 이미 소프트웨어적으로 64비트로 통일되어 버린 추세이므로 망설임 없이 64비트 버전을 설치하도록 한다. 설치과정에서 거의 Next 또는 다음 버튼을 누르면 된다.

 

하지만 이미 설치하여 사용하던 아나콘다 사용자가 업그레이드하거나 설치에 한 번 실패한 경우는 다음 요령을 따라 하도록 한다.

① 제어판을 사용하여 제거작업을 실시한다.

⓶ 제거 완료 후에도 바탕화면 사용자 폴더에 Anaconda의 흔적이 남아 있다.

다음 사례를 보면 .conda 가 남아 있음을 볼 수 있다.

⓷ .conda를 삭제한다.

④ anaconda 설치 작업을 새로 시작한다.

※ 과정 ⓷이 처리되지 않으면 제대로 설치가 되지 않는 버그 발생 가능성이 높다.

 

설치가 완료되었으면 시작 바에서 Anaconda3(64-bit) 폴더를 클릭하여 나타나는 첫 번째 Anaconda navigator 아이콘을 클릭하자.

 

아래의 그림은 Anaconda Navigator를 실행시키면 나타나는 화면으로서 많은 앱들이 들어 있다. 그 중에서 셀 단위 편집기인 Jupyter와 스크립트 단위 편집기인 Spyder를 가장 많이 사용하게 될 것이다.

 

 

현재 열려있는 Anaconda Navigator 화면의 Applications on 박스 Channels과 Environments에 집중하도록 하자.

 

 

처음 열었을 때의 가상환경은 박스에 base(root)로 설정이 되어 있다. 가상공간 사용법 내지는 설정 법을 알아보도록 하자. 위 Navigator에서 Environments 아이콘을 클릭하면 다음과 같이 화면이 변한다.

 

Environments에서 살펴보면 가상환경 base(root)가 그대로 들어 있으며 installed 된 라이브러리로서 그래픽을 지원하는 matplotlib 가 이미 설치되어 있음을 확인할 수 있다. 이 base(root) 가상환경에는 TensorFlow, PyToch, OpenCV와 같은 굵직한 라이브러리들을 제외한 웬만한 파이선 지원 라이브러리들은 거의 다 설치되어 있다. 수치계산 지원 NumPy, csv 데이터 입출력 지원 Pandas, 인공지능 지원 Scikit-Learn, 그래픽 출력지원 Matplotlib 와 같은 라이브러리들을 포함한다.

 

 

단순히 Python 코드 작성이 목표라면 Default로 설치된 라이브러리 모듈들만으로도 충분하며, 사용자별로 몇 가지 필요한 것들이 있으면 pip 명령을 사용하여 설치하면 될 것이다. pip 이란 파이선 패키지 매니저를 뜻한다. 파이선 패키지에는 하나의 모듈을 설치하기 위한 모든 파일들을 포함하고 있다.

 

아무래도 자율주행을 위한 특별한 코드 작성을 위해서는 별도의 독립된 가상환경을 형성하는 것이 편리하다. 아나콘다에서 실행 가능한 수많은 라이브러리들이 있겠지만 상호 간에 종속성이 있어 간섭이 있을 수도 있다. 극단적인 예를 들자면 인공지능 지원 라이브러리인 TensorFlow와 PyTorch를 같은 가상공간에 설치하는 것은 충돌(conflict)문제가 될 소지가 크다.

 

자율주행과 관련된 특히 카메라 사용법과 관련된 코드 작성이나 객체와의 충돌을 회피하기 위한 코드 작성을 염두에 두었다면 일차적으로 인텔사가 지원하는 OpenCV 설치를 권장한다. 이 OpenCV 설치는 사용하는 파이선 버전과 깊은 관련을 맺고 있어 그 설치 명령이 pip install python-opencv 로 사용된다. 따라서 Environment 화면에서 설치된 OpenCV 의 버전을 살펴보면 파이선 로고와 함께 버전이 4.6을 나타내고 있다.

 

 

자율주행과 관련된 computer vision 코드를 다루기 위한 별도의 가상환경을 가칭 practice 로 naming 하여 설치해 보도록 하자. vision 코드를 집중적으로 다루기 위해서는 OpenCV를 주로 사용하면 되겠지만 보다 고차원의 이미지 인지작업을 위해서는 OpenCV 뿐만 아니라 TensorFlow 와 Keras를 함께 설치하면 향후에 도움이 될 것이다.

 

한 번 가상 환경을 설치할 때에 특히 카메라 사용과 인공지능 코드 작업이 수반될 경우 설치해야 할 최소한의 라이브러리는 다음과 같다.

python-opencv : 카메라 사용 이미지 처리

imutils : opencv 와 병행 설치해야 하는 utils

tensorflow : 인공지능 코드 지원

keras : 인공지능 코드 지원

pandas : 엑셀 데이터 csv 변환 및 입출략

numpy : 수치계산 지원, tensorflow tensor 변환 출력 지원

matplotlib : 리스트 데이터 출력 지원

scikit-learn: 가장 초창기 인공지능 지원 라이브러리

 

가상 환경을 설치 시 예전에는 명령 창에서 Conda create ∙∙∙이라는 콘다 명령을 사용하였으나 2022년 현재에는 GUI(Graphic User Interface) 방식을 사용하기로 한다.

 

하단에 위치한 4개의 버튼 중 + Create을 누르면 나타나는 팝업 창에서 텍스트 박스에 가상 환경 명칭을 입력하고 Create 버튼을 누르면 생성이 된다. 이 방법이 명령 창(prompt 창)에서 Conda command line 명령으로 가상 환경을 생성하는 것 보다 훨씬 쉽고 편리하다.

생성된 가상 환경을 삭제하기 위해서는 Remove 버튼을 사용하자.

 

 

2022년 8월 현재의 파이선 버전은 3.8 이다. 상황에 따라서는 파이선 버전도 의도적으로 3.6 이나 3.7 을 선택해야 할 필요도 있을 수 있다.

※ 아직도 파이선 2.7 예제들이 인터넷에 많이 나돌고 있으나 이제는 최신 버전으로 코드를 편집해 써야 한다.

 

앞에서 언급한 6개 라이브러리를 설치하기 위해서 아래와 같이 practice 의 세모 버튼을 눌러 나타나는 메뉴의 Open Terminal 즉 명령 창을 선택하자.

 

Open Terminal에서 pip install 명령을 사용하여 라이브러리를 설치하자. 아래는 practice 란 가상환경 명으로 설치 예를 들기로 하며 마지막에 삭제하기로 한다.

 

Open Terminal에서 한 번에 4개의 라이브러리를 설치하는 명령 사례이다.

 

TensorFlow 와 Keras 는 둘 다 구글 라이브러리이며 자기네들끼리 버전 짝을 맞추는 경향이 있음에 유의하여 별도로 각개 설치한다.

 

일단 TensorFlow를 먼저 설치하자. Default 버전은 2.9 이며 필요 시에는 버전을 지정하여 설치하기도 한다. 명령은 다음과 같다.

 

이어서 Keras를 설치하자. TensorFlow 버전 지정이 있었으므로 Keras 도 그에 맞춰 이미 설치가 되었다는 것을 뜻한다.

 

추가로 Image Classification 작업을 대비 인텔의 OpenCV를 설치해 보자. 아울러 설치 후 확인하려면 python 명령을 실행 후 cv2를 import 하고 version을 문의하면 된다.

 

마지막으로 OpenCV 와 함께 사용되는 imutils 라이브러리를 설치한다.

 

이로서 가상환경 practice 의 기본적인 설치가 완료되었다.

일단 Anaconda를 한 번 끄고 나갔다가 다시 열어서 설치된 라이브러리를 확인해 보자.

 

이 상태에서 왼쪽 상단의 Home 버튼을 클릭하여 Anaconda Navigator 화면으로 복귀하자.

 

Anaconda Navigator 홈 화면에서 2종류의 Front End 편집기 즉 Jupyter 와 Spyder를 선택 사용할 수 있음을 지적했다. 초보자라면 셀(cell) 방식의 Jupyter를 먼저 배움과 아울러 스크립트 형 편집기 Spyder를 병행하여 배우면 Anaconda 사용 효율이 배가 될 것이다.

 

다시 Home에서 Spyder install 아이콘을 클릭하여 install 작업을 진행하자. 설치작업에 다소 시간이 소요된다. install 작업이 완료되면 launch 버튼 즉 시작 버튼으로 바뀐다. 시작 바 아나콘다에도 별도의 아이콘이 생성되므로 편리하게 사용이 가능하다. Jupyter 설치 과정도 동일하며 다음 장에서 별도로 다루도록 한다.

Spyder의 Launch 버튼을 누르면 처음에 다크(dark) 화면이 나타나는 경우가 있는데 Tools의 Preference에서 창을 열고 Appearance에서 SpyderDark에서 Spyder를 선택하면 배경색이 흰색으로 바뀐다.

 

1-4 아나콘다 가상환경 기타용법

 

Open Terminal을 사용하여 필요한 라이브러리를 설치하였다. 다음으로 Open with Python 용법을 알아보자.

 

아나콘다 파이선 셸 모드로 들어가게 된다.

 

interpreter 방식으로 파이선 명령 실행이 가능하며 quit() 명령을 사용하여 빠져 나오면 바로 Open Terminal 에 의해 열게 되는 가상환경임을 알 수 있다.

다시 되돌아 가기 위해서는 명령 python을 사용하면 된다.

Conda 명령 체계를 사용하던 과거에는 이 용법이 필수적이었으나 지금은 그다지 필수적인 명령은 아닌 듯하다.

 

Open with IPython을 클릭하면 쥬피터 방식으로 넘버링 된 프롬프트가 나타남을 볼 수 있다.

 
 

Anaconda3에서 Jupyter를 학습할 수 있도록 가상환경을 준비하고 충분한 파이선 언어 연습과 OpenCV 연습이 이루어져야 한다. 한편 Jupyter 와 사용법이 거의 동일한 구글의 Colab 사용을 들 수 있는데 여기서는 GPU도 지원되기 때문에 효율적인 고속의 컴퓨팅이 가능하긴 하지만 아무래도 클라우드 상에서 연산이 이루어지기 때문에 머신러닝 학습 결과를 사용하여 사용자 PC에 설치된 웹캠으로 직접 실시간 가시화 시킬 수 없다는 점이 있지만 그래도 그 사용법만 알아두어야 할 필요가 있다.

 

※ 아나콘다와 가상환경이 설치되었으면 아래 블로그로 넘어가 Jupyter 를 사용하여 파이선 기초를 연습하자.

Jupyter Notebook Tutorial: 파이선 코딩 기초

예제코드 다운: http://ejleep1.tistory.com/1345