Rank: 11 based on 2977 downloads (last 30 days) and 67 files submitted
photo

Brett Shoelson

E-mail
Company/University
MathWorks
Lat/Long
38.87423, -77.13025

Personal Profile:

I'm a biomedical engineer by training, but I love MATLAB and have worked as a Principal Application Engineer for MathWorks since 2005.

Professional Interests:
(medical) image processing, computer vision, algorithm development, ui development

 

Watch this Author's files

 

Files Posted by Brett View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
18 Apr 2014 customGray Create a custom grayscale image of an RGB--specify weightings or select from predefined versions. Author: Brett Shoelson rgb2gray, grayscale, colorspace, color segmentation, custom visualization 60 3
18 Apr 2014 Screenshot Feature-Based Image Registration An interactive app for registering images using a feature-based (computer-vision) workflow Author: Brett Shoelson computer vision, image processing, image registration 73 0
17 Apr 2014 Screenshot Image Morphology Tutorial An interactive, animated tutorial that explains image morphology Author: Brett Shoelson image processing, image morphology, tutorial 24 0
31 Oct 2013 Screenshot Image Registration App UI environment for registering a Moving image to a Fixed image Author: Brett Shoelson image, registration, gui, image processing, imregister, imregconfig 232 16
  • 4.33333
4.3 | 9 ratings
21 Aug 2013 Screenshot FindCirclesGUI Launches a GUI environment for the detection of circles in an image. Author: Brett Shoelson imfindcircles, circle detection, circular hough transf..., find circles, detect circles 94 3
  • 5.0
5.0 | 3 ratings
Comments and Ratings by Brett View all
Updated File Comments Rating
15 Apr 2014 Embed Text and Graphics in an Image Burn or embed text and graphics in an image. Author: Brett Shoelson

@Richa,
Try calling insertInImage with round(bbox) as an argument. Let me know it that works for you.
Brett

15 Apr 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson

@James,
I sometimes show a version of the example that's in the vision.CascadeObjectDetector doc. After finding faces in the visionteam image, I crop a single face, rotate it incrementally, and re-run the detector. It's easy to show that the detector works well (on that particular image) with rotations up to about 20 degrees. Beyond that, this method will likely require an additional detector trained for tilted faces. (There are other approaches that might be more robust to rotations....).
And no, it doesn't matter if the training positives are the zame size. But it does matter that they are the same aspect ratio.
Cheers,
Brett
a demo that uses a cascade detector to find faces in a particular image. After finding al

11 Apr 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson

@Hetu:
Once you've trained the detector, you're pretty much done with this App. (You can apply the detector to single frames, but you'll probably want to create a script to do this on the individual video frames.)

Note that detection is relatively expensive; tracking is less so. You might consider detecting the object with your newly trained detector in the first frame, and tracking it through subsequent frames until you lose the track. Then retrain. Or maybe tracking through 10 frames, then retrain...

I've toyed with the idea of implementing a video tracking environment, but haven't had the bandwidth to do that just yet.

Cheers,
Brett

17 Mar 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson

@Maddie,
Yes, I think the changing aspect ratio (horizontal/vertical nature) of your problem is significant. I have a demo in which I show that a face detector works until a face is rotated to about 20 degrees; then it fails. That indicates that one would need a vertical face detector and a tilted face detector to recognize both upright and tilted faces. I think the same is likely true in your case: you will need an upright-cone detector and a horizontal cone detector. Alternatively, you could do some image processing to find "blobs," and use REGIONPROPS/IMROTATE to reorient those blobs to always be "vertical" before running the detector. But yes, you'll likely have to do something different.
Cheers,
Brett

19 Feb 2014 Image Registration App UI environment for registering a Moving image to a Fixed image Author: Brett Shoelson

@Seyed:
Image Registration App is just a front end for the functionality of IMREGISTER.

IMREGISTER is actually a collection of algorithms (optimization + similarity metrics). Because of this, the correct citation would depend on what flavor of optimization and metric you're using.

Here are some applicable references:

Mutual Information based registration:

"Nonrigid multimodality image registration" D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank Medical Imaging 2001: Image Processing, 2001, pp. 1609-1620. [2] "PET-CT Image Registration in the Chest Using Free-form Deformations" D. Mattes, D. R. Haynor, H. Vesselle, T. Lewellen and W. Eubank IEEE Transactions in Medical Imaging. Vol.22, No.1, January 2003. pp.120-128. [3] "Optimization of Mutual Information for MultiResolution Image Registration" P. Thevenaz and M. Unser IEEE Transactions in Image Processing, 9(12) December 2000.

One Plus One Evolutionary Optimizer:
"Parametric estimate of intensity inhomogeneities applied to MRI" Martin Styner, G. Gerig, Christian Brechbuehler, Gabor Szekely, IEEE TRANSACTIONS ON MEDICAL IMAGING; 19(3), pp. 153-165, 2000, (http://www.cs.unc.edu/~styner/docs/tmi00.pdf)
"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (http://www.cs.unc.edu/~styner/docs/StynerTR97.pdf)

Most of the literature seems to take the basic similarity metric/ optimization framework for granted without citing references. The references are usually for specific parts of the framework (numeric optimization, image similarity metrics, ways of pyramiding, etc.).

Hope that helps,
Brett

Comments and Ratings on Brett's Files View all
Updated File Comment by Comments Rating
15 Apr 2014 Embed Text and Graphics in an Image Burn or embed text and graphics in an image. Author: Brett Shoelson Shoelson, Brett

@Richa,
Try calling insertInImage with round(bbox) as an argument. Let me know it that works for you.
Brett

15 Apr 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson Shoelson, Brett

@James,
I sometimes show a version of the example that's in the vision.CascadeObjectDetector doc. After finding faces in the visionteam image, I crop a single face, rotate it incrementally, and re-run the detector. It's easy to show that the detector works well (on that particular image) with rotations up to about 20 degrees. Beyond that, this method will likely require an additional detector trained for tilted faces. (There are other approaches that might be more robust to rotations....).
And no, it doesn't matter if the training positives are the zame size. But it does matter that they are the same aspect ratio.
Cheers,
Brett
a demo that uses a cascade detector to find faces in a particular image. After finding al

15 Apr 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson James

One more thing I forgot, sorry -- does it matter if your training/positive images are different sizes/resolutions after being cropped/selected for region of interest?

14 Apr 2014 Cascade Training GUI: Specify Ground Truth Interactive GUI for managing the selection and positioning of rectangular ROIs in a list of images. Author: Brett Shoelson James

@Brett

Thanks a lot for making this. One question: how does the trained cascade deal with in-plane rotations? Not necessarily large rotations -- plus minus 30 degrees let's say. Furthermore, would providing the trainer with in-plane rotated images in the training set make it more robust to rotation in the detection stage? Thanks again for making this wonderful app!

14 Apr 2014 Embed Text and Graphics in an Image Burn or embed text and graphics in an image. Author: Brett Shoelson Richa

Hi,

I want to save the bounding box generated by regionprops on the image. I am trying to use your function but am getting the following error:
Subscript indices must either be real positive integers or logicals.

Error in insertInImage (line 144)
imgOut(bbox(2):bbox(2)+bbox(4),bbox(1):bbox(1)+bbox(3),jj) = ...

Error in vertebrae1 (line 69)
imgOut = insertInImage(subImage,f,params);

Can you please help how to figure out this error?
Thanks and Regards
Richa

Contact us