M.S. Thesis Proposal!

July 28th, 2006

The proposal for my M.S. thesis at RIT is complete. The title is Enhancing the Implicit Shape Model through Object Tracking. The 13-page proposal provides a literature review, details of the planned work (much of which is already complete), a schedule, diagrams, and references. It is available online in PDF, at 1.4 MB. Track the progress of this thesis by visiting the thesis home page and blog category.

Also, I have assembled my committee: Dr. Gaborski as chair, Dr. Butler as reader, and Dr. Reynolds as observer.

Headphones Update

July 27th, 2006

Update to the post on equalizers: I got the Koss KSC75 headphones; all the hype about them is indeed true. Might as well post the equalizer settings script I chose for them.

Some iTunes Equalizer Settings

July 17th, 2006

After learning a lot about equalizers and wanting to improve sound quality of iTunes + my Powerbook, I found a good EQ setting on an old Mac OS X Hints article. The last comment on the article offers some knowledgable information. The writer of the comment also posted the favorite EQ settings used on his/her iBook. I tried out the settings on my Powerbook and they work nicely. I did reduce the 64Hz and 125Hz settings quite a bit due to distortion.

Here are the setttings in use for my Powerbook (each tick on the EQ sliders equal 3dB):

Preamp: -3.5dB
32Hz: -12dB (all the way down)
64Hz: 1.5dB
125Hz: 5dB
250Hz: 1dB
500Hz: -5dB
1KHz: -3dB
2KHz: 0dB
4KHz: -1dB
8KHz: 1dB
16KHz: 3dB

Of course, these are subjective.

AppleScripts

You can make equalizer settings using AppleScript. Pase the following code into Script Editor to apply the equalizer settings above:

tell application "iTunes"
	set the current EQ preset to EQ preset "Manual"
	tell EQ preset "Manual"
		set band 1 to -12
		set band 2 to 1.5
		set band 3 to 5
		set band 4 to 1
		set band 5 to -5
		set band 6 to -3
		set band 7 to 0
		set band 8 to -1
		set band 9 to 1
		set band 10 to 3
		set preamp to -3.5
	end tell
end tell

You can download the Powerbook iTunes EQ script file.

Finding EQ Settings

Technically, the goal of an equalizer is to restore the original recording from the abuse dealt to it by imperfect speakers, etc., not to somehow enhance the sound. Given a recording that contains a variety of tones at the same volume level, ideal speakers would produce each tone at 0dB—a flat frequency response. This never happens; the frequency response usually drops off at the low and high ends, and has various fluctuations. If you have the frequency response graph for a set of speakers or headphones, the general idea is to set the EQ to flatten out curve (for example, cutting the 500Hz band by 2dB if the frequency response curve is 2dB above average at 500Hz). For headphones, HeadRoom is a good source of such information.

Being unable to find such graphs for my headphones, I empirically (though not in any way scientifically or professionally) chose equalizer settings for them in the following manner:

I created a sound file with the Audacity application. The sound file contained one second each of ten pure townes, having frequencies equal to each of the ten bands of the iTunes EQ: 32Hz, 64Hz, 125Hz, etc. I saved the file as an MP3 and copied into my iTunes library. Then I played the sound repeateldy in iTunes using the Flat equalizer setting. According to my ears (not a microphone or some other less-subjective equipment), some tones were obviously louder or softer than others. I then just adjusted the EQ until the tones were roughly equal in loudness. Note that the 64Hz and 32Hz tones are unlikely to respond much at all on cheaper speakers or headphones, and you 16KHz will not appear as loud either (some people may not be able to hear it at all). It was clear that my headphones could not reach 32Hz, so I put the slider all the way down for that band. The final step is to try out a variety of music styles to check for unnatural sounds, distortion, etc. I found a bit of distortion so I lowered the preamp setting, and ended up tweaking some of the upper bands.

The iTunes EQ test tones are available for download. Turn down the volume before playing it!

Sony MDR-G52 Headphones

For what it’s worth, here are the EQ settings I determined for Sony MDR-G52 headphones, using iTunes on my Powerbook:

Preamp: -3.5dB
32Hz: -12dB (all the way down)
64Hz: 1.5dB
125Hz: 5dB
250Hz: 1dB
500Hz: -5dB
1KHz: -3dB
2KHz: 0dB
4KHz: -1dB
8KHz: 1dB
16KHz: 3dB

You can use the Sony Headphones script file to make these settings.

Week 8 Presentation

May 2nd, 2006

This progress report, pre-pre-proposal2.pdf, describes the subject area of my M.S. thesis in more detail and outlines (very broadly) my goals for the thesis work. The next steps are to complete a pre-proposal and have an official proposal approved.

For a quick summary: I will investigate the Pictorial Structures method for recognizing classes of deformable objects (such as humans and animal types) in images and video. I hope to extend the current state of the art of pictorial structures, within the context of some specific research programs at RIT involving recognition of animals. For more information on pictorial structures, visit my thesis home page.

More details will follow over the next month or so as I continue the proposal process. Work on the thesis should begin in June.

Windows on a MacBook Pro

April 30th, 2006

So Val got a MacBook Pro (15-inch) this weekend. I told her about the Boot Camp tools and drivers for running Windows XP on an Intel Macintosh, and she decided to try it out to save her investment in Windows versions of the Sims 2. The installation process was literally the smoothest and easiest Windows XP install I’ve ever experienced.

Basically, my advice to anyone wanting to do this is to simply follow the directions in the Boot Camp guide (they are well-written) and be patient while drivers are installing. Driver installation (for example, the Eject key driver) is handled by the driver CD that you create with the Boot Camp tools. Windows did a fine job of finding and installing the drivers on the CD automatically; it was more or less a hands-free process. Do be patient during this time: there are many windows that appear and disappear, progress bars that stick just enough to make you worry, etc. But our patience paid off, and everything seems to be running well.

Of course, Windows isn’t in perfect harmony with the hardware. The mappings for keys such as Ctrl and Alt make sense. The Command key (the one with the Apple logo) is understood by Windows as the “Windows logo” key. Of course, this makes sense, but it points out the wierdness of seeing Windows on this machine. There is one last “new hardware found” message that shows up, for some USB device, but we haven’t messed with that yet. You can’t use the built-in iSight camera, and the function key combinations (for example, Fn-F1 to change the screen brightness) that are not working. Power management will not be as good as on the Mac side. Many of these issues are known. I’m not surprised that Boot Camp doesn’t give drivers for iSight. The good news is that wired and wireless networking, Bluetooth, and the other big features are happy.

The Sims 2 ran beautifully on the Windows side and installed well. It likes to run at the native screen resolution of 1440 by 900. This is with the dual–1.83 GHz, 512 MB RAM, and 128 MB graphics setup. I was impressed.

Overall, things went better than I anticipated. No surprises. The scariest part was actually the firmware update, which is done on the Mac side and is required before installing Windows. I guess it was scary mainly because I’ve never seen how the firmware update works on a Mac. But that went well, and the whole process took less than an hour, confirming some reports I read online. Just follow the Boot Camp instructions and of course do some research to make sure it is worth it. For Val, it literally saved money by not having to repurchase Mac versions of the Sims 2 and expansion packs. And the shortcomings of Windows aren’t a big deal to her because it is there for special purposes like the games.

Good luck to anyone else trying this out. I’ll post any interesting discoveries.

Cheaper WiFi in One Hour or Less

April 12th, 2006

I just finished setting up the wireless router that Val gave me for a birthday. I just finished setting it up completely Microsoft-free, that is. Pulling this off smoothly using a Mac AirPort with a non-Airport base station does, however, require some thinking ahead. Here are some tips, especially for on-campus setups.

My setup

Router: Linksys WRT54G Broadband Router (10/100 ethernet, 802.11 b/g)
Computer: PowerBook with AirPort Extreme
ISP: RIT campus LAN

Linksys routers do not advertise much in the way of Mac support, but if you don’t mind going without the handholding of the “setup wizard” on the CD, everything will be fine. Linksys has always treated me very well, and their routers’ web-based config applications have always worked well. But don’t throw out the setup CD because the entire 100 page manual is available in its Doc directory as a PDF.

Preparation

Implementation

I was able to follow the online manual provided by Linksys for most of the installation. I assume that setting up most other non-Apple routers from a Mac computer is a similar process. I will not go into much detail when the steps are thoroughly covered by the manual. The web interface below refers, of course, to the Linksys interface.

  1. Set up the hardware. Chapter 4 of the Linksys manual describes this process clearly and accurately. Basically: find a good location, hook up ethernet cables (including from your Mac to the router, for initial setup), and plug it in.
  2. Initial configuration. Since we’re not using the setup wizard, skip straight to Chapter 6 to configure the router manually.
    1. Log in to the admin web server on the router and immediately change the admin password by clicking the Administration tab.
    2. Configure basic router settings. Being at RIT’s on-campus network, Automatic DHCP configuration is the right choice; this will often be the right choice for cable modem and some other broadband users.
    3. Check status. Click the Status tab to see how well things are running. You should see a MAC address that matches the address printed on the router and/or packaging, an IP address, subnet mask, gateway, and at least one non-zero DNS. If not, there are many possible causes for the problem that I won’t discuss, since so far we have only done wired configuration that is basically identical to traditional broadband routers.
    4. Registered equipment. If you needed to register a router with the network administrators (for example, if you are on a college campus), you may now be able to compare the router status to the registration information. At RIT, my registration expects a specific MAC address and assigned me a specific IP address. I noticed that the IP address didn’t match, and was quite sure that I did not need to set up a static IP address on the router. Unplugging the router at this point and then plugging it back in after a minute completely solved the problem.
    5. Finish any extra settings needed under the Setup section before continuing with wireless setup.
  3. Wireless configuration.
    1. Go to the Wireless tab and set up the basic settings. Be very ashamed of yourself if you do not change the SSID. It is a good idea to turn off SSID broadcast, and it should not cause much of a hassle with a Mac.
    2. According to the ATPM article, Wireless Network Encryption, WEP encryption is the proper form to use with your Mac. I recommend following the procedure in this article to set up WEP and create a key.
    3. Hopefully, you will enable some other security measures too. I am using the wireless MAC filter. Under the Wireless > Wireless MAC Filter tab, Enable the filter, choose to Permit only PCs listed, and click the button to add MAC address of the particular computers (such as your own) to grant access to the wireless network. You can find the MAC address of your AirPort card by opening System Preferences/Network/AirPort checking the AirPort ID. Note that this MAC address is different than the one used by your ethernet card. Remember to click Save on both the MAC filter popup window and the main MAC filter form.
    4. I also recommend disabling access from the wireless netowrk to the router config web application. In other words, require that you access the config site through a wired connection to the router. This is done in the Administration tab: disable Wireless Access Web.
  4. Now you should be able to disconnect the ethernet cable from your Mac to the router, connect to the router via that Mac’s airport connection, and happily blog about it. Of course, computers on other platforms should now have access to the network, too.

Final thoughts

Take your time and read the manuals. It really is easy if you think ahead and don’t start blindly tweaking settings. The ATPM article was very helpful for me, but note that some of the screen shots are outdated (compared to OS X 10.4.5).

Week 5 Presentations

April 11th, 2006

This progress report gives a good idea of where I am headed with the M.S. thesis.

“Pre-pre-proposal”
pre-pre-proposal.pdf
pre-pre-proposal.sxi (OpenOffice 1.x format)
The first of two presentations leading to my thesis pre-proposal and proposal. Introduces the general field of computer vision and provides background and current research information in my area of interest—deformable object recognition.

Constellation of Parts Update

April 9th, 2006

I have switched topics for the Advanced Computer Vision course from Pictorial Structures to Constellation of Parts. The Visual Geometry Group at Oxford is a very good resource on this topic, which I will be using as a guide.

Advanced Computer Vision Project

April 4th, 2006

Applying the Constellation of parts method to video

Constellation of parts is a compact and expressive means of modeling classes of objects. This model can be used to simultaneously segment and recognize/classify objects in images. The models can be “trained” by machine learning techniques and is invariant to scale and similar factors. For my project in Advanced Computer Vision at RIT, I will implement a constellation of parts algorithm to recognise objects in video.

Data collection

Videos of people walking from a still or moving camera. Outdoor scene with complex background. Variety of foreground busyness: no people (background only), one person, a few people, many people (moving in different directions and occluding each other). Variety of person behavior.

Implementation

Implement a constellation of parts model and algorithm to segment and recognize humans in video. Use training videos to develop the model (or build the model by hand if pressed for time). Implement the algorithm in OpenCV (C++). Measure results of segmentation/recognition subjectively against ideal results and objectively against the results of recent research (see references below). Evaluate the effectiveness and efficiency of the implementation on video.

Possible enhancements include the use of graph cuts to improve segmentation accuracy, etc.

References

Fergus, P. Perona, and A. Zisserman. “Object Class Recognition by Unsupervised Scale-Invariant Learning,” IEEE, 2003.

Class site!

March 21st, 2006

Some exemplary grammar from a recent spam comment posted to my site: “Class site! Has brought it url in bookmarks tomorrow since morning still I shall be!”