Eng. Cristian Vicas

header
Home->Research Resources

Research Resources

A series of tools that I use and reccomend. Most of them are free/open source and work both on MS Win and Linux flavours.

Research tools

Australian Research Council (arc.gov.au), Conference Ranking page and Ranked Conference List (xls file).

Journal Relative Influence Score (Scor relativ de influienta reviste) computed by UEFISCDI. Xls file can be found here. Update: January 2012.

Image processing

OpenCV

Open source C/C++ library for image processing/computer vision. The library has many usefull algorithms like:file I/O operations, basic image processing operations (pixel operatins, filters, etc), matrix operations (add,substract, etc.), fourier transforms, edge/corner detections, classifiers, some GUI elements etc.

You can easily make open/save/show image operations, convolutions and other filtering operatons are at a function call away. Edge detection, contour tracing, affine transforms and template matching can be easily used once you know the theory behind these algorithms.

The machine learning part has some algorithms implemented, like SVM (libsvm flavour), KNN, Decision Trees etc.

The GUI part is simple to use. You can show images in various windows and you can attach callback functions for keyboard and mouse events. Recently they added a fancy set of GUI tools.

There functions dedicated to stereovision and 3D reconstruction. I/O operations include functions to access video streams like cameras or video files.

Recommended for developing larger projects because it lets you focus on the algorithms without worrying about file opening, accessing pixels, basic image processing tasks and memory management.

Machine learning

Weka

Open source java library/environment for machine learning. It contains a large collection of algorithms ranging from data processing, filtering, clustering, feature selection and transformation, classification an regression, visualisation and performance evaluation. The power of this library is that you can nest the algorithms (i.e. nest feature selection and classification algorithms inside a performance evaluation loop). The algorithms can be accessed from an intuitive (point and click) GUI. The real power came when you use the algorithms inside your java code. The library can distribute the work on multiple processors/stations.

Once your dataset is in the right format (ARFF) it's very easy to start doing data mining or machine learning. At each step you have the list of all available algorithms and explanations for their parameters. Of course, weka is useless if you don't know what algorithm does what. Shuffling algorithms and filters at random until the numbers "look" good is just like using a hammer to type on a keyboard.

The performance of the most algorithms is heavily influienced by their parameters. Not knowing the significance of these parameters means that you cannot exploit the full power of that algorithm. My advice is to learn first about the machine learning (at various courses) and then look up the necessary algorithms from weka.

libSVM

Open source C/C++/java library that implements SVM classifier. I recommend this library when working with SVM. It can be integrated easily both in OpenCV and in Weka.

Programming tools and resources

Extreme Programming

If you don't do it, DO IT! At least some parts of it. Especially unit testing and versioning.

Unit testing/Test Driven Programming

You must do it, even if your IDE/language doesn't support it. Or, swith to java!

UberSVN

Subversion server. It includes apache and svn in one package. It is free only for personal/academy usage. It offers painless instalation and configuration. If you are working in a team, is the best option. It exports all the subversion facilities wrapped in a point and click GUI.

TortoiseSVN

Client for subversion. It's a must have. If your IDE doesn't have cvs capabilities (or they suck) TortoiseSVN is the best choice.

As usual, RTFM before using it!

NetBeans

Some of you might like Eclipse, I like NetBeans!

Other useful resources

Matlab

High-level language and interactive environment oriented to mathematical computations. It is optimized for matrix computations. It is relatively easy to learn, has a comprehensive help and lots of code snippets on internet. Use this tool when you want to "quick and dirty" implement your algorithm. If you need to solve tricky algebra equations, function optimisiation, or just want to produce fancy graphics, Matlab is for you.

You can also find free/open source variants for Matlab like Octave. Octave can run Matlab code but you don't have the nice IDE.

R

R is a free software environment for statistical computing and graphics. It's a bit tricky to learn but it can be a hany tool when it comes to complicated statistical evaluations. And it has most of the statistical-like graphics built in (i.e. BoxPlot, correlation, etc). Unfortunately the available documentation is scarce but for the common problems, Google works! A short tutorial can be found here.

If you compile a list of code snippets for the few statistical tests that you need (i.e. ANOVA+Boxplots), then just copy paste them in the interface whenever you need them.

The graphics are exported as .eps. They can be edited with a vector graphical editor (like Adobe Illustrator or Inkscape)

EndNote

Bibliographic and reference management software. It "knows" most of the reference formatting styles like: IEEE, Vancouver, styles specific for certain journals, etc. You can edit/define your own formatting style (i.e. for some obscure conference with weierd reference style). You must read some help and 1-2 tutorials before using it. This is just to discover its potential. The software comes in handy when you publish papers for journals/conferences with other formats than usual IEEE.

A powerfull feature is that the software can connect to major databases (like Web of Science, PubMed, Library of Congress, Oxford Univ.) and search/download references and (if you have access) full papers.

Google scholar can also be configured to export references for EndNote format. The papers that you find in Publications section of this site have an EndNote reference format.

The software can integrate with MS Word or LaTex tools. Althrough is not free and need a little bit of learning, it can take the reference part off your head!

p.s. TeXnicCenter plus JabRef is better, if you have equations and IEEE/ACM oriented paper. Steeper learning curve, but rewarding in terms of paper quality. Google is your friend almost any "How to ... LaTeX" question have its answers.

AmiBroker

If you trade, and use technical analysis, AmiBroker is a good choice. It's not free but it's worth the money. Most of the local broker companies (serious ones) can offer you raw stock data that can be loaded in AmiBroker. It has even a "real time" mode. If your broker can provide you with real time data, it is a useful feature. The software allows you to test your magic strategy before entering the market and lose your money/car/house/liver/kidney.

Don't forget: "Before you attempt to beat the odds, be sure you could survive the odds beating you!"

Last update: Tue, 2014 Jan 07