로컬 컴퓨터에서 python을 이용한 개발을 하려면 대부분 아나콘다(Anaconda)를 설치하고 필요한 라이브러리를 또 설치하고 설정 값이 틀려서 지우고 다시 설치하는 반복작업들이 귀찮았는데 로컬 컴퓨터가 아닌 인터넷상에서 기본적인 라이브러리는 설치가 되어있고 필요한 라이브러리도 쉽게 설치해 사용할 수 있는 colab이 있다는건 알았지만 눈팅만 하다가 한번 사용을 해보았습니다.

너무 종속된다는 느낌이 들지만 초보자들에게는 쉽게 접근 가능하고 코딩에만 집중할 수 있어서 좋을것 같습니다.

 

간단한 사용방법을 알아보도록 하겠습니다.

colabgoogle에서 인터넷으로 제공되는 것으로 구글드라이브가 있어야 사용 가능합니다.

이 말은 구글에 계정이 있어야 한다는 뜻이고 크롬에서 구글에 로그인을 한 후 google drive를 검색합니다.

 

 

검색된 결과중 [Google Drive] 을 찾아 클릭하면 로그인이 된 상태인 경우 바로 드라이브 페이지로 이동 합니다.

 

또는 로그인 상태라면 우측 상단 더보기 아이콘을 클릭하여

 

 

 

[드라이브] 아이콘을 클릭 합니다.

 

 

 

colab을 설치하지 않았기 때문에 우측에 아무것도 보이지 않습니다.

colab을 설치하기 위해 좌측 상단에 있는 [새로 만들기]를 클릭 합니다.

 

 

 

여기에도 colab 관련 메뉴가 없다는건 아직 한번도 사용해보지 않았다는것입니다.

팝업 메뉴에서 하단의 [더보기]를 클릭하고 여기에서 colab이 보이지 않는다면 다시 [연결할 앱 더보기]를 클릭 합니다.

 

 

 

팝업 창에서 [Colaboratory]를 찾아 선택해 줍니다.

이 팝업은 colabGoogle Drive에 설치해서 메뉴에 추가하는 작업을 진행하는 독립된 팝업 창 입니다.

 

 

 

간단한 설명 페이지로 넘어가는데 우측 상단 파란색 [설치] 버튼을 클릭하면 구글 드라이브에 설치가 됩니다.

 

 

 

[계속]을 클릭해서 설치를 진행 합니다.

 

 

 

설치할 계정을 선택 합니다.

지금 로그인한 계정이 아닌 다른 계정에 설치하려면 [다른 계정 사용]을 클릭해서 설치할 계정을 선택하면 됩니다.

 

 

 

선택한 구글 계정의 Google Drive에 연결을 하기위해 [확인] 버튼을 클릭하고 [완료] 버튼을 클릭해 줍니다.

 

 

 

설치가 완료 되었으니 팝업 창은 우측 [닫기] 버튼을 이용하여 닫아주고 Google Drive를 새로고침하고 메뉴를 다시 시작해 봅니다.

 

 

[새로 만들기]  >  [더보기]  >  [Google Colaboratory]

 

 

이제 메뉴에 colab이 설치 되었네요. [Google Colaboratory]를 클릭하면

잠시후 생성이 완료되고 화면이 전환 됩니다.

 

 

 

주피터 노트북(Jupyter Notebook)과 비슷한 형태의 창이 나옵니다.

사용법도 메뉴가 조금 다를뿐 비슷합니다.

현재 아무것도 설치하지 않았지만 기본적으로 python이 설치되어 있으니 간단히 출력문을 실행해 봅니다.

 

 

 

[+코드]를 클릭 한 후 print(“test”)를 입력하고 검은원 화살표 이미지를 클릭합니다.

잘 되는군요. 

 

 

 

작업을 저장하고 나면 다음부터는 구글 드라이브에 저장된 작업이 나타납니다.

시간 날때마다 오랜만에 python을 공부해 봐야겠습니다.

 

- copy coding -


논리적 개념을 도식화 하기에 좋은 Graphviz anaconda에 설치하고 python언어를 이용하여 프로그램을 만들고 jupyter에서 간단한 예제를 해보려고 합니다.

아나콘다 설치는 매우 간단 해서 설명이 필요 없지만 한번 훑어보려면 아래 링크에서 아나콘다 부분만 보시면 됩니다.


[텐서플로우] 아나콘다(Anaconda)에 TensorFlow2 설치


그럼 아나콘다는 설치가 되어 있다고 치고 graphviz 설치를 시작해 봅니다.

 

Windows 7Graphviz 설치 방법


python graphviz install


먼저 시작버튼을 눌러 Anaconda Prompt를 실행하고 설치 명령어를 입력 합니다.

 

conda install graphviz

 

명령어를 입력하고 나면 잠시 후 설치하려는 프로그램 목록이 나타납니다기존에 파이선이 업데이트가 되어 있다면 설치할 package 개수가 적을 수도 있습니다.


python graphviz install




python graphviz install


진행 여부를 물어보면 y를 입력하거나 [y]가 선택되어 있으니 그냥 엔터를 처도 됩니다.


python graphviz install


기다리다 보면 설치가 완료 되었습니다.

 

conda 명령말고 pip를 이용해서 설치도 가능한데


pip install graphviz


명령어로도 설치할 수 있습니다.


python graphviz install


 

이미 설치되어 있다고 나오는군요.

 

간단한 예제를 하나 해보도록 하겠습니다. 기본적인 원형 도표를 만들고 png 이미지 파일을 만드는 프로그램 입니다.

 

from graphviz import Source

 

dot_digraph = """

digraph graphname {

    rankdir=LR;

     a -> b -> c -> e ->f;

     b -> d;

}

"""

s = Source(dot_digraph, filename='simple_digraph', format='png')

s.view()

 

그런데 프로그램을 실행하면 오류가 발생 합니다.


python graphviz install


graphviz는 설치하고 Path를 잡아줘야 합니다. 어디에 설치가 되었는지 설치 위치를 찾아야 설정을 하겠죠. graphviz 설치 위치는 아나콘다를 어디에 설치 했는가에 따라 폴더가 달라집니다. 저의 경우는


C:\ProgramData\Anaconda3\Library\bin\graphviz


요기에 설치가 되어 있습니다그럼 속성 항목에 path를 선택 해서 추가를 해 줍니다추가하는 방법은 변수 값 항목 제일 뒤에 세미콜론(;)을 추가하고 폴더 위치를 추가해 주면 됩니다.


;C:\ProgramData\Anaconda3\Library\bin\graphviz


python graphviz install


열린 시스템 속성 변수 창들을 [확인]버튼을 눌러 모두 닫아주면 시스템에 설정이 반영 됩니다그러나 이미 열려있는 jupyter notebook은 설정 값이 적용되어 있지 않는 상태 입니다새로 추가한 설정이 반영 되도록 jupyter noteboot을 종료 하고 다시 켜서 프로그램을 실행해 봅니다.


python graphviz install


잘 나오는 군요성공 입니다.

 

 

Windows 10Graphviz 설치 방법

 

Windows 10에서도 동일한 방법으로 설치와 테스트가 가능 합니다Windows 7과 방법이 동일해서 좀 성의 없이 요점만 설명을 하도록 하겠습니다.

 

Anaconda Prompt를 실행하고 설치 명령어를 입력 합니다.

 

conda install graphviz 


python graphviz install


pip 명령으로도 설치가 가능 하고요


pip install graphviz


python graphviz install


설치가 완료 되면 anaconda의 설치 위치를 알면 graphviz의 설치 위치도 찾을 수 있습니다.


C:\anaconda3\Library\bin\graphviz


python graphviz install


저는 이곳에 설치가 되어 있습니다.  환경 변수 path에 위치를 추가해 줍니다.


python graphviz install


설정 값을 반영하기 위해 주피터 노트북 창을 닫고 재시작 하여 프로그램을 시작해 봅니다.


python graphviz install


당연히 윈도우10에서도 잘 실행이 됩니다.


- copy coding -


이미지의 밝기 분포를 나타내는 표입니다밝기는 0에서 255 단계까지(0은 검은색, 255는 하얀색) 정의해 놓습니다.  이미지를 픽셀에 단위로 분해 하고 픽셀 별로 명암 값(0에서 255)을 구하여 밝기가 0인 픽셀의 총계, 1인 픽셀의 총계.... 255인 픽셀의 총계를 구하여 도표로 보여주는 것 입니다도표의 x축은 명암 0~255 이고 y축은 명암 별 픽셀 개수를 나타냅니다.

 

0에 가까운 값을 가진 픽셀이 많다면 이미지가 너무 어두울 테고 255쪽의 값을 가진 픽셀이 많다면 너무 밝은 이미지라고 할 수 있습니다.


opencv python histogram

 

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) → hist

 

parameter

설명

images

이미지 파일

channels

분석 채널(0:gray, 1:

mask

히스토그램을 계산할 영역

histSize

히스토그램 (BIN)의 개수. [256]

ranges

계산 범위 [0, 256]

hist

계산 결과

accumulate

누적 여부. true이면 초기화 하지 않고 이전 값을 계속 누적

 

6.1 흑백 이미지


검은 색과 흰색의 영역이 동일한 이미지를 이용하여 테스트를 진행해 봅니다물론 실제 사용하는 이미지에는 테두리가 없습니다.


opencv python histogram

 

import cv2

import numpy as np

from matplotlib import pyplot as plt

 

img = cv2.imread('D:/tensorflow/images/image_calcuHist001.png', 0)

 

hist = cv2.calcHist([img], [0], None, [256], [0, 256])

 

plt.plot(hist)

plt.show()

 

opencv python histogram


그래프를 보면 픽셀의 명암 값이 0인 개수와 255인 픽셀의 개수가 동일 하다는 걸 확인할 수 있습니다.

 

6.2 컬러 이미지

 

컬러 이미지를 이용하여 테스트를 진행해 봅니다. 파랑색 블럭과 녹색, 붉은색 블럭의 크기가 동일 하도록 이미지를 준비 하였습니다.


opencv python histogram

 

import cv2

import numpy as np

from matplotlib import pyplot as plt

 

img = cv2.imread(‘D:/tensorflow/images/image_calcuHist003.png’, 1)

 

hist = cv2.calcHist([img], [2], None, [256], [0, 256])

 

plt.subplot(2,2,1), plt.imshow(img)

plt.subplot(2,2,2), plt.plot(hist)

#plt.plot(hist)

 

plt.show()

 opencv python histogram


컬러값을 만들 때 파란색은 [0, 0, 255]로 표현 되는데 값의 두 개 중 하나만 255이고 나머지는 0으로 표현 됩니다, B[0,0,255], G[0,255,0], R[255,0,0] 이런 식으로 255보다 0이 두 배 많게 나옵니다결과적으로 그래프의 값도 255의 픽셀 값보다 0의 값을 가진 픽셀이 2배 많다는 것을 나타내고 있습니다.


위의 두 경우 모두 너무 극단적인 예제들 이었고 실제 사진을 가지고 테스트를 해보겠습니다아래사진은 저녁에 도로를 찍어서 좀 어둡습니다.


opencv python histogram


opencv python histogram


히스토그램 결과도 0에 가까운 값들이 많은걸 알 수 있습니다이런 식으로 히스토그램을 이용하면 사진을 안보고도 어떤 느낌인지 대충 예상할 수 있겠네요.


 

6.3 히스토그램 균일화(평활화) : Histogram Equalization


이미지의 히스토그램 결과가 한쪽으로 몰려있는 경우 너무 밝거나 어둡게 보이는데 가능하면 골고루 분포되도록 조절을 하는 작업을 균일화 또는 평활화 하고 합니다.

 

import cv2

import numpy as np

 

img = cv2.imread('D:/tensorflow/images/image_calcuHist004.png');

 

hist, bins = np.histogram(img.ravel(), 256,[0,256]) # 히스토그램 구하기

cdf = hist.cumsum() #numpy 배열을 1차원으로 하고 더한 값을 누적하여 배열 생성

 

cdf_m = np.ma.masked_equal(cdf,0) #cdf에서 값이 0인 부분을 mask하여 제외 처리

cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min()) #여기가 균일화 방정식

cdf = np.ma.filled(cdf_m,0).astype('uint8') #mask로 제외했던 0값을 복원

 

img2 = cdf[img]

 

cv2.imshow('Equalization', img2)

cv2.waitKey(0)

cv2.destroyAllWindows()

 

opencv python histogram


어둡던 이미지가 많이 밝아졌습니다어둠에 묻혀있던 사물들이 좀더 선명해진 것을 확인할 수 있습니다길을 걷는 사람이 조금 포함된걸 알기는 했는데 무슨 상표 옷인지 눈에 확들어오네요.


- copy coding -

'OpenCV' 카테고리의 다른 글

OpenCV 7. Contours 이미지 윤곽선 검출  (0) 2020.11.27
OpenCV threshold 설명  (0) 2020.11.23
OpenCV 이미지 붙이기  (1) 2019.04.08
OpenCV 5. 임계처리 (이진화) (Python)  (0) 2019.04.07
OpenCV 4. 이미지 비트 연산 (Python)  (0) 2019.04.06


예전에 아나콘다에 텐서플로우를 설치하는 방법을 올렸었는데 Tensorflow2를 사용하기 위해 다시 설치를 해보았습니다.  예전에는 텐서플로우가 사용하는 python과 아나콘다에서 사용하는 파이썬 버전을 맞추기 위하여 다운로드 사이트를 찾아 다녔지만 이제는 그냥 각각 최신 버전을 다운받아서 설치해도 되기 때문에 작업이 수월해 졌습니다.

 

anaconda tensorflow2 install


TensorFlow 사이트에 가보면

https://www.tensorflow.org/install


anaconda tensorflow2 install


Python 3.5 부터 3.8을 지원하고 있습니다.

 

아나콘다 사이트에 가면


anaconda tensorflow2 install


최신 버전이 Python 3.8을 지원하고 있습니다설치 방법은 단순해서 설명을 하지 않아도 될 정도이지만 간단하게 진행해 보겠습니다.

 

1. Anaconda 설치

 

아나콘다에서 자신의 컴퓨터에 적합한 파일을 다운로드 받습니다.

https://www.anaconda.com/products/individual

컴퓨터 시스템 종류는 단축키를 이용할 때는 [윈도우 키 + Pause ]를 누르거나 [바탕화면 내PC에서 마우스 우측 버튼 > 속성] 또는 [파일 탐색기 컴퓨터에서 마우스 우측버튼 > 속성]을 선택하면 시스템 정보에서 확인 가능 합니다.

저는 64-Bit Graphical Installer를 다운로드 받았습니다아나콘다는 다운받은 파일을 실행해서 그냥 [Next] 버튼만 눌러주면 설치가 완료 됩니다한번 볼까요?


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.


anaconda tensorflow2 install




anaconda tensorflow2 install


이런 틀렸네요. [I Agree] 버튼을 클릭 합니다.


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.. 저는 기본설정이 아닌 C:\anaconda3에 설치를 했습니다.


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.


anaconda tensorflow2 install


[Next] 버튼을 클릭 합니다.


anaconda tensorflow2 install


설치 작업이 완료 되었습니다. [Finish] 버튼을 클릭 합니다.


설치가 잘 되었는지 확인해 봅니다.


anaconda tensorflow2 install


Anaconda Prompt를 선택하여 콘솔모드에서 python 버전을 확인합니다.


pthon -V


anaconda tensorflow2 install


설치가 잘 되었습니다.

 


2. TensorFlow 2 설치


 

텐서플로우는 아나콘다에서 파이썬 버전을 확인 했던 Anaconda Prompt에서 진행을 합니다.



1) 먼저 pip을 업그레이드 해줍니다.


pip install –upgrade pip


anaconda tensorflow2 install


2) 가상환경 생성

 

가상환경 또는 프로젝트을 생성 한다고도 하는데 아나콘다에 텐서플로우만 사용하는 공간을 생성해주는 명령어 입니다물론 tensorflow 말고 다른 단어를 사용해도 됩니다. 뒤에 사용하려는 파이썬 버전을 기입해서 선택해도 됩니다.

 

conda create -n tensorflow pip python=3.8


anaconda tensorflow2 install


anaconda tensorflow2 install


중간에 진행 할거냐고 물어보는데 y를 입력하고 엔터 키.

이제부터 실제 텐서플로우 설치 작업이 시작 되는데 모두 동일한 방법이어서 화면 캡처 없이 명령어만 나열해 보았습니다순서대로 입력하고 엔터키를 누르면 됩니다.

 

3) 가상환경으로 이동


새로 만든 tensorflow라는 가상환경을 활성화 해줍니다.

 

conda activate tensorflow

 

4) 텐서플로우 설치


CPU 버전인 경우

pip install --ignore-installed --upgrade tensorflow-cpu

 

GPU 버전인 경우

pip install --ignore-installed --upgrade tensorflow-gpu

 

여기까지 진행 하면 설치가 완료 됩니다.

텐서플로우 사이트에 가면 CPUGPU가 통합된 버전을 설치하라고 되어 있습니다.

 

# Requires the latest pip
pip install --upgrade pip

# Current stable release for CPU and GPU
pip install tensorflow

# Or try the preview build (unstable)
pip install tf-nightly

 

 

3. 설치 테스트


설치가 끝났으니 테스트를 진행합니다먼저 Tensorflow2에서는 Session(), print()에서 오류가 발생 하는데 명령어가 변경이 되었다고 하니 찾아보면 됩니다그 이외에도 AVX2, XLA관련 오류도 발생 하는데 무시 하거나 소스를 가져와 컴파일 하면 됩니다.


anaconda tensorflow2 install

 

(tensorflow) C:\>python

Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import tensorflow as tf

>>> with tf.compat.v1.Session() as sess:

...   hello = tf.constant("Hello World!")

...   print(sess.run(hello))

...

2020-10-01 01:15:02.895615: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2

To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

2020-10-01 01:15:02.941595: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x21879054d00 initialized for platform Host (this does not guarantee that XLA will be used). Devices:

2020-10-01 01:15:02.957403: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version

b'Hello World!'

>>> 

 

오류 때문에 뭘 하고 있는지 화가 난다면 편안하게 jupyter를 사용 합니다.

 

import tensorflow as tf

 

hello = tf.constant("Hello World!")

tf.print(hello)

 

보면 알겠지만 가능하면 Session()은 사용하지 말고 print()tf에서 사용해 줍니다.


anaconda tensorflow2 install


소스가 간단해 지고 가독성도 좋아진것 같습니다.


- copy coding -


1234···7

+ Recent posts