如何讓您的計算機認識坤坤?

2021-03-03 反季節瀟湘夜語

最近在學習OpenCV,它是一個高效的計算機視覺和機器學習軟體庫。在學習過程中,我突發奇想,打算搞一個AAJ人臉識別程序。在幾天的學習和一下午的ctrl+c和ctrl+v後,我終於實現了這一功能——通過訓練10張左右AAJ同學提供的訓練照片(training-data),可以判斷測試圖片(test-data)是否為AAJ本人。

考慮到個人隱私,我將訓練對象改為大家喜聞樂見的坤坤,以下為展示視頻:



(科普:右圖為萊娜·瑟德貝裡,1951年3月31日出生於瑞典,在1972年11月期的《花花公子》雜誌中,她化名為萊娜·舍布洛姆,成為了當期的玩伴女郎。她的中間折頁照片由Dwight Hooker拍攝。她的照片(即萊娜圖)後來被數字圖像處理領域所廣泛使用。)

下面向大家展示一下我從網上學習的原始碼:

(IDE為pycharm,需預先安裝opencv-python、numpy、opencv-contrib-python)

cv2.destroyAllWindows()import cv2import osimport numpy as npsubjects = ["", "kunkun", "Others"]
def detect_face(img): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier('opencv-files/lbpcascade_frontalface.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5)
if (len(faces) == 0): return None, None (x, y, w, h) = faces[0]
return gray[y:y+w, x:x+h], faces[0]
def prepare_training_data(data_folder_path):
dirs = os.listdir(data_folder_path)
faces = []
labels = []
for dir_name in dirs:
if not dir_name.startswith("s"): continue label = int(dir_name.replace("s", ""))
subject_dir_path = data_folder_path + "/" + dir_name
subject_images_names = os.listdir(subject_dir_path)
for image_name in subject_images_names:
if image_name.startswith("."): continue image_path = subject_dir_path + "/" + image_name
image = cv2.imread(image_path)
cv2.imshow("Training on image...", cv2.resize(image, (400, 500))) cv2.waitKey(100)
face, rect = detect_face(image)
if face is not None:
faces.append(face)
labels.append(label) cv2.destroyAllWindows() cv2.waitKey(1) cv2.destroyAllWindows() return faces, labels

print("Preparing data...")faces, labels = prepare_training_data("training-data")print("Data prepared")
print("Total faces: ", len(faces))print("Total labels: ", len(labels))
face_recognizer = cv2.face.LBPHFaceRecognizer_create()
face_recognizer.train(faces, np.array(labels))
def draw_rectangle(img, rect): (x, y, w, h) = rect cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
def draw_text(img, text, x, y): cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_PLAIN, 1.5, (0, 255, 0), 2)
def predict(test_img):
img = test_img.copy()
face, rect = detect_face(img)
label, confidence = face_recognizer.predict(face)
if confidence < 60 : label_text = subjects[1]
else: label_text = subjects[2]
draw_rectangle(img, rect)
draw_text(img, label_text, rect[0], rect[1]-5)
print(label) print(confidence) return img

print("Predicting images...")
test_img1 = cv2.imread("test-data/test1.jpg")test_img2 = cv2.imread("test-data/test2.jpg")
predicted_img1 = predict(test_img1)predicted_img2 = predict(test_img2)
print("Prediction complete")
cv2.imshow("face1", cv2.resize(predicted_img1, (400, 500)))cv2.imshow("face2", cv2.resize(predicted_img2, (400, 500)))cv2.waitKey(0)cv2.destroyAllWindows()cv2.waitKey(1)

其中,測試圖片存放在test-data文件夾中

訓練圖片存放在training-data文件夾中,標籤為s1

終於,我們的計算機認識坤坤啦!

歡迎大家批評與指正。

注釋大部分來自:

https://www.cnblogs.com/zhuifeng-mayi/p/9171383.html

項目下載連結:

https://github.com/informramiz/opencv-face-recognition-python

相關焦點

  • 蔡徐坤真實身高曝光,網友:我們的坤坤又長高了!
    同學們收,真實身高1米82,一點都沒有假報(我絕對沒騙人,被電了)坤坤:噢噢那可能是183吧 最近我又長了一釐米!我們坤坤又高又帥!只是孩子的一個口誤,也請放過另一個單純的孩子吧[作揖] 答案就是坤坤182或者183,沒有別的我必須反思自己,身為一個粉絲,我為什麼跑的比黑子還慢。對不起,我不夠努力。 您要是真不喜歡呢,不要點進來渣浪推送是系統根據您的點擊推送的,電腦又不能分辨您是粉絲還是路人不是?小手一滑退出就好啦。
  • 坤坤的憤怒,全程高能
    新號 —— 文玩大王(點擊關注)雖然有人說不要再黑坤坤了看來一段時期內很難擺脫坤坤了!世界上有許多神奇的人生定律、法則、效應,運用這些神奇的理論,我們能洞悉世事,解釋人生中的諸多現象,更重要的是,這些理論指導我們如何去做,如何改變命運。
  • 如何從轉移的計算機中刪除您的iCloud帳戶和Apple ID
    Apple在整個生態系統中使用Apple ID來識別您的同步,購買等信息。當您出售或贈送一臺Mac並認為您抹去了所有身份痕跡,但Mac不斷使用您的Apple ID帳戶電子郵件提示新用戶或所有者並要求輸入密碼時,會發生什麼?如果發生這種情況,則可能是您或新擁有者沒有完全擦拭機器。我建議您在移交計算機時進行徹底擦除。
  • 麥克阿瑟天才獎得主解碼計算機視覺「原罪」:AI 如何認識人類世界
    http://www.aiworld2017.com來源:QZ 作者:Caitlin Hu編譯:文強,弗格森,劉小芹 【新智元導讀】麥克阿瑟「天才獎」獲得者Trevor Paglen訓練AI算法,他的展覽項目「看不見的圖像的研究」(A Study of Invisible Images),反向展示AI如何認識世界
  • 蔡徐坤披荊斬棘的成名之路,然而得到的卻是冷嘲熱諷,坤坤太難了
    自蔡徐坤出道以來,質疑、嘲諷的聲音就從未停止過,其實很多人認識蔡徐坤就是從2018年開始,那一年,全網都是黑蔡徐坤打籃球的鬼畜視頻,唱、跳、rap、籃球更是成了蔡徐坤的代名詞。絕大多數人都認為蔡徐坤是2018年憑空冒出來的明星,認為這是哪個公司的造星計劃 覺得是有人花大價錢炒作,那可就大錯特錯了!
  • 坤坤被嚇到了...
    每天熱火朝天的打call「坤坤勇敢飛,ikun永相隨,坤坤不老,藍籌到老」「全世界最好的坤坤,不是蔡徐坤,不是謝廣坤,而是張坤」漲的時候天天坤坤我愛你、全世界最好的坤坤。一旦劇烈調整了,罵的最狠的也會是同一批人。。。張坤寫過一篇非常懇切的基金報告,勸大家買基金一定要三思後行——選擇和自己價值觀匹配的產品。點擊這裡可以看看現在湧進來這麼多小白,根本不聽他的投資邏輯,看他漲的好就買。
  • 如果計算機內存不足,如何執行深度內存清理
    在日常使用計算機時,如果計算機內存不足,該怎麼辦?可以通過深度清潔內存來解決此類問題。讓我們看看小編如何操作它。如果計算機內存不足,如何執行深度內存清理1.打開系統的任務管理器,然後單擊上面的性能以查看當前的內存使用情況。
  • 白鰭豚navi向蔡徐坤展示「高音」,坤坤獻上熒幕「初吻」!
    坤坤看到這裡也是非常的疑惑和不解,於是探頭望去,紅色的水母一張一翕好像是在像他問好一樣,看到紅色水母在炫耀著自己的魅力,紫色水母也不甘示弱他看到紅色哥哥的技術也綻放著自身與生俱來的天賦,讓紫色和白色相間的「家園」變得絢麗奪目,仿佛是在ktv的燈光的律動一樣!隨著時間的流逝,我們陪著坤坤的眼光來到了本次海洋裡最特別的生物那就是navi了。
  • 人類正生活在計算機的模擬中——科學家告訴我們世界是如何運轉的
    這就是為什麼說人類世界所有活動很有可能是高科技計算機模擬中的一種。 馬斯克說:實際上,人類不是生活在計算機仿真中的機會是十億分之一。 你們覺得如何?歡迎寫下評論。 伊隆·馬斯克的假設既不能證明也不能否認,因此他的想法同時出現了很多的支持者和反對者。 人們特別熱衷於討論這個話題。
  • 一文讀懂一臺計算機是如何把數據發送給另一臺計算機的
    本文公眾號來源:苦逼的碼農  作者:帥地一篇寫得不錯的科普文,跟大家一起回顧一下計算機網絡!前言天各一方的兩臺計算機是如何通信的呢?在成千上萬的計算機中,為什麼一臺計算機能夠準確著尋找到另外一臺計算機,並且把數據發送給它呢?可能很多人都聽說過網絡通信的 5 層模型,但是可能並不是很清楚為什麼需要五層模型,五層模型負責的任務也有可能經常混淆。
  • 李汶翰不讓提素人梗,蔡徐坤不讓喊坤坤,BKING最後的倔強?
    蔡徐坤不讓叫坤坤,是不是 BKING不讓叫?別說是明星們的年末,就算是普通人的年末也總是非常的忙碌,他們都要去領取一年的時尚、音樂成績單。剛落幕不久的 GQ盛典,可謂是天翻地覆。先看超長梯子顯得很雞肋,再看死亡打光讓明星顏值下降。
  • 團隊不讓叫蔡徐坤是「坤坤」?劉憲華的慘痛教訓還沒有吸取嗎
    序言:近日,王耀慶擔任GQ盛典主持人的一篇採訪稿件在網上流傳,同事對王耀慶千叮嚀萬囑咐,千萬不能叫蔡徐坤是「坤坤」,如果非要叫,那就叫「坤」或者「蔡徐坤」,這是蔡徐坤團隊提的要求。如果這個爆料是真的,那蔡徐坤團隊也太霸道了一點,「坤坤」又不是「黑稱」,為什麼不能叫呢?蔡徐坤的粉絲都叫蔡徐坤是「坤坤」,何炅也是叫蔡徐坤是「坤坤」。雖然王耀慶不如何炅名氣大,但也是前輩,不能叫「坤坤」嗎?
  • 蔡徐坤鄭爽歐豪一起參加活動,坤坤穩坐C位,與鄭爽全程無交流
    important}9月24日是某品牌女裝的2021春夏列線上發布會,蔡徐坤、鄭爽、歐豪三人應邀參加了這次的活動,在活動現場,蔡徐坤、鄭爽、歐豪三人並排坐在一起,坤坤穩坐C位,與鄭爽全程無交流,看來他們兩人彼此並不熟悉。
  • 蔡徐坤鄭爽歐豪一起參加活動,坤坤穩坐C位,與鄭爽全程無交流
    9月24日是某品牌女裝的2021春夏列線上發布會,蔡徐坤、鄭爽、歐豪三人應邀參加了這次的活動,在活動現場,蔡徐坤、鄭爽、歐豪三人並排坐在一起,坤坤穩坐C位,與鄭爽全程無交流,看來他們兩人彼此並不熟悉。面對攝像師的鏡頭,坤坤從容又大方,他的眼神犀利,造型又酷又帥,全身散發出高貴的氣息,把性感、高級、帥氣、霸道把握得剛剛好,隨意一張照片都可以當電腦壁紙。鄭爽也參加了這次的活動,她上身穿一件花、黑、白三色印花無袖襯衫,下面穿一條黑色長裙,腳上穿一雙黑色細高跟鞋,復古裙裝性感紅唇令人耳目一新,她高挑的身材比例優美的曲線,可甜可颯的造型很好地詮釋著每種風格。
  • 蔡徐坤代言陌森眼鏡,一個細節體現出坤坤團隊成長「賊快」
    就2019來說,坤坤承受了極大的壓力,好在最後挺過來了。所謂,「成也蕭何敗蕭何」,其中曲折可以說,坤坤團隊決定了這一切。從最初的某某A代言到某站的惡意營銷,坤坤團隊由於受到全網的不待見,在輿論這樣一個不可抵抗力的摧殘下,敗得一塌糊塗。中國有句古話,「吃一塹長一智」,坤坤團隊也是臥薪嘗膽,厚積薄發,陌森眼鏡的廣告足可以看出其成長不少。
  • 熱衷於玩道具的坤坤小朋友 蔡三歲實錘!​
    熱衷於玩道具的坤坤小朋友坤坤什麼都可以
  • 報考必讀,計算機科學與技術專業專題分析
    小編為您整理了大學計算機科學與技術專業校友對自身就讀專業的真實看法,以供參考。@林不鶸華東師範大學 | 計算機科學與技術 | 本科計算機專業特別是重點院校出來的計算機畢業生的競爭優勢一定是很強的,就我們學校而言,畢業生平均薪資最高的就是計算機和軟體兩個專業,未來發展前景廣闊,還有很多出國交流的機會就業前景學校就業情況如何?畢業生一般去哪些公司?畢業生一般起薪多少?
  • 求求你們,放過坤坤吧!
    「坤坤勇敢飛,ikun永相隨,坤坤不老,藍籌到老」……這種在娛樂圈和B站亞文化社群裡很流行的說法,居然用到了基金經理身上,我也算活久見。作為85前,我一直關注時代潮流變遷,願意關注並包容年輕人文化。但「基金圈飯圈化」這種新現象,作為理財師,我舉一萬個手,一輩子堅決反對!
  • 《奔跑吧》大型打臉現場,坤坤翻轉太生硬,讓人有點看不懂
    首輪驗證結果顯示,大黑牛、小獵豹和baby三人中有兩人是間諜,坤坤更是篤定的說大黑牛是間諜,並且還剝奪了大黑牛法眼的機會。看到這裡,小編想說,坤坤這孩子太率真了,凡事都跟著直覺走,覺得baby說的有道理,便選擇相信她,把大黑牛踩得死死的,整得大黑牛一臉的生無可戀,碰到這樣的豬隊友,能有什麼辦法呢!後面坤坤妥妥的被打臉。
  • 去澳洲讀IT計算機類專業怎麼選擇?就業前景和移民如何?
    去澳洲讀IT計算機類專業怎麼選擇?就業前景和移民如何?這幾年,國內的計算機行業發展的實在是太迅速了,而計算機和網際網路行業也成為了當下了最高薪好就業的方向之一,這也讓無數學生想要學習IT專業,將來從事計算機行業。不過IT專業是一個非常大的概念,其中包含很多的專業方向,各個方向的就業也有所差別。