新智元導(dǎo)讀】實現(xiàn)人臉檢測、人臉識別以及情緒檢測最少需要多少代碼?8行!目前在人臉識別方面已經(jīng)做的非常成熟了,但對于開發(fā)者來說,對效率的追求是永遠(yuǎn)不會停止的。通過不斷精簡代碼,目前能夠同時實現(xiàn)上述3個功能所需的最少代碼是8行,代碼已在Github開源。
人類具有識別和區(qū)分面部的天生能力,但人類也存在臉盲的現(xiàn)象。現(xiàn)在計算機(jī)也能夠識別并區(qū)分人臉,并且這項技術(shù)已經(jīng)非常成熟。人臉檢測和識別可以用來改善訪問和安全性,就像最新的Apple iPhone一樣(參見下面的gif),用戶可以在沒有實體支付卡(例如銀行卡、信用卡等)的情況下,實現(xiàn)刷臉移動支付、啟用犯罪識別并允許個性化的醫(yī)療保健和其他服務(wù)。
人臉檢測和識別是一個被廣泛研究的課題,在網(wǎng)上可以找到大量的資源。今天向大家展示的一個最簡單的實現(xiàn)方式。為了找出最簡化、同時又具備一定準(zhǔn)確度的實現(xiàn),本問作者嘗試了多個開源項目,而且還創(chuàng)建了一個pipeline,只需8行代碼就可以對任何輸入圖像進(jìn)行人臉檢測,人臉識別和情感理解! 代碼yiji在Github上開源的。
通過這8行代碼,我們要實現(xiàn)以下3個功能:
面部檢測是pipeline的第一部分。使用python庫的Face Recognition,這庫非常易于安裝并且在檢測面部時非常準(zhǔn)確。此庫掃描輸入圖像并返回所有檢測到的面的邊界框坐標(biāo),如下所示:
系統(tǒng)需求:
安裝指南:
首先確保你已經(jīng)安裝了dlib。如果沒有可以谷歌如何安裝。
然后通過下面命令進(jìn)行安裝(缺人你的Python版本,如果是2就把pip3改成pip2)
pip3 install face_recognition
下面的代碼段顯示了如何使用face_recognition庫來檢測面部
face_locations=face_recognition.face_locations(image) top, right, bottom, left=face_locations[0] face_image=image[top:bottom, left:right]
有關(guān)安裝人臉識別和使用它的完整說明也在Github上
面部識別用于驗證兩張臉是否相同。面部識別的使用在安全性、生物指標(biāo)、娛樂、人身安全等方面有著巨大的需求和價值。用于面部檢測的python庫face_recognition也可以用于面部識別。
測試顯示,該庫具有良好的性能。給定兩張臉進(jìn)行匹配,最終得出對比結(jié)果為True或False。面部識別涉及的步驟是
執(zhí)行此操作的代碼段如下所示。我們?yōu)閮蓮埬槃?chuàng)建臉部的編碼矢量,然后使用內(nèi)置函數(shù)來比較矢量之間的距離。
encoding_1=face_recognition.face_encodings(image1)[0] encoding_2=face_recognition.face_encodings(image1)[0] results=face_recognition.compare_faces([encoding_1],encoding_2,tolerance=0.50)
現(xiàn)在用下面兩張圖來測試模型:
如圖所示,我們有兩張不同姿勢的萊昂納多迪卡普里奧的臉。甚至第一個照片里的臉還不是正面鏡頭。使用上面代碼進(jìn)行識別,我們的人臉識別程序能夠確定這兩張臉屬于同一個人!
人類習(xí)慣于察言觀色。現(xiàn)在,計算機(jī)在讀懂人類面部情緒方面,做的越來越好了。所以計算機(jī)是如何做到檢測圖像中的情緒呢?這里我們使用一個開源數(shù)據(jù)集,來自Kaggle的Face Emotion Recognition(FER ),并構(gòu)建了一個CNN來檢測情緒。我們定義情緒可分為7類:快樂,悲傷,恐懼,厭惡,憤怒,無所謂和驚訝。
首先讓我們在Keras中構(gòu)建一個6層卷積神經(jīng)網(wǎng)絡(luò)(CNN),并使用圖像增強(qiáng)來提高模型性能。嘗試了許多不同的模型之后,我們找出了最佳實現(xiàn),并將此開源,讀者可以訪問以下鏈接查看代碼:
https://github.com/priya-dwivedi/face_and_emotion_detection/blob/master/src/EmotionDetector_v2.ipynb
現(xiàn)在你可以使用以下兩行代碼加載預(yù)訓(xùn)練模型并在圖像上運(yùn)行它:
model=load_model("./emotion_detector_models/model.hdf5") predicted_class=np.argmax(model.predict(face_image)
如你所見,面部識別在今天看來,已經(jīng)是一個非常簡單的任務(wù),你甚至僅僅使用8行代碼就可以實現(xiàn)。當(dāng)然精確度可能有待商榷,但起碼在一半情況下是完全具備可用性的。
參考鏈接:
https://towardsdatascience.com/face-detection-recognition-and-emotion-detection-in-8-lines-of-code-b2ce32d4d5de
腦主板檢測是電腦維修的基礎(chǔ),在很多時候我們都會遇到種種狀況,比如顯示器不顯示,藍(lán)屏,頻繁死機(jī),主板不加電,CPU不工作,開機(jī)沒反應(yīng),主板接電源自己啟動,電腦關(guān)機(jī)CPU風(fēng)扇依然轉(zhuǎn)動,南北橋開焊或損壞,主板故障可以說是千變?nèi)f化,也許一個小小的元器件就會讓你忙個半天,因此要想維修電腦硬件學(xué)會檢測和識別,才是基礎(chǔ)中的基礎(chǔ)。
1.當(dāng)拿過一個主板后,首先會插上一個診斷卡,開機(jī)查看主板的工作狀態(tài),如果主板通電,診斷卡電源指示燈亮說明主板電源電路沒問題,再觸發(fā)一下復(fù)位膠針如果診斷卡復(fù)位指示燈閃爍,說明復(fù)位電路沒問題,以上兩點(diǎn)如反之則說明主板有短路現(xiàn)象。
2.主板通電后診斷卡代碼不走動顯示為00或FF側(cè)說明主板CPU沒有工作,接下來要切斷電源摘除CPU風(fēng)扇換一個好的CPU,用手按住CPU(手指與CPU之間最好用隔熱的東西隔開以免燙傷)稍加力氣按住開通電源,如果診斷開還是沒反應(yīng)且主板依舊沒工作,則排除CPU底座開焊,接下來要確定的是CPU電路有沒有故障。
首先應(yīng)當(dāng)知道這塊主板的CPU供電電路的走勢,一般情況下CPU供電電路都布局合理都在CPU周圍不會在別的位置,因此還要知道CPU是紅5V供電然后用黑表筆接電源紅5V接口,紅表筆接CPU輔助電源四角接口(萬用表調(diào)至蜂鳴即可)此時萬用表就會發(fā)出短叫聲說明此處電路沒問題。
希望對大家有一定的幫助。
好多朋友剛開始學(xué)習(xí)電腦維修,對診斷卡不是很了解。今天來講一下主板診斷卡的使用。老司機(jī)就跳過吧!
1、工具簡介
主板診斷卡可將主板啟動時BIOS內(nèi)部自檢程序的檢測過程轉(zhuǎn)換成代碼,讀取卡上的顯示代碼,對照故障代碼表,可快速診斷或定位主板、內(nèi)存、CPU、電源等相關(guān)部件的故障。
2、適用范圍
適用于QDI、技嘉、微星等廠家的帶ISA或PCI插槽的主板,可診斷機(jī)器自檢(從加電啟動、系統(tǒng)自檢至顯示器正常顯示)過程中遇到的問題。
3、功能簡介(詳細(xì)代碼與指示燈狀態(tài)見診斷卡說明書)
1)常見代碼
代碼 | 說明 | 備注 |
00或FF | 運(yùn)行一系列代碼之后,出現(xiàn)00或FF代碼,則主板OK | 由于主板設(shè)計以及芯片組之間的差異,部分主板自檢完成后可能顯示23、25、26代碼,屬于正常情況 |
一開機(jī)就顯示一個固定的代碼(如:00或 FF),沒有任何變化,通常為主板或CPU沒有正常運(yùn)行 | ||
CO | 初始化高速緩存 | 主板或CPU故障 |
C1或C6 | 內(nèi)存自檢 | 此代碼死機(jī)喇叭將報警,有些主板顯示A7 |
31 | 顯示器存儲讀/寫測試或掃描檢測失敗 | 主板顯示部分或顯卡故障,喇叭將報警 |
41 | 初始化軟盤驅(qū)動控制器 | 主板BIOS問題 |
2)指示燈狀態(tài)
燈名 | 信號名稱 | 說明 |
CLK | 總線時鐘 | 不論ISA和PCI只要一塊空板(無需CPU),接通電源就應(yīng)該亮,否則時鐘信號壞 |
BIOS | 基本輸入輸出 | 當(dāng)主板運(yùn)行對BIOS有讀操作時會閃爍 |
IRDY | 主設(shè)備準(zhǔn)備好 | 有IRDY信號時才閃爍,否則不亮 |
OSC | 振蕩 | 有ISA槽的主振信號,空板通電應(yīng)常亮,否則停振 |
FRAME | 幀周期 | PCI槽有循環(huán)幀信號時燈才閃爍,平時常亮 |
RET | 復(fù)位 | 開機(jī)瞬間或按下RESET按鈕后,亮半秒熄滅屬正常情況;若常亮,通常為主板復(fù)位電路、復(fù)位按鈕壞,或插針連接有誤 |
±12V | 電源 | 空板上電即應(yīng)常亮,否則無此電壓輸出或主板有短路 |
±5V | 電源 | 空板上電即應(yīng)常亮,否則無此電壓輸出或主板有短路 |
3.3V | 電源 | 空板上電即應(yīng)常亮,否則無此電壓輸出或主板有短路 |
4、操作步驟
當(dāng)機(jī)器在加電啟動的自檢過程中出現(xiàn)無顯故障時(例如:自檢硬件不通過、喇叭報警、
顯示器不能正常顯示等)
1) 首先將電源供電斷開,利用觀察法,檢查整機(jī)各部件的外觀情況,是否有明顯的外觀不良和燒毀的痕跡;
2) 如果沒發(fā)現(xiàn)異常,再利用硬件最小系統(tǒng)法,將主板診斷卡插在ISA或PCI槽上(如主板帶ISA槽,建議先選擇ISA槽;如沒有ISA槽,再選擇PCI槽。選擇PCI槽時最好是靠近中間的槽,因為該卡與少量主板有兼容性問題,使用第一個或最后一個PCI槽時可能引起“00”無顯),連接好喇叭與主板SPEAKER插座的連線;
3) 接通電源,啟動最小系統(tǒng)。觀察主板診斷卡左上角的兩個發(fā)光管顯示的代碼,對照故障代碼表,確認(rèn)故障。此時也可通過指示燈狀態(tài)、喇叭聲音來判斷故障;
4) 如果在最小系統(tǒng)下沒發(fā)現(xiàn)問題,再利用逐步添加法,逐一添加其他設(shè)備,觀察診斷卡顯示代碼的情況,找出故障件。
5、注意事項
1) 在最小系統(tǒng)下,部分故障存在重碼(例如:“OO”、“C0”、“C1”代碼)現(xiàn)象,導(dǎo)致無法最終定位到一個部件上。當(dāng)遇到此情況時,建議采用替換法進(jìn)一步確認(rèn),以便分離故障件;
2) 由于存在兼容性問題,可能出現(xiàn)使用第一個或最后一個PCI槽時(少量的QDI 810、694X芯片組主板),引起系統(tǒng)無顯,代碼為“OO”的情況,因此在使用診斷卡時,最好使用靠中間的PCI槽;
3) 由于每款主板的設(shè)計以及BIOS廠商都有差異,顯示的代碼略有區(qū)別,另外個別代碼(例如: “A7”,通常為主板內(nèi)存插槽或內(nèi)存條故障)在說明書中可能沒有說明,請注意特殊情況的歸納總結(jié);
4) 當(dāng)遇到顯示器正常顯示后出現(xiàn)的故障,該診斷卡基本已不再起作用,請根據(jù)顯示器顯示的情況來處理故障,此時診斷卡的代碼僅供參考;
5) 當(dāng)診斷卡插在ISA槽上時,請將診斷卡有元件的一面朝向主板電源接口位置,若插反,系統(tǒng)無法工作,而且還可能損壞部件。