若若's profile芳草天涯PhotosBlogListsMore Tools Help

Blog


    September 27

    C++的文件读写操作练习

    捡基础捡基础 = =|||
     
    #include <iostream>
    #include <fstream>
    #include <string> 
     
    #define WordByWord 1
    #define LineByLine 2
     
    void ReadAndShow( string fname, int flag )
    {
     ifstream fin( fname.c_str() );
     int i = 1;
     string s;
     
     if( !fin )
     {
      cout<<"File dose not exist!"<<endl;
      exit(-1);
     }
     if( flag == WordByWord)
     {
      while( fin>>s ){
       cout<<i<<". word: "<<s<<endl;
       i++;
      }
     }
     else if( flag == LineByLine )
     {
      while( getline(fin, s) ){
       cout<<i<<". line: "<<s<<endl;
       i++;
      }
     }
     else
     {
      cout<<"Error: The second argument should be 1 or 2."<<endl;
      exit(-1);
     }
     cout<<endl;
     fin.close();
    }
     
    int main()
    {
     string filename = "data.txt";
     ofstream fout( filename.c_str() );
     fout<<"Ich schreibe irgendwas hier,"<<endl;
     fout<<"um zu testen."<<endl;
     fout.close();
     ReadAndShow( filename, WordByWord );
     ReadAndShow( filename, LineByLine );
     
     return 0 ;
    }
     
    输出结果:
    Photobucket
    August 02

    翻译有关OpenCV海尔训练——(四)训练样本

    1.海尔训练
    现在,我们使用haartraining.exe来训练我们自己的分类器。训练语句如下:

    Usage: ./haartraining
      -data <dir_name>
      -vec <vec_file_name>
      -bg <background_file_name>
      [-npos <number_of_positive_samples = 2000>]
      [-nneg <number_of_negative_samples = 2000>]
      [-nstages <number_of_stages = 14>]
      [-nsplits <number_of_splits = 1>]
      [-mem <memory_in_MB = 200>]
      [-sym (default)] [-nonsym]
      [-minhitrate <min_hit_rate = 0.995000>]
      [-maxfalsealarm <max_false_alarm_rate = 0.500000>]
      [-weighttrimming <weight_trimming = 0.950000>]
      [-eqw]
      [-mode <BASIC (default) | CORE | ALL>]
      [-w <sample_width = 24>]
      [-h <sample_height = 24>]
      [-bt <DAB | RAB | LB | GAB (default)>]
      [-err <misclass (default) | gini | entropy>]
      [-maxtreesplits <max_number_of_splits_in_tree_cascade = 0>]
      [-minpos <min_number_of_positive_samples_per_cluster = 500>]


    Kuranov et. al. 指出,20*20的样本识别的正确率最高。另外,对于18*18的尺寸,四分裂节点表现最好。而对于20*20的样本,两节点显然更好。分裂节点数分别是2、3或4的弱树分类器间的差小于它们的中间节点。
    此外,关于20阶训练有个说法。假设我的测试集合代表了学习任务,我可以期望一个报错率是0.5^20≈9.6e-07,识对率是0.999^20≈0.98。
    所以,使用20*20的样本大小,并且Nsplit=2, Nstages=20, MINhitrate=0.9999(default: 0.995), MAXfalsealarm=0.5(default: 0.5), weighttrimming=0.95(default: 0.95)是比较优的组合。

    $ haartraining -data haarcascade -vec samples.vec -bg negatives.dat -nstages 20 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 7000 -nneg 3019 -w 20 -h 20 -nonsym -mem 512 -mode ALL


    "-nonsym"选项用于没有垂直(左-右)对称的对象类。如果对象类是垂直对称的,例如正脸,则用"-sym (default)"。这样会增大运算速度,因为类海尔特征只有一半投入使用。
    "-mode ALL"使用了类海尔特征的扩展集。默认只使用竖直特征,ALL除了能使用竖直特征,还能使用转角为45°的特征集合。
    "-mem 512"是以MB为单位的预计算可使用的内存大小。默认是200MB。
    另外还有一些选项没有用到:

    [-bt <DAB | RAB | LB | GAB (default)>]
    [-err <misclass (default) | gini | entropy>]
    [-maxtreesplits <max_number_of_splits_in_tree_cascade = 0>]
    [-minpos <min_number_of_positive_samples_per_cluster = 500>]


    #你可以使用OpenMP(multi-processing).
    #一次训练持续三天。

    2.生成XML文件
    当海尔训练过程完全结束,它将会生成一个xml文件。
    如果你想要将一个中级海尔训练输出目录树转化为一个xml文件,在目录OpenCV/samples/c/convert_cascade.c下有个程序可供使用。
    输入的格式为:

    $ convert_cascade --size="<sample_width>x<sampe_height>" <haartraining_ouput_dir> <ouput_file>


    举例:

    $ convert_cascade --size="20x20" haarcascade haarcascade.xml

    翻译有关OpenCV海尔训练——(三)创建样本

    1.创建训练样本
    Kuranov et. al.指出,他们用了5000个含有正脸模板的正样本和3000个负样本进行训练,其中的5000个正样本是由1000张带脸的图像生成的。
    然而,你可能已经注意到了,以上四个方法都无法实现一下子由1000张图生成5000张图。我们必须先使用方法1使每张原图生成5张或者更多的正样本图,然后将这个过程重复1000次或更多次,最后合并所有生成的样本输出至vec文件中。
    我写了一个mergevec.cpp用来合并vec文件,还有一个叫createtrainsamples.pl的脚本用以重复该过程1000遍甚至更多遍。 我生成了7000个样本而不是5000,因为教程上说7000是最适当的数字。请将路径改为createsamples的位置。

    createtrainsamples.pl的输入格式为:

    $ perl createtrainsamples.pl <positives.dat> <negatives.dat> <vec_output_dir> [<totalnum = 7000>] [<createsample_command_options = "./createsamples -w 20 -h 20...">]


    mergevec的输入格式为:

    $ mergevec <collection_file_of_vecs> <output_vec_file_name>


    一个收集文件(一个含有文件名列表的文件)可以由下法生成:

    $ find [dir_name] -name '*.[ext]' > [collection_file_name]


    举例:

    $ cd HaarTraining/bin
    $ find ../../data/negatives/ -name '*.jpg' > negatives.dat
    $ find ../../data/umist_cropped/ -name '*.pgm' > positives.dat

    $ perl createtrainsamples.pl positives.dat negatives.dat samples 7000 "./createsamples  -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 20 -h 20"
    $ find samples/ -name '*.vec' > samples.dat # to create a collection file for vec files
    $ mergevec samples.dat samples.vec
    $ # createsamples -vec samples.vec -show -w 20 -h 20 # Extra: If you want to see inside


    20*20的样本大小检测正确率最高。


    2.创建测试样本
    测试样本是正样本镶嵌在负样本中并且正样本定位已知的样本图像。手动创建这样的图像是完全可行的。我们也能使用前面所说的第三种方法去综合这些图像。但是,我们只能一次加工一张图,如此,编写一个脚本(svn:createtestsamples.pl)可以帮助我们重复这种过程。

    createtestsamples.pl的输入格式为:

    $ perl createtestsamples.pl <positives.dat> <negatives.dat> <output_dir> [<totalnum = 1000>] [<createsample_command_options = "./createsamples -w 20 -h 20...">]


    这样就能生成许多jpg文件,并在<output_dir>中生成info.dat。jpg文件名格式是<number>_<x>_<y>_<width>_<height>.jpg,这里的x, y, width和height是嵌入对象的边缘矩形的坐标。

    举例:

    $ # cd HaarTraining/bin
    $ # find ../../data/negatives/ -name '*.jpg' > negatives.dat
    $ # find ../../data/umist_cropped/ -name '*.pgm' > positives.dat
    $ perl createtestsamples.pl positives.dat negatives.dat tests 1000 "./createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 -maxzangle 0.5 maxidev 40"
    $ find tests/ -name 'info.dat' -exec cat \{\} \; > tests.dat # merge info files

    翻译有关OpenCV海尔训练——(二)创建样本(参考)

    我们可以使用createsamples utility(\bin\createsamples.exe)创建训练样本,并且测试它们。以下是选项列表:

    Usage: ./createsamples
      [-info <description_file_name>]例(C:\Temp2\positives\train.txt)
      [-img <image_file_name>]
      [-vec <vec_file_name>]例(data\positives.vec)
      [-bg <background_file_name>]
      [-num <number_of_samples = 1000>]例(-num 500)
      [-bgcolor <background_color = 0>]
      [-inv] [-randinv] [-bgthresh <background_color_threshold = 80>]
      [-maxidev <max_intensity_deviation = 40>]
      [-maxxangle <max_x_rotation_angle = 1.100000>]
      [-maxyangle <max_y_rotation_angle = 1.100000>]
      [-maxzangle <max_z_rotation_angle = 0.500000>]
      [-show [<scale = 4.000000>]]
      [-w <sample_width = 24>]
      [-h <sample_height = 24>]例(-w 20 -h 20)

     

    1. 由一个样本创建多个样本
    当选项-img, -bg和-vec被初始化时,这个函数(cvhaartraining.cpp#cvCreateTrainingSamples)会被启用。

    -img <one_positive_image>
    -bg <collection_file_of_negatives>
    -vec <name_of_the_output_file_containing_the_generated_samples>

    例如:

    $ createsamples -img face.png -num 10 -bg negatives.dat -vec samples.vec -maxxangle 0.6 -maxyangle 0 -maxzangle 0.3 -maxidev 100 -bgcolor 0 -bgthresh 0 -w 20 -h 20

     

    这个例子由一个正样本生成数量为<num>的多个样本。值得注意的是,只有前<num>个在<collection_file_of_negatives>中负样本会被采用。
    收集文件的格式(<collection_file_of_negatives>)为:

    img/img1.jpg
    img/img2.jpg

    它可以通过find命令来创建:

    $ cd [your working directory]
    $ find [image dir] -name '*.[image ext]' > [description file]

    比如:

    $ find ../../data/negatives/ -name '*.jpg' > negatives.dat

    2. 由多个样本创建训练样本
    当选项-img和-vec被初始化时,这个函数(cvhaartraining.cpp#cvCreateTestSamples)将会被启用。

    -info <description_file_of_samples>
    -vec <name_of_the_output_file_containing_the_generated_samples>

    例如:

    $ createsamples -info samples.dat -vec samples.vec -w 20 -h 20



    如此,就生成了未经变形的样本,你可以将其想象为一个文件格式转换函数。
    <description_file_of_samples>的格式为:

    [filename] [# of objects] [[x y width height] [... 2nd object] ...]
    [filename] [# of objects] [[x y width height] [... 2nd object] ...]
    [filename] [# of objects] [[x y width height] [... 2nd object] ...]


    其中,(x, y)是对象的左上角坐标,而整个样本图像的左上角为原点(0, 0)。例如:
    img/img1.jpg 1 140 100 45 45
    img/img2.jpg 2 100 200 50 50 50 30 25 25
    img/img3.jpg 1 0 0 20 20
    姑且称其为描述文件格式。
    这个方法获得了样本区域、重定大小并且将它们转化为.vec格式。但是它不能从一个样本生成多个样本。所以,在你已经有了大量的样本(5000到7000左右)时,才好使用这个方法。
    利用find命令和identify命令可以创建一个描述文件:

    $ cd <your working directory>
    $ find <dir> -name '*.<ext>' -exec identify -format '%i 1 0 0 %w %h' \{\} \; > <description_file>


    例如:

    $ find ../../data/umist_cropped -name '*.pgm' -exec identify -format '%i 1 0 0 %w %h' \{\} \; > samplesdescription.dat


    如果所有的样本图像都有着相同的大小尺寸,则命令写起来可以更加容易快捷:

    $ find <dir> -name '*.<ext>' -exec echo \{\} 1 0 0 <width> <height> \; > <description_file>


    例如:

    $ find ../../data/umist_cropped -name '*.pgm' -exec echo \{\} 1 0 0 20 20 \; > samplesdescription.dat


    好了,现在已经有了一个对象检测器了。

    3.创建测试样本
    这个方法(cvsamples.cpp#cvCreateTrainingSamplesFromInfo)是创建测试样本和它们的从单个样本变换而来的基本信息。

    开启条件:选项-img, -bg和-info被初始化。

    -img <one_positive_image>
    -bg <collection_file_of_negatives>
    -info <generated_description_file_for_the_generated_test_images>

    这里-w和-h被用作确定嵌入在测试样本中的正样本的最小尺寸。

    $ createsamples -img face.png -num 10 -bg negatives.dat -info test.dat -maxxangle 0.6 -maxyangle 0 -maxzangle 0.3 -maxidev 100 -bgcolor 0 -bgthresh 0



    输出样本的文件名格式是<number>_<x>_<y>_<width>_<height>.jpg,其中x, y, width和height说明了植入对象的边界矩形的坐标。
    <description_file_for_test_samples>格式与2.中描述文件格式格式相同。

    4.显示样本
    这个方法(cvsamples.cpp#cvShowVecSamples)是用一个vec文件显示样本图像。

    开启条件:选项-vec被初始化。例如:

    $ createsamples -vec samples.vec -w 20 -h 20
    July 31

    翻译有关OpenCV海尔训练——(一)数据准备

    作者:Naotoshi Seo

    OpenCV给我们提供了很多训练分类器的方法和程序。对于人脸检测的分类器训练叫做海尔训练,我们可以用这些方法创建我们自己的分类器。

    (一)数据准备:

    • 正样本(人脸)
              我们需要收集只含有脸部的图像。The UMIST Face Database 有着类似Video般的连续脸部图像,不论是正脸的还是侧脸的。我以为训练这些图像能生成一个面部表情鲁棒性很好的脸部检测器。然而我想得太过美好了,事实上效果一般。后来我又用了基于CMU PIE Database的正面脸部数据库,它包含了许多不同光照条件的图像,可是效果与前面类似,都不理想。MIT CBCL Face Data是另一种选择,它囊括了2429张正脸图像,其中也有一些不同的表情与光强。原本是很适合海尔训练的,然而该库的图像原始大小只有19*19,这样,我们就无法进行检测更好尺寸的人脸的实验。
              OpenCV的开发者有可能使用了FERET数据库。
    • 负样本(背景)
              我们同样需要收集一些我们不感兴趣的对象(也就是不含有人脸的图像)来生成海尔练级分类器。
    • 测试自然状态的图像(人脸在背景中)
              我们可以利用createsamples utility来综合测试图像集,不过有个专门的测试自然状态的图像集合就更好了。
              OpenCV的开发者使用了CMU-MIT Frontal Face Test Set去进行他们关于这类图像的实验。这个集合有个有关范围的描述,涵盖了眼睛、鼻子和嘴唇的中心及两端的方位信息,然而并没有由矩形区域来表示的人脸定位。
              但是,比如人脸区域的矩形可以由以下方法计算得出:
              以鼻子的高度作为矩形的上沿,以嘴巴的高度作为矩形的下沿,以嘴巴的左端作为矩形的左边缘,以嘴巴的右端作为矩形的右边缘。
              虽然此法不够完美,不过看起来还算可行。
    • 如何手动快速生成图像
              我使用的软件是imageclipper,这个软件不仅对海尔训练有帮助,而且也可应用于计算机视觉和机器学习研究等领域。它有如下特点:
              自动打开同一目录下的图像序列;以帧为单位打开视频文件;通过某快捷键方便剪切图像并跳至下一幅图像;直接用鼠标左键选定并剪切图像中的区域;通过鼠标右键移动或重置图像区域;所选定的区域也可显示在下一幅图中。
    May 30

    sth. interesting on the 17th floor

    On the 17th floor, I can see many more things. They may be things like the clouds, objects of everchanging beauty, appearing in an endless variety of shapes, being dyed milky white in sunlit sky or graceful rosy purple during the twilight hours or whatever you may figure out.  They may like a image of vast sky, which seems faintly tinted in a peaceful sunny day or darker hued like a ink and wash painting in a summer rainstorm. They may like a visible capricious wind breezing through distant groves, and also like the birds' gold chirms scatteringly from among the woods. And anything else, maybe a plane with a trail passing by my window and making a proposal of marriage to another gilr… Haha, just kidding.

    with pictures for the turth

     DSCF8123

    DSCF8138

    DSCF8139

    DSCF8140

    A man named Raimer made a proposal just now to a woman named Ruth. This Ruth may live in my apartment building.

    May 21

    楼上偶得彩虹有感

            刚问mengmeng想不想下去凑凑热闹,一阵狂风平地暴起。一时间絮絮垃圾塑料袋飞了满天,远处一团低低厚厚的云层墨泼一般由北向南直压过来,地上也是灰黄的无边沙尘随之席卷覆盖,一片郁郁苍苍的绿意瞬间被吞没。露天享受着音乐的人们匆忙逃窜,大棚里的乐队不受影响唱得仍酣。忽然乌云之中一道纵向的裂空之闪,雷鸣与乐队的鼓声遥相呼应,天地一片诡异的热闹。倾盆大雨接踵而至,没有丝毫耽误,将天色的明暗度带到了最低点。然而却也酣畅淋漓干脆利落,短短五分钟乌云就已耗尽不见,天空瞬间转蓝,西边还能坚持两小时的太阳应该是等不及这太长的序幕而跳了出来,照得东方一片光鲜,忽而抬头竟已有一道彩虹清晰呈现。楼下的歌还不错,远处的彩虹很美。然而能目睹这一切,是十七楼的特权,于是还是坐定听歌看风景背英语,悠哉乐哉。

            算来上一次看到彩虹,还是大约十年前和翎子在仪化开阔的游泳池。暴雨时闭气躲在水下,比起仓惶逃回屋的人们,我们自然最先看到雨后的美景了。前两天翎子提升,在这里借助十多年后慕尼黑的彩虹穿越一下,祝之贺之~

    有图有真相

    Rainbow 009

     Rainbow 010

    只是想一下

            头发已经太长了,大太阳下,脸色黄黄的很没精神。想念中医院的黄汤,即使那么苦那么难以下咽;想念御用了六年的理发师,惊叹恋旧恋到一定程度了;梦中抱紧了我的猫,不许它乱动,可事实上如今它已经老迈到无法上蹿下跳;想着家,却更加茫然。新的没呆过两天,旧的早已面目全非,再往前追溯,才发觉久远到无从可想……只有想想不变的家人,然而又是那么害怕他们在老去而我还没有真正长大,奇怪在外时间越长就越没有自信……世上的事总不得完美,有的人厌家而不愿回,我却恋家而不得回。

            转眼又是学生城一年一度的盛会,从我入住以来,已是第三届了。回想第一次经历,确实非常新鲜有趣。最奇妙的是很久以前就知道了这个StuStaCulum的盛名,没想到搬家居然能搬到主场。可以想见当时乐队震耳欲聋的嘶吼和使人内脏欲裂的重低音效由于相见恨晚的历史原因和混沌懵懂的客观阶段,完完全全转换成了兴奋与激动。如今坐在距离音箱十七楼远的地方,只有空空回想那时的欢歌狂舞和灯火阑珊,却实实在在地忌惮着那种身临其境的耳鸣与不适。远处的呼声与歌唱,还有震动中的节奏,都足以带回我那一部分的每个细节每刻记忆……

            已经弄不清对这稔熟的客乡是什么感情了,只知道有些压力有些累。究竟何时才能练就一身没心没肺,享受漂泊的新奇与自由,真正单纯地快乐着,只因此心安处是吾乡呢?

    May 06

    念想之间 尘埃落定

            我把钥匙卡在门旁一照,“滴——”一响,推门进屋。直映入眼的是实验室的凌乱。电脑拥挤地排列着,桌上摊着纸笔鼠标垫和乱七八糟的线甚至是刀叉,小机器人安静地站在电脑之间,一抬头便是窗外死角处又细又高尚未长成努力撑着叶子随风摇动的树苗……这样的不华丽不整洁却能突然间令我兴奋不已。就好像一下子回到了几年前,老爸的电子楼实验室,那散着横七竖八的板子元件电烙铁以及电线的拼接起来的桌子,一两本或熟悉或新鲜的教材书籍,老旧而反应迟钝的电脑,落着尘埃的键盘和其上用得油光的按键,窗外月色下的瘦削的没有叶子的细长花枝,还有那花枝顶上安静站立着的洁白的玉兰花……输入用户名和密码登陆,同样的一层薄灰的键盘,同样的干净发白的按键,同样的原始朴实的Windows界面。很好,这就是我想要的,并不枝繁叶茂但载满回忆的角落。

    May 04

    When I remenber when…

     

    Some things can never be replaced

    Some things are with me for always

    These are things I will remember

    Again and again

    When I remember when

    April 22

    摘录:详解费米能级

    IC1第一堂课上得晕乎乎的,居然还冒出一个完全陌生的名词——费米能级。

    找篇详解,还是很晕@_@

    举个例子,一小学由一班学生,学生人数为50人,班上所提供的座位
    有60个.老师以学生的身高进行座位的分配.经分配后,班上身高较
    高的学生将配往后座,而且经分配后,班上将留下10个空位.这是一
    般我们小时候常经历的生活经验.电子在原子内分布的情形与分布
    的规则,与上面这个例子十分的相似.电子的能级,好比是例子里的
    座位;而电子的能量,则好比是例子里学生身高.能量较高的电子,
    就好像是身高较高的学生一般,将占往高位的能级(即例子里的后
    座),并使低位能的能级留下空缺(即空位).因为材料的导电性与位
    于导带的导电电子密度(或数量)有关,为了了解这一点,我们势必
    要先了解电子的量子状态分布(如例子里的座位分配),及电子的能
    量分布(即学生的身高分布)后,才能让我们掌握有多少自由电子位
    于导带内(即有多少身高较高的学生能坐在后座).在材料科学上,
    我们通常称前者(即电子的量子状态分布)为状态密度(Density 
    of Status),以N(E)表示;后者(即电子的能量分布)称为费米
    在绝对温度零度(0 k)时,原子内电子所能占住的最高能级的能
    量". 也就是说,在0 k时,所有低于Ef的能级将完全为电子所占满,
    而高于Ef的能级则完全空着,当物体所在的环境温度高于0 k后,虽
    然大多数的电子依然处于低能级上,但是一小部分的电子将因环境
    所提供的能量,而开始转往较高的能级,使电子的分布不再局限于
    Ef的下方,至于费米函数,则可以定义为:" 当物体所在的环境温度
    高于绝对零度时,在能量为Ef的能级上,发现电子的几率为50%", 

    发表用户:电子狂客 发表时间:2006-7-3 10:18:55

    April 19

    桃李春风

            马上又要开学了,不嫌麻烦啰嗦两句。最近天气真是很好,总是淡蓝色的天空飘着有些透明的白云,极其干净清爽,加之和煦的暖风,让我想起云淡风轻。加入校内大军,看到了很多老同学。有的已经在各大城市打拼了,有些在美国加拿大读硕读博,还有的去英国读硕士已经毕业,准备结婚。我一直沿着自己的路在走,将身边的风景抛在脑后,一转身,却原来已经白云苍狗。其实是很正常的事,只是觉得有些突然。在屋里闭关闷得发疯的时候,晚上看见桌前窗玻璃反射到自己在灯下的虚像的时候,总是会想起以前,那些经过岁月沉淀只留下朦胧美好的碎片影像,仿佛就是“桃李春风一杯酒,江湖夜雨十年灯”的真实写照。不是嫌气氛太过寂寞,而是现在的学习就得耐得住寂寞,若是焦躁得在小宿舍的方寸之地打转就只能去图书馆找寂寞了,心情很是矛盾。就在这样安安静静过日子的时候,惊闻同屋两年的室友要回国工作了,今晚就办了Party,很快。原来德国这个能熬死人的地方,想要过得快照样很快。于是熬着熬着,有人要走了,Qiu和文林学长搬入了学生城,薇薇的千金随着春雷也来到世上。周围的事物注定不断变化,可是难得此时此刻无力掌控的天气真的很好。这样的天气,就该傍晚去Englischer Garten小跑一圈,和mengmeng去宝马博物馆转悠转悠,跟Qiu和Dong在楼下大院打打乒乓球,或者搭上个懒人去韩国餐厅小小腐败一顿庆祝开学……是否今日的江湖夜雨,明朝来看又成了桃李春风?

    April 10

    春夏秋冬又一春

            昨天终于忙完一个阶段,赶紧喘口气。晚上马不停蹄地跟mengmeng去看了《拉贝日记》,从4月2日上映起就一直惦记着,觉得这种片子就应该花钱去支持。本来以为晚场不一定有空位,结果去了才知道楼上楼下的人加起来总共也就二十来个,十分冷清。即使心里已经做足了准备不是来娱乐的,是来受虐的,可是当看到鬼子开着卡车扫射战俘,无辜百姓的头颅摆成一排后面是脖子横截面鲜红的尸山,再强大的心理也抵不过这种蹂躏与折磨。何况电影镜头主要只是给了安全区的屠杀这一冰山小角,更何况真实的历史只可能比电影更加无法想象的惨绝人寰呢!当看到南京的百姓聚在纳粹党旗下躲避日军空袭的时候,一切国家与民族的界限都不复存在,人性原是如此,像是黑暗中的光辉。当然,影片主要还是以德国人的视角拍摄的,“它虽然涉及到了“南京大屠杀”,但电影的主旨还是在讲述一个普通德国人如何在巨大的灾难面前发现人性,升华人性的故事。它虽然很好地完成了这个关于人性的故事,但它并没有能力和资格去升华和质询中国人的集体伤痛。这并不是电影技法的失误,也不是电影立场的失误,而是因为这样的一场巨大灾难和伤痛,虽然有人性的共同之处,但那种痛彻心扉的悲怆和发问,只能由中国人自己完成。”可是我已经不能确定,我这已经被压抑拷打过一遍的脆弱小心肝儿是否还能经得起《南京!南京!》的再次折腾。。。

            今天是Karfreitag,有受难才有重生,有寒冬才有暖春,复活节马上就要到了。铭记历史,展望未来吧。如今其实已经阳光明媚。出去转转透透气,感受到了巴伐利亚傲人的蓝天,树枝上的新绿是鲜嫩鲜嫩的,迎春花灿烂得晃眼。沉郁是为了能更好地看清希望之所在吧。春夏秋冬又一春……

    March 24

    人间四月芳菲尽,慕城雪花犹盛开

            翎子是说杭州回暖了么?我现在已经不知道慕尼黑到底是什么季节。半夜的闪电和雷声,天明时低沉的云层,刮得我进不了楼的风,直来直去的小冰雹,转着圈的漫天飞雪,转而出了太阳,然后沉入云后镶金边去了,最后终于天黑了,这个世界清静了……一小时换三种天气,我真是受够了。于是也回答了峰哥为何不写点抒情的小博客了,心里全是怨气,外加不安吧。

            这学期送走了老爸,说实话没能为他做什么,我心里十分十分难过。他的眼镜被风刮走的时候我没在他身边,幸好没出什么事,但这不是我能原谅德国这种死人天气的原因。什么什么?好吧我不得不承认主要还是我自己照顾不周,再加上一条怨天尤人也是我的错……他踏上ICE时的背影,是有些沧桑弱小了,我的眼中除了泪水,还看到一种力量……

            然后就是告别了一个Praktikum,这真不是一段令人愉快的经历。它使我平生第一次明白了,这个世界上还有你认认真真也做不好的事。所幸结果没有想象中的烂,或许连子啊上帝啊老天爷也看不过眼了吧……

            考了一堆试,结束后和mengmeng去北德转了一圈。汉堡雨中和夜幕下的港口,不莱梅放晴的童话雕塑,汉诺威优雅的温室兰花,还有五天的穷游暴走,近乎瘫痪地回到慕尼黑……至少这些是终生难忘的。坏事就是觊觎上正统长焦DC了,等待啊等待,有朝一日把单反王族踢下神坛,来一次草根庶民的胜利吧!

           “死都不怕,就要安逸。”与时俱进地看着《团长》,不敢怠慢脖子上还悬着的那把刀,给安逸的假期找点儿不安逸,天天因为耗费了不该耗费的时间而忏悔。但还是忍不住,为松山战役流泪,为以前从不知晓的远征军而唏嘘不已。二战真可怕,重新审视脚下这片土地,德军与苏联红军,不敢想象……这首Lube的《Davai Za(为了)》一下就吸引了我,太动听太悲壮太压抑太……

            汉堡游照片集锦        不莱梅照片集锦        汉诺威照片集锦

            Davai Za 介绍、歌词大意及MV

    February 02

    人与人之间果然是有差别的!

    > Wegen des MVV-Streiks (http://www.mvg-mobil.de/streikinfo.htm), kann
    > ich am naechsten Dienstag Garching nicht erreichen.
    Also, auch im Falle eines Streikes gilt zunächst mal: Man muss zur
    Prüfung erscheinen. Wir müssen auch in der Arbeit erscheinen. Vielleicht
    finden Sie Kommilitonen, die Sie am Dienstag mitnehmen. Sie können auch
    mit der S-Bahn fahren, dann Bus 230 von Ismaning und 690 von
    Eching/Neufahrn - falls die Busse fahren.
    > Koennten Sie den Termin fuer dbpra01 den naechsten Tag verschieben?
    > Also B: Mittwoch: 4.2.09, 15:00 Uhr. Ich danke Ihnen fuers Verständnis.
    Leider ist dieser Termin nun nicht mehr frei, da ich andere
    Verpflichtungen habe.
    Gruß,
    angelika reiser

    ===============================================

    Liebe Hörerinnen und Hörer der Vorlesung Elektronisches Publizieren,
    angesichts des MVV-Streiks ist es morgen nicht so einfach, nach Garching
    rauszukommen. Ich möchte Ihnen und mir das Chaos ersparen; deshalb lasse
    ich die morgige (und damit die letzte) Vorlesung Elektronisches
    Publizieren ausfallen. Im Laufe des Tages stelle ich Ihnen noch die
    letzten Folien in's Netz und vervollständige das Inhaltsverzeichnis, die
    Lernziele und die typischen Prüfungsfragen. Sie bekommen auch Material
    zu dem Thema XLink und XQuery-Implementierung von XLink, das eigentlich
    für morgen vorgesehen war. Dieses Thema ist aber nicht mehr
    Prüfungsgegenstand.
    Ich bedanke mich für Ihr Interesse an der Vorlesung und wünsche Ihnen
    eine erholsame und fruchtbare vorlesungsfreie Zeit. Die meisten von
    Ihnen sehe ich ja noch zur mündlichen Prüfung.
    Mit freundlichen Grüßen,
    Anne Brüggemann-Klein

    咬牙切齿,留作纪念!

    January 25

    牛年大吉

    年之将至 004副本

    年之将至 008副本

     牛年到了 008副本

    牛年到了 012副本

    牛年到了 013副本

    牛年到了 015副本

    牛年到了 018副本

    牛年到了 019副本

    牛年到了 026副本

    牛年到了 044副本

    年之将至 020副本

     

    祝大家牛年快乐,祝爸爸妈妈身体健康,希望自己本命年顺利,早点搞定Praktikum,好好考试,好好学习,好好工作,好好生活……

    December 31

    08~09跨年日志+巴黎游记

    一篇日志,从去年写到今年也算是跨年日志了。就我个人而言,08年过得前松后紧,从年初Rutschen的时候脚不能动在屋里凄惨颓废,到年末昨天赶地铁去Olym看烟花,转钟时U6司机对乘客祝福,也算是名副其实的Rutschen了,但愿09年能够顺利一些。08松紧的分水岭是搬家。一个人住发现心理上对自己更负责任了,或者可能也是为了不愿意寂寞给自己安排了更多的事情,再或者是心情能很好地发泄吧,比如能在屋里狂笑和抱头痛哭,还有凌晨四点才收到合伙人发的程序气得骂人,不过大多数时候还是过得挺安静,个中滋味,辛酸苦辣,也不足道矣。点点滴滴在平常的日志里也都已经记录了,无须赘述。总而言之,始终觉得还是有很多收获的,乐观的比消极的多得多。08年的时光,相信不论是对我还是对国家,都没有虚不虚度的疑问,只有不虚此度。

    年末终于接来了老爸,和表妹在巴黎聚首五日。感谢表妹的安排照顾。巴黎很冷,地铁十分老旧,规划异常混乱,风景多为建筑,凡是百年以上的都算得上是巴黎最傲人的资本了吧。现代的比如拉德芳斯,并不觉得十分出彩。特别是看到Hilton那脏兮兮的顶棚,不禁心里一阵。。。最囧的是铁塔亮起欧盟的蓝灯,真是叫我情何以堪。。。主观地说,或许冬季给这座城市的魅力打了折扣,或许巴洛克建筑看得太多了,总之让我觉得有负盛名。而且对于名牌货不是很感冒的我来说,剩下的仅有冒着感冒的风险在寒风中拍夜景了。精选一些照片,算是给此次旅行留下一些最美好的回忆吧。

    12月25日

    巴黎火车站:

    塞纳左岸遥望埃菲尔铁塔:

    巴黎圣母院里,赶上修女唱弥撒了,美声很是好听,不过游客倒是在后面睡倒一大片。

     

    12月26日

    卢浮宫前遥望埃菲尔铁塔,拍得有点歪,凑合就这样了:

     

    卢浮宫里逛了一天,看到了镇馆之宝——米罗的维纳斯,蒙娜丽莎的微笑和胜利女神。名气之下,宝物前游人如织,具体说说哪儿有那么好,我估计是没几个人能说出来。或许无头断臂的就是比整个儿好。我个人比较感兴趣的是汉谟拉比法典和鲁本斯画馆,荷兰有些画航海的画也很好看,仿佛回到了那个航海的时代。

     

     

    12月27日

    铁塔下队伍长得恐怖,遂不登。只是没想到,铁塔周身竟是红褐色的,以前以为是黑色。化学就是没学好,认了。

     

    三千年的老古董方尖碑,近看确实沧桑斑驳:

     

    香榭其实对我来说很没料,人却多得避不开,怎么都能照到猝不及防钻入镜头的脑袋,无奈。其实也不是很好看,星芒滤镜有份功勋吧。。。

    凯旋门实在是个制造混乱的建筑,那销魂的放射性的十二条大道,引无数游客翻地图。。。话说,用得着么?

    远看幽灵一般的欧盟铁塔。。。

    整点时铁塔周身白色小灯狂闪,只是拍出来由于曝光时长,看着浑身鸡皮,还是不放那张照片了。

    铁塔下的塞纳河:

     

    12月28日

    圣心教堂,也叫做白教堂,连修女也一身缟素。里面不让拍照,天顶的上帝很有气势,弥撒效果很好,管风琴不像圣母院那样震得人有点难受。置身其中仿佛心灵真的能受到净化。可是不知道为什么,修女的歌声很像男童。。。不厚道地想到了阉伶。。。白教堂后面的巷子里有很多画家,相传梵高在这里画了向日葵。不过我没搞清楚,到底是梵高让这里名声大震了呢,还是因为画家聚集,才有了梵高向日葵诞生的可能。

    红磨坊,外面看看。。。

    先贤祠是我觉得最值得一去的地方,和伟人的骨灰相隔咫尺,感觉还是很奇妙的。虽然看不懂那些法文的介绍,但是起码卢梭、伏尔泰、佐拉、大仲马、雨果这样的人物还是或多或少知道一些的。然后还看到了传说中的居里夫妇的墓穴,游人几倍于其他墓穴,因为是女子?还有拉格朗日,原来还曾在柏林混过。数学家的墓穴确实比不上那些文豪,无人问津而且灯火暗淡,没有鲜花和祭品,但我还是觉得无比激动,那销魂的中值定理啊……

     

    12月29日

    在拉德芳斯的大门前,玩玩构图。

    拉德芳斯历史上是个失败的地方,或许法国人想以此激励自己崛起?

     

    蓬皮杜艺术中心,工厂式的建筑,我老是回忆起亚琛的医院。。。

    期间还去了毕加索博物馆、巴士底、市政府等等,最后来到塞纳左岸,慕名喝了一杯咖啡,无感,看来就是没有富贵命。。。

    最后一张塞纳河,向巴黎告别。

    December 21

    昨日冬至

            突然发现,原来昨天是冬至日,昨晚是冬至夜。苏州传统向来是“冬至大如年”,而我却忘记了。来德国这么久,头一次深深地感觉到那种异乡异客的无助,尤其适逢团圆佳节,落差万千。不知道苏州最近的天气如何,地铁修得怎么样了,社区里乱窜的小猫有没有被拉去广东……康康现在有多大了,我走之前在门口种的枇杷树可好?转眼就又快一年了……

            上周去纽伦堡圣诞市场,看着满大街的巧克力甜食和著名的小香肠,却没有食欲。终于知道,还是割舍不下,那东山的橘子阳澄湖的蟹,黄天源的甜点陆振兴的面,山塘街的梅花糕太湖的鸡头米羹,藏书的红烧羊肉赵记的大肉粽,妈妈炒的茭白和清蒸鲈鱼,当然还有甜而不腻的冬酿酒……

            想到这些,不禁感慨,根据爱因斯坦相对论,其实我还真的不怕三鹿奶粉……还是庆幸老爸过来心里会有些补偿吧。不多说了,明天两件大事,抓紧时间复习。

    一剪梅·舟过吴江
    蒋捷
    一片春愁待酒浇,江上舟摇,楼上帘招。秋娘渡与泰娘桥,风又飘飘,雨又萧萧。
    何日归家洗客袍?银字笙调,心字香烧。流光容易把人抛,红了樱桃,绿了芭蕉。

    December 18

    无题

    睡到九点钟才爬起来,床头灯很耀眼,已经开了三个小时了,早就被闹钟叫醒,却怎么也起不来。暗无天日是我现在的生活,房间的光源,没有太阳,只有电灯……

    眼睛很肿,昨晚是和衣睡的。笔和资料都扔在床边的地上了。可以理解一些被逼到绝境的人,酗酒、抑郁或者歇斯底里。有些事情,不是你外头看着那么轻松的,一切冠冕堂皇振振有辞客观理性冷静分析在复杂的境况中都显得十分无聊可笑。

    不需要理解和同情,不需要欲盖弥彰适得其反,不需要被欲加之罪额外折磨。人间可怖。

    December 03

    金木月·JSP

    10976656_20032164算是第一次正式写HTML吧,虽然以前也做过博客模板什么的,不过跟这次jsp比太小儿科了。东西确实太烦躁了,时间也不够,只能将就这样了,能运行出来了还是很满足的。下午四点多在地铁上看到天边的云很奇怪,很低很黑,而天被西沉的太阳染成橘色到深蓝的渐变,整个景观画面却因为解决了程序报错问题而变得好看起来,Orz我自己。。。据说国内这几天晚上能看到星星眼和月亮笑弯的嘴。金星木星和月球,擦肩而过没什么想法,在地球看来却是一场幸福的相遇。客观事物本无美丑,看客的心情决定一切。

    只有这学期才有效的网址:http://dbpra.in.tum.de:8080/dbpra01/aufgabe61.html

     

                                   10975115_5720141