September 1, 2010

Three more research papers that use Pixcavator

Filed under: news, updates — Peter @ 12:04 pm

These are three research papers that use Pixcavator I discovered (I wish someone simply let me know somehow…):

August 24, 2010

Lecture notes finished

Filed under: computer vision/machine vision/AI, mathematics, site, updates — Peter @ 11:20 pm

It took me the whole summer but the lecture notes for Vector calculus are now online. They have been fully transcribed, edited, illustration added. There is certainly a lot of work left to make them more presentable, readable, etc. That will continue along with linking, internally and to the rest of the site. As a part of this work I’ll try to add something that I feel is missing – the discrete angle (image analysis, data analysis, etc).

The total number of articles has reached 446, with 1208 illustrations. There is some duplicate content but not a lot. The point is that one can take this material, rearrange it in a number of ways, and create various courses depending on the goals, or the audience, etc.

Still to come are the two courses I am teaching this fall: Calculus 1 and Differential Geometry. They will be transcribed some time next winter. More courses will continue to appear as a part of what I call my “fantasy math” project.

August 15, 2010

The topology of data and 3D image analysis: projects

Filed under: computer vision/machine vision/AI, mathematics, news — Peter @ 1:58 pm

The summer is over and it’s time to report on some of the events. In the beginning of summer I made page for 3 potential NSF REU projects. These are the two that I ended up supervising:

The topic of the REU was computational science so the general goal was to do something new computationally while learning some math. So, we used and modified some existing software. The main idea of the first project is to use jPlex to compute dimensions of datasets while the main idea of the second was to use CHomP to compute the homology classes of 3D images along with their persistence. Ironically, jPlex computes persistent homology but lacks relative homology which had to be implemented. On the other hand, CHomP has relative homology but the persistence had to be implemented. These issues were mostly resolved. Unfortunately, in either case there wasn’t enough time to test the programs with real-life data.

To be continued…

June 17, 2010

News and updates

Some users expressed the need for longer evaluation time, so I extended the trial period for Pixcavator from 10 to 30 days. Also, for the users who are having trouble with installation and registration, for a number of reasons (firewall etc), please try the Student Edition. It requires no installation and can be freely copied.

The site, Computer Vision Primer, has been growing and has reached 379 pages with 1,018 illustrations. In particular, the transcription of the Vector Calculus course that I taught 2009/10 has recently started. Two lecture sets are finished (about 20% of the total) and the third is on the way.

The NSF summer REU program has started. These are the two projects that I will supervise:

June 10, 2010

Quality of soldering: an image analysis example

Q: “Interested in assessing whether your software could be used to determine the quality of a solder joint… Joint is composed of an aluminum tube and a copper pipe… The area of the copper pipe that overlaps or contacts the aluminum tube is the area that needs assessment. Would like to determine what percent of this area has a solder coating. The solder is a zinc78%/alum22% alloy… the copper pipe section could be flattened to a greater degree if this to would help with accuracy.”

As it has been suggested, it is a good idea to outline what is to be measured manually so that we can see if automatic analysis produces reasonable results:

In the screenshot the two numbers are at the top.

The area inside the red contour (i.e., inside your red line) is 140,582 pixels.
The area inside the green contour (i.e., gray region) is 106,787 pixels.

So the proportion of gray inside the red line is
106,787 / 140,582 = 76%.

By moving the sliders one can make the contours to fit better and improve the accuracy.

More here

May 31, 2010

Edge detection in image analysis

Filed under: image processing/image analysis software, mathematics — Peter @ 12:18 pm

One of the most basic methods of analyzing gray scale image is to find the pixels area of high contrast. These areas are likely to be where an object ends and the the background begins.

More precisely, these are the areas where the change of the gray – for light to dark or dark to light – is the fastest. Then one needs a threshold so that all pixels where this change is higher that this number are considered “edges”:

Mathematically, we deal with

 the rate of change of the gray level
             = the gradient of the gray scale function.

(In fact, one only needs the norm of the gradient.) Computation of the derivative however in the digital (discrete) context is a challenge as it is severely affected by noise. Consider the image of coins and its version with noise added.

Image:coins.jpg Image:coins noise.jpg

If now edge detection is run, the results are unsatisfactory – too many irrelevant contours. 

Image:coins noise edge detect.jpg 

Of course it may be possible to filter out the smaller contours. In this particular case it’s impossible because they are parts of large ones. In fact they form large fractal-like structures. This is the reason why edge detection may have to be preceded by smoothing of the image.

Read more

May 26, 2010

Nested boundaries in image analysis

Filed under: image processing/image analysis software, mathematics — Peter @ 6:25 pm

Under Review summary (in Output tab) Pixcavator shows the data about the objects found in the image. Pixcavator displays the total area of dark and the total area of light objects – as percentages of the total size of the image (second row).

Under certain circumstances though, the contours of the same kind may be “nested” and, as a results, these percentages may be wrong or even above 100%.

Example below (measuring grass coverage): the dark shows the 151% coverage.

The number is certainly meaningless (there will be a warning about that in the next release).

Why is it above 100%? Because the area is covered several times by these objects. If you click “Color objects”, you’ll see one large object with red contour and many others inside of it.

What happens is easier to see in this simpler image:

The results of image analysis may considered “good” here, but only in the sense that we have captured some 3D information. In general, we restrict our attention to image with mostly 2d information (see Images appropriate for analysis).

What exactly happens here? The way Pixcavator’s sliders operate is this: the contour is allowed to grow until its size (or contrast) is over the bound set by the corresponding slider. Practically, this means that each potential contour C is compared to a contour C’ corresponding to the previous gray level. Then, if C passes but C’ does not then C is plotted.

For more, see Nested boundaries.

May 10, 2010

Measuring vegetation coverage: an image analysis example, continued

In the last post I discussed some issues you encounter when you want to evaluate vegetation coverage based on image analysis.

Now, the area covered should be just a step towards what we are really interested in – the height of the vegetation (or volume, even better).

Let’s consider how one can compute the height of vegetation from a digital image. The idea is very simple:

 the average height = the area / the width.

Consider now what we see in the image.

Views from a side (vegetation in green) and from above:

Image:vegetation view from a side.jpg Image:vegetation view from above.jpg

Assumptions:

  1. The board is a square and its dimensions are known.
  2. The board is vertical (otherwise it’s impossible to know where the bottom is).
  3. The bottom of the board is horizontal on the horizontal (along the board) ground.
  4. The field of view of the camera includes the edge of the vegetation and the top of the board.

Then, the average height computed as below is independent from:

  • the deviation of the angle of the camera from the horizontal,
  • the distance from the camera to the board,
  • the height of the position of the camera above the ground.

The measurements (the image in black, the bottom of the board in red):

Image:vegetation measurements.jpg

These come from image analysis:

 A = the area of the board visible above the vegetation (sq pixel),
 W = the width of the board (pixel).

This is known:

 S = the length of the side of the board (in).

Then average height of the vegetation above the ground (in) is:

  H = S * (1 - A / W2).

Computations here.

April 30, 2010

Measuring vegetation coverage: an image analysis example

Q. From these images “we want to derive the area of the board covered by plant material to serve as an index of plant density.” We would like to “develop .. a simple protocol for estimating area-covered by plant material in our digital images with Pixcavator. “

This would be hard to accomplish with images similar to these. To capture the vegetation effectively, one has to separate it from the background. Then, ideally, the latter would have to either uniformly lighter or uniformly darker than the former (see Gray scale images). The light/dark squares make the task very challenging.

Instead, one can digitally isolate the squares within each image, so that the area covered by vegetation can be estimated from a set of sub-images (i.e., individual squares) with uniform background colors:

In the screenshot, the colored areas are the complement of the vegetation. Their total area is 64.95%, so the vegetation takes the rest, 35.05%.

Blue gives a good separation of the background. 

More

April 24, 2010

Pixcavator 5.1 released

Filed under: news, software releases — Peter @ 3:36 pm

The new version of our image analysis software has been made available to the users. This release is primarily about fixing a few annoying bugs:

  • Loading image of sizes >2000×2000 causes the software to stall (fixed, but still impractical for processing).
  • Changing the color channels after processing causes messed up data in the Output tab.
  • Summary in the Output tab isn’t updated when manually select/deselect objects.
  • Some image processing tools in the Tools tab don’t work properly.

April 5, 2010

Image-to-image search: a case study

Filed under: computer vision/machine vision/AI, image search, updates — Peter @ 10:35 pm

This study was conducted in 2009 for a company that is “working in the online social media sector and are looking for an accurate image analysis solution that allows us to compare a reference photo to a large dataset of photos to determine if the reference photo is duplicated in the larger dataset.”

The full title of the report is “Image-to-image search with Pixcavator (PxSearch): a case study”. It was written by Dr. Ash Pahwa and myself and is presented here with minor modifications.

The first version of PxSearch was created in 2007. Using that version, initially the search results with the collection had 4-5 good hits (i.e., the transformed version of the original) at the top and then some bad hits. Some of the good matches weren’t even visible. After the upgrades, the results became 10 out of 10 or close. This improvement made this, more extensive, study possible. The results are OK, even though the collections are still very small. The company eventually went with another vendor, it’s still an interesting document to browse through.

Since 2009, there has been no work going on but, hopefully, this project will be one of the summer projects for the REU site.

Incidentally, I don’t like the term “reverse image search” popularized by TinEye. If the image search that we are used to at Google etc is “direct image search” (text-to-image) then the “reverse image search” is supposed to search for text based on images. Not only this isn’t what we are talking about, but also the problem hasn’t been even remotely solved (see this pathetic list: Visual image search engines). This is the reason I prefer “image-to-image search” to describe this application.

March 31, 2010

Computational science training grant this summer

Filed under: computer vision/machine vision/AI, mathematics, news — Peter @ 2:49 pm

The full name is REU Site: Computational Science Training at Marshall University for Undergraduates in the Mathematical and Physical Sciences (PI Howard Richards). REU stands for “Research Experiences for Undergraduates”. The grant was just approved b the NSF but the application dealine in April 9. If you know anyone who might be interested, encourage them to apply. This is the website: http://www.marshall.edu/REU/.

I will be supervising 2 students in 1-2 of these areas:

Temporary page for the projects: Computational science training: 2010 projects.

March 19, 2010

Bubble sheets: an image analysis example

Filed under: computer vision/machine vision/AI — Peter @ 12:17 pm

Q: Can Pixcavator extract data from Scantron pages, i.e., bubble sheets used for testing, polls, voting, etc.?

Two images of an answer sheet below (the originals were 2.5 MB each with a resolution of 2504×3229 pixels).

Let’s see if we able to capture the bubbles.

Not hard at all. The first image shows how empty bubbles are captured, in the second – only the marked ones, but not crossed. (Here is a company that is doing something very similar [1]. Cost $1K.)

Examples with similar analysis:

Even though the origins of these images are very different, the images themselves are similar to these and the approach to analysis might be identical. There are many examples like this…

The first on the list also provides a prototype program that displays instead of the usual Pixcavator’s output table – a table of 0s and 1s for unmarked marked bubbles respectively.

Other image analysis examples

March 5, 2010

ImageJ vs Pixcavator: update

Filed under: image processing/image analysis software, news — Peter @ 11:59 am

Two years ago I had a post here (follow-up) where I dared to compare these two programs. The reaction was unfavorable. The ImageJ ticket quoted below seems to indicate that there has been a slight shift.

Wayne [Rasband] had an idea for a command called “Analyze Image” that combines filtering, background correction, segmentation, particle analysis, etc. It would work something like the closed-source, Windows-only  Pixcavator program. As Wayne said, “It would not be an easy thing to create but it would be very popular with ImageJ users”. 

I agree.

March 3, 2010

Update on CHomP, homology software

Filed under: image processing/image analysis software, mathematics, news — Peter @ 7:33 pm

Prof. Marian Mrozek  was kind enough to inform me about the coming update of CHomP in his email that I quote below:

The power of the software comes from much newer algorithms. Some of them are described in the papers:

  • M. Mrozek, P. Pilarczyk, N. Zelazna, Homology algorithm based on acyclic subspace, Computers and Mathematics with Applications, 55 (2008), 2395 –2412.
  • M. Mrozek, B. Batko, Coreduction homology algorithm, Discrete and Computational Geometry, 41 (2009), 96-118.
  • M. Mrozek, Cech Type Approach to Computing Homology of Maps
    Discrete and Computational Geometry, accepted
  • and a few more which are just in preparation.

We just finish[ed] writing a new, much stronger version of the software which will accept not only cubical complexes but also simplicial complexes and general CW complexes and will produce broader output, in particular homology generators, homology maps and persistence intervals for filtered complexes.

The new version of our software at first will be available from the webpage
of our CAPD group at Jagiellonian University, Krakow, Poland:
http://capd.ii.uj.edu.pl/.

Take a look also at our Homology Software page.

Next Page »