Der ORF hat einen Artikel zur von mir vorgestern erwähnten Ö1-Sendung nachgeworfen, offenbar als Vorschau auf die heutige Sendung „Matrix“ um 22.30h, in der es ebenfalls um Computer Vision bzw. maschinelles Sehen geht. Die Autoren erwähnen dabei auch die Möglichkeit, dass die Community für korrekt annotierte Trainingsdaten sorgt, die dann den Machine Learning-Algorithmen zur Verfügung stehen – eine Sache, die mich auch beruflich beschäftigt. Bin gespannt, wie sich das alles weiterentwickelt.
Es ist immer spannend, wenn das, womit man sich (z.B. beruflich) einhergehend beschäftigt, beginnt, sich allmählich in der Gesellschaft niederzuschlagen, vor allem wenn die Entwicklung zuvor von der Öffentlichkeit unbeobachtet in „Elfenbeintürmen“ (Labors, Forschungs- & Entwicklungsabteilungen, Uni-Instituten udgl.) stattgefunden hat. Es ist nämlich damit zu rechnen, dass Anwendersoftware bald in der Lage ist, Bild- und Videoinhalte tatsächlich auch zu sehen. So wäre etwa zu erwarten, dass in jüngerer Zukunft nach dem Hochladen eines Bildes in einem einschlägigen Webportal vorgeschlagen wird, das Bild z.B. mit den Schlagworten „Auto“, „rot“, „Straße“ oder „Strand“, „Meer“, „Küste“ zu versehen, sofern eine einschlägige Szene abgebildet ist.
Was bereits Realität ist, sind lernfähige Gesichtserkennungsfunktionen in aktuellen Digitalkameras und Bildverwaltungsanwendungen. Mit den technischen Hintergründen dieser nun Alltag gewordenen Funktion beschäftigte sich die gestrige Ö1-Sendung „Digital.Leben“.
Maschinelles Sehen
[...] Wir Menschen können Gesichter ganz gut anhand von winzigen Details unterscheiden, wie aber macht das ein Computer? Die Antwort weiß Horst Bischof, Professor für maschinelles Sehen an der Technischen Universität Graz.
Ich erlaube mir, hier eine Kopie des Podcasts zur Verfügung zu stellen:
Processing images with my current notebook (1.6 GHzCPU, 1 GBRAM) finally is a real pain in the ass. Having the RAW converter render some JPEGs while the HDR software performs tonemapping, it becomes impossible to do image editing or even browse the web at the same time, as the mouse pointer only moves stutteringly like in those “good old days”. In addition, my 160 GB disk is almost full. My computer usage history documents the years where I got a PC (for the use as a workstation, not counting those few boxes for my server and firewalling experiments): 1995, 1998 and 2001; the notebook’s from 2004. So, it’s about time for an upgrade.
When I first thought about whether it should be a notebook again, I noticed that I don’t use my current notebook “on the road” anyway. And notebooks don’t have the computing power of dedicated desktop machines.
Nerds who buy a new PC every year are probably surprised that a Linux geek like me gets along with that few hardware upgrades. Well, my strategy is more like: Buy rarely, but wisely. I don’t feel well when messing around on a productive machine that is supposed to work; just a matter of experience. Thus, I select the components for my new PC carefully and according to my demands: Fast, multi-core, RAM expandable, good disk size, RAID-1, average good GPU, and—very important—silent operation. The price for the box should traditionally be around EUR 1,500 (formerly ATS 20,000). These are now my considerations:
From: me To: Disputo Support Date: Wed, 03 Dec 2008 15:47 Subject: Zweimalig 25EUR verrechnet ohne Auftrag
Ich sehe auf meiner Kreditkarte zwei Positionen von „WP-FIRSTUSENET INT“ vom 01.12.2008 zu je 25 EUR, obwohl ich keinen Auftrag abgesetzt habe! Was hat es damit auf sich? Ich habe zuletzt am/vorm 24.09.2008 das Transferguthaben von 20GB um 25EUR aufgeladen und seither nichts mehr getätigt.
From: Disputo Support To: me Date: Wed, 3 Dec 2008 16:01
leider ist ein Problem in der Rechnungsverarbeitung aufgetreten, aufgrund dessen Ihr Account fehlerhaft berechnet wurde. Der Fehler wurde beseitigt und falsch abgebuchte Beiträge wurden am 02.12.2008 zurück erstattet. Wir bitten vielmals um Entschuldigung.
From: me To: Disputo Support Date: Fri, 05 Dec 2008 07:24
Bis jetzt sehe ich nur eine einmalige Rückerstattung von 25 EUR mit Datum 01.12.2008. Die zweiten 25 EUR sind noch nicht rückgebucht. Wurden beide Beträge rückerstattet?
About ¾ of a year later I did my next try with installing NVIDIA CUDA on Debianlenny, mainly because I wanted to try GpuCV, a GPU-accelerated computer vision library that’s partly compliant with OpenCV. Debian is still not officially supported by NVIDIA, but the finally upcoming release of lenny and NVIDIA’s support for the rather recent Ubuntu 8.04 (2008/04) have a very positive effect: CUDA 2.1 Beta works out of the box, and this with lenny’s GCC 4.3! The only thing I had to consider is to install libxmu-dev and libc6-dev-i386 (for my 64-bit CPU) to make CUDA’s examples compile. Also, in order to actually execute the examples, one has to rely on the NVIDIA driver version 180.06 that CUDA provides, whereas even NVIDIA’s version 180.22 fails to execute the OpenGL examples with the message
cudaSafeCall() Runtime API error in file <xxxxx.cpp>, line nnn : unknown error.
With CUDA working I could then think of compiling GpuCV from SVN. But the build relies on Premake 3.x, which is not available in Debian and has to be installed in advance. In addition, the package libglew1.5-dev is needed. Some more stumbling blocks were that I had to define the typedef unsigned long GLulong by myself. Also, and IIRC, the provided SugoiTools of GpuCV didn’t link, so I fetched and compiled them from SVN as well, and I replaced the .so-files in GpuCV’s resources directory. After that GpuCV finally compiled (except the GPUCVCamDemo, as I don’t have the cvcam lib installed). Including the lib/gnu/linux paths into the $LD_LIBRARY_PATH, the GPUCVConsole demo finally runs. The next step will be to actually use that lib.
Currently I’m dealing with the topic of machine learning at work, and I stepped over the so-called curse of dimensionality, where the volume of the unit ball (radius=1) becomes negligible compared to the volume of the unit cube (side length=1) which is always equal to 1, what yields problems when selecting a number of training samples in a (very) high-dimensional feature space. My team-mate and I stepped over an interesting thing concerning the volume of the unit ball in higher dimensions.
First of all, the formula for calculating the volume of the ball Brn ⊂ ℝn with radius r is given as
.
In two dimensions (n=2) we get the volume as the well-known circle area r2π, and as Γ(2.5)=¾√π, we get the ball volume for n=3 as 4⁄3r3π. In higher dimensions the resulting formula isn’t that simple anymore, but we’re only interested in the numerical values anyway. We now restrict to r=1. Following one’s intuition, the volume increases with the dimensions (ball volume is larger than circle area), but see what happens beginning with n=5 and n=13:
n
V
n
V
1
2
11
1.88
2
π ≈ 3.14
12
1.34
3
4⁄3π ≈ 4.19
13
0.91
4
4.93
14
0.60
5
5.26
15
0.38
6
5.17
16
0.24
7
4.72
17
0.14
8
4.06
18
0.08
9
3.30
19
0.05
10
2.55
20
0.03
This is indeed interesting: The ball volume starts to decrease and even goes to zero in higher dimensions, although its radius is always 1! What does that mean? And why is the unit cube able to keep its volume of 1, although it seems to be contained within the unit ball? Another thing we see: A bit past n=5 the function reaches its maximum of something a bit larger than 5. Do we have V(x0)=x0 for x0=sup V(x)? And if so, what’s its value?
The key in understanding this issue lies in the corners of the unit cube: Their distance to the origin goes to infinity with increasing number of dimensions! For the unit square (2-cube), their distance is √½ ≈ 0.71, and for the 3-cube it’s already √¾ ≈ 0.87. At n=4 their distance is √1=1 and thus the corners already touch the unit ball. In higher dimensions the unit cube is not completely contained within the unit ball anymore, but still its volume is constant =1 and the nearest points of the sides remain at a distance of ½!
Regarding the question about where the maximum of the volume formula is reached, I noticed that I’d need to do advanced numerical derivations whose knowledge I lack.
Ich hab mich jetzt doch mal an den Telekom/aon-Service gewandt, um die Sache mit den 1 vs. 2MBit/s aufzuklären. In der Mail erzählte ich, was der Techniker mir bei der Installation erklärt hatte, und dass das Modem trotz tagelangem Betriebs immer noch auf 1MBit eingestellt sei. Die Antwort lautete dann erfreulicherweise, dass man meine Bandbreite frisch provisioniert habe, ich mein Modem 36 Stunden lang nicht ausstecken solle und dass ich dann auf eine Bandbreite von 6(!)MBit down/512kbit up geschalten sei! Na, das nenne ich doch eine gute Nachricht! Bei Speedtest.net habe ich tatsächlich 5237kbit/404kbit messen können.