沒有一款社交軟件可以治癒孤獨

  我的朋友海賢是一位心理諮詢師。有一天,我想到了一個創業 idea,覺得挺適合他的,就聊了起來:

  “我想到了一個創業 idea……”

  “啥?”

  “能不能把人工智能跟心理諮詢結合起來”

  “哈哈,可以啊,這是大產業”

  我心想真是英雄所見略同啊,興緻也來了,於是接着說:

  “改進現在的智能對話機器人,訓練像諮詢師那樣說話……普通人情緒不好的時候跟他聊天就開心啦!”

  “產生像大白那樣的機器人”

  “是啊,你來做吧!” 我很興奮地向他建議道,我心想這可是個大生意啊,發財的機會來了!

  海賢開始表態:“這個未來肯定會有,不過呢,它有點像是 se4 情行業里的充氣娃娃,我還是想做真人版的……”

  “……”

  為什麼,為什麼啊,我心裏有點抓狂,有點想不通。還沒等我問,海賢又來了一句:

  “因為和機器打交道會讓人陷入無可遏止的孤獨。”

  聽到這句話的時候,我虎軀一震,眼冒金星,陷入了尷尬的沉默。我知道再多的勸說已經多餘,因為這句話是無法辯駁的。它就像一塊巨石轟然而至,壓在了這個時代的胸口。

  我心裏堵得慌,因為海賢說得真對。這傢伙一點都不想創業,他只想死心眼地做一個足夠好的心理諮詢師。

  今天翻翻朋友圈,到處有人在發三款新的社交軟件同時發布的消息,非常的熱鬧,議論紛紛。我基本上沒看這些無謂的討論,而是開始回想我的人生經歷中,那些讓自己難忘的時刻,我發現它們都不是出現在網絡上。

  有一次,一位書友約我吃飯,地點是在一家不錯的日料店,這位書友是餐飲界人士,跟那家店的老闆認識,所以叮囑讓主廚親自操弄。其中有一份壽司是店裡的招牌,我一口吞在嘴裏,頓覺香氣漫溢,無法自持。後來我看了一些美食書,才知道這叫“鼻后嗅覺”。

  這位書友故作神秘的問我:“你剛才吃下去的這口,我給它取了個菜名,你知道是什麼嗎?”

  我一臉疑惑,搖了搖頭。

  “幸福感。它的名字就叫幸福感。”

  聽罷我又頓覺語塞。我想他說得真對。

  我又想起一件小事,有一天我寫稿寫得很壓抑,從咖啡廳走出來散散心。走到一家大超市的門口,聽見一個有點蒼老的聲音傳來:“小伙子,小伙子!”

  我扭頭尋聲,看見一位老婆婆正看着我,手裡推着一個購物車,前面就是一截下坡路。

  老婆婆說:“小伙子,你能不能幫幫我,我腿腳不靈便,我買了些東西,比較重,我把它推下坡擔心拉不住,你能不能幫我推一下……”

  “好啊,沒問題”

  举手之勞。我幫老婆婆推了購物車,安然無恙,然後我就走了。走的時候我的腳步非常輕快,心裏別提有多高興。已經很久沒有做過好事了,雖然只是十秒鐘的事情,卻讓我開心了一整天。

  我回想這件事,老婆婆之所以叫我幫忙,是因為她心裏打了個賭,料定我不會一把拿走購物車裡的東西,逃之夭夭。被人信任的感覺真好。

  然後我又想起去年夏天的世界杯,我被海賢叫到他家裡看球。海賢是真球迷,我是偽球迷,還有幾個朋友是半真半偽的球迷,我們聚在一起,開了很多啤酒,啃了很多鴨脖,吃了很多西瓜,坐在地上沙发上,橫七豎八地看着比賽。真是人生中特別美好的回憶。

  這些都不是手機或者 App 所能給我的。

  有時候我會想,為什麼我們的時代會變成這樣。當我坐在咖啡廳里碼字的時候,我看到鄰桌的情侶,他們並排坐着,手裡拿着手機,打着遊戲。他們似乎是一個戰隊里的戰友,並肩戰鬥着,但是他們沒有說話,沒有接吻,沒有含情脈脈地四目相對。而是各自抱着手機過了一個下午。

  也許再過幾年,他們就會戴着虛擬現實頭盔並肩而坐了。

  這是我們原本希望的樣子嗎?

  的確,手機、社交軟件是讓我們結識了更多的人,看到了更大的世界,但是並沒有絲毫緩解我們的孤獨。有可能,當我們沉迷於網絡世界而忽略周遭的現實時,我們變得更孤獨了。

  誰要看那些錐子臉網紅啊,誰要看一些P出來的假美女搔首弄姿啊,誰要隨隨便便跟一個陌生人撩騷啊,誰喜歡在網上吵來吵去當鍵盤俠啊,有意思嗎?有個鬼意思哦!

  當然我知道,喜歡這些的人成千上萬,但是我打賭,其實,他們也已經疲勞了。

  如果我是想在網上尋求刺激,那麼刺激的閾限會越來越高,直至最終再也無法滿足。

  如果我是想通過手機派遣寂寞,最後還是會發現,這終歸是一個機器,而不是一個實實在在、有血有肉的人。

  “和機器打交道會讓人陷入無可遏止的孤獨。”

  上面的兩張圖片來自一幅裝置藝術作品,名字叫《隔離的鍵盤》。作者是熊超,當今中國最頂尖的廣告創意人之一,戛納創意節金獅獎得主,曾任上海奧美創意群總監,現為獨立創意機構”The Nine“的創始人。

  為了創作這個作品里,熊超採訪了 20 多個家庭,把這些家庭的一百多個成員做成了人偶,封裝在一個個玻璃瓶中,這些玻璃瓶整齊地擺放在一起,變成了一個五米多長的大鍵盤。

  當大鍵盤放在城市的街頭,行人經過駐足觀望。他們看到的是一個個隔離的人,在這個鍵盤裡。這些人原本是親人、朋友、戀人,但是因為隔絕,而沒有任何交流,他們沉默着,變成了網絡世界的一座座孤島。

  我知道,在這個時代,注意力本身是一種寶貴的資源。但由於每個人的這種資源都極為有限,所以層出不窮的網絡應用對它的爭奪已經堪稱白熱化。這是一個沒有硝煙但是刺刀見紅的戰場。在這個戰場里,你,我,他,既有可能是受益者,也有可能是戰利品。

  科技帶給我們的影響在大多數時候當然是利大於弊的,我們的生活總是在越來越好。但是有些獨屬於人的東西不應該改變,比如面對面交流時情感和信任的傳遞遠非網絡所能比擬。當我和朋友促膝長談,或者一起做一些事的時候,才是我真正快樂的時刻,才是我忘記孤獨的高光時刻。這樣的時光在我們的生命里方才是最寶貴的。

  所以歸根結底,沒有一款社交軟件可以治癒孤獨。

  如果可能的話,去找回你所在意的人,放下手機,在他們的身邊把時光揮霍,才是最美妙的事了。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

電動車不夠看!英美研發電動飛機、預計10年內升空

 

電動車蔚為風潮,再來電動飛機將佔領天空?歐洲航空業者EasyJet和美國新創企業Wright Electric合作,準備打造電動飛機,預計十年內飛上雲霄。

CNNMoney、CNBC報導,EasyJet 27日宣布攜手Wright Electric,打造航程為335英里(539公里)的電動客機,負責短程航班,如紐約飛往波士頓、或倫敦飛往巴黎等。EasyJet為廉價航空,多以短途航程為主,電動客機可涵蓋該公司的20%航班。

EasyJet希望電動客機能在十年間升空。該公司執行長Carolyn McCall說,他們預想的未來沒有石化燃料。對電動客機,眾人想問的不是能否成真,而是何時現身。

2016年電池化學家、航太工程師、電動車專家成立Wright Electric,並獲得哈佛大學和知名新創公司孵化器Y Combinator注資。Wright Electric的目標是,未來20年所有的短程飛行都由電動客機運載,達到零廢氣排放。

歐盟執委會曾說,航空業排放大量的溫室氣體,是成長最快的廢氣來源之一。

(本文內容由授權使用。圖片出處:pixabay CC0)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

日本車商組「大聯盟」加快EV研發,鈴木傳結盟豐田陣營

為了加快電動車(EV)研發腳步,豐田汽車(Toyota Motor)、馬自達(Mazda Motor)以及豐田最大零件製造商Denso 於9月28日宣布成立名為「EV Common Architecture Spirit」(簡稱:EV C.A. Spirit)的電動車開發合資企業。而根據日媒最新報導指出,上述豐田主導的EV聯盟有望獲得鈴木(Suzuki)等多家日系車廠加盟。

日經新聞30日報導,鈴木計畫加盟豐田所籌組的EV聯盟,期望藉此加快EV的研發。據報導,鈴木計畫入股豐田主導的「EV C.A. Spirit」,預估持股比重將和馬自達、Denso一樣為5%,且除了玲木之外,豐田子公司日野(Hino)以及和豐田擁有資本關係、計畫在2021年開賣EV的SUBARU也考慮加盟,大發(Daihatsu)也有可能參一咖。

EV C.A. Spirit將開發小型車、轎車、SUV和輕型卡車電動車技術,豐田將持有90%的股份,馬自達、Denso分別擁有5%股權

豐田、馬自達目前都還沒販售純電動轎車。日經亞洲評論28日報導,馬自達、豐田分別計畫於2019年、2020年發表量產型電動車。

(本文內容由授權使用。圖片出處:)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

為什麼人們熱愛張小龍?

  文/周掌柜

  來源:周掌柜(ID:zhouzhanggui525)

  “萬物之中,希望至美”當張小龍用這句話結束微信公開課演講的時候,很多人意猶未盡。

  不可否認,微信已經成為騰訊和用戶之間最大的公約數,張小龍更像一位“技術之神”守護着 10 億人每天都會打開的微信,守護着騰訊的未來。

  但另一側面,除了每年的公開課分享,用戶沒有太多的機會可以感知到他,也沒有人討論他。他說的語言不如李彥宏有未來,不如馬雲有格局,也不同於馬化騰更關注大變革,他不是超級大佬,但沒有人會忽略中國互聯網這位獨特的存在,甚至擁有更多的期待。他並不是一位專業的佈道者和演講者,但他的演講讓人充滿溫暖,多少打消了很多人對騰訊“老齡化“的慣性憂慮。

  張小龍 2018 年的演講時常斷斷續續,一會兒喝水,一會兒停下來思考,還有時候一個頭緒扎進去出不來。

  2019 年不太一樣,看得出是經過系統的梳理,對微信的即時通訊、小遊戲、小程序、訂閱號等都有系統的思考和闡述,近 4 萬字的內容傳播到朋友圈的時候,雖然大部分人都沒有認真看完,但從質樸的語言里都能感受到善良和誠意,而這,或許和張小龍心中對騰訊戰略挑戰的思考有關。

  不可否認,騰訊已經從成功的中年人進入對“老齡化“的恐懼之中,微信雖然仍如孩子般的讓人喜愛,但用戶已經失去了當初對其顛覆式創新的怦然心動。

  如果一定要概括小龍這次演講如此清新簡潔的系統性表達,背後也可以抽象出三個線索: 

  第一個關於“本質“,他幾乎對每一個橋段的敘述都從初心到溯源進而強化了對本質的認知,比如,他說:“朋友圈本質上是一個什麼,朋友圈其實開創了一個新的社交的場所,其實它不止是一個時間流。我把它比方成一個廣場“;

  第二個關於是“常識”,他不斷強調和用戶互動過程中受到的啟發,以及自己和微信團隊抵抗住了 KPI、情緒、眼前潮流的誘惑如何尊重常識,比如,他說:”可能在遠古的時候,如果人都是一個一個個體的話,他是沒有社交的,當人類成為一種群居的動物的時候,原始的社交就產生了“,這背後是對廣泛用戶需求的常識性理解;

  第三個關於“大邏輯”,演講中對大邏輯的闡述非常多,其中最大的邏輯我們姑且概括為”朋友哲學“,他說:“如果微信是一個人,它一定是你最好的朋友,你才願意花那麼多時間給它”。可見,小龍用“交朋友“的大邏輯理解對於微信細節功能的每一個決策。

  以上的這個提煉,其實從張小龍的世界觀中一定是違背了他娓娓道來的初衷,但從我們戰略顧問分析的角度,也許有助於形成可以借鑒傳承的樸素方法。但,張小龍反對的其實都是騰訊的組織現在廣泛存在的。

  當然,本文最大的一個初衷,或者說“原動力”是——理解張小龍的世界!在這個時間點重新品讀張小龍和微信,還有兩個特別有價值的視角:

  其一是對騰訊這家中國領先的超大型互聯網公司對智能時代的理解,小龍談 AI 並不多,卻可以清晰的感知到微信進化的 AI 思維;

  其二是對騰訊這家公司最近半年股價跌宕起伏的股價表現看,微信所代表的騰訊未來,更加值得關注。

  最新数字显示:微信的日登錄量超過 10 億,這確實是一個特別大的里程碑,這可能是國內歷史上第一款 App 有 10 億 DAU 的數量級。從這個角度上看,未來最有可能在互聯網領域抵抗頭條系進攻的不太可能是一個橫空出世的新產品或另一個小龍,最大概率是微信的重生。“神化“張小龍有點接近吹捧,可他依然和必然性需要具備一種神性的思考,才能引領微信的未來,引領用戶的預期,才有機會讓騰訊真正無縫進入下一個嶄新的智能時代。“技術之神”的回歸也是用戶對騰訊最大的期待。

  在以上粗線條的勾勒下,周掌柜戰略諮詢的多位合伙人,通過對最近幾年張小龍微信公開課的演講分析(尤其這次),結合我們近兩年對騰訊員工的深入訪談,努力感知他質樸、純粹和清澈的語言,力求給大家呈現張小龍更系統的 “微信哲學“以及對騰訊未來的思考和展望。客觀講,縱使他的”神性“思維涉及吹捧,但微信背後的騰訊確實需要重回神聖之地,需要類似小龍和更多小龍去點亮未來。

  1

  張小龍的微信哲學

  小龍最開始就解釋了“初心”和“原動力”的關係,他似乎總覺得“初心”無法表達自己,“原動力”更接近於客觀事實。的確,“初心”是未經進化的意願,“原動力”更符合從無到有、從邊緣到中心的成功路徑,這非常客觀。

  他的“原動力”很簡單:

  第一,堅持做一個好的,與時俱進的工具。

  第二個原動力是,“讓創造者體現價值”。

  在筆者 2016 年 6 月發表於英國《金融時報》中文網的文章《張小龍的星空里》,描述了一脈相承的線索:1969 年 12 月出生,傳說中最花心的射手座(這也可能是其藝術氣質的某種來源);1987 年到 1994 年在華中科技大學電信系從本科讀到碩;1997 年,也就是畢業 3 年後,他發布了 Foxmail 這款經典的郵箱軟件,經過多次叫賣不成之後(包括 15 萬被雷軍拒絕),2000 年以 1200 萬的價格賣給了博大公司;2005 年騰訊收購了 Foxmail,張小龍加入騰訊任廣州研發部總經理;此後又負責 QQ 郵箱,2010 年申請立項開發微信。

  這次演講中,張小龍同樣提到了延續以往經歷的思考,他說:“在微信上線之前的一年裡,我們把 QQ 郵箱做到了國內第一名,然後在郵箱裏面又做了很多嘗試,包括漂流瓶等等,包括我花了一年多的時間折騰的郵箱裏面的閱讀空間”。這個原動力確實一脈相承的,他在過去的十幾年裡依然秉承着兩個深植於內心的原動力,時間沒有讓他的原動力發生改變。他提到:“原動力其實應該是內心深處的一種認知和期望,它很強大,以至於可以堅持很久,克服很多困難去達到它”。隱約,我們也可以感知演講背後的十幾年沉默中,他並非是高歌猛進的成功,而是堅持和克服困難,包括騰訊組織的摩擦力,渴望更完美的自己。

  下錶我們通過與他提到的德國產品設計師迪特·拉姆斯(Dieter Rams)的對比,進一步分析他的微信哲學,如表:

  張小龍作為微信產品的主要功能和體驗設計師,受微軟、蘋果等品牌深刻影響,在中國互聯網行業獨樹一幟的形成超越商業的產品思維。

  他對好的產品的感知特徵是:

  1. 好的產品是自己會說話,盡可能產品說話,而不是解釋很多東西;

  2. 好的產品是最好的工具,關注於對錯的是非價值主張,而不是利益最大化;

  3. 好的產品圍繞用戶想象力感知,沒有標準答案;

  4. 選擇的權力交給用戶。不左右哪些服務是用戶有用的,公眾號就是這個思路,系統沒有推薦;

  5. 把用戶當朋友,而不是聽從驅使的群體。

  他的產品價值觀是

  1. 大人談利益,小孩子談對錯,利益出發,產品越走越偏,成為利益堆砌,失去產品最本質的東西;

  2. 所有努力一個目標,尊重用戶,尊重個人;

  3. 用外掛打了很多分,朋友誠信的角度是有問題的。外掛的行為破壞系統規則,讓規則失效了。尊重用戶。沒有騷擾信息,沒有聊天記錄保留,不做任何誘導行為;

  4. 故意感動人也是挺不尊重他的表現;

  5. 關注效率。小程序和小遊戲:用完即走,走了就回來。工具是完成任務,越高的效率越好;

  6. 超越短期功利主義:很多業界的產品經理會被自己所在的公司誤導。因為公司的目的是要流量要變現,所以大家的 KPI 就是如何產生流量如何變現,這是短視的。

  在產品體驗上,他特意提到了“尊重”兩個字,滲透着濃濃的用戶思維和人文思考;在品格方面,他提出不能“機會主義”,不為任何一個風口做事情。應該說以上一系列的梳理和提煉,都可以清晰感知他已經擁有了一套系統的方法論,這些方法論看似瑣碎,但其實更多的是在技術應用中融入到每一個功能裏面,充滿了產品主義的匠人精神。

  小龍對於小程序的表達,尤其經典,他說:“小程序是信息的組織方式和信息的載體,小程序最終的目的代表接觸到的任何事物背後的信息,以及對背後信息的訪問方式”。這種表達方式不僅犀利,而且可以感知到他對信息論、宇宙學的深刻理解,當今世界最前沿的物理學家,幾乎都是用信息的角度理解物質世界的,和他提到的陽明心學異曲同工,充滿思辨

  應該說這些微信哲學的提煉,是他多次演講中最精彩的部分,當然,單純從微信的角度看這是已經被證明的成功,可如果放大到整個騰訊或許微信的成功並沒有為全局注入面向未來的新動能。

  2

  張小龍潛在的思維局限

但這次演講並不完美。

  愛打遊戲的張小龍,對小遊戲的娓娓道來,讓人似乎回到了 20 年前那個深處陋室執着締造產品的年輕人。他說自己打“跳一跳”到 6000 多分的時候被系統命名為“無聊大師”,到 6000 多分得到稱號——立地成佛。非常生動和有趣。可背後則是微信對騰訊遊戲業務產生很少的貢獻。

  回歸他的初衷:小遊戲一定是放鬆的手段,讓自己平靜,普通人心跳加速和更緊張的狀態不太對。他懷疑 3000 多分用戶真實性的時候,特意準備了禮品,讓他們來辦公室當面打,見證這個遊戲里進步的速度有多快。進而他升華的評論說:”玩一個小遊戲是微信的正經事。跳一跳是微信做的一個實驗”。這樣鮮活的管理方法,其實很難讓人跳出來對應這位年薪億級,管理 10 億用戶應用的大老闆。這些都是遠遠偏離正統的管理思維的,也許和騰訊這家逐漸成熟的超級巨頭的管理文化也不太匹配。但這恰恰是微信團隊的競爭力之所在,他們很好的解決了創業思維和繁複管理架構的矛盾,一如既往的追隨用戶,解決問題。但不由得讓人們追問:微信思維究竟實際的對騰訊大組織有多少推動?

  這確實是一個真問題。

  坦率地說,這次張小龍的分享,我們結合過去來看,除了那種久違的親切和價值,也隱含折射出微信和騰訊某些潛在的風險和危機:

  · 遠離年輕人的風險:當初的小馬哥已經 49 歲,雖然公眾依然可以回憶起他當初做 QQ 的樣子,一如既往的對他表示尊敬。但確實騰訊的高管團隊,包括張小龍在內已經不在年輕。對於這次張小龍讓人鼓掌的分享,近乎完美,但也已經遠離了年輕人執念、莽撞的質感。小龍並沒有特意提到年輕人的需求,這或多或少讓人失望;

  · App成功觀念的固化:這種固化其實是是雙刃劍,前面我們也提到了傳承初心,但硬幣的另一面就是路徑依賴,特別是成功路徑依賴。比如對比今日頭條,騰訊微視跟隨的非常緊密,也做的非常好,但似乎一直沒有超越。頭條系的核心技術邏輯是 AI 的中心化,這和小龍多次提到的去中心化有着觀念的差異。即使我們無法評價其好壞,但智能時代的智能聚集是否天然具有中心化的要素?這些顛覆思維對微信的衝擊是顯而易見,註定也是風險;

  · 信息顆粒度認知的慣性思維:微信的訂閱號、看一看、搖一搖、小程序、小遊戲,實際上這些都是基於信息的文字、語音、圖片顆粒度的產品設計為主,但抖音的基礎小視頻,正在成為年輕人最大的趨勢。微信在短視頻這樣的創新信息顆粒度如何發力?5G 時代一定是一個迫切解決的問題。甚至包括基於 AI 和視頻結合的新型智能化圖形界面是什麼形態?能否想經典電影《HER》(她)裏面描述的是一種中央智能的人機對話?這關乎微信的長遠未來。

  · 企業微信認知遠離組織:小龍提到企業微信將來要做的一個方向,“相信對企業有很大的吸引力,因為它可以讓每個員工可以直接提供服務”,這很真誠,但本質還是 2C 思維的認知,企業更多的應用場景使用基礎都是組織協作,和單純 2C 思維的信息傳遞是有很大不同的,所以在企業場景中,阿里等公司能否後來居上,或者割據一方,都是微信面對的問題;

  · 缺少科技研髮型創新基因:這一點對於張小龍來講近乎苛求,但當微信發展到現在的規模,理論上是需要突破應用層面做很多通訊、AI、大數據、智能硬件、手機交互、Iot 連接技術平台等底層的研發級擴展,微信的想象力對於騰訊全局而言目前還僅僅停留在 App 的成功,這不免是一個遺憾。相對於騰訊最新的組織結構變革,微信是存在於研發創新矩陣邊緣的帝國,這是違背戰略常識的,為何不在微信內部去組織研發?

  · 更核心的一個挑戰在於小龍人本思想的通用性:之前我們把以人為本的社會形態定義為“碳基文明”,而把智能時代以信息技術定義為“硅基文明”,如果套用這個分類,微信是在碳基文明的人本主義和硅基文明的智能至上中間的一種形態。小龍定義為以人為核心的“工具”,人的“工具”。但未來趨勢是否硅基文明不需要工具,同時擁有生命?這個追問看似很《三體》,但確實一個進化的大邏輯。騰訊雖然在多個場景都在應用 AI,但顯然對於 AI 的用戶層面的創新和展現缺少新意。

  面對小龍精彩的演講,我們有了很多海闊天空和雞蛋里挑骨頭的觀點,這其實也違背周掌柜諮詢的多位合伙人對騰訊的尊重。這些註定不是眼前挑戰,談不上批評,更多是我們被帶入和感染之後的一種回饋。

  3

  張小龍與騰訊的未來

  在小龍的演講中,其實沒有提到太多大騰訊的未來,這應該不是他最關心的,但不可否認從若干語言線索中,流露不少真誠的看法。

  目前騰訊總體的情況是這樣的:

  1. 基於產業互聯網的未來方向其實具備高度的不確定性,不僅是對雲、智能、Iot 的理解上騰訊缺少經驗,對於所謂產業互聯網如何支撐巨頭進化,實際上並沒有給出具體的業績支撐。而產業互聯網和消費級互聯網最核心的一個差別是“矩陣式研發”,這和互聯網靈活的基於用戶使用數據迭代邏輯完全不同。還涉及到嚴密系統的研發管理,華為、平安等技術創新能力強的公司都是用了 10 年甚至 20 年的時間構建的技術管理體系,騰訊看似一直在互聯網的前沿,但和科技研髮型企業差距甚大;

  2. 最新調整的戰略架構,明顯是從創業早期的野蠻生長“賽馬”體系向組織協作演進。這是必須和迫切的,一位騰訊高管訪談中表示:騰訊內部重複競爭、資源浪費、部門牆嚴重到讓人不敢面對,一個支付功能背後曾有 4 個團隊同時在做,應用於不同場景,而且研發的基礎框架內部都沒有開源共享。這個問題很多人在內部論壇問馬化騰,他也僅僅給出了:“重複創新有利於把握機會”這樣一個過於簡潔的回答,依然是互聯網思維的“找機會”邏輯。一個遊戲業務線,很多遊戲定位在 PK 競爭引導下高度同質化,缺少創意。創業組織架構中,對領軍者的億級巨額激勵,對應輔助團隊成員的杯水車薪,長期帶來了一種不利於組織協作的激勵不平衡。這些讓騰訊兩個部門之間的溝通甚至比騰訊與其他公司溝通還要繁瑣,甚至出現很多業務不願意在公司內採購服務的極端現象。而騰訊的 CEO 馬化騰和總裁劉熾平是兩條線平行管理公司,這從某種程度上體現了大股東的資本意志,從其組織變革中也可以清晰的嗅到投行思維,說“金融綁架”騰訊是缺少根據的,但是多位香港金融背景高管帶給騰訊的肯定不是技術思維,這可以肯定。於是,註定對於本來就應該技術驅動的騰訊來說,無異於閹割了其技術引領的可能性,這也被一些持批評態度的媒體認為是 Tony(張志東 )之後騰訊一直沒有 CTO 的原因;

  3. 面對頭條系在 AI 算法新聞平台以及抖音短視頻平台,還有後面一系列火山視頻等競爭的格局下,騰訊衝鋒的團隊似乎少了歷史上攻城拔寨的銳氣,其投資的騰訊系中也始終沒有出類拔萃的“小頭條”出現。這導致騰訊一直沒有能真正在 AI 平台和短視頻這兩個戰略機遇點上翻盤,對於關心騰訊的人來說,前沿的引領性、技術的引領性是遠遠大於遊戲業務政策起伏的影響,騰訊的“命根子”正在被挑戰,而且看不到逆轉的跡象。雖然 2019 年出騰訊宣布成立技術委員會,下決心對組織架構下狠手,但背後缺少的功課非一日之功,能找到統領技術研發框架的人才也並不容易,這還不算技術管理和組織管理可能聘請外部諮詢公司重構的難度。這些都是小龍這次質樸演講的大背景,也很難讓我們不對其創新思維賦予更高的意義。

  小龍有不少有趣的回顧,多少與此相關:

  其一關於“眼球經濟”,他說:“停留時長讓我聯想到 2000 年左右,當時互聯網剛起來,流行的一個詞叫眼球經濟。所有的網站目標都是要獲取盡可能多的眼球注意力”。進而評論道:“我們期望並不是我們要獲得更多的現金的回報,而是現狀是這裏面真正高質量原創的遊戲還不是特別多“。

  其二談到 KPI,他說:”用戶迷信保健品,我們就推保健品的文章。如果從 KPI 的角度,這樣是最容易完成 KPI 的。但是如果我們推薦給用戶新的知識,用戶會離開的。因為惰性是人共有的特性。沒有人願意主動去學習新知識,去傷腦筋啊“。

  雖然,對於這些誠懇的回顧,我們去過度聯想顯得不太厚道,但客觀講,KPI 正是騰訊這艘大船這些年航速變慢的原因,騰訊似乎悄悄的從對用戶負責開始向股民負責,失去了想象力和進攻性;而眼球經濟,正是目前騰訊面對低迷股價所反思的,一位騰訊前公關負責人說:“在和阿里打嘴仗的時候,我們投資了那麼多的媒體,但是關鍵時刻竟然不知道如何回應。馬化騰的很多發言稿都是臨時抱佛腳,頭一天晚上改來改去,也談不上戰略的溝通和傳承”。這些都是騰訊不為人知的另一個側面,如果“KPI 綜合症”和“眼球經濟短視症”得不到徹底消除,對於通過近乎美式公司的組織架構以及麥肯錫式的戰略方向,疊加投行式的精細化財務管控,騰訊是否有更美好的未來? 

  而不可避免的,騰訊的挑戰和壓力也必然傳達到微信團隊身上。細心的用戶已經發現從騰訊股價 2018 年下半年收到挑戰之後,微信的朋友圈廣告質量降低,並且明顯增多。這雖然依然在可以理解的範圍內,但不可否認微信承載了騰訊這艘大船的業績壓力。而正如小龍所言,小遊戲低於預期,那麼微信如何推動騰訊傳統第一大遊戲收入來源重拾增長呢? 

  過度的對比張小龍和馬化騰,並不厚道。就像對比馬雲和阿里 CTO 誰更懂技術一樣。但這背後的一個很大的問題在於:騰訊到底是要培養出更多的張小龍?還是培育出更多的賺錢業務?而或通過培訓新的張小龍帶來新利潤?

  目前騰訊並沒有清晰的戰略指向,外界看到的還是一家強悍、偉大但已經沒有傳奇的公司,內部人看到的是 KPI 和業績壓力下的低效以及大公司病。沒有傳奇,就已經低於大部分用戶和公眾對騰訊的預期,而孵化傳奇一定不是簡單的“產業互聯網”和“組織架構變革”能達到的,沒有一個圍繞技術天才的創新氛圍,騰訊理論上和美國的戴爾、惠普沒有什麼兩樣。說的誇張一點——“技術之神”能否重新照耀這家公司?讓這家成功的公司從平庸的成功走向新的傳奇!這背後是無數人的疑問和期待。

  無論如何,張小龍表達的“善良”價值觀,留給那天晚上幾十萬讀者口有餘香的溫暖。如果能同時激勵整個騰訊的大船在“善良”的軌道上航行得更遠,這一切都是美好的。“每天都有 5 億人說我們做得不好,每天還有 1 億人想教我怎麼樣做產品”,小龍這句話的背後,切實說明了用戶的熱情和心意。

  為什麼人們熱愛張小龍?因為他在我們身邊,一直默默善良的陪伴。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

塔塔電力擬興建1千座充電站,助印度汰除汽柴油車

日經新聞周二報導,印度最大民營電廠塔塔電力(Tata Power)計畫未來五年將於印度首都建造一千座充電站,藉以響應政府2030年禁用汽柴油車的政策。

塔塔電力目前只有五座充電站在營運,印度全國充電站加總起來也不過100座左右,由此可知印度發展電動車的基礎設施嚴重不足,增加充電站密度勢在必行。

據塔塔電力執行長Praveer Sinha表示,一千個新充電站都將設置在新德里北部地區,預估將花費10億印度盧比(1,520萬美元),每個充電站有九成服務鉛電池車,一成服務鋰電池車。

(本文內容由授權使用)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

豐田看好印尼製造,將投資 20 億美元在印尼開發電動車

印尼海洋事務統籌部(Coordinating Ministry for Maritime Affairs)27 日宣布,日本豐田汽車(Toyota)計劃在未來 4 年內投資 20 億美元,在印尼開發電動車款,首先以混合動力汽車(Hybrid vehicle)為起點,以加速應對全球汽車產業的電動化浪潮。

路透社週四報導,豐田執行董事兼社長豐田章男在聲明中表示,2019 年至 2023 年期間,將逐步增加投資對印尼的投資,總額上看 28.3 兆印尼盾(約 20 億美元)。他指出,受惠於印尼政府的政策推動,豐田將印尼視為重要的電動車投資首選地,公司將分階段逐步投資,以遵循政府的電動車發展方針。

印尼是東南亞地區的最大經濟體,擁有豐富的鎳礦資源,這是電動車鋰電池的主要材料之一,成為吸引外國汽車製造商的拉力。此外,印尼政府先前也宣布,將給予電池和電動車製造商減稅優惠,並與其他國家簽訂關稅減免協議,積極推動電動車產業發展。

目前印尼已是東協第二大汽車生產國,僅次於泰國。韓媒《BusinessKorea》6 月 25 日報導,受中國車市步入寒冬和產能嚴重過剩影響,南韓現代汽車(Hyundai Motor)決定關閉位於北京郊區的北京 1 號工廠,並將生產業務從中國遷至印尼,加速打入廣大的東南亞市場。

《新加坡商業評論》(Singapore Business Review)2 月 15 日報導,國際信評機構惠譽旗下的市場研究調查機構 Fitch Solutions 預測,印尼汽車年產量將在 2019 年達到 5.8% 的成長率,主要是源於全球電動車和 SUV 的需求不斷增加。

除此之外,印尼汽車產量也受到菲律賓、沙烏地阿拉伯、泰國和越南等市場帶動,預估合計銷量將成長 7.8%。2017 年,上述國家佔印尼整體汽車出口比重分別為 25.7%、7.4%、13.8% 和 6.2%。

(本文內容由 授權使用。首圖來源: CC BY 2.0)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

他本和牛頓雙宿雙飛,卻因羞澀錯失物理第二魔王威名

  來源:我是科學家 iScientist

  有這麼一個流傳甚廣的段子,說流行歌手林俊傑要是不努力,就只能回家繼承百億家產。

  但實際上歷史上還有比這更誇張的真實故事。

  他的父親是德文郡公爵家族小兒子,母親是肯特公爵的女兒,可謂富甲一方,真·“不好好科研,就只能繼承家產成為首富“。

  然而,他卻靠“牛頓之後英國最偉大的科學家”為人所知,如果他要和人攀比,根本輪不到要拼家產的地步。

卡文迪許

  但這僅僅是我們主角卡文迪許故事的冰山一角,他作為一名偉大科學家的完全體還要等到百年後麥克斯韋的意外發現才被世人所了解。

  歐姆定律、庫倫定律、電勢、電場,這些成就都悶在了他的手稿里,如果全都公開發表,那卡文迪許可能就是繼牛頓之後又一個大魔王級的人物。

  但如果終究是如果,現實就是卡文迪許錯失了與偶像牛頓在物理課本里“雙宿雙飛”的機會。而這一切緣起於他的羞澀。

卡文迪許

  一場 18 世紀的英國頂尖學術聚會上,卡文迪許身上穿着的都還是一套起皺的褪色西裝,外加一頂卷邊帽,靦腆地站在角落。

  不了解的人也許難以想象,眼前這個的衣着樸素的人竟是個百萬富翁,還是個跨越化學與物理兩界的科學奇才。

  要說是奇才,和他同時代的科學家可不覺得。因為在他們眼裡,卡文迪許並沒有那麼偉大。但在後人看來,他隱藏起來的科研成果才令人驚詫。

卡文迪許

  100 多年後,麥克斯韋發現他遺留下 20 多捆從未面世的物理、化學研究手稿。

  庫侖定律、歐姆定律、介電常數等後人才提出的概念,赫然出現在筆記本上。一些時隔幾百年才提出的定律也早在 18 世紀就被卡文迪許證明了出來。

  他甚至被懷疑是擁有現代先進物理知識穿越者。

詹姆斯·克拉克·麥克斯韋

  麥克斯韋用了 5 年的時間把這些資料整理成書。而這些疑似穿越的產物,才消除了人們對於卡文迪許的誤解。

  原來卡文迪許的古怪性格早已在科學界名聲昭著。他生性羞澀,幾乎不與人交談,甚至連自己的研究成果也羞於發表。科學怪人的一生只追求自己科研的爽快,也讓世人對他的景仰晚了 100 年。

  人們給他貼上不合群、內向、沉默寡言、古怪等標籤。童年的成長曆程在他身上刻下了這一個個深刻的烙印。

卡文迪許

  卡文迪許出生在一個英國貴族家庭,兩歲時母親就去世了。身為勛爵的科學家父親一手帶大了他和弟弟,卻很少有時間給予陪伴。

  作為彌補,父親實驗室里各種科學儀器成了卡文迪許的玩具。而忙碌的父親有時不得不帶上他出席倫敦皇家學會等科學家聚會的場合。

卡文迪許家裡的餐廳

  卡文迪許的科學啟蒙也就由此開始。童年的經歷開拓了他的科學視野,所以他從小就有了不錯的科學基礎。

  但硬邦邦的儀器取代了親情的關懷,卡文迪許幾乎沒有機會能夠與人交流。這讓他性格變得內向、沉默寡言,甚至疑似患有自閉症。

  他幾乎完全喪失了社交能力,但同時他也獲得了強大的思考能力。

卡文迪許

  這樣古怪的性格也讓卡文迪許越發沉迷於科研工作。他 18 歲考上了劍橋大學,學習了四年數學。

  但就在即將拿到畢業學位的前夕,他卻退學了。理由是對最後的考試中,關於神學知識的測試部分不滿。於是他寧願捨棄畢業學位而任性地退學。

  出於家境的優越,放棄了學位的卡文迪許並沒有因此而失去學習機會。這反而讓他不止局限於學校的數學教學,他又學習了深感興趣的物理和化學。

  在離開劍橋后不久,他追隨父親的影子,加入了皇家學會。融入科學界的圈子中,他才找到自己的價值,在深耕真理中做出影響世界的偉大貢獻。

英國皇家學會

  空氣的主要成分是氧氣、氮氣和二氧化碳。人類直到 18 世紀才發現,原來空氣的成分不止這些。

  卡文迪許在研究中發現了一種十分微量的惰性氣體。

  他用電火花消耗空氣中的氮氣時,出現了一些小氣泡。

  奇怪的是,無論實驗重複多少遍,最後都還會剩餘一些小氣泡不能被氧化。無論加入什麼試劑,這種氣泡都沒有消失。

  於是卡文迪許得出結論,空氣中除了氮氣和氧氣之外,還存在一種“濁氣”。這種“濁氣”非常穩定,而且總量不超過全部空氣的1/120。

  但這種氣體具體是什麼成分,卡文迪許就沒有繼續研究下去了。直到一百多年後,才有科學家依據卡文迪許當初的實驗,揭開了“濁氣”的真面目。

  物理學家瑞利重複卡文迪許當年的實驗得到小氣泡,測定出這種氣體的密度比氮氣大。

  化學家萊姆塞重新設計了一個新實驗,用分光鏡檢查后給其中一種新元素命了名。

  這是化學性質極其穩定的稀有氣體中的一種,氬氣。

  而位於元素周期表第一位的氫,也是在卡文迪許的研究下被人們認知。當時科學命名法還沒有誕生,普遍常見的氣體也只有俗名。

  比如氧氣在當時被稱為“消炎氣體”。而一種“易燃氣體”也引發了許多科學家的火熱研究。

卡文迪許也摻了一腳,還難得向皇家學會提交的一篇研究報告《人造空氣》。

  他用鐵、鋅等活潑金屬和稀硫酸反應,發現反應會產生一種氣體。這種氣體和空氣混合後點燃會爆炸,因此被叫做“易燃氣體”。它和氧氣相互反應還能生成液態的水。

  在當時,人們還以為水是一種元素,不知道這是氫和氧的化合物。

  卡文迪許的實驗其實就是現代高中化學中都學過的置換反應。而生成的氣體就是氫氣。

  現在人們對於氫氣的性質已經非常熟悉。但在那個時候,繁多的反應卻像一扇扇從未打開的大門,吸引了天生好奇心強烈的科學家們。

氫氣球爆炸

  卡文迪許跨域廣泛,除了化學之外,他對物理、天文、氣象等科學領域也有所研究。其中牛頓自然哲學觀點就對他產生了深遠的影響。

  地球有多重?自從牛頓發現萬有引力定律之後,這個問題似乎已經攻破在望。解決問題的關鍵在於計算出“萬有引力常數”。

  理論上來說,可以直接測量地面上兩個已知質量物體之間的引力求得。

  但實際上這個引力數值十分微小,測量起來非常困難。

  許多科學家為此設計了各種奇怪的模型進行計算,但始終難以攻克。

  在牛頓的理論影響下,卡文迪許從十幾歲就開始研究這個問題。

卡文迪許設計的扭稱模型

  他在劍橋大學的學習中請教到了一種巧妙的“扭稱”方法。於是他自己也設計了一個能觀察到微小力變化的模型。

  他在一根細長桿的兩端分別裝上一個小鉛球,再用石英絲橫吊著鉛球。

  如果用兩個大一些的鉛球靠近,由於產生引力,小鉛球就會發生擺動。

  而石英絲也會跟隨扭動,這時只要測量出石英絲的扭轉程度,就可以求出引力。

  為了排除干擾,他專門在一間屋子里進行實驗,還用價格昂貴的望遠鏡在屋子外觀察。

  但是當時實驗條件差,他只能通過肉眼觀察判斷石英絲的扭轉程度。

  然而引力的作用程度實在是微乎其微,眼看成功近在眼前,實驗結果卻無從得到。卡文迪許的實驗只好卡在半途。

  直到一天,他在路上看到小孩在玩鏡子反射太陽光的遊戲。小小的太陽光反射點映照在地上到處跳動。

  這讓卡文迪許大受啟發。他立馬回到實驗室改進了自己的扭稱裝置。

  他把在裝置上增加了一面鏡子,用反射到刻度線上的光線度量石英絲的扭動。這樣一來,石英絲的靈敏度大大提高,再通過簡單的力的計算就得出了引力的大小。

  這個堪稱上帝之手的扭稱實驗掂量起地球的質量,牛頓或許也因此安息了。

  5. 976×10^24 千克,也就是大約 60 萬億億噸。卡文迪許花費了四十多年的時間才得出這一個數值,最終終結了這個萬有引力難題。他被譽為“第一個稱量地球的人”。

  以上大體就是當時人們能了解到的卡文迪許成就了,至於為什麼將其他發現藏着掖着,只要跟他有過些許交流就能理解。

  孤僻的性格讓卡文迪許全心專註於科研實驗。濃厚的學術氛圍是對他不善言辭性格的極大寬容。他從來不主動結交朋友,對異性更是越發羞澀。

  甚至在家裡,大部分時候和女傭都是靠傳紙條來進行交流的。所以他終身都沒有結婚。

  而作為大富豪,卡文迪許對於錢財和交際卻完全沒有概念。

  有一次,一位工匠為他粉刷房間,過後他忘了給工匠付工錢。好友是在看不下去,告訴了他這件事。

  卡文迪許大吃一驚,連忙寫了一張兩萬英鎊的支票,還詢問夠不夠。這在當時幾乎是工匠十年的薪酬了,而他卻毫不在意。

  對於社交活動,卡文迪許是本能地抗拒的,除了每周一次的皇家學會聚會。而在宴會上,他也只是躲在角落默默地聆聽其他科學家的發言。

  在這裏他不需要說話,卻能收穫到最前沿的科學觀點和想法。但別人卻很難從他口中得知他深邃的思想和正在進行的研究。

  一位比較了解他的友人調侃,要想聽到卡文迪許高明的見解,就不能再宴會上和他有任何交流,否則他會羞澀地立馬逃跑。

  人們大都只知道卡文迪許稱量地球的成就,但他最成功的預言還埋藏在他的手稿中。他對電的研究甚至直接證明了牛頓對未來自然科學的設想。

  他原本打算用這篇文章當做牛頓提出萬有引力的《原理》中的續篇。但卻因為他羞於發表,而失去了與牛頓同享榮譽的機會。

曾經在皇家學會上發言的牛頓

  另外,他最早證明了電荷之間的相互作用力應該與距離的平方呈反比關係。

  在 1772-1773 年間,他作了個雙層同心球實驗,第一次精確測出電作用力與距離的關係,指數偏差不超過 0.02。

  後來法國人庫倫通過實驗驗證了他的發現,從此關於電荷間的受力規律被稱作庫倫定律。

夏爾·奧古斯丁·庫侖

  他還第一個提出了電勢的概念,指出了電勢與電流的正比關係。

  由於當時沒有測定電流的儀器,卡文迪許就把自己的身體當做實驗儀器。根據身體的麻木感覺來估計電流的強弱,發現了導體兩端的電勢(差)與通過它的電流成正比。

  這也就是我們物理課本電學章節中的歐姆定律。

格奧爾格·西蒙·歐姆

  後來麥克斯韋通過整理,才出版了卡文迪許手稿中關於電學的研究。而通過他本人的發表和後人的搜尋,才挖掘出卡文迪許冰山一角的研究成果。除了手稿之外,他還有多少不為人知的研究,我們也就不得而知了。

骨子里的自閉也鑄造了卡文迪許孤獨的一生。

  直到將死之際,他還刻意把傭人打發走,讓她在某個時間點再回來。

  而回來時發現,卡文迪許已經死在了床上。極度的羞澀讓他連死亡都不想別人看見。

  默默無聞的卡文迪許為科學事業做出了偉大貢獻,一生中卻沒有得過什麼獎。

  後來,麥克斯韋為紀念這位隱蔽的偉大科學家,建立了以他命名的實驗室。迄今為止,卡文迪許實驗室已經培養出 20 多位諾貝爾物理獎的獲得者。

  原本用沉默掩蓋科研成果,他捨棄了與牛頓齊名物理學史的機會。但他在角落裡散發出來的萬丈光芒卻無法收斂。假設卡文迪許的手稿當初沒有被藏着,我們現在課本里的可能就不止有牛頓力學三定律,或許還有卡文迪許電學定理一、定理二……

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

Java開發中常用jar包整理及使用

本文整理了我自己在Java開發中常用的jar包以及常用的API記錄。

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

common-lang3

簡介

一個現在最為常用的jar包,封裝了許多常用的工具包

依賴:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

主要常見的類如下:

  • 數組工具類 ArrayUtils
  • 日期工具類 DateUtils DateFormatUtils
  • 字符串工具類 StringUtils
  • 数字工具類 NumberUtils
  • 布爾工具類 BooleanUtils
  • 反射相關工具類 FieldUtils、MethodUtils、MemberUtils、TypeUtils、ConstructorUtils
  • 對象工具類 ObjectUtils
  • 序列化工具類 SerializationUtils

API介紹

這裏我只介紹經常使用的幾個工具類及方法,ArrayUtils,StringUtils,NumberUtils,DateUtils,其他的請查看官方API文檔吧

1.ArrayUtils

方法名 說明
add
remove
clone 複製數組
addAll
removeAll 第二個參數傳入需要刪除的下標(可以指定多個下標)
toObject 把數值(int[],double[])轉為包裝類(Int[],Double[])
indexOf 在數組按順序查找,找到第一個滿足對應的數值的下標
lastIndexOf 在數組按順序查找,找到最後一個滿足對應的數值的下標
contains 數組是否包含某個值
isEmpty 判斷數組是否為空
isNotEmpty 判斷數組是否不為空
reverse 數組反轉
subarray 指定區間截取數組,區間為半開區間,不包含末尾
toArray 接收一個多個對象,把這幾個對象轉為對應類型的數組
toMap 將一個二維數組轉為Map

2.NumberUtils

方法名 說明
min 比較三個數,返回最小值 或比較指定的幾個數,返回最小值
max 比較三個數,返回最大值 或比較指定的幾個數,返回最大值
createInt 從傳入的String中創建對應類型的數值,createDouble,createFloat…
toInt 將指定字符串轉為Int類型,可以選擇指定默認數值,如果字符串為null則返回默認數值,除此之外,還有toDouble,toLong…等轉為不同類型的方法
compare 比較兩個同類型數值的大小
isDigits 判斷字符串是否只包含数字
isParsable 判斷字符串是否可轉換為Long,Int等類型
isNumber 判斷字符串是否為數值(0x,0X開頭等進制數值)

3.DateUtils

方法名 說明
parseDate 將Date對象轉為字符串
isSameDay 判斷兩個Dated對象是否為同一天
isSameDay 判斷兩個Dated對象是否為同一天
addHour 將指定的Date對象加上指定小時,除此之外,還有addMonth,addDay..等

DateFormatUtils正如其名,是用來把時間轉為字符串,這裏就不再多說

4.StringUtils

方法名 說明
join 將指定的數組連接成字符串,並添加指定的分割字符
containOnly 字符串是否只包含某個字符串
substringBefore 截取指定字符串前面的內容
substringAfter 截取指定字符串後面的內容(不包括指定字符串)
substringBetween 截取字符串某區間內容,如substringBetween(“abcde”,”a”,”e”)=”bcd”
difference 比較兩個字符串,返回兩個字符串不同的內容,具體可以看API文檔給出的示例
isBlank 判斷字符串是否為空白,null,””,” “這三個結果都是為true
isEmpty 判斷字符串是否為空(只要不為null,或傳入的String對象的長度不為0即為true)
countMatches 判斷指定的字符串在某個字符串中出現的次數
deleteWhitespace 刪除字符串中的空格
defaultIfBlank 如果字符串為空白,則返回一個指定的默認值(null或某個String)
defaultIfEmpty 如果字符串為空,則返回一個指定的默認值(null或某個String)
capitalize 將指定字符串首字母大寫
abbreviate 將指定字符串的後面三位轉為…
swapCase 將字符串中的字母大小寫反轉,如aBc變為AbC
lowerCase 將字符串的字母全部轉為小寫
upperCase 將字符串的字母全部轉為大寫
left 取字符串左邊幾個字符,如left(“hello”,3)=”hel”,right與此相反
leftPad 字符串的長度不夠,則使用指定字符填充指定字符串,如leftPad(“hel”,5,”z”)=”zzhel”,rightPad方法與此相反
prependIfMissing 指定字符串不以某段字符串開頭,則自動添加開頭,如prependIfMissing(“hello”,”li”)=”lihello”
prependIfMissing 指定字符串不以某段字符串開頭(忽略大小寫),則自動添加開頭
getCommonPrefix 獲得多個字符串相同的開頭內容,接收參數為多個字符串
removeEnd 刪除字符串中結尾(滿足是以某段內容結尾),如removeEnd(“hello”,”llo”)=”he”
removeEndIgnoreCase 與上面一樣,忽略大小寫
removeStart 與上面的相反
remove 刪除字符串中的指定內容,如remove(“hello”,”l”)=”heo”
removeIgnoreCase 刪除字符串中的指定內容,如remove(“hello”,”l”)=”heo”
strip 清除字符串開頭和末尾指定的字符(第二個參數為null,用來清除字符串開頭和末尾的空格),如strip(” abcxy”,”xy”)=” abc”,strip(” abcxy”,”yx”)=” abc”
stripStart 清除字符串開頭指定字符
stripEnd 清除字符串末尾指定的字符

common-io

簡介

常用的IO流工具包

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

API

我們主要關心的就是Utils後綴的那幾個類即可,可以看到,common-io庫提供了FileUtils,FileSystemUtils,FileNameUtils,FileFilterUtils,IOUtils

FileUtils

  • 寫出文件
  • 讀取文件
  • 創建一個有父級文件夾的文件夾
  • 複製文件和文件夾
  • 刪除文件和文件夾
  • URL轉文件
  • 通過過濾器和擴展名來篩選文件和文件夾
  • 比較文件內容
  • 文件最後修改時間
  • 文件校驗

FileSystemUtils

關於文件系統的相關操作,如查看C盤的大小,剩餘大小等操作

IOUtils

字面意思,是封裝了IO流的各種操作的工具類

Log4j

簡介

Log4J 是 Apache 的一個開源項目,通過在項目中使用 Log4J,我們可以控制日誌信息輸出到控制台、文件、GUI 組件、甚至是數據庫中。

我們可以控制每一條日誌的輸出格式,通過定義日誌的輸出級別,可以更靈活的控制日誌的輸出過程,方便項目的調試。

依賴:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

結構

Log4J 主要由 Loggers (日誌記錄器)、Appenders(輸出端)和 Layout(日誌格式化器)組成。

其中Loggers 控制日誌的輸出級別與日誌是否輸出;
Appenders 指定日誌的輸出方式(輸出到控制台、文件等);
Layout 控制日誌信息的輸出格式。

日誌級別:

級別 說明
OFF 最高日誌級別,關閉左右日誌
FATAL 將會導致應用程序退出的錯誤
ERROR 發生錯誤事件,但仍不影響系統的繼續運行
WARN 警告,即潛在的錯誤情形
INFO 一般和在粗粒度級別上,強調應用程序的運行全程
DEBUG 一般用於細粒度級別上,對調試應用程序非常有幫助
ALL 最低等級,打開所有日誌記錄

我們主要使用這四個:Error>Warn>Info>Debug

使用

我們可以使用兩種方式來運行Log4j,一種是java代碼方式,另外一種則是配置文件方式

例子(Java方式)

public class Log4JTest {
    public static void main(String[] args) {   
        //獲取Logger對象的實例(傳入當前類)         
        Logger logger = Logger.getLogger(Log4JTest.class);
        //使用默認的配置信息,不需要寫log4j.properties
        BasicConfigurator.configure();
        //設置日誌輸出級別為WARN,這將覆蓋配置文件中設置的級別,只有日誌級別低於WARN的日誌才輸出
        logger.setLevel(Level.WARN);
        logger.debug("這是debug");
        logger.info("這是info");
        logger.warn("這是warn");
        logger.error("這是error");
        logger.fatal("這是fatal");
    }
}

例子(配置文件方式)

上面的例子,我們想要實現打印Log,但是每次都要寫一遍,浪費時間和精力,所以,Log4j提供了另外一種方式來配置好我們的信息

創建一個名為log4j.properties的文件,此文件需要放在項目的根目錄(約定),如果是maven項目,直接放在resources文件夾中即可

log4j.properties

#控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#log jdbc
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=WARN
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

#log mybatis設置
#log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.org.apache.ibatis.jdbc=error
log4j.logger.org.apache.ibatis.io=info
log4j.logger.org.apache.ibatis.datasource=info

#springMVC日誌
log4j.logger.org.springframework.web=WARN

# 文件輸出配置
log4j.appender.A = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File = D:/log.txt #指定日誌的輸出路徑
log4j.appender.A.Append = true
log4j.appender.A.Threshold = DEBUG
log4j.appender.A.layout = org.apache.log4j.PatternLayout #使用自定義日誌格式化器
log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n #指定日誌的輸出格式
log4j.appender.A.encoding=UTF-8 #指定日誌的文件編碼

#指定日誌的輸出級別與輸出端
log4j.rootLogger=DEBUG,Console,A

#指定某個包名日誌級別(不能超過上面定義的級別,否則日誌不會輸出)
log4j.logger.com.wan=DEBUG

之後使用的話就比較簡單了

//Logger的初始化(這個推薦定義為全局變量,方便使用)
Logger logger = Logger.getLogger(Log4JTest.class);
//輸出Log
logger.info("這是info");

參考鏈接:

lombok

簡介

平常我們創建實體類的時候,需要get/set方法,極其麻煩,雖然IDEA等IDE都是有提供了快捷生成,不過,最好的解決方法還是省略不寫

而lombok就是這樣的一個框架,實現省略get/set方法,當然,lombok的功能不只有此,還有equal,toString方法也可以由此框架自動生成

lombok的原理是使用註解,之後就會在編譯過程中,給Class文件自動加上get/set等方法

不過IDEA似乎無法識別,代碼檢查還是會報錯,所以,使用IDEA的時候還得安裝一個插件,在plugin搜索lombok,之後安裝重啟即可,如圖

之後為Java項目添加依賴

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

使用示例

1.實體類省略get/set
估計Kotlin中的data關鍵字就是參照着lombok實現的

//這裏我們只需要為類添加Data註解,就會自動生成對應屬性的get/set方法,toString,equal等方法
@Data
public class User {
    private String username;
    private String password;
}

2.需要無參構造以及get/set方法

@Getter
@Setter
@NoArgsConstructor
public class User {
    private String username;
    private String password;
}

3.鏈式調用set方法

@Data
@Accessors(chain = true)
public class User {
    private String username;
    private String password;
}

//使用
User user = new User();
user.setUsername("helo").setPassword("123");

4.參數不為空

//如果調用此方法,就會抱一個空指針錯誤
public String print(@NotNull String str){
    ...
}

5.只需要toString

@ToString(callSuper=true, includeFieldNames=true)
public class User {
    private String username;
    private String password;
    //省略的get/set方法
}

6.builder模式創建實體類對象

@Data
@Builder
public class User {
    private String username;
    private String password;
}
//使用
User user1 = User.builder().username("user1").password("123").build();

7.工具類

@UtilityClass
public class MyUtils{
    //會將此方法自動轉為靜態方法
    public void print(String str){
        ...
    }
}
//使用
MyUtils.print("hello");

8.自動關閉流

public static void main(String[] args) throws Exception {
    //使用Cleanup會自動調用close方法
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[1024];
    while (true) {
        int r = in.read(b);
        if (r == -1) break;
        out.write(b, 0, r);
    }
}

9.省略Logger時的初始化

@Log4j
@Log
public class User{
    //會自動添加此語句
    //Logger logger = Logger.getLogger(User.class);
    ...
}

參考:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包"嚨底家"

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

坑~夏令時冬令時引發的時間換算問題

 

起因

最近接觸到一些國外的項目,由於國內外有時差這個東西,對於某些基礎數據存到數據庫的時候需要記錄時間,為了方便,這裏採用了時間戳(int或者timestamp)記錄。由於時間戳全球都是一樣的,需要的時候根據時區進行轉換就能夠拿到當地的時間。

嗯~ o(* ̄▽ ̄*)o,這樣看起來確實沒什麼毛病。眾所周知,一天有24小時,換算成秒就是:24*60*60=86400秒。

然而,我在某次使用 MySql 的 FROM_UNIXTIME 發現一個問題,兩個時間相差86400秒,但是格式化之後卻不是相差一天!!!

假設北京時間2019年11月25日 12:00:00,對應的時間戳是:1574654400,照理說這個時間戳加上一天86400秒,理論上就是北京時間2019年11月26日 12:00:00,事實上確實如此,國內的話這麼算確實沒什麼問題,但是如果是國外時區的話,那可能會出問題。

由於國外部分國家有夏令時冬令時之分(具體下面會細說),直接加上86400秒可能會有問題。

感興趣的可以拿1572764400(太平洋時間2019-11-03 00:00:00,單位:)這個時間戳驗證下

拿代碼演示下:

PHP:

<?php

echo "PST時區的時間\n";
date_default_timezone_set('PST8PDT');
echo date('Y-m-d H:i:s',1572764400);
echo "\n";
echo date('Y-m-d H:i:s',1572764400+86400);
echo "\n";

//換個時區
echo "換成上海時區看看\n";
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s',1572764400);
echo "\n";
echo date('Y-m-d H:i:s',1572764400+86400);
echo "\n";

運行結果:

PST時區的時間
2019-11-03 00:00:00
2019-11-03 23:00:00
換成上海時區看看
2019-11-03 15:00:00
2019-11-04 15:00:00

明明是同一個時間戳,都是加上86400(一天),為什麼在上海這個時區是第二天,而在PST(美國太平洋時區)只加了23小時?神不神奇!意不意外!

為了弄清楚這個問題,首先得先了解下什麼是夏令時,什麼是冬令時

 

夏令時

夏令時,表示為了節約能源,人為規定時間的意思。也叫夏時制,夏時令(Daylight Saving Time:DST),又稱“日光節約時制”和“夏令時間”,在這一制度實行期間所採用的統一時間稱為“夏令時間”。

一般在天亮早的夏季人為將時間調快一小時,可以使人早起早睡,減少照明量,以充分利用光照資源,從而節約照明用電。各個採納夏時制的國家具體規定不同。目前全世界有近110個國家每年要實行夏令時。[1]

 

冬令時

有夏令時就會有冬令時。高緯度和中緯度的許多國家在夏季到來前,把時針撥快一小時,新的時間就是夏令時,到下半季秋季來臨前,再把時針撥回一小時,即形成冬令時。 [2] 

 

夏令時和冬令時的影響

拿美國來說,美國各個地區的時間都不同,不像中國一樣統一使用北京時間,美國一般以三月份第二個周日凌晨兩點當成夏季的開始,十一月份第一個周日的凌晨兩點當成冬季的開始。

所以在每年的三月份第二個周日凌晨兩點過後,時間就會往前調快一個小時;同理,十一月份第一個周日把這一個小時調回來

你也可以理解成美國那邊,一年裡面有一天只有23小時(夏天開始那一天),有一天有25小時(冬天開始那一天),其他時間每天都是24小時。

所以你會發現,夏天的時候,中國的北京時間(東八區)與美國太平洋時區(西八區)的時差是15小時,而到了冬天卻變成16小時

 

解決方案

回到開頭那個問題,如果我們想直接算第二天,直接加上86400(一天)可能在其他國家就會有我上面那個夏令時和冬令時時間換算的問題,要如何避免呢?首先能夠確定的是,直接加上86400是不可取的,如果加上一天能否行得通

PHP:

<?php

echo "PST時區的時間\n";
date_default_timezone_set('PST8PDT');
echo date('Y-m-d H:i:s',1572764400);
echo "\n";
echo date('Y-m-d H:i:s',1572764400+86400);
echo "\n";

echo "--------------------------\n";
echo date('Y-m-d H:i:s',1572764400);
echo "\n";
echo date('Y-m-d H:i:s',strtotime('+1 day',1572764400));
echo "\n";

運行結果:

PST時區的時間
2019-11-03 00:00:00
2019-11-03 23:00:00
--------------------------
2019-11-03 00:00:00
2019-11-04 00:00:00

可以看出,不直接加上86400,直接在日期上加上一天是完全沒問題的。

JavaScript:

var date = new Date(1572764400*1000);
date.setDate(date.getDate()+1);
var timestamp = Math.round(date.getTime()/1000);

注意:JS的時間戳是毫秒!!!

 

結論

在經濟全球化快速發展的今天,在軟件開發的過程中,盡量養成習慣,由於夏令時和冬令時不是固定的,開發在時間計算上應該慎用86400進行加減運算,時間計算請直接對日期進行加減,展示時間給用戶看的時候盡量結合當地時間,結合夏令時和冬令時計算出準確的當地時間,避免產生不必要的分歧。

 

參考:

[1]. 

[2]. 

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※帶您來看台北網站建置台北網頁設計,各種案例分享

人臉檢測和人臉識別原理,微調(Fine-tune)原理

一、MTCNN的原理

  搭建人臉識別系統的第一步是人臉檢測,也就是在圖片中找到人臉的位置。在這個過程中,系統的輸入是一張可能含有人臉的圖片,輸出是人臉位置的矩形框,如下圖所示。一般來說,人臉檢測應該可以正確檢測出圖片中存在的所有人臉,不能用遺漏,也不能有錯檢。  

   

  獲得包含人臉的矩形框后,第二步要做的就是人臉對齊(Face Alignment)。原始圖片中人臉的姿態、位置可能較大的區別,為了之後統一處理,要把人臉“擺正”。為此,需要檢測人臉中的關鍵點(Landmark),如眼睛的位置、鼻子的位置、嘴巴的位置、臉的輪廓點等。根據這些關鍵點可以使用仿射變換將人臉統一校準,以盡量消除姿勢不同帶來的誤差,人臉對齊的過程如下圖所示。

   

  這裏介紹一種基於深度卷積神經網絡的人臉檢測和人臉對齊方法—-MTCNN,它是基於卷積神經網絡的一種高精度的實時人臉檢測和對齊技術。MT是英文單詞Multi-task的縮寫,意思就是這種方法可以同時完成人臉檢測的人臉對齊兩項任務。相比於傳統方法,MTCNN的性能更好,可以更精確的定位人臉,此外,MTCNN也可以做到實時的檢測。

  MTCNN由三個神經網絡組成,分別是P-Net、R-Net、O-Net。在使用這些網絡之前,首先要將原始圖片縮放到不同尺度,形成一個“圖像金字塔”,如下圖所示。

   

  接着會對每個尺度的圖片通過神經網絡計算一遍。這樣做的原因在於:原始圖片中的人臉存在不同的尺度,如有的人臉比較大,有的人臉比較小。對於比較小的人臉,可以在放大后的圖片上檢測;對於比較大的人臉,可以在縮小后的圖片上進行檢測。這樣,就可以在統一的尺度下檢測人臉了。

  現在再來討論第一個網絡P-Net的結構,如下圖所示

   

  P-Net的輸入是一個寬和高皆為12像素,同時是3通道的RGB圖像,該網絡要判斷這個12×12的圖像中是否含有人臉,並且給出人臉框和關鍵點的位置。因此對應的輸出應該由3部分組成:

  (1)第一個部分要判斷該圖像是否是人臉(上圖中的face classification),輸出向量的形狀為1x1x2,也就是兩個值,分別為該圖像是人臉的概率,以及該圖像不是人臉的概率。這兩個值加起來應該嚴格等1。之所以使用兩個值來表示,是為了方便定義交叉熵損失。
  (2)第二個部分給出框的精確位置(上圖中的bounding box regression),一般稱之為框回歸。P-Net輸入的12×12的圖像塊可能並不是完美的人臉框的位置,如有的時候人臉並不正好為方形,有的時候12×12的圖像塊可能偏左或偏右,因此需要輸出當前框位置相對於完美的人臉框位置的偏移。這個偏移由四個變量組成。一般地,對於圖像中的框,可以用四個數來表示它的位置:框左上角的橫坐標、框左上角的縱坐標、框的寬度、框的高度。因此,框回歸輸出的值是:框左上角的橫坐標的相對偏移、框左上角的縱坐標的相對偏移、框的寬度的誤差、框的 高度的誤差。輸出向量的形狀就是上圖中的1x1x4。
  (3)第三個部分給出人臉的5個關鍵點的位置。5個關鍵點分別為:左眼的位置、右眼的位置、鼻子的位置、左嘴角的位置、右嘴角的位置。每個關鍵點又需要橫坐標和縱坐標來表示,因此輸出一共是10維(即1x1x10)

  上面的介紹大致就是P-Net的結構了。在實際計算中,通過P-Net中第一層卷積的移動,會對圖像中每一個12×12的區域做一次人臉檢測,得到的結構如下圖所示:

   

  圖中框的大小各有不同,除了框回歸的影響外,主要是因為將圖片金字塔的各個尺度都使用P-Net計算了一遍,因此形成了大小不同的人臉框。P-Net的結果還是比較粗糙的,所以接下來又使用R-Net進一步調優。R-Net的網絡結構如下圖所示。

   

  這個結構與之前的P-Net非常類似,P-Net的輸入是12x12x3的圖像,R-Net是24x24x3的圖像,也就是說,R-Net判斷24x24x3的圖像中是否含有人臉,以及預測關鍵點的位置。R-Net的輸出和P-Net完全一樣,同樣有人臉判別、框回歸、關鍵點位置預測三部分組成。

  在實際應用中,對每個P-Net輸出可能為人臉的區域都放縮到24×24的大小,在輸入到R-Net中,進行進一步的判定。得到的結果如下圖所示:

   

  顯然R-Net消除了P-Net中很多誤判的情況。

  進一步把所有得到的區域縮放成48×48的大小,輸入到最後的O-Net中,O-Net的結構同樣與P-Net類似,不同點在於它的輸入是48x48x3的圖像,網絡的通道數和層數也更多了。O-Net的網絡的結構如下圖所示:

   

  檢測結果如下圖所示:

   

  從P-Net到R-Net,最後再到O-Net,網絡輸入的圖片越來越大,卷積層的通道數越來越多,內部的層數也越來越多,因此它們識別人臉的準確率應該是越來越高的。同時,P-Net的運行速度是最快的,R-Net的速度其次,O-Net的運行速度最慢。之所以要使用三個網絡,是因為如果一開始直接對圖中的每個區域使用O-Net,速度會非常慢慢。實際上P-Net先做了一遍過濾,將過濾后的結果再交給R-Net進行過濾,最後將過濾后的結果交給效果最好但速度較慢的O-Net進行判別。這樣在每一步都提前減少了需要判別的數量,有效降低了處理時間。

  最後介紹MTCNN的損失定義和訓練過程。MTCNN中每個網絡都有三部分輸出,因此損失也由三部分組成。針對人臉判別部分,直接使用交叉熵損失,針對框回歸和關鍵點判定,直接使用L2損失。最後這三部分損失各自乘以自身的權重再加起來,就形成最後的總損失了。在訓練P-Net和R-Net時,更關心框位置的準確性,而較少關注關鍵點判定的損失,因此關鍵點判定損失的權重很小。對於O-Net,關鍵點判定損失的權重較大。

二、使用深度卷積網絡提取特徵

  經過人臉檢測和人臉對齊兩個步驟,就獲得了包含人臉的區域圖像,接下來就要進行人臉識別了。這一步一般是使用深度卷積網絡,將輸入的人臉圖像轉換為一個向量的表示,也就是所謂的“特徵”。

  如何針對人臉來提取特徵?可以先來回憶VGG16的網絡結構(見),輸入神經網絡的是圖像,經過一系列卷積計算后,全連接分類得到類別概率。

  在通常的圖像應用中,可以去掉全連接層,使用卷積層的最後一層當作圖像的“特徵”。但如果對人臉識別問題同樣採用這種方法,即使用卷積層最後一層做為人臉的“向量表示”,效果其實是不好的。這其中的原因和改進方法是什麼?在後面會談到,這裏先談談希望這種人臉的“向量表示”應該具有哪些性質。

  在理想的狀況下,希望“向量表示”之間的距離可以直接反映人臉的相似度

  對於同一個人的兩張人臉圖像,對應的向量之間的歐幾里得距離應該比較小。對於不同人的兩張人臉圖像,對應的向量之間的歐幾里得距離應該比較大。

  例如,設人臉圖像為$x_{1}$,$x_{2}$,對應的特徵為$f(x_{1})$,$f(x_{2})$,當$x_{1}$,$x_{2}$對應是同一個人的人臉時,$f(x_{1})$,$f(x_{2})$的距離$\left \| f(x_{1}),f(x_{2}) \right \|$2應該很小,而當$x_{1}$,$x_{2}$是不同人的人臉時,$f(x_{1})$,$f(x_{2})$的距離$\left \| f(x_{1}),f(x_{2}) \right \|$2應該很大。

  在原始的CNN模型中,使用的是Softmax損失。Softmax是類別間的損失,對於人臉來說,每一類就是一個人。儘管使用Softmax損失可以區別出每個人,但其本質上沒有對每一類的向量表示之間的距離做出要求。

  舉個例子,使用CNN對MNIST進行分類,設計一個特殊的卷積網絡,讓其最後一層的向量變為2維,此時可以畫出每一類對應的2維向量(圖中一種顏色對應一種類別),如下圖所示:

   

  上圖是我們直接使用softmax訓練得到的結果,它就不符合我們希望特徵具有的特點:

  (1)我們希望同一類對應的向量表示盡可能接近。但這裏同一類(如紫色),可能具有很大的類間距離;
  (2)我們希望不同類對應的向量應該盡可能遠。但在圖中靠中心的位置,各個類別的距離都很近;

  對於人臉圖像同樣會出現類似的情況,對此,有很改進方法。這裏介紹其中兩種:一種是三元組損失函數(Triplet Loss),一種是中心損失函數。 

三、三元組損失的定義

  三元組損失函數的原理:既然目標是特徵之間的距離應該具備某些性質,那麼我們就圍繞這個距離來設計損失。具體的,我們每次都在訓練數據中抽出三張人臉圖像,第一張圖像記為$x_{i}^{a}$,第二張圖像記為$x_{i}^{p}$,第三張圖像記為$x_{i}^{n}$。在這樣的一個“三元組”中,$x_{i}^{a}$和$x_{i}^{p}$對應的是同一個人的圖像,而$x_{i}^{n}$是另外一個不同的人的人臉圖像。因此,距離$\left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}$應該較小,而距離$\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}$應該較大。嚴格來說,三元組損失要求下面的式子成立:

   $\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}+\alpha <\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}$

  然後計算相同人臉之間與不同人臉之間距離的平方

   $\left [ \left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}^{2}+\alpha -\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}^{2} \right ]_{+}$

  上式表達相同人臉間的距離平方至少要比不同人臉間的距離平方小α(取平方主要是為了方便求導),據此,上式實際上就是相當於一個損失函數。這樣的話,當三元組的距離滿足 $\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}+\alpha <\left \| f(x_{i}^{a})- f(x_{i}^{p})\right \|_{2}^{2}$時,不產生任何損失,此時$L_{i}=0$。當距離不滿足上述等式時,就會有值為$\left \| f(x_{i}^{a})-f(x_{i}^{p}) \right \|_{2}^{2}+\alpha -\left \| f(x_{i}^{a})-f(x_{i}^{n}) \right \|_{2}^{2}$的損失。此外,在訓練時會固定$\left \| f(x) \right \|_{2}=1$,以保證特徵不會無限地“遠離”。

  三元組損失直接對距離進行優化,因此可以解決人臉的特徵表示問題。但是在訓練過程中,三元組的選擇非常地有技巧性。如果每次都是隨機選擇三元組,雖然模型可以正確的收斂,但是並不能達到最好的性能。如果加入”難例挖掘”,即每次都選擇最難分辨率的三元組進行訓練,模型又往往不能正確的收斂。對此,又提出每次都選擇那些“半難”(Semi-hard)的數據進行訓練,讓模型在可以收斂的同時也保持良好的性能。此外,使用三元組損失訓練人臉模型通常還需要非常大的人臉數據集,才能取得較好的效果。

四、中心損失的定義

  與三元組損失不同,中心損失(Center Loss)不直接對距離進行優化,它保留了原有的分類模型,但又為每個類(在人臉模型中,一個類就對應一個人)指定了一個類別中心。同一類的圖像對應的特徵都應該盡量靠近自己的類別中心,不同類的類別中心盡量遠離。與三元組損失函數相比,使用中心損失訓練人臉模型不需要使用特別的採樣方法,而且利用較少的圖像就可以達到與單元組損失相似的效果。下面我們一起來學習中心損失的定義:

   還是設輸入的人臉圖像為$x_{i}$,該人臉對應的類別為$y_{i}$,對每個類別都規定一個類別中心,記作$c_{yi}$。希望每個人臉圖像對應的特徵$f(x_{i})$都盡可能接近其中心$c_{yi}$。因此定義中心損失為:

    $L_{i}=\frac{1}{2}\left \| f(x_{i})-c_{yi}\right \|_{2}^{2}$

  多張圖像的中心損失就是將它們的值加在一起:

   $L_{center}=\sum\limits_{i}L_i$

  這是一個非常簡單的定義。不過還有一個問題沒有解決,那就是如何確定每個類別的中心$c_{yi}$呢?從理論上來說,類別$y_{i}$的最佳中心應該是它對應的所有圖片的特徵的平均值。但如果採取這樣的定義,那麼在每一次梯度下降時,都要對所有圖片計算一次$c_{yi}$,計算複雜度就太高了。針對這種情況,不妨近似一處理下,在初始階段,先隨機確定$c_{yi}$,接着在每個batch內,使用$L_i=\|f(x_i)-c_{yi}\|_2^2$對當前batch內的$c_{yi}$ 也計算梯度,並使用該梯度更新$c_{yi}$ 。此外,不能只使用中心損失來訓練分類模型,還需要加入Softmax損失,也就是說,最終的損失由兩部分構成,即$L = L_{softmax}+\lambda L_{center}$,其中$\lambda $是一個超參數。

  最後來總結使用中心損失來訓練人臉模型的過程。首先隨機初始化各个中心$c_{yi}$,接着不斷地取出batch進行訓練,在每個batch中,使用總的損失$L$,除了使用神經網絡模型的參數對模型進行更新外,也對$c_{yi}$進行計算梯度,並更新中心的位置。

  中心損失可以讓訓練處的特徵具有“內聚性”。還是以MNIST的例子來說,在未加入中心損失時,訓練的結果不具有內聚性。再加入中心損失后,得到的特徵如下圖所示。 

   

從圖中可以看出,當中心損失的權重λ越大時,生成的特徵就會具有越明顯的“內聚性” 。

五、使用特徵設計應用

當提取出特徵后,剩下的問題就非常簡單了。因為這種特徵已經具有了相同人對應的向量的距離小,不同人對應的向量距離大的特點,接下來,一般的應用有以下幾類:

  • 人臉驗證(Face Identification)。就是檢測A、B是否屬於同一個人。只需要計算向量之間的距離,設定合適的報警閾值(threshold)即可。
  • 人臉識別(Face Recognition)。這個應用是最多的,給定一張圖片,檢測數據庫中與之最相似的人臉。顯然可以被轉換為一個求距離的最近鄰問題。
  • 人臉聚類(Face Clustering)。在數據庫中對人臉進行聚類,直接用K-means即可。

 

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益