Milania's Bloghttps://www.milania.de/My little place on the web...<![CDATA[Blog: Introduction to kernel density estimation (Parzen window method)]]>https://www.milania.de/blog/Introduction_to_kernel_density_estimation_%28Parzen_window_method%29https://www.milania.de/blog/Introduction_to_kernel_density_estimation_%28Parzen_window_method%29Sun, 12 Nov 2017 00:00:00 +0100Jan SellnerIn probability theory, it is common to work with certain distributions which describe a stochastic process and reveal information of how the process may behave. In reality, it is not unusual to deal only with data directly without any knowledge about any formal distribution. However, even though we don't know the distribution, it is still valid to assume that the data arise from a hidden distribution. This means we acknowledge that there is a distribution which produced our data but we don't have a clue which one it is and there is probably no way to find out for sure. But there are techniques which can estimate a distribution based on the observed data. One is known as kernel density estimation (also known as Parzen window density estimation or Parzen-Rosenblatt window method). This article is dedicated to this techniques and tries to convey the basics to understand it.

]]>
<![CDATA[Showcase: From the Euclidean distance over standardized variables to the Mahalanobis distance]]>https://www.milania.de/showcase/From_the_Euclidean_distance_over_standardized_variables_to_the_Mahalanobis_distancehttps://www.milania.de/showcase/From_the_Euclidean_distance_over_standardized_variables_to_the_Mahalanobis_distanceSat, 21 Oct 2017 00:00:00 +0200Jan SellnerMeasuring distance is an important task for many applications like preprocessing, clustering or classification of data. In general, the distance between two points can be calculated as

]]>
<![CDATA[Showcase: Subadditivität als Bedingung für ein natürliches Monopol]]>https://www.milania.de/showcase/Subadditivit%C3%A4t_als_Bedingung_f%C3%BCr_ein_nat%C3%BCrliches_Monopolhttps://www.milania.de/showcase/Subadditivit%C3%A4t_als_Bedingung_f%C3%BCr_ein_nat%C3%BCrliches_MonopolSat, 14 Oct 2017 00:00:00 +0200Jan SellnerEs gibt mehrere Möglichkeiten, wie definiert werden kann, ob ein natürliches Monopol vorliegt oder nicht. Eine davon ist die Verwendung der Subadditivität. Dabei geht man davon aus, dass die Kostenstruktur und damit die Kostenfunktion für die Herstellung des Produktes bekannt sind. Zumindest wenn man mit der Definition auch rechnen möchte. Grundsätzlich besteht das Ziel dabei darin, mit Hilfe der Kostenfunktionen eine bestimmte Menge herzustellen. Die Frage ist nun, ob es günstiger ist, wenn nur ein oder wenn mehrere Unternehmen die gewünschte Menge produzieren.

]]>
<![CDATA[Blog: Buffer vs. image performance for applying filters to an image pyramid in OpenCL]]>https://www.milania.de/blog/Buffer_vs._image_performance_for_applying_filters_to_an_image_pyramid_in_OpenCLhttps://www.milania.de/blog/Buffer_vs._image_performance_for_applying_filters_to_an_image_pyramid_in_OpenCLWed, 30 Aug 2017 00:00:00 +0200Jan SellnerWhen you have worked with images in OpenCL before, you may have wondered how to store them. Basically, we have the choice between using buffers or image objects. The later seems to be designed for that task, but what are the differences and how do they perform differently when applying a certain task? For a recent project, I needed to decide which storage type to use and I want to share the insights here. This is a follow-up article to my previous post where I already evaluated filter operations in OpenCL.

]]>
<![CDATA[Blog: Performance evaluation of image convolution with gradient filters in OpenCL]]>https://www.milania.de/blog/Performance_evaluation_of_image_convolution_with_gradient_filters_in_OpenCLhttps://www.milania.de/blog/Performance_evaluation_of_image_convolution_with_gradient_filters_in_OpenCLThu, 17 Aug 2017 00:00:00 +0200Jan SellnerFilter operations are very common in computer vision applications and are often the first operations applied to an image. Blur, sharpen or gradient filters are common examples. Mathematically, the underlying operation is called convolution and already covered in a separate article. The good thing is that filter operations are very well suited for parallel computing and hence can be executed very fast on the GPU. I worked recently on a GPU-project were the filter operations made up the dominant part of the complete application and hence got first priority in the optimization phase of the project. In this article, I want to share some of the results.

]]>
<![CDATA[Blog: Using the Surface pen as presenter]]>https://www.milania.de/blog/Using_the_Surface_pen_as_presenterhttps://www.milania.de/blog/Using_the_Surface_pen_as_presenterFri, 11 Aug 2017 00:00:00 +0200Jan SellnerIf you have a Surface and already use it for presentations, you may have wondered if it is possible to use the Surface pen to control the slides. The idea is to use the top button of the pen which is connected via Bluetooth with the device. Pressing this button once proceeds one step forward in the presentation and pressing it twice goes one step back. I tried exactly this and here I want to show the solution which worked for me.

]]>
<![CDATA[Blog: Introduction to the Hessian feature detector for finding blobs in an image]]>https://www.milania.de/blog/Introduction_to_the_Hessian_feature_detector_for_finding_blobs_in_an_imagehttps://www.milania.de/blog/Introduction_to_the_Hessian_feature_detector_for_finding_blobs_in_an_imageSun, 06 Aug 2017 00:00:00 +0200Jan SellnerIn many computer vision applications, it is important to extract special features from the image which are distinctive, unambiguously to locate and occur in different images showing the same scene. There is a complete subbranch in the computer vision field dedicated to this task: feature matching. Usually, this process consists of three tasks: detection, description and matching. I shortly want to summarize the steps but you can easily find further information on the web or in related books1.

]]>
<![CDATA[Blog: Conductivity matrix for isotropic diffusion problems in FED]]>https://www.milania.de/blog/Conductivity_matrix_for_isotropic_diffusion_problems_in_FEDhttps://www.milania.de/blog/Conductivity_matrix_for_isotropic_diffusion_problems_in_FEDWed, 03 May 2017 00:00:00 +0200Jan SellnerIn isotropic diffusion, the conductivity is adaptive to the local structure of the signal. But in comparison to anisotropic diffusion, the conductivity is still the same in all directions. Mathematically, the conductivity factor in the diffusion equation depends now on the signal \(u\) instead of being a constant

<![CDATA[Blog: Addressing mode of sampler objects for image types in OpenCL reviewed]]>https://www.milania.de/blog/Addressing_mode_of_sampler_objects_for_image_types_in_OpenCL_reviewedhttps://www.milania.de/blog/Addressing_mode_of_sampler_objects_for_image_types_in_OpenCL_reviewedFri, 14 Apr 2017 00:00:00 +0200Jan SellnerWhen working with image objects in OpenCL (e.g. `image2d_t`) special image functions like `read_imagef` must be used for accessing the individual pixels. One of the parameters, beside the image object and the coordinates, is a `sampler_t` object. This object defines the details about the image access. One detail is what should happen if coordinates are accessed which are out of the image boundaries. Several addressing modes can be used and this article discussed the difference on a small example.