|
|
|
發新文章 |
|
|
身為IT專業,新軟件出來,要去用,體會,才能發現問題。Picasa剛出現時,nannan wang講他們實驗室人都在用,體驗。 這幾天體會了下Picasa,功能確實很強大,將我的一張照片命名為小杰,連在長城、水立方的照片,其他人比如shuicheng yan教授的合影和 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- http://www.pconline.com.cn/pcedu/soft/gj/photo/0909/1841482_all.html http://www.makeuseof.com/tag/how-to-use-facial-recognition-technology-in-picasa-web-albums/ Google的東西總能帶給我們驚喜,從幾年前的谷歌地球、Chrome瀏覽器到最近被炒得火熱的Google OS,它的產品線幾乎囊括了互聯網的各個角落。而作為Google中唯一一款免費圖片管理軟件,Picasa一經面世便以其超酷的特效和方便好用的功能吸引了不少眼球。 軟件名稱: | Google Picasa | 軟件版本: | 3.5.0 Build 79.67 多國語言版 | 軟件大小: | 9462k | 軟件授權: | 免費 | 適用平臺: | Win9X WinNT Win2000 WinXP Win2003 | 下載地址: | Google Picasa |
幾天前這款小軟件正式升級到了最新版3.5,其中“人臉識別”便成為了它的最大看點!  圖1 Picasa 3.5體驗手記
一、 探秘“人臉識別” 簡單來說,Picasa的“人臉識別”是通過一種復雜的算法,對照片人物進行判斷,所有包含人臉的照片都將被自動歸集并由用戶統一命名。而這樣做的最大好處,就是能夠讓我們隨時利用右上角的搜索欄,快速查找某人照片,而且之后所有新入庫的相片也都會按照這個規則,自動歸類到相應位置,十分方便! 啟動Picasa后,軟件會自動搜索圖片庫,對所有包含人臉的照片進行分類。在此過程中,每一張被檢測到的照片都會以大頭貼的形式進行顯示(相同的人物將被自動整理在一起),不過由于沒有姓名,這些頭像暫時都將被自動存放在一個“Unnamed people”(未命名人物)文件夾中,等待用戶處理。  圖2 等待命名的照片“大頭貼”
待照片分析完畢,我們便可以通過雙擊“Unknown Person”為該人物命名(可以輸入中文喲),于是第一個人物標簽便這樣建立好了。有了人物標簽后,日常查找就顯得方便多了,只要將待搜索的人名(當然必須是已命名的名字)輸入到頂端搜索框,片刻功夫,Picasa便會自動列示出對應結果,而且準確度極高。  圖3 為人物“命名”
也許有些朋友會感到奇怪,為什么這里顯示的照片全都是“大頭貼”呢?其實這只是Picasa的一項默認設置,目的是為了方便用戶進行辨認。如果您不喜歡或者不習慣,完全可以通過搜索框下方的按鈕自行切換,很簡單的。  圖4 人物Tag使用演示
當然以上所說的只是一種理想情況,事實上在日常工作中,我們常常會遇到各種各樣的問題。比如照片中出現了無關人員、人物照片被錯誤識別等等,而這時就需要我們對其進行一番小小的修正。 一般來說如果拍攝地屬于景點,就很有可能在照片內包含進一些無關人員,對于這種情況最簡單的一個方法,就是直接點擊“叉號”忽略。而對于那些由于人物本身采用了夸張性表情(如“大笑”、“閉眼”)或者相片曝光而導致的未識別頭像,則可以直接將其拖拽到正確標簽下即可。不過此時Picasa會自動在這些面孔上打下問號,等待我們手工確認后才會真正識別。值得一提的是,Picasa的識別可是具有一定學習能力的,隨著確認照片的增多,它的識別能力也會相應增強喲! 小提示:新加入的照片,即使能夠正常識別(即自動放置到相應人物標簽下),也會在頭像上打上問號,提請用戶最終確認,這樣就可以保證新進入的照片100%準確,細節處考慮相當嚴謹。  圖5 無關人員直接點擊“叉號”忽略
 圖6 可疑面孔將提交用戶審核
除此之外Picasa 3.5還在右下角安排了一個“People”按鈕,這到底又是做什么用的呢?其實聰明的網友大概已經在下圖中找到一點眉目了,不錯!這個面板的最大用途,就是自動找出與當前人物有過合影的人員。  圖7 自動搜索合影人員
http://productforums.google.com/forum/#!topic/gmail-zh-cn/xO9ru5F6mck 我的筆記本也這樣,用谷歌瀏覽器不能正常顯示,用ie瀏覽器是可以正常顯示星標的,不知是什么原因引起的。20121022在uts將谷歌瀏覽器包括所有插件都卸載后,現在谷歌瀏覽器能正常顯示星標。20131224在niu group,戴爾臺式機用谷歌瀏覽器和goagent能正常顯示星標。20140320在niu group,臺式機google site能編輯,但T420筆記本不能編輯。將筆記本google瀏覽器刪除,包括配置數據后,重新安裝最新版google瀏覽器,星標能正常顯示了(過幾天又不正常顯示了,不糾結這個問題了),但google site還是不能編輯。 20141208在niu group,臺式機和x240s經過安裝最新版goagent,星標能正常顯示了,google site能編輯。
http://www.guao.hk/posts/5-cool-picasa-features.html 我是一個有點反復無常的Picasa用戶(桌面的picasa軟件,不是指網上相冊的那個picasaweb)。每一次我重新開始使用picasa時,都會意識到這是一款多么偉大的軟件,它真的應該一直停留在我的電腦里面,一直停留在每一個用戶的電腦里面。 Google出了很多好的軟件和系統,而Picasa是其中尤其優秀的一款產品。如果你是個硬盤里面保存和很多照片和圖片,時不時也要瀏覽和編輯一下下的用戶,那Picasa真的應該作為你默認的圖片編輯工具。除了簡單的欣賞照片以外,Picasa提供了很多很多的特性,使圖片的瀏覽、編輯更加的方便、易用和有趣! 這里介紹5個功能,都是我認為很好,而且會頻繁使用到的。 方便的調整圖片為適合的尺寸我習慣于把我很多漂亮的照片放在一起做成一張相片 。但是很多別的圖片編輯軟件沒辦法把照片的尺寸調整的剛剛好。哪怕指定了準確的尺寸進行調整,那些圖片看上去也會偏大或者偏小。然后我們就不得不把多余的切下來或者空出一塊難看的空白…… 使用Picasa就沒有這些問題,調整圖片尺寸的時候,它會變得剛剛好。 在圖片編輯窗口點擊”打印”按鈕,會顯示出各種尺寸的選項。 
用戶還可以點擊“邊界和文本選項”(”Border and Text”)添加邊框來給圖片添加邊框和文字描述。還可以選擇希望顯示多少分圖片的拷貝并把它們放到同一個頁面內(取決于尺寸)。最后,選擇你希望的尺寸并打印,非常簡單吧? 
嵌入你的照片在HTML頁面內如果你想要把照片放到網頁內,但是對自己HTML的編程水平不太自信的話,用picasa處理是非常方便的。甚至比使用Web Album Generatr創建相冊還要容易。 選擇你想要放到頁面內的照片,然后點擊菜單“目錄”—“導出為HTML頁面”,彈出如圖若干選項: 
選擇相應的選項,然后彈出窗口,要求你選擇一個頁面的類型,如下圖: 
確認后,Picasa很快生成相應的頁面,并在瀏覽器中顯示。如果覺得滿意,在瀏覽器中,用“文件”—“網頁另存為…”就可以保存下來了。 
直接把照片發布到Blogger里
現在,我又開始重新使用Blogger了……當我想要發送我的照片到Blog上時,這個功能是非常有用的。 雙擊希望Picasa中希望發布的照片, 點擊下方的”BlogThis”按鈕。彈出窗口要求登錄Blogger(如果你還沒設置登陸的話)。 使用Google帳戶登錄以后,填寫關于尺寸的參數,然后再敲一些描述照片的文字(這些文字會顯示在照片邊上),然后點擊“發布”,圖片就馬上出現在你的Blog頁面里啦,非常方便吧!
把照片做成拼貼畫,然后做成桌面的墻紙!
Picasa 可以非常容易的幫助你制作照片拼貼效果,超酷! 很簡單,首選選中要拼貼的照片,點擊“制作”-“圖片拼貼”,你的這些圖片就被picasa隨機的生成了拼貼效果。當然,你還可以通過調整選項來嘗試不同的拼貼效果。 一旦完成拼貼,下面就有個選項,可以直接使生成的圖片成為桌面墻紙。 
這樣的效果會讓你的女朋友興奮的跳起來的! 制作幻燈片的視頻,配上音樂,并上傳到YouTube!
周六的時候我參加了一個婚禮,新郎和新娘的朋友們制作了一段幻燈片送給他們,里面有兩人不同時期的照片,并在婚禮上面播放。但是他們筆記本中的軟件突然死掉了。幸好有picasa!我們來看看Picasa是如何輕易的就做出了幻燈效果,而且配上音樂的! 當然,Picasa只能簡單的做出用照片形成的幻燈效果,我們不能指望它去參加奧斯卡獎的評選:)。但是,如果你只是希望用一種方式去展示你的照片并配上音樂(不配音樂當然也可以),那這個方法還是非常方便并適合的。 把所有要加入幻燈的照片保存到一個目錄下,然后Picasa在每個目錄的頂部就有“制作視頻演示”的按鈕。點擊,并調整顯示順序(如果把名字按照顯示的順序來命名,如picture1.jpg,picture2.jpg…,那就更簡單了)。 
在界面的左面,也有一些選項可以添加音樂。在“音軌”欄目,點擊“載入”,找到你計算機本地的音頻文件,就可以了。在下面,可以選擇“轉場樣式”,用來調整圖片在幻燈中切換的方式。你還可以通過調整選項來使照片漸入漸出、推進推出、縮放或者左右移動等等。 在主窗口里,點擊播放,就可以看到幻燈片的效果。也可以全屏來看最大最清晰的效果。最后,當你對幻燈片滿意的時候,可以直接點擊“YouTube”按鈕上傳到YouTube上,這樣其余人就可以一起分享你的幻燈片了! 下面還列出了一些介紹Picasa特性和功能的文章:
第一、matlab能不用循環盡量不用循環 % % Nannan wang says that in matlab, cycling(循環) is time-consuming. % % 能不用循環就不用循環 % % The easiest example to illustrate this idea 已知兩個矩陣A,B,求所有元素對應相乘之和 思路一:用兩重循環實現 思路二:點乘后的矩陣用C表示,sum(C(:)),思路二更好,沒用循環
第二、預先分配存儲空間
tic; a=zeros(1000,10000); for i=1:1000 a(i,:)=randperm(10000); end toc; 20130111在我的筆記本測試,需要時間1.115140 seconds;如果將a=zeros(1000,10000)注釋,在我的筆記本測試,需要時間19.308252 seconds 參考文獻:
見我的matlab教材P54
On the group meeting of Oct 3, 2018, Jiaqi shows his bar. I asked that why his variance is very small. He said that he uses the standard error (https://en.wikipedia.org/wiki/Standard_error), which is standard derivation divided by the square root of the number of trials. According to the notes of my undergraduate course probability: (1) D(ax+b) = a*a*D(x), (2) the second line of "中心極限定理". x bar is seen as a random variable, we have std(x bar) = std(x)/sqrt(n). I ask Jiaqi which tool he uses to draw his figure. He says he uses python, bar of matplotlib. https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html. The mean of the errors and standard error should be computed first and then be used as the input of xerr and yerr. I check my TNNLS 2017 paper and I find that I show the std. Maybe next time I can show the standard error.
這個函數的意思是: ERRORBAR(X,Y,L,U),X是自變量,Y是因變量,L是Y的變動下限,U是Y的變動上限
errorbar(X,Y,E) X是自變量,Y是因變量,E是Y的變動絕對差值。 我自己寫的例子:
X=[1 2 3];
Y= [ 0.2 0.4 0.2];
L=[0.1 0.03 0.03];U=[0.1 0.3 0.2];
E= [0.1 0.3 0.2];
figure;
hold on;%一定要有這一句,否則有問題
bar(X,Y);
errorbar(X,Y,E,'Marker','none','LineStyle','none');
figure;
hold on;%一定要有這一句,否則有問題
errorbar(X,Y,E);%以下注釋的兩句用這一句就可以了 %plot(X,Y);
%errorbar(X,Y,E,'Marker','none','LineStyle','none');
figure;
hold on;%一定要有這一句,否則有問題
bar(X,Y);
errorbar(X,Y,L,U);%,'Marker','none','LineStyle','none'不能省
說明:必須使用hold on,bar是畫柱狀圖, errorbar是花豎線--------------------------------------------------------------------以下可不看---------------------------------------------------------------------------- example1:
x = 1:10; y = sin(x); e = std(y)*ones(size(x)); errorbar(x,y,e)
 example2: % 生成示例數據x=1:10;y=cumsum(randn(1,10));lower = y - (rand(1,10));upper = y + (rand(1,10));% 由于errorbar函數使用相對差值在圖形上繪圖,所以% 需要將絕對差值轉變為相對差值。L = y - lower;U = upper -y;% 繪圖時需要設定 hold on% 柱狀圖clf;figure(1);hold on;bar(x,y);% 此處需要隱藏折線errorbar(x,y,L,U,'Marker','none','LineStyle','none');% 折線圖figure(2);hold('on');plot( x, y);errorbar( x, y, L, U); Reference: http://blog.sina.com.cn/s/blog_61010ebe0100l9c9.html http://bio-spring.info/wp/?p=85
http://blog.163.com/symphony_sol/blog/static/30279623200751841822500/
兩種不同的隨機數算法 seed是matlab4的,matlab5及以后用的是state
seed 現在也是有的, 實際上現在用的隨機數是偽隨機數,由一定的規則產生 比如z_{k+1}=f(z_{k}),z_{k}即為我們得到的隨機數, 比如之前得到的隨機數是0.5, 再用randn命令得到的隨機數是0.6 那么如果下次得到隨機數0.5,那么之后的隨機數還是0.6 seed是產生這個隨機數的種子,也就是初始值z_{0},seed不同,得到的隨機數列也不同, 取定了seed之后,隨機數列也就確定了,只不過這個數列非常大,看起來就象是隨機產生的, 舉例: seed=x1 得到隨機數列 y1,....ym seed=x2 得到隨機數列 z1,.....zn 關于state:指定隨機數的狀態, 我的理解是類似于指定了這個隨機數列數組的下標 比如:randn('state',100) 然后產生一個隨機數為 r0 然后中間再產生了若干隨機數 然后再鍵入命令randn('state',100) 這時再產生的隨機數還是r0 http://blog.sina.com.cn/s/blog_6c00b0e30100rmyy.html
(2)RANDN產生偽隨機數的語法: 發生器的狀態決定所產生數的序號。 S = RANDN('state') 是一個二元向量,包括標準發生器的狀態; RANDN('state',S):設置發生器的狀態為S(即標準狀態); RANDN('state',0):設置發生器的初始狀態; RANDN('state',J):J為整數,設置發生器到J階狀態;
(3)MATlAB 4.X應用一個單獨的種子來產生隨機數: RANDN('seed',0) and RANDN('seed',J)作用與RANDN('state',0)和RANDN('state',J)一樣,但使用Matlab 4.x隨機數發生器。 RANDN('seed'):返回MATlAB 4.X發生器的當前種子。 |
以上部分是轉自其他網友的分析。下面是我對這randn或rand的理解。
例如:randn('state',0);,表明選定了一個初狀態,再定義隨機數列x=randn(1,100),x的值會確定下來,不會每運行一次而產生不同的隨機數。 例如: "E:\other\matlab 2007a\work\function\rand_"
a1 =2 3 1
b1 = 4 1 3 2
c1 = 1 3 4 5 2 重新運行還是這個結果
do_exp_MNIST_SSH_BRE_ITQ中半監督hashingSSH 重新跑一次,除了Training time和Test Time還是這個結果,因為有rand('seed',0); rand('seed',0)和randn('state',0): do_exp_MNIST_SSH_BRE_ITQ中CCA-ITQ加randn('state',0)重新跑一次,除了Training time和Test Time還是這個結果,rand('state',0)不行,因為ITQ函數中用的randn不是rand 20160120谷歌搜索:randperm seed,找一個連接https://www.mathworks.com/matlabcentral/newsreader/view_thread/171653,有如下語句:If we initialize rand with some seed (say rand('seed',1)) then the result of randperm(n) is always same after the initialization. 經過如下語句測試,沒有任何問題:
rand('seed',1); a = randperm(10); i=2; rand('seed',i); b = randperm(20); rand('seed',1); c = randperm(10); i=2; rand('seed',i); d = randperm(20); sum(a==c) sum(b==d)
dispfor i = 1:10 disp(i) end display%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% display(['Show the value of i and j...']);%即可以輸出字符串 for i=1:2 for j=1:2 display(['--------i=', num2str(i), ' j=', num2str(j), '------------']); end end 見我的matlab教材P20
Definition (classification context)For classification tasks, the terms true positives, true negatives, false positives, and false negatives (see also Type I and type II errors) compare the results of the classifier under test with trusted external judgments. The terms positive and negative refer to the classifier's prediction (sometimes known as the observation), and the terms true and false refer to whether that prediction corresponds to the external judgment (sometimes known as the expectation). This is illustrated by the table below: | actual class (expectation) |
---|
|
---|
predicted class (observation) | tp (true positive) Correct result | fp (false positive) Unexpected result |
---|
fn (false negative) Missing result | tn (true negative) Correct absence of result |
Precision and recall are then defined as:[4] [通俗理解:預測出來100個正例,事實只有30個,precesion就是0.3]
[通俗理解:總共200個正例,事實只有40個,recall就是0.2]
Recall in this context is also referred to as the True Positive Rate or Sensitivity, and precision is also referred to as Positive predictive value (PPV); other related measures used in classification include True Negative Rate and Accuracy:.[4] True Negative Rate is also called Specificity. 

A measure that combines precision and recall is the harmonic mean of precision and recall, the traditional F-measure or balanced F-score:  Reference http://en.wikipedia.org/wiki/Precision_and_recall
Compressed labeling on distilled labelsets for multi-label learning公式85和86,這是對應multi-label的precision和 recall。(例如第i個樣本的實際標記是 1 0 0;預測標記是1 1 0;該樣本對應的值是1/2,與單label的意義很好對應,物理意義很好理解) )
liblinear學習記錄: 在本機:matlab 2007a\work\SVM\liblinear-1.96\matlab
定位到\liblinear-1.96\windows后,在win 64電腦上,train和predict是能直接使用的,不需要再編譯 ------------------------------------------------------Jianchao Yang的CVPR09-ScSPM公布的代碼------------------------------------------------------------------------------------------------------------Yong Luo傳給我的SVM------------------------------------------------------利用Yong Luo傳給我的SVM,在電腦文件夾E:\other\matlab 2007a\work\SVM\SVM\,不用編譯。 用testSVMnew還是testSVMold?最好用new。testSVMnew中又有kernelSVM文件夾,是什么作用? kernelSVM就是輸入是kernel。在服務器運行SVM工具包,有問題Undefined function 'loqo' for input arguments of type 'double'.,是不是要編譯的原因?是的,如果是64位機的linux系統,要拷貝這個文件loqo.mexa64,如果是32位機的windows系統,要拷貝這個文件loqo.mexw32 ,w和a的區別分別是windows和linux。Yong Luo 沒將編譯的程序發給我,如果需要也可以找他拷貝
-------------------------------------------------------------------------------------------------------------------------------------- E:\other\matlab 2007a\work\SVM\SVM\testSVMnew中的testSVM能直接運行
'nin' = NIN number of input dimensions,即輸入數據的維數(已經得到Yong Luo確認,并且程序已經通過運行)
'nout' = 1 number of output dimensions
'kernel' = KERNEL kernel functi
'kernelpar' = KERNELPAR parameters for the kernel function,針對線性核,這個參數不起作用,高斯核就會有作用
C一般要調整嗎?主要調整這個,就是懲罰因子
我自己的tag程序svmplot就有問題,什么原因?svmplot是兩維的才能plot,高維的無法plot,直接將這一句注釋即可 --------------------------------------------------------------------------------------------------------------------------------------
E:\other\matlab 2007a\work\SVM\SVM\testSVMnew\kernelSVM中的testkernelSVM( )能直接運行該函數里面調用kernelSVM,C=10代表什么?
kernelSVMfwd即是測試,注釋中有其輸出Y1的含義,Y1(i) is equivalent to the distance of point X(i,:) from the separating hyperplane. -------------------------------------------------------------------采用新的svm工具基于以下原因------------------------------------------------------------------------------ 在uts服務器上編譯libsvm時出現下面錯誤 Warning: You are using gcc version "4.4.6". The version
currently supported with MEX is "4.3.4".
For a list of currently supported compilers see:
http://www.mathworks.com/support/compilers/current_release/
不能編譯通過,與Yong Luo discuss,因為這是大家共用的服務器,可能不能為了個人安裝。想用matlab自帶的svm函數,發現在測試時只能輸入測試樣本,不能輸入核。故在服務器上先用Yong Luo提供的svm工具。
Caltech101是屬于image categorization數據庫,見Linear Spatial Pyramid Matching using Sparse Coding for Image Classification(CVPR09-ScSPM)摘要寫了: In a number of image categorization experiments, 其標題是Image Classification。Mingming Gong講image/object Classification/categorization 四個是一樣的概念.
我自己到谷歌上搜索:object categorization COIL,發現A novel color-context descriptor and its applications (ICME 2009)摘要最后一句: Experiments validate the discriminant power of the proposed descriptor in object categorization on COIL- 100 database and pedestrian identification in surveillance videos.故Deng Cai主頁的COIL是屬于object categorization的
中文名稱:圖像檢索
英文名稱:image retrieval 定義:在圖像集合中查找具有指定特征或包含指定內容的圖像的技術。Yong Luo said比如線性化特征抽取方法,應該是用訓練集學習一個投影矩陣,然后應用到測試集上來相互query,訓練集丟掉,相當于離線學習了一個投影矩陣 Reference http://baike.baidu.com/view/63486.htm
Learning a Maximum Margin Subspace for Image Retrieval Dong Xu's Phd thesis Section 7
Cooperative Sparse Representation Semi-supervised Image Annotation --------------------------------------------------------------------------------------------------------------------------------------------------- 圖像分類是測試樣本的預測label和實際的label比較得準確率。圖像標注本質也是分類,是測試樣本預測出來的tag和實際的tag做比較得準確率,看voc 07的訓練tag,是5011*804的矩陣,也就是總共804個tag,如果該樣本有這個tag,則該位置的tag是1否則是0.一個圖像可以有多個tag,image annotation本質也是multi-label的問題。是不是所有樣本的tag確實只有804個,其實有更多,將一些頻率比較低的去掉了。Yong Luo講在測試時有這樣的情況,測試樣本沒有tag,這時沒法算準確率,就將這個測試樣本去掉。 --------------------------------------------------------------------------------------------------------------------------------------------------------- image annotation就是image classification. 見Cooperative Sparse Representation Semi-supervised Image Annotation. VI節A節第三段:with the annotations from a set of total 20 keywords.This is discussing with Weifeng Liu and Yong Luo. Sparse Unsupervised Dimensionality Reduction for Multiple View Data該文IV節E節 2)就用的Image Classification and Annotation.該文用三個數據集,MIML僅有類別沒有tag,后兩個僅有tag沒有類別,論文說了分別81和100個tag,故MIML是測試樣本的預測label和實際的label比較得準確率,后兩個庫是是測試樣本的預測tag和實際的tag比較得準確率。Yong Luo講沒有人在voc上做image annotation,因為其tag沒有太多的語義信息,比如pascal07_dictionary的804個tag中還有2003,voc的tag只能作為特征。 Yong Luo:另外還有三個做annotation的數據庫Corel 5K,IAPR TC-12,ESP GAME. Annotation是給圖像加標注,阿秋TIP fig 3. Tian Xia MSE實驗第三節是Video annotation, Tian Xia寫了,和image retrival做法一樣。這三個數據庫Yong Luo 建議不要按照ML-KNN的五個指標來進行比較。Image annotation就按照annotation的指標,TagProp Discriminative Metric Learning (ICCV 2009)Table 3的P、R和N+。這三個指標的定義該文講了,該文參考文獻17 A. Makadia, V. Pavlovic, and S. Kumar. A new baseline for image annotation. In ECCV, 2008也講了。 整個領域基本都是分類或者回歸問題,少部分是回歸,比如是年齡回歸(age regression)。mingming gong said that介于兩者之間的還有一個是ordinal regression = ranking(值是離散的,還有大小)
|