블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
  • total
  • today
  • yesterday

Category

2010. 7. 29. 17:08 Computer Vision
Seitz, S. M., Curless, B., Diebel, J., Scharstein, D., and Szeliski, R. 2006. A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms. In Proceedings of the 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition - Volume 1 (June 17 - 22, 2006). CVPR. IEEE Computer Society, Washington, DC, 519-528. DOI= http://dx.doi.org/10.1109/CVPR.2006.19


S. Seitz et al. Multi-view stereo evaluation web page
http://vision.middlebury.edu/mview/
posted by maetel
2009. 8. 5. 14:36 Computer Vision
Oxford 대학  Active Vision Group에서 개발한
PTAM (Parallel Tracking and Mapping for Small AR Workspaces)
http://www.robots.ox.ac.uk/~gk/PTAM/

Questions? E-mail ptam@robots.ox.ac.uk


0. requirements 확인

readme 파일에서 언급하는 대로 프로세서와 그래픽카드를 확인하니

내가 설치할 컴퓨터 사양:
Model Name:    Mac mini
  Model Identifier:    Macmini3,1
  Processor Name:    Intel Core 2 Duo
  Processor Speed:    2 GHz
  Number Of Processors:    1
  Total Number Of Cores:    2
  L2 Cache:    3 MB
  Memory:    1 GB
  Bus Speed:    1.07 GHz
  Boot ROM Version:    MM31.0081.B00

그래픽 카드:
NVIDIA GeForce 9400

"Intel Core 2 Duo processors 2.4GHz+ are fine."이라고 했는데, 2.0이면 되지 않을까? 그래픽 카드는 동일한 것이니 문제 없고.


1. library dependency 확인

1. TooN - a header library for linear algebra
2. libCVD - a library for image handling, video capture and computer vision
3. Gvars3 - a run-time configuration/scripting library, this is a sub-project of libCVD.
셋 다 없으므로,

1-1. TooN 다운로드

TooN (Tom's object oriented Numerics)선형대수 (벡터, 매트릭스 연산)를 위해 Cambridge Machine Intelligence lab에서 개발한 C++ 라이브러리라고 한다.

ref. TooN Documentation (<- 공식 홈보다 정리가 잘 되어 있군.)

다음과 같은 명령으로 다운로드를 받는다.
%% cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/toon co TooN

실행 결과:

생성된 TooN 폴더에 들어가서
%%% ./configure

실행 결과:


1-1-1. 더 안정적인(?) 버전을 받으려면

%% cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/toon co -D "Mon May 11 16:29:26 BST 2009" TooN

실행 결과:


1-2. libCVD 다운로드

libCVD (Cambridge Video Dynamics)같은 연구실에서 만든 컴퓨터 비전 관련 이미지 처리를 위한 C++ 라이브러리

ref. CVD documentation

%% cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libcvd co -D "Mon May 11 16:29:26 BST 2009" libcvd

실행 결과:



1-3. Gvars3 다운로드

Gvars3 (configuration system library)
 
%% cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libcvd co -D "Mon May 11 16:29:26 BST 2009" gvars3

실행 결과:


2. 다운로드한 기반 라이브러리 설치

2-1. TooN 설치

2-1-1. configure file 실행

configure scripts는 source code를 compile하고 실행시킬 수 있게 만들어 주는 것.

생성된 TooN 폴더에 들어가서
%%% ./configure

실행 결과:

2-1-2. 설치

(TooN은 헤더파일들의 모음이므로 compile이 필요없다.)

%%% sudo make install

실행 결과:
mkdir -p //usr/local/include/TooN
cp *.h //usr/local/include/TooN
cp -r optimization //usr/local/include/TooN/
cp -r internal //usr/local/include/TooN/


2-2. libCVD 설치

2-2-1. configure 파일 실행

생성된 libCVD 폴더에 들어가서
%%% export CXXFLAGS=-D_REENTRANT
%%% ./configure --without-ffmpeg

실행 결과:

2-2-2. documents 생성 (생략해도 되는 듯)

다시 시도했더니
%%% make docs

make: *** No rule to make target `docs'.  Stop.
여전히 안 되는 듯... 아! doxygen을 맥포트로 설치해서 그런가 보다. (데이터베이스가 서로 다르다고 한다.)_M#]


2-2-3. compile 컴파일하기

%%% make

실행 결과:


2-2-4. install 설치하기

%%% sudo make install

실행 결과:


2-3. Gvars3  설치

2-3-1. configure 파일 실행

Gvars3 폴더에 들어가서
%%% ./configure --disable-widgets

실행 결과:


2-3-2. compile 컴파일하기

%%% make

실행 결과:


2-3-3. install 설치하기

%%% sudo make install

mkdir -p //usr/local/lib
cp libGVars3.a libGVars3_headless.a //usr/local/lib
mkdir -p //usr/local/lib
cp libGVars3-0.6.dylib //usr/local/lib
ln -fs  //usr/local/lib/libGVars3-0.6.dylib //usr/local/lib/libGVars3-0.dylib
ln -fs  //usr/local/lib/libGVars3-0.dylib //usr/local/lib/libGVars3.dylib
mkdir -p //usr/local/lib
cp libGVars3_headless-0.6.dylib //usr/local/lib
ln -fs  //usr/local/lib/libGVars3_headless-0.6.dylib //usr/local/lib/libGVars3_headless-0.dylib
ln -fs  //usr/local/lib/libGVars3_headless-0.dylib //usr/local/lib/libGVars3_headless.dylib
mkdir -p //usr/local/include
cp -r gvars3 //usr/local/include


2-4. OS X에서의 컴파일링과 관련하여

ref. UNIX에서 컴파일하기
Porting UNIX/Linux Applications to Mac OS X: Compiling Your Code in Mac OS X



3. PTAM 컴파일

3-1. 해당 플랫폼의 빌드 파일을 PTAM source 디렉토리로 복사

내 (OS X의) 경우, PTAM/Build/OS X에 있는 모든 (두 개의) 파일 Makefile과 VideoSource_OSX.cc를 PTAM 폴더에 옮겼다.

3-2. video source 셋업

카메라에 맞는 video input file을 컴파일하도록 Makefile을 수정해 주어야 한다.
맥의 경우, (아마도 Logitech Quickcam Pro 5000 을 기준으로 하는) 하나의 소스 파일만이 존재하므로 그대로 두면 될 듯.

3-3. video source 추가

다른 비디오 소스들은 libCVD에 클래스로 만들어져 있다고 한다. 여기에 포함되어 있지 않은 경우에는 VideoSource_XYZ.cc 라는 식의 이름을 갖는 파일을 만들어서 넣어 주어야 한다.

3-4. compile

PTAM 폴더에 들어가서
%% make

실행 결과:
g++ -g -O3 main.cc -o main.o -c -I /MY_CUSTOM_INCLUDE_PATH/ -D_OSX -D_REENTRANT
g++ -g -O3 VideoSource_OSX.cc -o VideoSource_OSX.o -c -I /MY_CUSTOM_INCLUDE_PATH/ -D_OSX -D_REENTRANT
g++ -g -O3 GLWindow2.cc -o GLWindow2.o -c -I /MY_CUSTOM_INCLUDE_PATH/ -D_OSX -D_REENTRANT
In file included from OpenGL.h:20,
                 from GLWindow2.cc:1:
/usr/local/include/cvd/gl_helpers.h:38:19: error: GL/gl.h: No such file or directory
/usr/local/include/cvd/gl_helpers.h:39:20: error: GL/glu.h: No such file or directory
/usr/local/include/cvd/gl_helpers.h: In function 'void CVD::glPrintErrors()':
/usr/local/include/cvd/gl_helpers.h:569: error: 'gluGetString' was not declared in this scope
make: *** [GLWindow2.o] Error 1

이 에러 메시지는 다음 링크에서 논의되고 있는 문제와 비슷한 상황인 것 같다.
http://en.allexperts.com/q/Unix-Linux-OS-1064/Compiling-OpenGL-unix-linux.htm


3-4-1. OpenGL on UNIX

PTAM이 OpenGL을 사용하고 있는데, OpenGL이 Mac에 기본으로 설치되어 있으므로 신경쓰지 않았던 부분이다. 물론 system의 public framework으로 들어가 있음을 확인할 수 있다. 그런데 UNIX 프로그램에서 접근할 수는 없는가? (인터넷에서 검색해 보아도 따로 설치할 수 있는 다운로드 링크나 방법을 찾을 수 없다.)

에러 메시지에 대한 정확한 진단 ->
philphys: 일단 OpenGL은 분명히 있을 건데 그 헤더파일과 라이브러리가 있는 곳을 지정해 주지 않아서 에러가 나는 것 같아. 보통 Makefile에 이게 지정되어 있어야 하는데 실행결과를 보니까 전혀 지정되어 있지 않네. 중간에 보면 -I /MY_CUSTOM_INCLUDE_PATH/ 라는 부분이 헤더 파일의 위치를 지정해 주는 부분이고 또 라이브러리는 뒤에 링크할 때 지정해 주게 되어 있는데 거기까지는 가지도 못 했네.
즉, "링커가 문제가 아니라, 컴파일러 옵션에 OpenGL의 헤더파일이 있는 디렉토리를 지정해 주어야 할 것 같다"고 한다.

문제의 Makefile을 들여다보고

Makefile을 다음과 같이 수정하고 (보라색 부분 추가)
COMPILEFLAGS = -I /MY_CUSTOM_INCLUDE_PATH/ -D_OSX -D_REENTRANT -I/usr/X11R6/include/

philphys: /usr/X11R6/include 밑에 GL 폴더가 있고 거기에 필요한 헤더파일들이 모두 들어 있다. 그래서 코드에선 "GL/gl.h" 하는 식으로 explicit하게 GL 폴더를 찾게 된다.

그러고 보면 아래와 같은 설명이 있었던 것이다.
Since the Linux code compiles directly against the nVidia driver's GL headers, use of a different GL driver may require some modifications to the code.

다시 컴파일 하니,
실행 결과:

설치 완료!
두 실행파일 PTAM과 CameraCalibrator이 생성되었다.


3-5. X11R6에 대하여

X11R6 = Xwindow Verion 11 Release 6

Xwindow
X.org



4. camera calibration

CameraCalibrator 파일을 실행시켜 카메라 캘리브레이션을 시도했더니 GUI 창이 뜨는데 연결된 웹캠(Logitech QuickCam Pro 4000)으로부터 입력을 받지 못 한다.

4-0. 증상

CameraCalibrator 실행파일을 열면, 다음과 같은 터미널 창이 새로 열린다.
Last login: Fri Aug  7 01:14:05 on ttys001
%% /Users/lym/PTAM/CameraCalibrator ; exit;
  Welcome to CameraCalibrator
  --------------------------------------
  Parallel tracking and mapping for Small AR workspaces
  Copyright (C) Isis Innovation Limited 2008

  Parsing calibrator_settings.cfg ....
! GUI_impl::Loadfile: Failed to load script file "calibrator_settings.cfg".
  VideoSource_OSX: Creating QTBuffer....
  IMPORTANT
  This will open a quicktime settings planel.
  You should use this settings dialog to turn the camera's
  sharpness to a minimum, or at least so small that no sharpening
  artefacts appear! In-camera sharpening will seriously degrade the
  performance of both the camera calibrator and the tracking system.

그리고 Video란 이름의 GUI 창이 열리는데, 이때 아무런 설정을 바꾸지 않고 그대로 OK를 누르면 위의 터미널 창에 다음과 같은 메시지가 이어지면서 자동 종료된다.
  .. created QTBuffer of size [640 480]
2009-08-07 01:20:57.231 CameraCalibrator[40836:10b] ***_NSAutoreleaseNoPool(): Object 0xf70e2c0 of class NSThread autoreleasedwith no pool in place - just leaking
Stack: (0x96827f0f 0x96734442 0x9673a1b4 0xbc2db7 0xbc7e9a 0xbc69d30xbcacbd 0xbca130 0x964879c9 0x90f8dfb8 0x90e69618 0x90e699840x964879c9 0x90f9037c 0x90e7249c 0x90e69984 0x964879c9 0x90f8ec800x90e55e05 0x90e5acd5 0x90e5530f 0x964879c9 0x94179eb9 0x282b48 0xd9f40xd6a6 0x2f16b 0x2fea4 0x26b6)
! Code for converting from format "Raw RGB data"
  not implemented yet, check VideoSource_OSX.cc.

logout

[Process completed]

그러므로 3-3의 문제 -- set up video source (비디오 소스 셋업) --로 돌아가야 한다.
즉, VideoSource_OSX.cc 파일을 수정해서 다시 컴파일한 후 실행해야 한다.

Other video source classes are available with libCVD. Finally, if a custom video source not supported by libCVD is required, the code for it will have to be put into some VideoSource_XYZ.cc file (the interface for this file is very simple.)

삽질...



4-1. VideoSource_OSX.cc 파일 수정



수정한 VideoSource 파일

터미널 창:
Welcome to CameraCalibrator
  --------------------------------------
  Parallel tracking and mapping for Small AR workspaces
  Copyright (C) Isis Innovation Limited 2008

  Parsing calibrator_settings.cfg ....
  VideoSource_OSX: Creating QTBuffer....
  IMPORTANT
  This will open a quicktime settings planel.
  You should use this settings dialog to turn the camera's
  sharpness to a minimum, or at least so small that no sharpening
  artefacts appear! In-camera sharpening will seriously degrade the
  performance of both the camera calibrator and the tracking system.
>   .. created QTBuffer of size [640 480]
2009-08-13 04:02:50.464 CameraCalibrator[6251:10b] *** _NSAutoreleaseNoPool(): Object 0x9df180 of class NSThread autoreleased with no pool in place - just leaking
Stack: (0x96670f4f 0x9657d432 0x965831a4 0xbc2db7 0xbc7e9a 0xbc69d3 0xbcacbd 0xbca130 0x924b09c9 0x958e8fb8 0x957c4618 0x957c4984 0x924b09c9 0x958eb37c 0x957cd49c 0x957c4984 0x924b09c9 0x958e9c80 0x957b0e05 0x957b5cd5 0x957b030f 0x924b09c9 0x90bd4eb9 0x282b48 0xd414 0xcfd6 0x2f06b 0x2fda4)



4-2. Camera Calibrator 실행


Camera calib is [ 1.51994 2.03006 0.499577 0.536311 -0.0005 ]
  Saving camera calib to camera.cfg...
  .. saved.



5. PTAM 실행


  Welcome to PTAM
  ---------------
  Parallel tracking and mapping for Small AR workspaces
  Copyright (C) Isis Innovation Limited 2008

  Parsing settings.cfg ....
  VideoSource_OSX: Creating QTBuffer....
  IMPORTANT
  This will open a quicktime settings planel.
  You should use this settings dialog to turn the camera's
  sharpness to a minimum, or at least so small that no sharpening
  artefacts appear! In-camera sharpening will seriously degrade the
  performance of both the camera calibrator and the tracking system.
>   .. created QTBuffer of size [640 480]
2009-08-13 20:17:54.162 ptam[1374:10b] *** _NSAutoreleaseNoPool(): Object 0x8f5850 of class NSThread autoreleased with no pool in place - just leaking
Stack: (0x96670f4f 0x9657d432 0x965831a4 0xbb9db7 0xbbee9a 0xbbd9d3 0xbc1cbd 0xbc1130 0x924b09c9 0x958e8fb8 0x957c4618 0x957c4984 0x924b09c9 0x958eb37c 0x957cd49c 0x957c4984 0x924b09c9 0x958e9c80 0x957b0e05 0x957b5cd5 0x957b030f 0x924b09c9 0x90bd4eb9 0x282b48 0x6504 0x60a6 0x11af2 0x28da 0x2766)
  ARDriver: Creating FBO...  .. created FBO.
  MapMaker: made initial map with 135 points.
  MapMaker: made initial map with 227 points.


The software was developed with a Unibrain Fire-i colour camera, using a 2.1mm M12 (board-mount) wide-angle lens. It also runs well with a Logitech Quickcam Pro 5000 camera, modified to use the same 2.1mm M12 lens.

iSight를 Netmate 1394B 9P Bilingual to 6P 케이블로  MacMini에 연결하여 해 보니 더 잘 된다.



'Computer Vision' 카테고리의 다른 글

UNIX references  (0) 2009.08.17
PTAM to be dissected on OS X  (0) 2009.08.17
SLAM related generally  (0) 2009.08.04
Kalman Filter  (0) 2009.07.30
OpenCV 1.0 설치 on Mac OS X  (0) 2009.07.27
posted by maetel
2009. 8. 4. 23:07 Computer Vision
SLAM 전반/기본에 관한 자료

Durrant-Whyte & Bailey "Simultaneous localization and mapping"
http://leeway.tistory.com/667


Søren Riisgaard and Morten Rufus Blas
SLAM for Dummies: A Tutorial Approach to Simultaneous Localization and Mapping
http://leeway.tistory.com/688


Joan Solà Ortega (de l’Institut National Polytechnique de Toulouse, 2007)
Towards visual localization, mapping and moving objects tracking by a mobile robot: A geometric and probabilistic approach
ch3@ http://leeway.tistory.com/628


SLAM summer school
2009 Australian Centre for Field Robotics, University of Sydney
http://www.acfr.usyd.edu.au/education/summerschool.shtml
2006 Department of Engineering Science and Robotics Research Group, Oxford
http://www.robots.ox.ac.uk/~SSS06/Website/index.html
2004 Laboratory for Analysis and Architecture of Systems  (LAAS-CNRS) located in Toulouse
http://www.laas.fr/SLAM/
2002 Centre for Autonomous Systems
Numerical Analysis and Computer Science
Royal Institute of Technology
, Stockholm
http://www.cas.kth.se/SLAM/


http://www.doc.ic.ac.uk/%7Eajd/Scene/Release/monoslamtutorial.pdf
Oxford 대학 Active Vision LabVisual Information Processing (VIP) Research Group에서 개발한 SceneLib tutorial인데, Monocular Single Camera를 사용한 SLAM의 기본 개념을 정리해 놓았다.

'Computer Vision' 카테고리의 다른 글

PTAM to be dissected on OS X  (0) 2009.08.17
PTAM test log on Mac OS X  (7) 2009.08.05
Kalman Filter  (0) 2009.07.30
OpenCV 1.0 설치 on Mac OS X  (0) 2009.07.27
cameras on mac os x  (0) 2009.07.27
posted by maetel
2009. 7. 15. 16:49 Computer Vision
Klein, G. and Murray, D. 2007.
Parallel Tracking and Mapping for Small AR Workspaces
In Proceedings of the 2007 6th IEEE and ACM international Symposium on Mixed and Augmented Reality - Volume 00 (November 13 - 16, 2007). Symposium on Mixed and Augmented Reality. IEEE Computer Society, Washington, DC, 1-10. DOI= http://dx.doi.org/10.1109/ISMAR.2007.4538852

Georg Klein
David Murray
Active Vision Laboratory, Department of Engineering Science, University of Oxford

Source CodeUsage Example


1. parallel threads of tracking and mapping
2. mapping from smaller keyframes: batch techniques (Bundle Adjustment)
3. Initializing the map from 5-point Algorithm
4. Initializing new points with epipolar search
5. mapping thousands of points


Joint Compatibility Branch and Bound (JCBB)
http://en.wikipedia.org/wiki/JCBB

RANdom SAmple Consensus (RANSAC)
http://en.wikipedia.org/wiki/RANSAC

coarse-to-fine approach

batch method
bundle adjustment
http://en.wikipedia.org/wiki/Bundle_adjustment

Structure-from-Motion (SfM)

five-point stereo
http://en.wikipedia.org/wiki/Eight-point_algorithm

5-point algorithm
http://portal.acm.org/citation.cfm?id=987623

Henrik Stew´enius, Christopher Engels, David Nist´er
Recent Developments on Direct Relative Orientation


epipolar feature search

intensity-patch descriptor

(feature-to-feature or camera-to-feature) correlation-based search

NCC (normalized cross correlation) search
http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation


Unibrain Fire-i digital camera

http://en.wikipedia.org/wiki/YUV411

FAST-10 corner detection
http://wapedia.mobi/en/Corner_detection
http://en.wikipedia.org/wiki/Corner_detection

decaying velocity model

barrel radial distortion
http://en.wikipedia.org/wiki/Distortion_(optics)

lie group SE(3)

affine warp
warping matrix <- (1) back-projecting unit pixel displacements in the source keyframe pyramid level onto the patch's plane and then (2) projecting these into the current (target) frame

inverse compositional image alignment 

Tukey biweight objective function

M-estimator
http://en.wikipedia.org/wiki/M-estimator
Zhengyou Zhang, M-estimators

Shi-Tomasi corner detector

http://en.wikipedia.org/wiki/Levenberg-Marquardt

cubic-cost matrix factorization
http://en.wikipedia.org/wiki/Cubic_function



posted by maetel
2009. 7. 3. 10:44 Computer Vision

'Computer Vision' 카테고리의 다른 글

photometric stereo 09-07-03  (0) 2009.07.06
GO MC PS references  (0) 2009.07.03
Linear Least Squares  (0) 2009.07.03
Reinhard Diestel <Graph Theory>  (0) 2009.06.16
photometric stereo 2009-06-10  (0) 2009.06.10
posted by maetel
중앙대학교 심귀보 Kwee-Bo Sim

http://alife.cau.ac.kr/korean/sub01/GAs.html

'@GSMC > 정문열: Generative Art' 카테고리의 다른 글

breadth-first search  (0) 2008.06.30
Evolutionary and Swarm Design  (0) 2008.06.27
genetic programming  (0) 2008.06.05
treemaps  (0) 2008.05.29
변수  (0) 2008.05.17
posted by maetel
2008. 7. 6. 02:06 Computation/Algorithm
Natural Computing Series

Series Editors: Rozenberg, G., Bäck, Th., Eiben, A.E., Kok, J.N., Spaink, H.P.
ISSN: 1619-7127

http://www.springer.com/series/4190?detailsPage=titles

posted by maetel
2008. 5. 21. 15:01 Techne/문성준: SuperCollider
1. SuperCollider 3 개요

- 음악 프로그래밍 언어 (cp. CSound, Max/MSP, PD)
- SmallTalk에 기반,  James McCartney 개발
- 활용: Calculator, Sound Synthesis & Analysis, DSP(Effector), Algorithmic Composition, ...
- 특장점:
    - object-oriented style
    - real-time interpreter
    - 하나의 package 안에서 GUI를 활용한 real-time 제어
    - on-the-fly 프로그래밍
    - OSC (Open Sound Control) protocol 지원
    - 낮은 CPU 점유율

2. SuperCollider 설치
    home: http://audiosynth.com/
    tutorial: http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6
    forum: http://www.newscores.com/scforum/

invalid-file

Computer Music with examples in SuperCollider 3 David Michael Cottle



3. Post Window & Basic Key command
- Post Window: booting 과정에서 로딩되는 라이브러리의 상태를 보여 주며, interpreter의 메시지, 프로그래밍의 에러 등을 보여 준다.
- key command
    enter (return 아님): run
    command + . : stop playing
    command + D : help

4. Basic Syntax
colons: keyword arguments
semi-colons: statement의 끝
commas: list에서 item을 분리할 때 사용
periods: 메시지를 처리할 때 사용

- delimiters:
    parenthes () : argument list를 전달하거나 연산처리에서 사용
    curly brackets {} : function을 정의할 때 사용

5. Basic Synthesis

// week 1

246*456

"hello".speak

rrand(64,127)

3.rand

{SinOsc.ar(440,0,0,1)}.play;

{SinOsc.ar(440,0,0,1)}.scope;

SinOsc.ar(440,0,0,1).play;

{SinOsc.ar(440,0,0,1}.play;



// 5. Basic Synthesis

{SinOsc.ar(440,0,0,1)}.play

(// double click on the inside of any bracket to highlight the code contained within
)

(// select this code within the outer parentheses
// then press the ENTER key on the numberic keypad
{SinOsc.ar(440,0,0,1)
+
Pulse.ar(443,0,6,0,0.05)
}.play
)

{SinOsc.ar(300,0.5)}.scope

{Saw.ar(4000,0.2)}.scope

{Pulse.ar(440,0.6,0,1)}.scope


'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 4: Envelop Generator in SuperCollider  (0) 2008.05.28
week 3: B. Synthesis I - Envelopes  (0) 2008.05.21
week 2: B. Synthesis I - Modulation  (0) 2008.05.21
SupperCollider  (0) 2008.05.17
posted by maetel
2008. 5. 21. 09:46 Computation/Algorithm
http://ref.daum.net/item/928715
국제통신컨퍼런스99: A Multi-Resolution Video Scheme for Multimedia Information Servers in Mobile Computing Environment

A nonlinear interpolation scheme for still color image resolution enhancement introduced. It is based on the use of a Self-Creating and Organizing Neural Network, which extracts feature of local pixel distribution and presents optimal interpolation coefficient. Interpolation order is restricted to one and proposed algorithm is compared to one linear and two nonlinear first order interpolation algorithms. Experimental results indicated that proposed algorithm produce better quantitative results than other techniques.


'Computation > Algorithm' 카테고리의 다른 글

[Gonzalez & Woods] Digital Image Processing  (0) 2008.07.08
Natural Computing Series  (0) 2008.07.06
sorting algorithms  (0) 2008.03.24
fractal flame  (0) 2007.12.29
steering vector  (0) 2007.06.25
posted by maetel
2008. 3. 24. 15:09 @GSMC/정문열: Generative Art

data structure

ref.
http://www.webopedia.com/TERM/d/data_structure.html

In programming, the term data structure refers to a scheme for organizing related pieces of information. The basic types of data structures include:
  • files
    • lists
  • arrays
  • trees
  • Each of these basic structures has many variations and allows different operations to be performed on the data.


    ref.
    http://en.wikipedia.org/wiki/Data_structure

    ref.
    http://cplusplus.com/doc/tutorial/structures.html




    tree structure


    사용자 삽입 이미지

    ref.
    http://www.webopedia.com/TERM/T/tree_structure.html

    ref.
    Steve Oualline, Practical C Programmin, 292-293p

    root
    node
    leaves

    "Recursion is extremely useful with trees. Our rules for recursion are:
    1. The function must make things simpler. This rule is satisfied by trees, because as you descend the hierarchy there is less to search.
    2. There must be some endpoint. A tree offers two endpoints, either you find a match, or you reach a null node.




    ref.
    http://en.wikipedia.org/wiki/Tree_%28data_structure%29


    binary search tree
    http://en.wikipedia.org/wiki/Binary_search_tree



    Eric F Charlton : Tree Data Structures


    '@GSMC > 정문열: Generative Art' 카테고리의 다른 글

    [이선애] study 1  (0) 2008.03.28
    class 3/27  (0) 2008.03.27
    class 3/20  (0) 2008.03.20
    references for basic programming  (0) 2008.03.17
    Inversion Method  (0) 2008.03.08
    posted by maetel
    2007. 5. 20. 01:20 Method/VFX
    http://doi.acm.org/10.1145/357318.357320
    invalid-file

    Willian T. Reeves <Particle Systems—a Technique for Modeling a Class of Fuzzy Objects>, ACM Transactions on Graphics, Vol.2, no.2, April 1983, Page 91-108


    links:
    LucanFilm Ltd.
    Siggraph: Particle Systems


    1
    Particle systems model an object as a cloud of primitive particles that define its volume.
    Stochastic processes are used to generate and control the many particles within a particle system.

    The representation of particel systems :
    1. as clouds of primitive particles that define its volume (not by a set of primitive surface elements)
    2. depending on time (;changing form and moving with the passage of time)
    3. using stochastic processes (to create and change an object's shape and appeareance)

    Advantages of the particle system over classical surface-oriented techinique :
    1. A particle is a much simpler primitive than polygon.
      • efficiency of computation time
      • easier removing temporal aliasing  effects (by Motion blurring of fast-moving objects)
    2. The model definition is procedural and is controlled by random numbers.
      • efficiency of human design time (to obtain a highly detailed model)
      • ability to adjust the level of detail (to suit a specific set of viewing parameters)
        • fractal surfaces
    3. It is easier to model "alive" objects changing form over a period of time.

    keywords:
    image synthesis
    stochastic process
        Stochastics
    fractal surfaces
    procedure
    random numbers
    stochastic modeling
    fractal modeling


    2. BASIC MODEL OF PARTICLE SYSTEMS
    A particle system is a collection of many minute particles that together represent a fuzzy object. Over a period of time, particles are generated into a system, move and change from within the system, and die from the system.

    frame buffer =>
    during each interval of time = at a given frame

        2.1 Particle Generation
    NParts_f = (MeanParts_sa_f + Rand()*VarParts_sa_f)*ScreenArea
        MeanParts_sa_f = InitialMeanParts_sa + deltaMeanParts_sa*(f-f_0)

        2.2 Particle Attributes
    initial position => the origin of a particle system
    initial velocity
    initial color <= average RGB values and the maximum deviation from them
    initial transparency
    initial size
    shape => a region of newly born random particles about its origin
    lifetime
    A particle's initial color, transparency and size are determined by
    mean values like MeasSpeed, maximum variations like VarSpeed of below:
    InitialSpeed = MeanSpeed + Rand()*VarSpeed

    사용자 삽입 이미지
    More complicated generation shapes based on the law of nature or on chaotic attractors have been envisioned.
        eg. streaked spherical shapes => motion-blur particles

        2.3 Particle Dynamics
        2.4 Particle Extinction
    • when a particle's lifetime reaches zero
    • when the intensity of a particle, calculated from its color and transparency, drops belowa specified threshold
    • when a particle moves more than a given distance in a given direction from the origin of its parent particle system
        2.5 Particle Rendering
            (1) Explosions and fire, the two fuzzy objects we have worekd with the most, are modeled well with the assumption that each particle can be displayed as a point light source. (Other fuzzy objects, such as clouds and water, are not.)
            (2) Since particles do not reflect but emit light, shadows are no longer a problem.
        2.6 Particle Hierarchy


    3. USING PARTICLE SYSTEMS TO MODEL A WALL OF FIRE AND EXPLOSIONS
    The Genesis Demo sequence from the movie Star Trek II: The Wrath of Khan was generated by the Computer Graphics project of Lucasfilm Ltd.

    사용자 삽입 이미지
    The initial direction of the particles' movement was constrained by the system's ejection angle to fall within the region bounded by the inverted cone. As particles flew upward, the gravity parameter pulled them back down to the planet's surface, giving them a parabolic motion path. The number of particles generated per frame was based on the amount of screen area covered by the particle system.
    Varying the mean velocity parameter caused the explosions to be of different heights.
    The rate at which a particle's color changed simulated the cooling of a glowing piece of some hypothetical material.

    When a motion picture camera is used to film live action at 24 frames per second, the camera shutter typically remains open for 1/50 of a second. The image captured on a frame is actually an integration of approximately half the motion that occurred between successive frames. An object moving quickly appears blurred in the individual still frames.

        ref. Tom Duff

        cf. seed value
     



    4. OTHER PPLICATIONS OF PARTICLE SYSTEMS
        4.1 Fireworks

    posted by maetel
    2007. 4. 30. 17:52 Computation/Algorithm
    The term “particle system” was coined in 1983 by William T. Reeves as he worked to create the “Genesis” effect at the end of the movie, Star Trek II: The Wrath of Khan.

    ref.
    traer.physics

    “A particle system is a collection of many many minute particles that together represent a fuzzy object. Over a period of time, particles are generated into a system, move and change from within the system, and die from the system.”
    invalid-file

    Willian T. Reeves <Particle Systems—a Technique for Modeling a Class of Fuzzy Objects>

    ref.
    Siggraph: Particle Systems
    Evans & Sutherland @http://www.es.com



    invalid-file

    Karl Sims <Particle animation and rendering using data parallel computation>

    http://doi.acm.org/10.1145/97879.97923
    ref.
    Karl Sims home page
    wikipedia: Karl Sims

    invalid-file

    Alain Fournier (University of Toronto) & Don Fussell (The University of Texas at Austin) & Loren Carpenter (Lucasfilm) <Computer Rendering of Stochastic Models>

    http://doi.acm.org/10.1145/358523.358553


    TGLTLSBFSSP: Models
    wikipedia: Particle_system
    Lucasfilm Ltd. @http://www.lucasfilm.com
    GenArts @http://www.genarts.com

    'Computation > Algorithm' 카테고리의 다른 글

    steering vector  (0) 2007.06.25
    Boids  (0) 2007.06.21
    Pseudo-random  (0) 2007.04.27
    noise  (0) 2007.04.21
    Perlin Noise  (0) 2007.04.21
    posted by maetel