Hyperspectral imaging

General, Mathematics, Science — Alex @ 12:00 am

One of my friends is going to be working at the Office for Naval Research this summer, using FPGAs to implement a parallel processing system specifically for implementing an algorithm for analyzing hyperspectral images. He’s attempting to read through a paper on the algorithm, “Exploiting Manifold Geometry in Hyperspectral Imagery”. Naturally, I got curious: what exactly is hyperspectral imaging, and what does it have to do with manifolds?

It seems that hyperspectral imaging refers to the gathering of many (hundreds) of remote images of an area representing its reflectance at difference wavelengths. Each pixel in a hyperspectral image has a reflectance spectrum associated with it, and materials can theoretically be identified by their characteristic reflectance spectrums; e.g., the mineral hematite strongly absorbs visible light. These pure spectra are called endmembers. Practically, because of the spatial resolution of the images taken (maybe 20 square meters per pixel when a satellite at an altitude of 20km is used to take the image), each pixel contains a mixture of material, so each pixel represents a mixture of endmembers. If you’re lucky, this is a macroscopic mixture, in which each photon only interacts with one material, so the resulting pixel is a linear combination of endmembers. More often, due to shadowing, atmospheric interference, the spectrum of the illumination source (probably the sun), the orientation of the surface imaged relative to the illumination source, etc., the mixture is intimate (nonlinear).

The problem is, given exemplar endmembers, to accurately classify the materials in the image. I’m not clear on the approaches being used, but it seems they all can be divided into linear and non-linear models, like Principal Components. It seems the manifold model described in the paper falls into the non-linear category, and can be used not only to segment images, but also to compress them. I think that the point at which manifolds come in is that each material can be represented as a cloud of points in some high dimensional space, corresponding to interclass variance, and then these clouds can be modeled as manifolds. Something in that vague direction.

Possibly relevant posts:

Knife of Dreams

General — Alex @ 9:47 pm

Grading’s done! I might have taken off a little too many points on the eigensystem problems– apparently the profs teaching the class taught slightly different methods of tieing off the power method– but 4 points on one assignment won’t significantly alter anything, right?

I was to spend the rest of the day studying for my Real Vars final, but… of course, I instead read Jordan’s latest installment in the Wheel of Time series, “Knife of Dreams.” I’d checked it out probably a week and a half ago, but was wary of reading it because I thought I had forgotten all the characters and the many plotlines. And there are many plotlines to keep up with. I find it stupefying that the guy has the gall to write such involved books over such a long period of time, and yet not provide a plot summary or even a dramatis personae. Luckily, it’s coming back to me as I read: if not the names, at least the general idea of what’s gone on before. And if I should need more detail, there’s always wikipedia’s hyperlinked page on Robert Jordan.

Whenever I read a Jordan novel, it naturally follows that I start thinking of the Sword of Truth novels. Those have hit the dumps– IMO, Richard and Kahlan got married way too soon for the health of the series, sort of like a fictional premature ejaculation. Marriage should have been reserved for somewhere in the denouement of the series, after a suitable climax.

Possibly relevant posts:

Continuous least squares

Mathematics — Alex @ 9:52 am

The random variables approach to least squares fitting is the best I’ve seen yet. I’m grading numerical methods homework, and one of the problems is

Use continuous least squares to fit f(x) = \sin(x) + \cos(x) in terms of f_a(x) = a_0 + a_1 x + a_2 x^2 in the interval 0 \leq x \leq \frac{\pi}{2}. Find a_0, a_1, and a_2.

I remember that when I took this class, I could calculate the correct values by plugging and chugging, but I wasn’t exactly clear on what I was doing. But if you reformulate this by considering f(x), 1, x, and x^2 to be random variables, and use the approach of minimizing the expected error in using a linear fit, it is much more intuitively clear what’s going on. Too bad that the concepts involved aren’t taught at a sophomore level– I’d much rather spend the time learning what a random variable is, and about correlations, than memorizing a set of rules for least squares fitting.

In general, it seems that a lot of the stuff that was opaque when I took the class has become clearer with the passage of time, and my increasing familiarity with how to convert intuition to solid mathematics. For example, the (vector) Newton method used to solve systems of differential equations is now obviously a straightforward generalization of the one-dimensional Newton’s method. This makes sense now that I’ve encountered the Jacobian in other contexts.

It seems that the students would benefit a lot more if this course were turned into a two semester course, where the preliminaries: random vars, jacobians, and any other useful mathematical tools were taught in the first semester, and the numerical applications taught in the second. That way they’d be more likely to understand the numerical methods, and therefore remember them, and they’d have been exposed to the mathematical underpinnings which are no doubt useful in other engineering applications. But there’s probably not a chance in hell of that happening.

Possibly relevant posts:

A companion to Boyd and Vandenberghe’s book

Mathematics — Alex @ 6:58 pm

Another guy at Stanford wrote a companion book to Convex Optimization: Convex Optimization and Euclidean Distance Geometry. You can buy it for only $20. I’ve only glanced at the TOC and skimmed the prelude– and I haven’t gotten out of chapter 2 of Boyd’s book yet– but it seems to be pretty much in the same style as Convex Optimization. The contents (again, judging solely from the TOC) look exciting and practically useful. Definitely added to my summer reading list. BTW, if you look hard enough, you can find the pdf for individual chapters; but it’s only $20, so support a starving engineer and buy it…

Possibly relevant posts:

Summer Plans

General — Alex @ 12:52 pm

School is almost over: I have my only final this Wednesday, on functions of a real variable, and that’s open book. Good thing, or bad thing? Other than that, I have three assignments to grade for the engineering math class I’m proctoring.

My graduations are on the 13th (EE) and 14th (math). After that, I’ll be free of UH! Well, except I’ll continue working with Papadakis’ group for the summer until I leave in mid-August to go to CalTech.

I originally planned to spend my summer focusing on the math I learned or should have learned as an undergrad, but I doubt that’ll get very far. I’ll be satisfied to refresh my calculus and real analysis skills. I doubt I’ll have time to get to Complex Analysis and other topics of interest.

At any rate, I plan on working on some more computer related stuff, since I have the time. I haven’t forgotten my ambition for writing a CAS, so I’m going to continue working on basicCAS. Also, given that working on basicCAS has made me much more knowledgable about parsing, and that the python binding of cairo seems really simple to work with, I’m going to be working on a python postscript interpreter. Why? I’ve always loved postscript, and I’d like to have an interpreter that lets you trace programs, and is easily embeddable into my other python projects. There’s a project in Java that’s come pretty far towards the goal of implementing a postscript interpreter with a rudimentary graphical interface supporting debugging, but the latest version doesn’t come with the code; also, I don’t fancy delving into Java code.

Other than those two major projects, I’m going to be messing around with MetaPost a lot more, and tweaking my website installation. Last night I fixed the problems that were stopping IllustRender, LatexRender, and WPjsMath from working; next, I need to fix whatever bug is causing the Mysql daemon to quit intermittently. I think I’ll end up just reinstalling everything. Finally, I need to release WPjsMath, and I want to work on further WP plugins. Like, why isn’t there one that lets you easily link words in one post to an appropriate post— it would beat having to track down every reference by hand and putting them in yourself.

Anyhow, I’m back!

Possibly relevant posts:

« Previous Page
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2008 ChapterZero | powered by WordPress with Barecity