如今一個攻城獅就能搞定人臉的深度進修算法,這要多感激打動國外開源框架,雖然達不到曠世face++和諸多人臉公司的深度,可是實際應用已經沒有太大壓力。下圖就是tensorflow寫的人臉5點定位加情感測試。
前不久蒐集上爆紅某公司,一人臉識別開發師用攝像頭識別老闆,當老闆靠進本身的工位的時辰,電腦主動切換到本身工作時的界面。
WTF?
你還在覺得這個梗是網上闢謠的?
還在覺得人臉識別手藝實現特別複雜、高峻上?
NO!你OUT了,今天小編用最最簡單易懂的代碼講解,給大師帶來這款防火、防盜、防老闆的終極利器——
項目地點:BossComming
項目方針:
識別特定人物,並經由過程手機信息的編制提示你:你的老闆來啦!
項目情形引見:
Python 3.3+或Python 2.7(本教程用6版本)
Windows 7或MacOS,以及Linux等體系
一個攝像頭和IDLE集成體系(PyCharm)
下載完Python3.6,並設置裝備安排相干的體系情形,按win鍵+R鍵輸入cmd,
翻開呼籲提示符,輸入呼籲安裝一下依靠:
pip3 install face_recognition
pip3install jpush
代碼講解:
下載本教程的項目,我們起頭逐條代碼的講解人臉識別代碼,保證在列位吃瓜群眾“深切”到人工智能規模的教程傍邊。video_capture = cv2.VideoCapture(0)
# Load a sample picture and learn how to recognize it.
obama_image = face_recognition.load_image_file("BOSS2.bmp")
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
whileTrue:
ret, frame = video_capture.read()
face_locations = face_recognition.face_locations(frame)
-
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):對視頻流停止編碼
本章根基講解了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非單子字符
(2) 組與捕獲
1 ()的作用:
1. 捕獲()中正則表達式的內容以備進一步利用處理,可以通過在左括號後面跟隨?:來關閉這個括號的捕獲功能
2. 將正則表達式的一部分內容進行組合,以便使用量詞或者|
2 反響引用前面()內捕獲的內容:
1. 通過組號反向引用
每一個沒有使用?:的小括號都會分配一個組好,從1開始,從左到右遞增,可以通過\i引用前面()內表達式捕獲的內容
2. 通過組名反向引用前面小括號內捕獲的內容
可以通過在左括號後面跟隨?P
3 注意點:
反向引用不能放在字符類[]中使用。
2. Python正則表達式模塊
2.1 正則表達式處理字符串主要有四大功能
1. 匹配 查看一個字符串是否符合正則表達式的語法,一般返回true或者false
2. 獲取正則表達式來提取字符串中符合要求的文本
3. 替換查找字符串中符合正則表達式的文本,並用相應的字符串替換
4. 分割使用正則表達式對字符串進行分割。
2.2 Python中re模塊使用正則表達式的兩種方法
1. 使用re.compile(r, f)方法生成正則表達式對象,然後調用正則表達式對象的相應方法。這種做法的好處是生成正則對象之後可以多次使用。
2. re模塊中對正則表達式對象的每個對象方法都有一個對應的模塊方法,唯一不同的是傳入的第一個參數是正則表達式字符串。此種方法適合於只使用一次的正則表達式。
好了,今天的知識就分享到這裡,歡迎關注愛編程的南風,私信關鍵詞:學習資料,獲取更多學習資源,如果文章對你有有幫助,請收藏關注,在今後與你分享更多學習python的文章。同時歡迎在下面評論區留言如何學習python。
閱讀更多 愛編程的南風 的文章