人工智慧實現程式設計師「防」BOSS?刷臉就發簡訊,8行代碼人臉報警

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

如今一個攻城獅就能搞定人臉的深度進修算法,這要多感激打動國外開源框架,雖然達不到曠世face++和諸多人臉公司的深度,可是實際應用已經沒有太大壓力。下圖就是tensorflow寫的人臉5點定位加情感測試。

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

人臉識別應用

前不久蒐集上爆紅某公司,一人臉識別開發師用攝像頭識別老闆,當老闆靠進本身的工位的時辰,電腦主動切換到本身工作時的界面。

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

WTF?

你還在覺得這個梗是網上闢謠的?

還在覺得人臉識別手藝實現特別複雜、高峻上?

NO!你OUT了,今天小編用最最簡單易懂的代碼講解,給大師帶來這款防火、防盜、防老闆的終極利器——

項目地點:BossComming

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

項目方針:

  • 識別特定人物,並經由過程手機信息的編制提示你:你的老闆來啦!

項目情形引見:

  • Python 3.3+或Python 2.7(本教程用6版本)

  • Windows 7或MacOS,以及Linux等體系

  • 一個攝像頭和IDLE集成體系(PyCharm)

下載完Python3.6,並設置裝備安排相干的體系情形,按win鍵+R鍵輸入cmd,

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

翻開呼籲提示符,輸入呼籲安裝一下依靠:

  • pip3 install face_recognition

  • pip3install jpush

代碼講解:

下載本教程的項目,我們起頭逐條代碼的講解人臉識別代碼,保證在列位吃瓜群眾“深切”到人工智能規模的教程傍邊。video_capture = cv2.VideoCapture(0)

  1. # Load a sample picture and learn how to recognize it.

  2. obama_image = face_recognition.load_image_file("BOSS2.bmp")

  3. obama_face_encoding = face_recognition.face_encodings(obama_image)[0]

  4. whileTrue:

  5. ret, frame = video_capture.read()

  6. face_locations = face_recognition.face_locations(frame)

  7. face_encodings = face_recognition.face_encodings(frame, face_locations)

其中cv2.VideoCapture函數界說攝像頭工具,0為第一個攝像頭,一樣平常為筆記本內置攝像頭。

face_recognition.load_image_file:讀取項目下的圖片文件

face_recognition.face_encodings:對圖片停止編碼

while True:進入死輪迴

video_capture.read:是一個前往當前幀的函數,它能前往兩個參數,ret和frame

  • 第一個參數是bool型的ret,其值為True或False,代表有沒有讀到圖片

  • 第二個參數是frame,是當前截取一幀的圖片。

face_recognition.face_locations(frame):獲取視頻流幀,識別人臉

face_recognition.face_encodings(frame, face_locations):對視頻流停止編碼

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

本章根基講解了bosscoming這個成心思項目的團體框架和實現。更多細節請關注我們,將在後面文章出現。

下面分享分享Python正則表達式的知識:

(1). 正則表達式語法

1.1 字符與字符類

1 特殊字符:\.^$?+*{}[]()|

以上特殊字符要想使用字面值,必須使用\進行轉義

2 字符類

1. 包含在[]中的一個或者多個字符被稱為字符類,字符類在匹配時如果沒有指定量詞則只會匹配其中的一個。

2. 字符類內可以指定範圍,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之間的任何一個字符

3. 左方括號後跟隨一個^,表示否定一個字符類,比如[^0-9]表示可以匹配一個任意非數字的字符。

4. 字符類內部,除了\之外,其他特殊字符不再具備特殊意義,都表示字面值。^放在第一個位置表示否定,放在其他位置表示^本身,-放在中間表示範圍,放在字符類中的第一個字符,則表示-本身。

5. 字符類內部可以使用速記法,比如\d \s \w

3 速記法

. 可以匹配除換行符之外的任何字符,如果有re.DOTALL標誌,則匹配任意字符包括換行

\d匹配一個Unicode數字,如果帶re.ASCII,則匹配0-9

\D 匹配Unicode非數字

\s匹配Unicode空白,如果帶有re.ASCII,則匹配\t\n\r\f\v中的一個

\S 匹配Unicode非空白

\w匹配Unicode單詞字符,如果帶有re.ascii,則匹配[a-zA-Z0-9_]中的一個

\W 匹配Unicode非單子字符

人工智能實現程序員“防”BOSS?刷臉就發短信,8行代碼人臉報警

(2) 組與捕獲

    1 ()的作用:

      1. 捕獲()中正則表達式的內容以備進一步利用處理,可以通過在左括號後面跟隨?:來關閉這個括號的捕獲功能

      2. 將正則表達式的一部分內容進行組合,以便使用量詞或者|

    2 反響引用前面()內捕獲的內容:

      1. 通過組號反向引用

        每一個沒有使用?:的小括號都會分配一個組好,從1開始,從左到右遞增,可以通過\i引用前面()內表達式捕獲的內容

      2. 通過組名反向引用前面小括號內捕獲的內容

        可以通過在左括號後面跟隨?P,尖括號中放入組名來為一個組起一個別名,後面通過(?P=name)來引用 前面捕獲的內容。如(? P\w+)\s+(?P=word)來匹配重複的單詞。

    3 注意點:

      反向引用不能放在字符類[]中使用。

2. Python正則表達式模塊

 2.1 正則表達式處理字符串主要有四大功能

    1. 匹配 查看一個字符串是否符合正則表達式的語法,一般返回true或者false

    2. 獲取正則表達式來提取字符串中符合要求的文本

    3. 替換查找字符串中符合正則表達式的文本,並用相應的字符串替換

    4. 分割使用正則表達式對字符串進行分割。

2.2 Python中re模塊使用正則表達式的兩種方法

    1. 使用re.compile(r, f)方法生成正則表達式對象,然後調用正則表達式對象的相應方法。這種做法的好處是生成正則對象之後可以多次使用。

    2. re模塊中對正則表達式對象的每個對象方法都有一個對應的模塊方法,唯一不同的是傳入的第一個參數是正則表達式字符串。此種方法適合於只使用一次的正則表達式。

好了,今天的知識就分享到這裡,歡迎關注愛編程的南風,私信關鍵詞:學習資料,獲取更多學習資源,如果文章對你有有幫助,請收藏關注,在今後與你分享更多學習python的文章。同時歡迎在下面評論區留言如何學習python。


分享到:


相關文章: