SimpleCV 설치하고 테스트 해 보기.

2014-11-02

tutorial python simplecv develop development raspberry-pi linux computer-vision

SimpleCV 는 파이썬 언어를 이용하여 컴퓨터 비전 앱을 쉽게 작성 할 수 있도록 도와주는 오픈소스 프레임워크 입니다. 이 프레임워크를 활용하면 고유값,다양하고 복잡한 얼굴인식 알고리즘, 행렬 대 비트맵 스토리지, 비트 깊이 등등의 복잡하고 어려운 것들을 사전에 공부하실 필요 없이 쉽게 컴퓨터 비전 앱을 작성 하실 수 있습니다.

이 글에서는 우분투 같은 데비안 계열 베포판에서 어떻게 SimpleCV를 설치하고 테스트 해 볼 수 있는지 이야기 해 보고자 합니다. 이 글의 내용은 Raspberry Pi를 위한 리눅스 베포판인, Raspbian 에서도 그대로 적용 됩니다. Raspbian 도 데비안 계열 리눅스 거든요.

의존성 패키지 먼저 설치하기.

우선 SimpleCV 설치에 앞서 필요한 패키지들을 먼저 설치해 줍시다.

sudo apt-get install ipython python-opencv python-scipy python-numpy python-setuptools python-pip

SimpleCV 설치

두 가지 방법으로 설치 하실 수 있습니다. 하나는 Github 에서 받아다가 바로 설치하기. 나머지 하나는 미리 소스 코드를 받은 다음, 받아둔 소스코드로 설치하는 것입니다.

Github 에서 받아다가 바로 설치하려면, 아래 명령어를 실행하세요. pip을 이용하여 url로부터 바로 설치합니다.

sudo pip install https://github.com/sightmachine/SimpleCV/zipball/master

소스를 다운로드 받고, 받은 소스로부터 설치하려면, 아래 명령어들을 실행하세요. 소스코드를 다운로드 한 다음, 다운로드된 소스코드 폴더에 접근해서 pip응 이용해 설치합니다.

git clone git://github.com/sightmachine/SimpleCV.git
cd SimpleCV
sudo pip install -r requirements.txt
sudo python setup.py develop

SimpleCV 테스트 하기

설치가 다 되었나요? 잘 작동하는지 테스트를 해 봅시다. SimpleCV에 포함된 인터렉티브 쉘을 이용하거나, 간단히 코드를 작성해서 실행해 보는 식으로 테스트 해 볼 수 있습니다.

인터렉티브 쉘 이용하기

SimpleCV에 내장된 인터렉티브 쉘로 들어가려면 아래 명령어를 실행하세요. 인터렉티브 쉘에 들어가면, SimpleCV에서 사용 가능한 코드들을 실행 해 보실 수 있습니다.

simplecv

콘솔에서 정상적으로 인터렉티브 쉘에 들어 간 경우, 보통 아래와 같은 것들이 나타납니다.

youngbin@youngbin-ultrabook:~$ simplecv

/usr/lib/python2.7/dist-packages/IPython/frontend.py:30: UserWarning: The top-level `frontend` package has been deprecated. All its subpackages have been moved to the top `IPython` level.
  warn("The top-level `frontend` package has been deprecated. "
+-----------------------------------------------------------+
 SimpleCV 1.3.0 [interactive shell] - http://simplecv.org
+-----------------------------------------------------------+

Commands:
	"exit()" or press "Ctrl+ D" to exit the shell
	"clear()" to clear the shell screen
	"tutorial()" to begin the SimpleCV interactive tutorial
	"example()" gives a list of examples you can run
	"forums()" will launch a web browser for the help forums
	"walkthrough()" will launch a web browser with a walkthrough

Usage:
	dot complete works to show library
	for example: Image().save("/tmp/test.jpg") will dot complete
	just by touching TAB after typing Image().

Documentation:
	help(Image), ?Image, Image?, or Image()? all do the same
	"docs()" will launch webbrowser showing documentation

SimpleCV:1>

인터렉티브 쉘에서 나가려면, 아래 코드를 실행하세요.

exit()

파이썬으로 작성해서 실행 해보기.

파이썬으로 SimpleCV 를 사용하는 간단한 코드를 작성해서 실행해 보는 방식으로 테스트 해 볼 수도 있습니다. 아래 코드는 simplecv.org 에서 가져온 예제 입니다(주석만 우리말로 수정 해봤습니다). 아래 코드들을 파이썬 스크립트 파일(확장자가 *.py인)로 저장해 보세요.

#-*- coding: utf-8 -*-
from SimpleCV import Camera
# 카메라 초기화.
cam = Camera()
# while 반복문으로 계속해서 카메라로부터 이미지 가져오기.
while True:
    # 카메라 에서 이미지 가져오기.
    img = cam.getImage()
    # 가져온 이미지 흑백으로 만들기.
    img = img.binarize()
    # 이미지에 "Hello World!" 그리기.
    img.drawText("Hello World!")
    # 이미지 보여주기.
    img.show()

저장 하셨으면, 웹캠 등의 카메라를 연결하시고, 한 번 실행 해 보세요, 예를 들어 파일 이름이 simplecv.py 인 경우, 아래와 같은 명령어로 실행합니다.

python simplecv.py

정상적으로 실행이 된다면, 아래와 같은 화면이 나타날 것입니다.

오류 해결하기.

오류가 나는 경우 해결하는 방법 들 입니다. 시험 해 보는대 오류가 난다면, 참고해 보세요.

svgwrite 모듈이 설치되어 있지 않아 오류가 나는 경우.

인터렉티브 쉘로 들어가려 할때 svgwrite 모듈 미설치로 인한 오류가 나면 아마 아래과 같은 것이 나타날 것입니다.

youngbin@youngbin-ultrabook:~$ simplecv
ERROR:
Traceback (most recent call last):
  File "/usr/local/bin/simplecv", line 9, in <module>
    load_entry_point('SimpleCV==1.3', 'console_scripts', 'simplecv')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 337, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2279, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1989, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/local/lib/python2.7/dist-packages/SimpleCV/__init__.py", line 4, in <module>
    from SimpleCV.Camera import *
  File "/usr/local/lib/python2.7/dist-packages/SimpleCV/Camera.py", line 5, in <module>
    from SimpleCV.ImageClass import Image, ImageSet, ColorSpace
  File "/usr/local/lib/python2.7/dist-packages/SimpleCV/ImageClass.py", line 14768, in <module>
    from SimpleCV.DrawingLayer import *
  File "/usr/local/lib/python2.7/dist-packages/SimpleCV/DrawingLayer.py", line 5, in <module>
    import svgwrite
ImportError: No module named svgwrite

아래 명령어를 이용해, pip을 사용해 svgwrite 모듈을 설치 하시면 됩니다.

sudo pip install svgwrite

끝.

SimpleCV에 대해서는, SimpleCV 웹사이트를 방문하시면, 문서자료나 튜터리얼 같은 다양한 정보들을 얻으실 수 있습니다. 관심 있으신 분들은 방문해 보시길.

SimpleCV 사이트 방문하기(simplecv.org)

광고 차단 소프트웨어를 사용하고 계신 것 같습니다. 혹시 글이 마음에 들었다면, 광고 차단을 해제해 주시거나 후원을 해 주시는 것은 어떤가요?

It seems like you're using ad block software, If you like the post, Would you like to disable that or donate me a bit?

Raspberry Pi 원격접속 설정하기

2014-09-20

최근 동아리 프로젝트에 사용 겸 나중에 개인적으로 가지고 놀 용도로 Raspberry Pi Model B+ 를 구입했습니다. 그리고 남는 마이크로 SD 카드에 Raspbian 을 설치 했습니다. 그동안 hdmi 케이블이 없다보니 집에서 테스트 해보지 못했는대, 이번에 동아리 지원금을 이용해 하나 구했습니다. 구한 김에 원격 접속 설정을 했습니다. 언제까지 케이블이랑 키보드, 마우스 다 들고 다니면서 연결 할 순 없으니까요.

우분투 계열 리눅스 베포판에서 안드로이드 개발환경 구축하기.

2014-09-06

친구가 안드로이드 앱 개발을 시작해서, 글로 정리해 줄 겸 다른 분들도 보시라고 블로그에 올려봅니다. 우분투 리눅스 계열 배포판에서 안드로이드 개발환경을 구축하는 법을 말해보고자 합니다. 이 게시물은 여러분들께서 우분투 계열 리눅스를 사용하시고 계신다고 가정하고 작성하였습니다. 도움이 되셨스면 좋겠습니다^^ JDK 설치하기 먼저 안드로이드를 개발하려면, 안드로이드 앱을 Java로 작상하기에, JDK(Java Development Kit) 을 먼저 설치해야 합니다.

(Update | #23)WhiteBeam Kernel For YP-GB1(KOR) and YP-G1(INTL)

2012-08-01

허허허허 방금 새로 커널을 또 컴파일 하였습니다 ㅎㅎㅎㅎ 이번 릴리즈에서는 어떤 것들이 변경되었냐면…. -Tiny RCU 활성화 -jhash2에서 jhash3으로 업데이트(기기 반응속도 향상!) -커널을 LZMA방식으로 압축하였습니다, 그러므로 배포되는 커널 용량이 작아집니다. (#21 용량 : 6.7MB -> #23용량 : 4.7MB) 이 외에는 별다른 변경사항은 없습니다 ㅎㅎ 이제는 cpu가버너나, i/o스케쥴러보단. 다른 여러가지(?) 트윅들을 많이 넣을듯 싶내요 ㅎㅎㅎ