Meta tags:
Headings (most frequently used words):
2011, monday, 28, tuesday, may, points, february, 2009, from, circles, easyvision, in, vanishing, netbook, metric, tensor, diagrams, gea, siftgpu, tutorial, rectification, june, links, archive, blog, 2008, saturday, 12, january, thursday, 14, 22, 02, march, wednesday, 17, interest,
Text of the page (most frequently used words):
the (106), can (25), and (24), #share (21), #points (19), #this (18), for (17), are (16), that (13), two (12), but (10), #with (10), #which (10), #from (10), have (9), #more (9), #image (9), 2011 (8), haskell (8), #circles (7), alberto (7), pinterest (7), facebook (7), twitter (7), email (7), posted (7), blogthis (7), interest (7), comments (7), camera (7), circular (7), also (7), some (6), easyvision (6), find (6), images (6), not (5), very (5), any (5), ellipses (5), 2009 (5), them (5), many (5), must (5), point (5), program (4), plane (4), rectification (4), computed (4), first (4), intersections (4), projective (4), implementation (4), library (4), will (4), one (4), instance (4), other (4), try (4), general (4), real (4), use (4), simple (4), may (4), get (4), interesting (4), here (4), level (4), invariant (4), vision (4), only (4), metric (4), following (3), live (3), sift (3), paper (3), time (3), system (3), screenshot (3), polynomial (3), they (3), descriptor (3), detected (3), fast (3), 640x480 (3), directly (3), like (3), adjustment (3), january (3), applications (3), february (3), run (3), conics (3), scale (3), rotation (3), 2008 (3), using (3), screenshots (3), now (3), problem (3), code (3), object (3), recognition (3), 2007 (3), all (3), experiments (3), about (3), siftgpu (3), based (3), computer (3), move (3), easily (3), transformation (3), most (3), local (3), matching (2), compute (2), solved (2), installation (2), recently (2), intersection (2), trying (2), bigger (2), were (2), things (2), well (2), complex (2), solution (2), solve (2), gpu (2), position (2), tutorial (2), degree (2), form (2), instructions (2), above (2), future (2), was (2), mathematical (2), demo (2), way (2), scene (2), finally (2), then (2), really (2), long (2), location (2), several (2), combinators (2), just (2), method (2), write (2), main (2), works (2), examples (2), useful (2), known (2), objects (2), reduced (2), parameters (2), monday (2), posts (2), working (2), work (2), full (2), matrix (2), different (2), out (2), show (2), without (2), you (2), shows (2), there (2), updated (2), package (2), results (2), recent (2), structure (2), tuesday (2), required (2), space (2), bundle (2), gea (2), explicit (2), tangents (2), detector (2), common (2), fantastic (2), tensor (2), include (2), good (2), detection (2), algorithms (2), scales (2), start (2), video (2), course (2), runs (2), graphic (2), hmatrix (2), multiview (2), than (2), geometry (2), vanishing (2), fps (2), june (2), march (2), quite (2), define (2), lines (2), blog (2), skip (2), extremely (2), currently (2), excellent (2), netbook (2), checked, indirectly, performed, found, their, developed, constructions, visible, interpretation, these, back, beautiful, original, fundamental, internal, usb, scaling, unknown, perfectly, ubuntu, scenes, obviously, static, slower, surprised, bad, usable, synchronization, class, demos, views, built, three, application, supported, wednesday, cuda, htensor, translation, iccv, diagrams, affine, undergoes, including, help, webcams, isotropic, ipp, tests, installed, whole, except, encode, cheap, planet, right, imaged, invariants, representation, virtual, insert, recovered, inferred, length, focal, principal, ratio, aspect, normal, related, horizon, true, separate, solutions, conjugate, pairs, available, solver, gsl, companion, eigenvalues, methods, closely, corresponding, simpler, action, easyvisio, joining, part, orange, yellow, inv, eigenvectors, packages, dual, tools, uses, looks, source, pipeline, windows, monitoring, intercalate, steps, functions, pure, composition, numeric, closed, angles, incidence, touches, because, illustrated, result, visual, nice, observed, among, transformations, preserved, tangency, front, rewritten, view, perspective, become, suffers, belong, additional, infinity, allow, interestingly, possibly, intersect, extracted, themes, higher, principle, elliptical, axes, center, has, circle, unit, idea, roots, ones, experience, conic, estimate, shapes, contours, achieve, represented, components, connected, extraction, thresholding, gray, fixed, regions, salient, involve, subproblems, containing, presented, computers, japan, filters, preparing, used, each, distributions, gradient, few, consolidate, step, next, parallel, done, gaussian, information, threaded, single, note, case, acceptable, could, although, 3fps, laptop, modern, 15fps, detailed, post, size, after, poor, improved, best, people, something, explain, know, version, released, delay, describe, saturday, hessian, determinant, allen, woody, slow, warping, current, implemented, low, 320x240, half, probably, home, appropriate, extrema, typically, longer, segmentation, fields, advances, produced, older, atom, function, subscribe, welcome, archive, december, november, october, links, group, research, page, personal, response, celebrated, however, explicitly, algorithm, unoptimized, accuracy, sizes, blobs, sigma, analyzing, downsampling, levels, smoothed, speed, lowe, worried, stage, satisfactory, obtains, indicate, reference, pyramid, gaussians, differences, approximated, laplacian, design, don, visiting, spent, ideas, sorry, thursday, changchang, octave, speedup, big, smallest, least, 8600m, modules, optional, desired, portable, basic, install, cabalized, clearly, hardware, specific, decided, prototypes, indexing, optimal, kyoto, attended, cvpr, large, trafalgar, dubrovnik, taken, correspondences, reconstruction, close, remember, gets, sparse, faster, proposed, epipolar, global, obtained, friend, old, accepted, happy, requires, feature, correct, still, opens, reformulated, discover, often, better, understood, essential, suggests, strongly, ugly, likely, improvement, compiles, zoom, observe, programs, elegant, verbose, too, definition, noticed, understand, possibilities, comment, need, appreciate, small, number, insect, leg, world, book, prototype, should, power, computing, provided, includes, detail, depending, descriptors, obtain, 9800, nvidia, standard, infeasible, considered, problems, interface, sidebar,
Text of the page (random words):
vanishing points skip to main skip to sidebar vanishing points computer vision haskell tuesday may 17 2011 metric rectification from circles the circular points encode the metric structure of the 2d plane they are invariant to rotation isotropic scaling and translation if the plane undergoes a more general e g affine or projective transformation they move to some unknown location metric rectification can be performed if we find the image of the circular points and move them back to their original location these points are not directly visible in the image but can be indirectly found using for instance the images of right angles hz the circular points can also be extracted from the images of two circles ic any two circles in general position intersect at two possibly complex points interestingly if we allow points at infinity there are two additional intersection points the circular points 1 i 0 and 1 i 0 which belong to all circles if the plane suffers a projective transformation the circles become general conics in a perspective view with the circles in front of the camera the images are ellipses incidence and tangency are preserved by projective transformations so the images of the circular points are among the intersections of the observed ellipses this nice visual geometry result is illustrated by a simple easyvisio demo i like it because it touches many interesting mathematical themes i have recently rewritten the code to use higher level combinators to achieve metric rectification of a plane containing the image of several circles we must solve the following subproblems all of them involve interesting mathematical results 1 detection of salient regions in the image we can use fixed gray level thresholding and extraction of connected components which can be represented by reduced contours 2 find elliptical shapes and estimate the conic parameters 3 compute the intersection of two ellipses e g the two bigger ones we must find the roots of a polynomial of degree 4 it is a good idea to move the problem to a reduced form in which one of the ellipses is the unit circle and the other one has only 4 parameters center and axes a polynomial of degree 4 can in principle be solved in closed form but we can also try simpler numeric methods we can compute the eigenvalues of the companion matrix or directly use the gsl polynomial solver also available from hmatrix we get two pairs or complex conjugate solutions which define two real lines we can easily separate the true circular points which define the horizon from the other normal intersections intersections of the two bigger ellipses real part and lines joining them the rectification transformation can be easily computed from the imaged circular points if the aspect ratio and principal point are known the focal length can be inferred and a full camera can be recovered then we can insert virtual objects in the scene and show the camera position in 3d space it is also interesting to show a graphic representation of the projective invariants of two conics they are closely related to the common tangents which can be computed as intersections of the corresponding dual conics eigenvectors of c1 inv c2 yellow and common tangents orange the demo program is just a composition of pure functions for the above steps we intercalate several monitoring windows in the pipeline the source code looks simple but it uses many tools from the easyvision packages here is a video of the program in action posted by alberto at 7 43 pm 3 comments email this blogthis share to twitter share to facebook share to pinterest wednesday march 02 2011 easyvision in a netbook i have updated the installation instructions including help for the recent ipp 7 0 in one of the tests i have installed the whole system except the cuda package for sift in a cheap netbook with ubuntu 10 10 the applications obviously run slower but i am surprised to find that most of them are perfectly usable i can use it for class demos the built in camera works without any problem and two more usb webcams are supported the following screenshot shows an application working with three live views synchronization is really bad but in static scenes we can try out many interesting multiview experiments posted by alberto at 12 48 pm no comments email this blogthis share to twitter share to facebook share to pinterest tuesday february 22 2011 tensor diagrams in 2009 we attended iccv at kyoto visiting japan was a fantastic experience we presented a graphic interpretation of multiview geometry for instance this is the beautiful internal structure of the fundamental matrix all tensor constructions in the paper were developed and checked with the haskell package htensor posted by alberto at 9 48 pm no comments email this blogthis share to twitter share to facebook share to pinterest monday february 14 2011 gea i m sorry that i have not updated this blog for so long there are many ideas to try out but i have decided that at least i must include the screenshots of the prototypes i am working on if only to remember them in the future we are happy to have a paper accepted at cvpr 2011 so i will start with the screenshot of an old friend this is obtained by a haskell implementation of the gea global epipolar adjustment method proposed in the paper it is faster than sparse bundle adjustment and gets a solution which is very close to the optimal one here are two more 3d reconstruction examples from point correspondences taken from bundle adjustment in the large trafalgar dubrovnik posted by alberto at 7 31 pm no comments email this blogthis share to twitter share to facebook share to pinterest thursday may 28 2009 siftgpu the library now includes an interface to the excellent changchang wu s gpu implementation of sift vision problems that were recently considered infeasible can now be easily solved in standard computers with a nvidia 9800 gt we obtain interest points and descriptors at 25 fps for 640x480 images depending on the level of detail in the scene fast gpu point matching is also provided using a 8600m gs we get 10 fps most of the time is spent in the smallest scales so we can get a big speedup if we start from octave 1 to appreciate the computing power of siftgpu you should run the detector on a live camera here are some screenshots of a simple object recognition prototype first of course the h z book then real world haskell detected just from a leg of the insect this works very well but the number of known objects is small we need a fast method for feature indexing siftgpu requires specific hardware but it is extremely useful clearly easyvision must be finally cabalized so that we can install a basic portable system and any desired optional modules posted by alberto at 1 17 pm 1 comment email this blogthis share to twitter share to facebook share to pinterest monday january 12 2009 tutorial after a long delay i have finally released a first version of a tutorial for easyvision i know that this system is only useful to me but trying to explain something to other people is the best way to find things that can be improved have a poor design or more probably that i don t really understand for instance i noticed that the definition of camera combinators was too verbose we can now write more elegant programs like this main run camera observe f g h zoom in haskell if a program compiles it is very likely correct also ugly code strongly suggests that the essential problem is not well understood trying to write a better solution we often discover that it can be reformulated in a more general way and this opens up still more possibilities for improvement posted by alberto at 4 21 pm 6 comments email this blogthis share to twitter share to facebook share to pinterest saturday june 28 2008 interest points recent algorithms for detection of scale and rotation invariant interest points have produced fantastic advances in many computer vision fields for instance explicit segmentation is no longer required in some object recognition applications interest points are typically computed as local extrema in the scale space of an appropriate response function the celebrated sift by d lowe is based on the laplacian which is approximated by differences of gaussians in an image pyramid i d like to include in the easyvision library a reference implementation of a good interest point detector some experiments indicate that the determinant of the hessian obtains very satisfactory results in a first stage i am not very worried about speed so we will explicitly work with the full image smoothed at different levels without any downsampling the following screenshot shows the interest points detected on a 640x480 image by analyzing 15 scales up to sigma 25 blobs of different sizes are detected with excellent accuracy woody allen s interest points this extremely unoptimized algorithm is however quite fast with half size images 320x240 we get more than 15fps in a modern laptop and at 640x480 it runs at 3fps this is of course not real time although it could be acceptable for some live video applications in any case note that the program currently runs single threaded most of the time is required by the gaussian filters which can be done in parallel this is the next step i will try to solve but first i must consolidate a few things in the library a simple local descriptor based on local gradient distributions is also computed for each point which can be used for object recognition and image matching the current implementation of the rotation invariant descriptor based on explicit image warping is quite slow in the above examples we work with a scale only invariant descriptor i am currently preparing more detailed installation instructions and other information about the library in a future post i will describe some low level algorithms implemented directly in haskell posted by alberto at 8 50 pm no comments email this blogthis share to twitter share to facebook share to pinterest older posts home subscribe to posts atom welcome here you can find screenshots and comments about my computer vision experiments using haskell blog archive may 2011 1 march 2011 1 february 2011 2 may 2009 1 january 2009 1 june 2008 1 january 2008 1 december 2007 1 november 2007 1 october 2007 2 links easyvision hmatrix my research group personal page planet haskell
|