분류없음2007.06.25 18:25




from Google techtalk
신고
Creative Commons License
Creative Commons License
Posted by myditto
분류없음2007.06.09 14:42
확대

위 사진은 제가 개인적으로 찍은 사진이며, 소중한 분들이니깐 초상권 조심해야겠죠? ^^
다른 분들이 워낙 엄청난 무기(?) 카메라와 렌즈를 가지고 오셔서 저는 몇 장 안 찍었습니다.
다음 기회에는 정진호님께 특강을 받았음합니다.  또 이런 즐거운 만남을 기약하며...즐거운 주말되어요.
신고
Creative Commons License
Creative Commons License
Posted by myditto
search2007.06.06 23:38
사용자 삽입 이미지

barcamp Seoul


barcamp
를 처음으로 참가하다... 워낙 내 자신을 드러내지 않는 성격에 이런 오프라인 모임에 나가기가 쉽지 않았습니다. 하지만 이제는 내가 하고 있는 일들이 사용자들에게 얼마나 유익한 일들인지 알리고자 한다. 처음 만나는 사람을 본다는 생각에 설레이기도 하며
겁이 나기도 했다. 내가 과연 생각했던대로 내 생각을 잘 전달할 수 있을까? 개인적으로는 나에게는 가르침의 달란트가 없다는 걸 잘 알기 때문이다. 진정으로 절대 고수들은 어려운 내용도 아주 쉽게 설명할 수 있다. 예를 들면 파인만 아저씨의 물리책 말이다.. 아직 난 고수는 아닌 것 같다. 내공을 쌓아야겠다... 아래는 발표한 자료 content based image retrieval 이다.
처음 만나는 분들이지만, 웹 이라는 울타리 안에서 다양한 얘기를 들으니 책임감도 느끼고 배운 내용도 참 많았다. 내 발표 내용은 듣는 분들에게 조금 어려운 내용이라는 생각과 함께 다음에는 좀 더 쉬운 이미지 검색 얘기를 해야겠다. 그러고 보니 블로그를 연지 처음으로 한국말로 썼네...
신고
Creative Commons License
Creative Commons License
Posted by myditto
media2007.06.01 09:49


Speakers:
  • Steve Jobs
    Apple
  • Steve Ballmer
    Microsoft
  • Steve Case
    Revolution
  • John Chambers
    Cisco Systems
from wsj

신고
Creative Commons License
Creative Commons License
Posted by myditto
TAG Bill, DIGITAL, Jobs, wsj, usa
media2007.05.09 18:15
http://upcoming.yahoo.com/event/184920/

CHI 2008 focuses on the balance between art and science, design and research, practical motivation and the process that leads the way to innovative excellence. It is about balance in our rapidly evolving field, the balance between individuals and groups, collocated and remote, stationary and mobile, in both our local and global communities.

CHI 2008 will be held in Florence, Italy, birthplace of the Renaissance, and home to great artists and scientists. This is the city of Leonardo Da Vinci, who spoke of balance in saying “where the spirit does not work with the hand, there is no art.”

from http://www.chi2008.org/index.html
http://maps.google.com/maps?t=h&om=1&msa=0&msid=103961847564933368015.00000112701ca42596a54&ie=UTF8&ll=43.768603,11.243831&spn=0.003107,0.006555&z=18

신고
Creative Commons License
Creative Commons License
Posted by myditto
TAG chi2008
분류없음2007.05.03 14:16

http://www.web2expo.com/pub/w/53/presentations.html


신고
Creative Commons License
Creative Commons License
Posted by myditto
search2007.01.23 18:19

from : http://filebox.vt.edu/users/jegrant/stuff/kdtrees.html

Spatial Data Structures

K-D Trees, PR Quadtrees

K-Dimensional Trees work with "k" dimensions not just 1 dimension as BSTs do
Point Regional (PR) Quadtrees have 2k branches at each node given data in a k-dimensional space
Multi-dimensional queries

Range queries

Applications

Geographic Information Systems (GIS)
Computer Graphics
Robotics

--------------------------------------------------------------------------------


K-D Trees: a Generalization of BSTs

Binary Search Trees search using 1 key

Some data naturally contain multiple dimensions

Given k-dimensional data, a K-D tree indexes dimension 0 of the data at level 0, dimension 1 at level 1, etc.


Figure 13.8 (b) from book

 

Definition: the discriminator is the search key at each level i

calculation of discriminator : i mod k

Given 3-dimensional data indexed by (x,y,z),

y is the discriminator if the level number of the k-d tree is 10 since 10 mod 3 = 1


--------------------------------------------------------------------------------


K-D Trees ….

At ith level of the tree, discriminator indexes the tree exactly as for a BST: select i mod kth coordinate of data item and compare it with i mod kth coordinate of value stored at node of K-D tree.

If (data value < node value)

    take-left-branch

else

    take-right-branch // >= case

For 2-D space, K-D tree subdivides space into rectangles. The direction of subdivision alternates among the dimensions:


 


Figure 13.8 (a) from book


--------------------------------------------------------------------------------

K-D Tree Find Operation

Simple modification of BST search.

Must determine correct discriminator at each level (= level number mod k) to find out what coordinate of key to use for comparison at that level


KDNode* KD::Kdfindhelp(KDNode* rt, ELEM val, int lev, int K) const

{

   //lev: current level (mod K); K: number of dimensions

   //dkey(val, i) returns the key value of val for dimension i

   if (rt == NULL)

      return NULL; // Empty tree

   else if (val == rt->value)

      return rt; // Found it

   else if (dkey(val, lev) < dkey(rt->value, lev))

      return Kdfindhelp(rt->left, val, (lev+1) % K, K);

   else

      return Kdfindhelp(rt->right, val, (lev+1) % K, K);

}

Example: find (55, 80) in


Figure 13.8 (b) from book


--------------------------------------------------------------------------------

Deleting Nodes in a K-D Tree

Deletion similar to BST but slightly harder.

Step 1: find node to be deleted

Step 2: two cases must be handled

No children - replace ptr to node by NULL

Has children - replace node by minimum node in right subtree using KDfindmin (harder to find than in a BST!)

If no right subtree exists, then first move left subtree to become right subtree and proceed with usual delete procedure using KDfindmin

Special note: node found by KDfindmin may occur in middle of tree. Recursive call to the delete routine must be used to replace it (careful!)


--------------------------------------------------------------------------------


KDfindmin

Must search both left and right subtrees to find minimum value for a given discriminator


KDNode* KD::KDfindmin(KDNode* rt, int discrim, int level, int K)

{

    // discrim: discriminator key used for minimum search

    // level: current level(mod K); K: # of levels in key

    KDNode *temp1, *temp2;

    if (rt == NULL)

      return NULL;

    temp1 = KDfindmin(rt->left, discrim, (level+1)%K, K)

    if (discrim != level)

   {

       //Min val could be on l/r side

       temp2=KDfindmin(rt->right, discrim, (level+1)%K,K);

       if((temp1 == NULL) || ((temp2 != NULL) && (dkey(temp2->value,discrim) <

               dkey(temp1->value,discrim))))

           temp1 = temp2;   //in line above, rt subtree has smaller key value

    }

    // temp1 has the smallest value in children (if any)

    if ((temp1 == NULL) || (dkey(rt->value,discrim) <

               dkey(temp1->value,discrim)))

          return rt;

    else

         return temp1;

}

Now delete C(70, 10) from


Figure 13.8 (b) from book


--------------------------------------------------------------------------------

K-D Tree Range Query

Problem: find all k-dimensional points within distance 'D' of point P

Must search through K-D tree using Euclidean distance formula

If any coordinate in the K-D tree is more than distance 'D' away from point P's corresponding coordinate, then no need to search one of the subtrees below that node.

Example: if D=10, y-coordinate of node is being examined and is 13 less than the y-coordinate of P, then no search needed of left subtree below that node


void KDRegionSearch(KDNode* rt, ELEM val, int D, int level, int K)

{

    // val: search key; D: search radius;

    // level: current level (mod K); K: # of dimensions

    // Check if record at rt is in circle

    if(InCircle(key(val), D, key(rt->value)))

       printout(rt->value);//Do appropriate action with node

    if(dkey(rt->value,level)>(dkey(val,level)-D)      //Go left

       KDRegionSearch(rt->left, val, D, (level+1)%K,K);

    if(dkey(rt->value,level)<(dkey(val,level)+D))     //Go right

       KDRegionSearch(rt->right, val, D, (level+1) % K, K);

 }

Function 'InCircle' uses Euclidean distance to test if point is within distance D of query point

신고
Creative Commons License
Creative Commons License
Posted by myditto

티스토리 툴바