In this video I explain how the Hough Transform works to detect lines in images. It firstly apply an edge detection algorithm to the input image, and then computes the Hough Transform to find the combination of Rho and Theta values in which there is more occurrences of lines. This algorithm can also be applied to detect circles, but I only presented a visual example of the algorithm to detect lines.
To create the animation I used octave 4, and packages image and geometry.
Source code for animation at
https://github.com/tkorting/youtube/tree/master/hough-transform

Views: 90488
Thales Sehn Körting

In this video I describe how the k Nearest Neighbors algorithm works, and provide a simple example using 2-dimensional data and k = 3.
This presentation is available at: http://prezi.com/ukps8hzjizqw/?utm_campaign=share&utm_medium=copy

Views: 387882
Thales Sehn Körting

In this video we describe the DTW algorithm, which is used to measure the distance between two time series. It was originally proposed in 1978 by Sakoe and Chiba for speech recognition, and it has been used up to today for time series analysis. DTW is one of the most used measure of the similarity between two time series, and computes the optimal global alignment between two time series, exploiting temporal distortions between them.
Source code of graphs available at
https://github.com/tkorting/youtube/blob/master/how-dtw-works.m
The presentation was created using as references the following scientific papers:
1. Sakoe, H., Chiba, S. (1978). Dynamic programming algorithm optimization for spoken word recognition. IEEE Trans. Acoustic Speech and Signal Processing, v26, pp. 43-49.
2. Souza, C.F.S., Pantoja, C.E.P, Souza, F.C.M. Verificação de assinaturas offline utilizando Dynamic Time Warping. Proceedings of IX Brazilian Congress on Neural Networks, v1, pp. 25-28. 2009.
3. Mueen, A., Keogh. E. Extracting Optimal Performance from Dynamic Time Warping. available at: http://www.cs.unm.edu/~mueen/DTW.pdf

Views: 30842
Thales Sehn Körting

In this video I describe how the self organizing maps algorithm works, how the neurons converge in the attribute space to the data. It is important to state that I used a very simple map with only two neurons, and I didn't show the connection between the neurons to simplify the video.

Views: 135348
Thales Sehn Körting

In this video I explain very briefly how the Random Forest algorithm works with a simple example composed by 4 decision trees.

Views: 296875
Thales Sehn Körting

In this video I explain how SVM (Support Vector Machine) algorithm works to classify a linearly separable binary data set.
The original presentation is available at http://prezi.com/jdtqiauncqww/?utm_campaign=share&utm_medium=copy&rc=ex0share

Views: 501963
Thales Sehn Körting

In this video we explain the HSV color model and provide an animation on how to create the HSV color cylinder.
As follows, the source code (in octave) to create the steps for the animation:
please replace the some markers by the corresponding symbol (youtube does not allow), such as |open_brackets|, or |close_braces|, etc
clear all;
figure(1);
clear plot;
clf;
MIN_I = 0;
STEP_I = 0.075;
MAX_I = 1;
MIN_S = 0;
STEP_S = 0.1;
MAX_S = 1;
MIN_H = 0;
STEP_H = 10;
MAX_H = 360;
vector_i = |open_brackets||close_brackets|;
vector_h = |open_brackets||close_brackets|;
vector_s = |open_brackets||close_brackets|;
my_struct = struct();
position_size = 0;
for i = MIN_I:STEP_I:MAX_I
for s = MIN_S:STEP_S:MAX_S
for h = MIN_H:STEP_H:MAX_H
if (s |less_than| 0.2)
h += STEP_H;
endif;
position_i = i;
position_h = s * sin(h * pi / 180);
position_s = s * cos(h * pi / 180);
int_i = position_i * 100;
int_h = position_h * 100;
int_s = position_s * 100;
|open_brackets|r, g, b|close_brackets| = ihs_to_rgb(i, h, s);
ihs_distance = sqrt(int_i^2 + int_h^2 + int_s^2);
ihs_name = sprintf('%09d - %09d - %f %f %f', int_i, ihs_distance, int_i, int_h, int_s);
my_struct = setfield(my_struct, |open_braces|1|close_braces|, ihs_name, |open_braces|position_i position_h position_s r g b i h s|close_braces|);
position_size++;
endfor
endfor
endfor
ordered_struct = orderfields(my_struct);
animation_step = 0;
degree = 110;
degree_final = 160;
degree_step = (degree_final - degree) / position_size;
for |open_brackets|val, key|close_brackets| = ordered_struct
i = val|open_braces|1|close_braces|;
h = val|open_braces|2|close_braces|;
s = val|open_braces|3|close_braces|;
r = val|open_braces|4|close_braces|;
g = val|open_braces|5|close_braces|;
b = val|open_braces|6|close_braces|;
value_i = val|open_braces|7|close_braces|;
value_h = val|open_braces|8|close_braces|;
value_s = val|open_braces|9|close_braces|;
# plot data
plot3(h, s, i, '*', 'color', |open_brackets|r g b|close_brackets|, 'linewidth', 5);
# configure plot
zlabel('VALUE');
axis(|open_brackets|-1 1 -1 1 0 1|close_brackets|);
title_str = sprintf('H = %d\nS = %0.2f\nV = %0.2f', value_h, value_s, value_i);
#title(title_str, 'horizontalAlignment', 'left');
grid on;
box off;
# rotate the graph according to current degree
view(degree, 30 + 7.5 * sin(degree/60));
degree = degree + degree_step;
hold on;
output_filename = sprintf('ihs-steps/animation-%09d.png', animation_step);
print(output_filename, '-S560,420', '-dpng', '-color');
animation_step = animation_step + 1;
endfor
function |open_brackets|R, G, B|close_brackets| = ihs_to_rgb(i, h, s)
H = h / 360;
S = s;
V = i;
# based on transformation HSV to RGB
H = H * 6;
I = floor(H);
F = H - I;
M = V * (1 - S);
N = V * (1 - (S * F));
K = V * (1 - (S * (1 - F)));
R = 0;
G = 0;
B = 0;
if (I == 0)
R = V;
G = K;
B = M;
elseif (I == 1)
R = N;
G = V;
B = M;
elseif (I == 2)
R = M;
G = V;
B = K;
elseif (I == 3)
R = M;
G = N;
B = V;
elseif (I == 4)
R = K;
G = M;
B = V;
elseif (I == 5)
R = V;
G = M;
B = N;
endif

Views: 25015
Thales Sehn Körting

In this video I explain how the generic image segmentation using region growing approach works.
We provide an animation on how the pixels are merged to create the regions, and we explain the homogeneity measure defined by Haralick and Shapiro (1985) based on the Euclidean distance between the pixels.

Views: 35087
Thales Sehn Körting

In this video I show how the MLE algorithm works. We provide an animation where several points are classified considering three classes with mean and standard deviation values previously computed. We compute the class conditional density for the three classes and conclude the classification of a sample point with unknown class.

Views: 59878
Thales Sehn Körting

In this video we describe data mining, in the context of knowledge discovery in databases.
More videos on classification algorithms can be found at
https://www.youtube.com/playlist?list=PLXMKI02h3_qjYoX-f8uKrcGqYmaqdAtq5
Please subscribe to my channel, and share this video with your peers!

Views: 218112
Thales Sehn Körting

In this video I present a simple example of a CNN (Convolutional Neural Network) applied to image classification of digits. CNN is one of the well known Deep Learning algorithms.
I firstly explain the basics of Neural Networks, i.e. the artificial neuron, followed by the concept of convolution, and the common layers in a CNN, such as convolutional, pooling, fully connected, and softmax classification.
I read several references to prepare this material, but the main references are:
* Towards better exploiting convolutional neural networks for Remote Sensing scene classification. By Keiller Nogueira, Otávio Penatti, Jefersson dos Santos
* Everything you wanted to know about Deep Learning for computer vision but were afraid to ask. By Moacir Ponti, Leonardo Ribeiro, Tiago Nazaré, Tu Bui, John Collomosse
I also created an Octave (Matlab like) source code to implement the basic CNN showed in this video, which are available at my github. Please follow the link for more details on the source code:
https://github.com/tkorting/youtube/tree/master/deep-learning-cnn
This presentation is available at my Prezi site, at this link:
http://prezi.com/n_r8p1ytanyh/?utm_campaign=share&utm_medium=copy
Thanks for watching this video, please like and share, and subscribe to my channel.
Regards

Views: 29125
Thales Sehn Körting

In this video I explain how to use Weka to export a decision tree in dot format and how to create elegant decision trees using Graphviz, to export to several formats, such as PNG or EPS.
Main commands:
$ java -cp weka.jar weka.classifiers.trees.J48 -t iris.arff -C 0.25 -M 2 -g GREATER_THAN_SYMBOL decision-tree.dot
$ dot -o decision-tree.png decision-tree.dot -Tpng

Views: 6731
Thales Sehn Körting

GeoDMA is a plugin for TerraView software, used for geographical data mining. With a single image, the user can perform segmentation, attributes extraction, normalization and classification.
More info

Views: 2943
Thales Sehn Körting

In this video we provide an animation of image processing spatial filtering. We provide two exemples, on Highpass spatial and other Lowpass spatial filter in an image.
The kernels for the Highpass filter are
H = [-1 -1 -1
-1 9 -1
-1 -1 -1]
The kernels for Lowpass filter are
L = [1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9]

Views: 17725
Thales Sehn Körting

Based on the publication from Achanta et al. (2010) I created this video, to represent visually the application of the SLIC algorithms in the context of superpixel generation.
I used a RGB image by remote sensing to apply the detection of 100 superpixels. The original presentation is available at xxx, and the source-code using Python, created to make the superpixels and produce a beautiful animation, is available at https://github.com/tkorting/youtube/blob/master/slic/main.py
The original algorithm's description is as follows:
SLIC Superpixels
Authors: Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk
Abstract. Superpixels are becoming increasingly popular for use in
computer vision applications. However, there are few algorithms that
output a desired number of regular, compact superpixels with a low computational overhead. We introduce a novel algorithm that clusters pixels in the combined five-dimensional color and image plane space to efficiently generate compact, nearly uniform superpixels. The simplicity of our approach makes it extremely easy to use – a lone parameter specifies the number of superpixels – and the efficiency of the algorithm makes it very practical. Experiments show that our approach produces superpixels at a lower computational cost while achieving a segmentation quality equal to or greater than four state-of-the-art methods, as measured by boundary recall and under-segmentation error. We also demonstrate the benefits of our superpixel approach in contrast to existing methods for two tasks in which superpixels have already been shown to increase performance
over pixel-based methods.

Views: 1364
Thales Sehn Körting

In this video I distinguish the two classical approaches for classification algorithms, the supervised and the unsupervised methods.
We provide one visual exemple on how both strategies works and suggest examples of algorithms of both types.
Videos about the mentioned supervised algorithms:
1. decision trees (https://www.youtube.com/watch?v=Qdi0GBWrDO8)
2. random forests (https://www.youtube.com/watch?v=loNcrMjYh64)
3. k nearest neighbors (https://www.youtube.com/watch?v=UqYde-LULfs)
4. svm (https://www.youtube.com/watch?v=1NxnPkZM9bc)
5. neural networks (https://www.youtube.com/watch?v=LCzufhtIFnY)
Videos about the unsupervised algorithms:
1. k-means (https://www.youtube.com/watch?v=IuRb3y8qKX4)
2. self organizing maps (https://www.youtube.com/watch?v=H9H6s-x-0YE)
3. expectation-maximization (https://www.youtube.com/watch?v=P54ILClbP2g)

Views: 14666
Thales Sehn Körting

The InterImage system is a knowledge based framework for Automatic Image Interpretation. InterImage is an extension of an earlier project called GeoAIDA developed by the Insitut für Informationsverarbeitung - Leibniz Universität Hannover. The interpretation strategy implemented by the system is based on a knowledge model defined by the user, structured as a semantic network. The nodes of the network represent concepts, classes of image objects expected to be found in a scene. Specialized image processing operators (external from the system's core) can be attached to the system, which controls their execution. The instances of the concepts found by the operators are then judged by the system, based on rules defined by the user.

Views: 3445
Thales Sehn Körting

In this video I describe how the K-Means algorithm works, and provide a simple example using 2-dimensional data and K=3.

Views: 146146
Thales Sehn Körting

In this video we show very briefly how to create the RGB color model using the cartesian coordinate system. We also created a 3D animation in octave with the color cube creation.
R, G and B are the axes varying from 0 to 1, and the combination of the three components will define the colors inside this 3D cube.

Views: 21210
Thales Sehn Körting

In this video we explain how to create Integral Images (also called Summed-area table). This is a technique that is used in image processing to make fast computations of sum in rectangles inside the image.
Other techniques, like SURF method, employs Integral Images.
The original presentation is available at: http://prezi.com/qrm7ty_wjlok/?utm_campaign=share&utm_medium=copy
The source code used to create the animations in this video and equations in the presentation is available at:
https://github.com/tkorting/youtube/tree/master/integral-images

Views: 327
Thales Sehn Körting

This presentation describes the Expectation-Maximization Method, that aims to estimate n classes in a data set, according to some parameters. Also, a description of the algorithm is shown, and some results are presented to certify the method, in comparison to other classification methods, analyzing accuracy.

Views: 13416
Thales Sehn Körting

Apresentação sobre classificação não-supervisionada de Imagens para a TerraLib.

Views: 860
Thales Sehn Körting

The characterization of landscape objects can vary when considering different spatial resolution and different deforestation patterns in the Amazonia. Therefore, this paper aims to evaluate the effects of spatial resolution and different deforestation patterns on the performance of landscape metrics. Deforestation maps from MODIS (250m) and TM (30m) sensors were used in this study. The experiments were performed in the region called "Terra do Meio", in São Félix do Xingu Municipality, Pará State in three different test areas for the same landscape metrics set. The results have shown, with good accuracy, that one can use similar landscape metrics sets, extracted from coarser spatial resolution images, to characterize landscape objects extracted from higher spatial resolution images and vice- versa.

Views: 1899
Thales Sehn Körting

In this video we describe how the decision tree algorithm works, how it selects the best features to classify the input patterns. Based on the C4.5 algorithm strategy, proposed by Quinlan, 1993.

Views: 60599
Thales Sehn Körting

In this video I explain the propagation of values inside the neural network algorithm.
The backpropagation, which is used to train the network, is not discussed in this video.
The weights of the connections were defined randomly, but the results of the propagation are correct. We used three different activation functions only to show that in the neural network it is possible to define more than one type of activation function.

Views: 36249
Thales Sehn Körting

Although a huge amount of remote sensing data has been provided by Earth observation satellites, few data manipulation techniques and information extraction in large data sets have been developed. In this context, the present paper aims to show a new system for spatial data mining, and two test cases applied to land use change in the Brazilian Amazon region. We present the operational environment named GeoDMA, developed to implement such approach.

Views: 427
Thales Sehn Körting

http://www.dpi.inpe.br/~tkorting/
There's a project at OBT, INPE (Coordenação Geral de Observaçào da Terra) called DETER, wich intends to detect recent deforestment, using low resolution images, from the MODIS sensor. There's also the project PRODES, that estimates the deforested area through medium resolution images, from TM sensor. One of the main objectives of this work is to extract attributes from the geometric forms (polygons) generated by the segmentation of these images (MODIS and TM).

Views: 485
Thales Sehn Körting

The aim of this presentation is to show a brief description about the C4.5 algorithm, used to create Univariate Decision Trees. We also talk about Multivariate Decision Trees, their process to classify instances using more than one attribute per node in the tree. We try to discuss how they work, and how to implement the algorithms that build such trees, including examples of Univariate and Multivariate results.

Views: 50938
Thales Sehn Körting

Sorry for bad sound.
This is the presentation performed at GEOBIA 2014, in Thessalonike, Greece.

Views: 192
Thales Sehn Körting

In this video I explain how to create a 3D scatterplot animation using an Octave (also Matlab) script and Image Magick tool.
The source code is as follows:
file 1 - create_animation.sh
# call octave to create all snapshots
octave create_snapshots.m
# reduce size of images, if needed
mogrify -resize 500x375 scatter*.png
# create animated GIF
convert -delay 10 -loop 0 scatter*.png animation.gif
# if you want to create a swf with the animation
png2swf scatter*.png -o animation.swf
file 2 - create_snapshots.m
clear all;
# define velues for each axis (in this case random values)
axis_X = rand(1, 400);
axis_Y = rand(1, 400);
axis_Z = rand(1, 400);
# create 360 snapshots (1 per degree)
figure(1);
t = 100;
for degree=1:360
# clear graph
clf;
# plot 3d snapshot with small dots "."
plot3(axis_X, axis_Y, axis_Z, ".");
# configure label names and axis intervals [0, 1]
xlabel("X Label");
ylabel("Y Label");
zlabel("Z Label");
axis([0 1 0 1 0 1]);
# rotate the graph according to current degree
view(degree, 30 + 15 * sin(degree/60));
# save the current snapshot file
plotname = ['scatter_t', num2str(t), '.png'];
print(plotname, '-dpng');
t = t + 1;
end;

Views: 9952
Thales Sehn Körting

This video shows an example of a software developed in MATLAB for image classification. It uses Self Organizing Maps (SOM), for finding clusters in images and classifying it.
The source-code, in MATLAB, is available at
https://github.com/tkorting/youtube/tree/master/self-organizing-maps
No support is provided for the code, however you can reuse.

Views: 20302
Thales Sehn Körting

Presentation at GeoInfo 2011 - Divide and Segment - An alternative for parallel segmentation
See slides at http://goo.gl/QkRmp
Thales Sehn Korting, Emiliano Castejon, Leila Fonseca
Remote sensing images with large sizes are usual. They also include several spectral channels, increasing the volume of information. To get valuable information from data automatically, computers need higher amounts of memory and efﬁcient processing techniques. Segmentation is a key technique to deal with remote sensing. It identiﬁes regions in images. Therefore, it deals with large amounts of information. Even with current computational power, some image sizes exceed the memory limits, which need different solutions. An alternative to overcome such limits is to employ divide and conquer strategy, splitting the image into tiles, and segmenting each one individually. However, arises the problem of merging neighboring tiles and keeping the homogeneity in such regions. In this work, we propose an alternative to create the tiles, by deﬁning noncrisp borders between tiles, but adaptive borders for the tiles. By applying our method, we avoid the postprocessing of neighboring regions, and therefore speed up the ﬁnal segmentation.
Recorded by Felipe Siqueira

Views: 3778
Thales Sehn Körting

http://facialdas.sf.net/
Using JAVA 3D and JAMA library for matrix calculations, this project presents a computational system that is able to simulate human movements in a virtual face, modelled through Computer Graphics techniques. This face will be represented through a polygon mesh, defined by a set of points (vertices) in the 3D space, inter connected by edges. There's lots of approaches to animate a virtual face, classified in two main groups: the Physics-Based models and the Parametric ones. The parametric approach using Radial Basis Functions were choosed and implemented in this project. The main idea is based on the insertion of control points in the virtal face, and trough the movement of this points, generate the animation of the neiborhood, in a influence region defined based on heuristics extracted from the human anatomy.

Views: 8380
Thales Sehn Körting

The characterization of landscape objects can vary when considering different spatial resolution and different deforestation patterns in the Amazonia. Therefore, this paper aims to evaluate the effects of spatial resolution and different deforestation patterns on the performance of landscape metrics. Deforestation maps from MODIS (250m) and TM (30m) sensors were used in this study. The experiments were performed in the region called "Terra do Meio", in São Félix do Xingu Municipality, Pará State in three different test areas for the same landscape metrics set. The results have shown, with good accuracy, that one can use similar landscape metrics sets, extracted from coarser spatial resolution images, to characterize landscape objects extracted from higher spatial resolution images and vice- versa.

Views: 548
Thales Sehn Körting

http://www.dpi.inpe.br/~tkorting/
Using JAVA 3D and JAMA library for matrix calculations, this project presents a computational system that is able to simulate human movements in a virtual face, modelled through Computer Graphics techniques. This face will be represented through a polygon mesh, defined by a set of points (vertices) in the 3D space, inter connected by edges. There's lots of approaches to animate a virtual face, classified in two main groups: the Physics-Based models and the Parametric ones. The parametric approach using Radial Basis Functions were choosed and implemented in this project. The main idea is based on the insertion of control points in the virtal face, and trough the movement of this points, generate the animation of the neiborhood, in a influence region defined based on heuristics extracted from the human anatomy.

Views: 1971
Thales Sehn Körting

http://www.dpi.inpe.br/~tkorting/
Using JAVA 3D and JAMA library for matrix calculations, this project presents a computational system that is able to simulate human movements in a virtual face, modelled through Computer Graphics techniques. This face will be represented through a polygon mesh, defined by a set of points (vertices) in the 3D space, inter connected by edges. There's lots of approaches to animate a virtual face, classified in two main groups: the Physics-Based models and the Parametric ones. The parametric approach using Radial Basis Functions were choosed and implemented in this project. The main idea is based on the insertion of control points in the virtal face, and trough the movement of this points, generate the animation of the neiborhood, in a influence region defined based on heuristics extracted from the human anatomy.

Views: 3876
Thales Sehn Körting