2011年12月27日 星期二

Perl臉部辨識

事先聲名:以下程式碼我沒試過,預防以後用的到,純粹是做做筆記而已。



#!/usr/local/bin/perl
use strict;
use warnings;

use Imager;
use Image::ObjectDetect;

my $file = 'picture.jpg';
my $image = Imager->new->read(file => $file);
my $cascade = '/usr/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml';
my $detector = Image::ObjectDetect->new($cascade);
my @faces = $detector->detect($file);
# or my @faces = detect_objects($cascade, $file);
for my $face (@faces) {
    $image->box(
        xmin   => $face->{x},
        ymin   => $face->{y},
        xmax   => $face->{x} + $face->{width},
        ymax   => $face->{y} + $face->{height},
        color  => 'red',
        filled => 0,
    );
}
$image->write(file => 'output.jpg');

底下是把臉涂黑的作法。
#!/usr/bin/perl
use strict;
use warnings;

use Imager;
use Image::ObjectDetect;

my $file = 'picture.jpg';
my $image = Imager->new->read(file => $file);
my $cascade = '/usr/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml';
my $detector = Image::ObjectDetect->new($cascade);
my @faces = $detector->detect($file);

for my $face (@faces) {
    $image->box(
        xmin   => $face->{x},
        ymin   => $face->{y},
        xmax   => $face->{x} + $face->{width},
        ymax   => $face->{y} + $face->{height},
                color  => 'black',
                filled => 1,
    );
}
$image->write(file => 'output.jpg');

print "Content-type: text/html\n\n";
print "\n";
print "\n";
print "\n";
print "顔を黒く塗りつぶしてみるテスト\n";
print "\n";
print "\n";
print "変換した畫像が下に表示されます。

\n";
print "
\n";
print "\n";
print "\n";
print "\n";


參考引用來源:
http://d.hatena.ne.jp/spiritloose/20070308/1173314595 
http://pastebin.com/6VTWz2qz 
http://webcache.googleusercontent.com/search?q=cache:BnpuDysd1pkJ:zapanet.info/blog/item/940+Image::ObjectDetect+perl&cd=31&hl=zh-TW&ct=clnk&gl=tw

2011年12月26日 星期一

現在的小孩是怎麼了?

今天在 「IT邦幫忙」看到這一篇快讓我吐血的問題,現在的小孩到底是怎麼了。


整個作業都賴給網友做,沒人理會,有人好心的給出一些資料來源網址,一般總是心存感激的接受,並且兢兢業業去研究,這傢伙還嫌不夠完整,還強調這樣他沒辦法交作業!!!

當外界一昧的檢討現代青年的困境,如這一篇所數舉凡就業、生育、教育、少子化、國債問題,有沒有人去檢討現代年輕人的抗壓性的問題?

現代的年輕人跟前朝扁政府個性格很像,當問題出現,第一直覺都是設定「一切都是別人的錯」,政策都走急功近利路線,的確社會環境的確有在惡化,的確有檢討的空間,但是看到那一篇發問就差一點吐血,從側面來看提問者的心態,很明顯急著要答案,很明顯的急功近利,而且要結果不想付出,而且從前朝開始教育政策走量產路線,實行教改,忽略就業市場的供需問題。

在這篇的提問者還強調自己很「辛苦」,強調有認真學,就是學不會、、、什麼的,追根究底就是想要不勞而獲,此人的人際關係經過轉學需要重新建立,在人際關係不順遂的狀況下,作業分組找不到人合作,一個人,個人是覺得還好,能力夠解掉就是了,並不是什麼大問題,況且當實力夠強悍,根本就不缺組員,就跟等級夠高裝備夠好,一堆人排隊要組隊打怪一樣。

可是他真的有認真過嗎?
認真過應該提這種沒水準的問題嗎?
提問者主張給我答案其餘都不想管,這心態上,很差勁。
跟提出方法,描述給網友看過之後,問有沒有什麼缺陷,兩者心態上,南轅北轍。
這傢伙連問個第一步該做些什麼,都沒有,心態上根本就不去想去做作業,一心想不勞而獲的交差了事,當然不想問如何做之類的問題,只強調自己多辛苦之類的鬼話。

現代學歷通膨之後,滿街都是大學生、研究生,學校為了生存,讓學生好過,導致路上一堆不良品在就業市場上,而這些不良品有些時候連基本的心態都有問題,當遇到問題、挫折有些則是乾脆龜縮起來,過著啃老、家裡蹲的日子,而這些過量的「待業者」也不願意去做辛苦的工作,比如說之前輪胎廠需要人手,開出好薪水,因為沒冷氣,還是招不到人,這種眼高手低的傢伙也真不少,這世代的父母也有責任,當工作辛苦、危險,多數的父母甚至會規勸子女不要去做,寧願放著賦閒在家,而這些年輕人也樂的輕鬆,乾脆沒事做整天閒晃,靠父母養,家裡蹲打線上遊戲。

這時代產出NEET族(Not in Education, Employment, or Training,指的是一群非在學中、又不上班,也不肯接受訓練、積極成長的人),心態上在「怎麼努力都沒有用」死繞著跳不出來,文中說的那傢伙已經開始有尼特族的味道,等畢業之後所有條件都到齊就是個尼特族了。

在我認識的人當中就有尼特族,我親戚的小孩就是,沒跟他們打過交道是不知道問題出在那邊,想法的起源有所差異,在我的想法中,辛苦不是問題,重點是有沒有所得,而當下狀況不佳,是不是有資源可以加強本身技能,所以當我發現他們閒過頭時,則提出去職訓接受訓練,政府提供的免費服務可以學到一堆東西,當身上有了技能之後,就可以在職場上練身手,除了收入之外,也蘊釀把握下次機會的實力,所以說我心態上還比較正面一點,可是當我提出解決方法之後,那傢伙則是完全置之不理,連去報個名都不要,好像深怕去失去尼特族的身份一樣。

心態上的起點歪了,整個樓都蓋歪了,而且歪的離譜,所以這些傢伙的起念錯了,用負面的心態過日子,也就讓整個生活朝向負面分支發展,這當中還接觸到我同事,我發現當一個人對自我設限的時候,能力的發展就自然有了限制,當一個人心態上先設定一定學不會,真他媽的就一定學不會,事實上真的是這樣嗎?

這些起念可能並不是真的認為學不會,而是可能源頭是不想學、怕麻煩、、、等負面的心態偽裝成能力問題,當一個人的心態上否定了自我,而且不斷強化這個觀念就很難救的回來,而經過對我同事實驗的結果,這些心結按照次續的解開,進步還是可能存在,而現代年輕人的心結可能遠比我想的難解,甚至還多了沒本事又自以為是的態度。

當看到別人的實力在展現的時候,要記得鼓掌叫好,正面的回應遠比負面的批評好,而且當鼓掌過了之後,甚至會記住別人的能力。

XLS 轉 CSV

倒過來一樣沒問題,在強大的技術力之下,掙扎是沒用的,每週都看到有人用我的程式去做報表,而且是笨笨的手動從XLS轉檔成 CSV,還手動一個檔案、一個檔案的輸入,我看的快發瘋了,為什麼不能把資料夾底下的CSV檔案都列舉出來做掉呢?
為什麼不自動的去把資料庫吐出來的XLS檔案轉成CSV呢?

#!/usr/bin/perl -w

use strict;
use Spreadsheet::ParseExcel;
use utf8;
use Encode;

# Check for valid number of arguments
if ((@ARGV <= 0) || (@ARGV >= 3)) {
   die("Usage: xls2csv.pl excelFile.xls execFile.csv\n");
}

my $file=$ARGV[0];

if($file !~ /\.xls$/){
 die "Please input a .xls file\n";
}
my ($fHeader,$fTail)=split /\./,((@ARGV>=2)?$ARGV[1]:$file);

open FILE,">"."$fHeader".".csv" || die "Can't open file for write!\n";

my $excel = Spreadsheet::ParseExcel::Workbook->Parse($file);
foreach my $sheet (@{$excel->{Worksheet}}) {
    printf("Sheet: %s\n", $sheet->{Name});
    $sheet->{MaxRow} ||= $sheet->{MinRow};
    foreach my $row ($sheet->{MinRow} .. $sheet->{MaxRow}) {
        $sheet->{MaxCol} ||= $sheet->{MinCol};
        foreach my $col ($sheet->{MinCol} ..  $sheet->{MaxCol}) {
            my $cell = $sheet->{Cells}[$row][$col];
            if ($cell) {
             printf FILE "\"%s\",",encode('utf8',$cell->value());
            }
        }
        print FILE "\n";
    }

}
close FILE;

2011年12月25日 星期日

CSV 轉 XLS

這隻程式主要是拿來把CSV轉成XLS格式的檔案,寫工作日誌本來輸出CSV檔好好的,就有人要統一格式,還好對我來說蛋糕一塊,用強大的技術力給他碾過去就好,要什麼格式有什麼格式,別人努力的每週寫報告喬格式,我就用一支per/tk寫的GUI填寫就好。


#!/usr/bin/perl -w

use strict;
use Spreadsheet::WriteExcel;
use utf8;
use Encode;

# Check for valid number of arguments
if ((@ARGV < 1) || (@ARGV > 2)) {
   die("Usage: csv2xls csvfile.txt newfile.xls\n");
};

# Open the Comma Separated Variable file
open (CSVFILE, $ARGV[0]) or die "$ARGV[0]: $!";

# Create a new Excel workbook
my $workbook  = Spreadsheet::WriteExcel->new($ARGV[1]);
my $worksheet = $workbook->add_worksheet();
$worksheet->set_column(0, 0,  12);
$worksheet->set_column(1, 1,  10);
$worksheet->set_column(2, 2,  30);
$worksheet->set_column(3, 3,  90);

my $uni_font  = $workbook->addformat(font => 'Arial Unicode MS');
$uni_font->set_bold(1);
$uni_font->set_border_color('black');
$uni_font->set_border(5);
$uni_font->set_text_wrap() ;
$uni_font->set_align('vjustify');
my $row = 0;

my $tempStr="";
while () {
 $tempStr.=$_; 
 if($_ =~ /\"\n/){
  my @fields=split /\,\"/,$tempStr;
  my $col=0;
  foreach my $field(@fields){
   $field=~s/\"//g;
   chomp($field);
   my $location=sprintf("%c%d",($col%26)+0x41,$row+1);
   $worksheet->write($location, decode('utf8',$field),$uni_font);
   $col++;
  }
  $row++;
  $tempStr="";
 }
}


2011年12月20日 星期二

宇昌之我見 PART II

國發基金應該是支持國家發展的創投,是嗎?
也就是說要替國家新興產業催生而設立的單位,是嗎?
如果順利的話新興產業可以帶來許多新的工作機會,是嗎?

我喜歡以結果論來看,截至目前為止,宇昌案所創造的就業機會,屈指可數,如果真的讓政府投資十幾億進去,還為排擠其他創新的機會,而中裕新藥,到目前為止,都還只是在燒錢,所以用結果論來評分,我想蔡主席的經營能力根本不及格,要不是財團賣她面子,買了他手上的股權,我想她家族投資的部份都會賠進去,若要認真算,她還欠了財團的人情,對照他溢價取回現金,無疑是賣了個人情價,基於出來混總是要還的道理,所以不知道萬一選上了之後想拿什麼還?

若不是AIDS新藥的市場價值不高,原本開發的藥廠又怎麼會賣掉?

台灣強項是電子、半導體,台積電把MEMS以CMOS實現,讓MEMS可以順利量產,台大與中研院、陽明大學等團隊發展生物晶片做快篩(參考這裡),圍繞著台灣優勢打一圈,這東西的需求量遠大於AIDS的項目,跨界發展也不用去跟其他大國爭個頭破血流,生物晶片項目對台灣來說是十分有利的項目,若要押重注,這個項目不是比較有效率嗎?

上一篇也說過,目前蔡團隊除了經營能力有問題之外,完全不照規矩走的行事風格也不正常,國發基金邀請的委員,踢掉原先受審的公司,還自己跳下去做也很奇怪,當審查委員都自己開公司了,結果案子也不審了,直接給簽過就算了,下台之後跑去做宇昌的董事長也很莫名其妙,出來混這麼久了,好歹有點SENSE吧!

如果國家給沒SENSE的人帶,未來一定是亂七八糟。

2011年12月19日 星期一

宇昌之我見


中裕新藥4147(來源公開資訊觀測站)
支出大於收入是在賺錢?
每股盈餘是負數代表是在賺錢?
一年固定燒掉一兩億的公司,沒營業收入的公司,在賺錢?
不要說我讀電子的欺負讀者們,你叫諾貝爾經濟獎的得主來說結論也一樣。

這是一間還在賠錢的公司!!!

那他股東權益會怎麼樣?

當然是股東還在賠錢阿!

AIDS的藥品本來就不太可能賺錢,賣感冒藥都比這種藥品好賺,所以原始持有藥廠想要賣掉也不是什麼奇怪的事情,如果是說要做善事,我還覺得比較合邏輯一點,說是要替國家賺錢?


這是在搞笑吧!
很不幸的是,這有包含你我血汗的公帑在開玩笑!!!
南華生技公司跟宇昌做差不多的事情,都是針對TNX-355做投資標的物,當初何先生當國發基金審議委員,三振南華,然後何先生上場打擊開公司,要國發基金投資,然後現在何先生拿著5%的技術股聲淚俱下控訴執政黨抹煞生計。

這是在搞什麼東西阿!
傳說中的生計媽祖蔡小姐就更神通了,踢掉南華之後,自己跑法案,自己申請,自己批准,自己參與,自己設立,甚至是自己當過董事長,生計媽祖稱號,真是當之無愧,阿請問一下到底是為了誰的生計在用神通?
官當完了之後,跑去自己簽核的公司當董事長,會不會太神通了一點?

到目前為止這間還在燒錢的公司所招募的新人,其中一向重要的工作是寫報告跟政府要錢,在他們公司網站上寫2007年募集到的兩千萬美金,國發基金佔40%,八百萬美金,要不是政黨輪替卡住,從國家手上還再投入三千萬美金,不管怎麼後期民間再增資了三千萬美金,2008年資本額就到了五千萬美金,2009改名為中裕新藥,在增資兩千兩百萬美金,資本額到七千兩百萬美金,政府的股權稀釋到20%左右,如果三千萬美金投進去,政府股權比例有多少?
這樣給他投資下去政府這邊的資金就佔了至少有53%耶!
現在開發基金只佔20%,應該是要說好險吧!

研究AIDS的新藥是在做善事,不是在賺錢,接受比爾蓋茲的基金會「捐助」,金額九百八十二萬美金來看,需要慈善基金會的「捐助」,不太像是一個營利單位應該有的行為,慈善機構捐住鴻海那種營利公司不也很奇怪,AIDS這種病,世界上70%的患者在撒哈拉沙漠以南的區域,特別是烏干達、桑比亞、坦桑尼亞、、、等國,這些國家不太像是會花大錢去買藥物的地方,當初想要賣掉專利權的藥廠,也應該是這樣打算盤的,這藥的市場並不大,如果今天投資的是慈濟、法鼓山、大甲鎮南宮、、、之類的團體,我就覺得剛好,但是,國發基金好像不是拿來救濟用的吧!

上櫃股價的票面價值可以代表公司在賺錢嗎?
以目前興櫃的成交量來看,隨便塞個單就把它頂上去了吧!
既然股價這麼高,大家對這藥這麼有期待,有種叫政府開發金手上20%股權倒貨給市場接阿!
我到想看看,當開發金倒這麼多的貨到市場上,還有沒有現在的行情?
按照公開資訊觀測站的資料,普通股本19.3億新台幣,股東權益卻只剩下9.3億新台幣的價值,換句話說市值到2011/6/30為止已經蒸發了10億了吧!

在從愛台灣創造就業機會來看,他們登記住址就在南港科學園區,辦公室不大,事實上大部分的研究、開發單位都在國外,燒了這麼多錢,到底創造了多少就業機會?

要我說,生計媽祖果然神通,公司帳面上燒掉十億左右,他家族還可以賺個幾千萬,我是覺得開發金趁有賺,把手上三、四億的股權賣掉,好好賺價差,反正國庫缺錢,贖回賺他們所謂的10倍價差也是種解決方法。


底下是從Google頁面庫存撈回來的Wiki資料,提供歷史資料參考。

南華生技案

1997年,Tanox 公司向 Biogen 取得愛滋病用藥 TNX-355 (之後改名叫 TMB-35)的授權。2000年,通過第一期臨床試驗。2004年,TNX-355通過第二期臨床。期間,Tanox公司執行長唐南珊,曾多次回台灣尋 找資金,但沒有得到政府與民間的支持。
2005年10月,台灣政府規劃推動生物科技產業,邀請唐南珊回國。唐南珊與歐華創投董事長高育仁,計畫在台灣成立南華生技公司,建立蛋白質工 廠,在台灣生產 TNX-355。唐南珊向行政院要求 2.4億元資金投入,高育仁向開發基金申請 17億元投資,行政院邀請中央研究院院士何大一等四位顧問協助評估。何大一與其他顧問返國後向行政院提出報告,認為 TNX-355 的市場規模有限,成立大型蛋白質工廠,產能將會過剩,不符合成本效益,而且此項投資只是單純代工廠,無法取得藥品本身的專利,進行進一步研發,建議駁回。 行政院因此否決此項投資計劃,唐南珊也無法找到其他資金來源,計畫失敗。

宇昌投資案

首次談判

2006年,翁啟惠成為中研院院長,他提出構想,希望讓台灣的生物科技產業,趕上世界。在與生物科技界大老交換意見後,認為應該要成立一家具指標 性公司,循台積電模式,由國家投資扶植,以建立生物科技的產業鏈。此時,美國基因泰克公司,預備收購 Tanox公司,但他們認為愛滋病用藥 TNX-355 研發成本過高,決定將它出售。何大一、陳良博與被譽為「生技界張忠謀」的羅氏藥廠全球技術營運總裁楊育民評估後,認為這是取得 TNX-355 專利授權的好機會。雖然研發新藥可能會失敗,但是這將有助於台灣生物科技產業的進步,但仍值得一試。
2007年1月,他們計畫成立一間新公司,名為 TaiMed,希望取得美國基因泰克公司授權,在台灣研發與生產愛滋病試劑 TNX-355。國科會主委陳建仁與經建會主委何美玥,向當時的台灣行政院長蘇貞昌提出方案,建議以國家發展基金進行投資,資助其建立。蔡英文此時擔任行 政院副院長,曾負責協調經建會與經濟部,協助宇昌生技的成立。她也說服了立法院院長王金平,由王金平領銜提出生技新藥條例,完成立法,以補足法源。同年3月,行政院為募集TaiMed 資金,向台灣創投業者召開公開說明會,引起基因泰克 公司不悅,認為台灣違反協議,洩露談判進度。同時間,另一間美國公司,也希望爭取基因泰克 公司的專利,開出很高價格。TaiMed 公司原始股東,認為授權金太高,也找不到其他投資者加入,中止談判,計畫暫停。5月21日,蔡英文卸任行政院副院長,回到民間。

成立宇昌

2007年8月,基因泰克 公司與Tanox 公司合併完成,楊育民認為這是爭取專利權談判的好機會,陳良博於是重新召集團隊,重開談判。因為生物科技業,投入研發成本很高,募資困難。陳良博與中研院 院長翁啟惠、李遠哲等人,邀請回到民間的蔡英文擔任公司董事長,負責整合投資人及負責國際授權談判。希望以她的聲望與人脈,讓公司募款能順利完 成。蔡英文答應協助,成為宇昌生技的首任董事長,但不支薪。同年7月,在蔡英文的努力下,募得足夠資金,並與基因泰克公司完成談判,以1億元的價 格,取得獨家授權,得以在台灣研發新藥 TMB-35[12][13]。但原定投資者認為投資風險過高,在此時收手,資金產生缺口。9月3日,蔡英文以其家族資金,成立台懋生技創投公司,投入 6千萬資金至宇昌生技,補足資金缺口。9月4日,宇昌生技正式成立。
台懋生技創投(TaiMed Inc)與宇昌生技是母子公司,由台懋負責控股,尋找投資機會與資金,宇昌生技負責新藥的研發與生產。10月,宇昌生技募資不順,蔡英文家族再度投資 7200萬至台懋生技創投。
2008年3月,總統大選後,國民黨勝選。因為政權輪替,國家發展基金承諾投入的資金並沒有到達,原先承諾的3千萬美金,包括開發基金批准的1千 2佰萬美金都未投入宇昌。民間投資者,包括統一集團,也因政治上的不確定因素,不敢把資金投入。蔡英文說服潤泰集團主席尹衍樑投資1千萬美元,宇 昌生技資本額才達到3千萬美元,勉強符合和基因泰克公司授權協議書上的最低資本額的規定,讓公司得以繼續經營。同年5月,蔡英文成為民進黨主席, 請辭董事長。為減低公司的政治色彩,其家族也將股票售回給主要股東尹衍樑,獲利一千萬,並完全退出經營。尹衍樑取得台懋生技創投的股權後,邀請路 孔明入股,改名合一生技創投。
2009年4月28日,宇昌生技,改名中裕新藥。2010年,中裕新藥再次增資,開發基金決定再次參與投資約430萬美元,連同第一次投入的1千 2百萬美金,取得公司約百分之二十的股權。中裕新藥順利上櫃,股票價值增加300%。
2011年,蔡英文成為民進黨總統候選人。在選前二個月,國民黨開始對宇昌案提出質疑。