訂閱
糾錯
加入自媒體

實現(xiàn)計算機視覺——人臉檢測

概述:計算視覺是人工智能的一部分,旨在設計能夠像人類視覺一樣進行觀察的智能算法。

在本文中,我們將介紹三個主要范圍。

· 人臉檢測

· 物體檢測

· 面部識別

· 對象跟蹤

在第一篇文章中,我們將重點介紹計算機視覺,以及基于 Python OpenCV 庫的人臉識別應用。

在以后的文章中,我們將演示對象識別、人臉識別和對象跟蹤在實時視頻中的應用。

目錄

1.介紹

2.人臉檢測算法

3.人臉檢測實現(xiàn)

4.OpenCV 的替代方案

5.結論

6.參考文獻

介紹

本文的讀者將能夠了解幾個視覺計算應用程序的功能、它們在后臺和架構中的操作,以及實現(xiàn)應用程序以供實際使用的必要步驟。

現(xiàn)在讓我們看看我們之前已經討論過的一些可以在該領域開發(fā)的其他應用程序。

人臉檢測在找到人臉時會放一個小方框,并為這些人命名。我們將做一個有點類似于這個的實現(xiàn)。

我們有這張來自微軟的 Kinect 圖像,它與運動檢測的 Xbox 視頻游戲集成在一起。

當有人移動方向盤時,你可以使用計算機視覺來檢測控制汽車的人。需要計算機視覺技術來進行圖像識別,也就是說,機器人需要看到它面前的東西來做出決定。

另一個例子是自動駕駛汽車。你可以注意到這輛車中有一系列傳感器,例如,它需要檢測行人以避免撞到人。

你需要檢測交通標志或是否有紅綠燈。

如果信號為紅色,則必須停止,如果信號為綠色,則必須繼續(xù)。為此,使用計算機視覺技術,包括所使用的技術。這種人臉檢測技術也用于物體檢測。

如果他識別出軌道上的物體,他就必須采取某種行動。增強現(xiàn)實、虛擬現(xiàn)實的想法使用計算機視覺技術。

這張SD光束的圖像顯示的是不存在的人。算法使用了一種叫做GAN的技術生成了這些人,即生成對抗網絡,這是深度學習人工神經網絡中的一個超級領域。

最后,我們還有另一個例子,稱為 deep Durin,它是由神經網絡生成的圖像。你可以看到這些迷幻的圖像,在這個圖像的某些部分有一些特征,有一些動物的痕跡,即算法已經有了關于動物的信息,關于這些動物的圖像非常類似于一種算法,這種算法將圖像的特征與風景圖像相結合。

一個應用示例是深度人臉,它是人工智能創(chuàng)建的人臉。

人臉檢測算法

級聯(lián)分類器是一種算法,你將學習對某個對象進行分類以開始訓練。

我們需要兩組圖像,第一組帶有你要檢測的正面圖像的人臉,第二組圖像稱為負圖像,它們不是簡單的圖像。

例如,如果你想檢測汽車,你會將汽車作為正圖像,將各種型號和類型的汽車作為負圖像。

任何其他類型的圖像,你都需要將這兩組圖像提交給算法進行訓練。

在機器學習領域有一種叫做 Ada boost 的算法訓練。我不會詳細介紹該算法的工作原理,但基本上,你把這個算法應用到正圖像和負圖像上,這個想法就是特征選擇。

我們有幾個特征或者是這些黑色和白色的小方塊,你可以用這些特征來分類一張臉。

這些小方塊用于圖像的每個子窗口。

這個窗口概念表明它從左到右,從上到下移動。

人臉檢測實現(xiàn)

我們將使用 Python OpenCV 庫,它是市場上用于開發(fā)可視化計算應用程序的主要工具之一。

下載訓練截圖,以及帶有人臉識別訓練的 Cascade Classifier.XLM 訓練。

現(xiàn)在讓我們用 Python 展示我們的代碼:

import cv2 # OpenCV Import

img = cv2.imread('/content/imagem-computer-vision.jpg', cv2.IMREAD_UNCHANGED) # Import Image with Peoples

cv2_imshow(img)

detector_face = cv2.CascadeClassifier('/content/haarcascade_frontalface_default.xml')

imagem_cinza = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2_imshow(imagem_cinza)

deteccoes = detector_face.detectMultiScale(imagem_cinza, scaleFactor=1.3, minSize=(30,30))

deteccoes

array([[1635,  156,  147,  147],
                 [ 284,  262,  114,  114],
                 [1149,  260,  129,  129],
                 [ 928,  491,  171,  171],
                 [ 222,  507,  151,  151]], dtype=int32)

for (x, y, l, a) in deteccoes:

   #print(x, y, l, a)

   cv2.rectangle(img, (x, y), (x + l, y + a), (0,255,0), 2)

cv2_imshow(img)

我們通過 Google Colab notebook 可視化了人臉識別的處理過程:

將返回數字 5 表示他檢測到5張臉,我們有這些點來指示每張臉,以便你更好地理解,讓我們使用最后一張臉。

len(deteccoes) # Fotal Faces= 5

5

OpenCV 的替代方案

在選擇 OpenCV 的替代方案時,我們采用了以下標準:

· 易于使用

· 可用性

· 可擴展性

· 穩(wěn)健性

· 靈活性

以下是我的替代方案列表,遵循上述標準:

1.Microsoft Computer Vision API

2.AWS Rekognition

3.Google Cloud Vision API

4.Scikit-Image

5.SimpleCV

6.Azure Face API

7.DeepDream

8.IBM Watson Visual Recognition

9.Clarifi

10.DeepPy

結論

在本文中,我們使用 Python OpenCV 庫作為一種工具,以敏捷高效的方式加快人臉識別速度。

參考

image.png


       原文標題 : 實現(xiàn)計算機視覺——人臉檢測

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網
獲取更多精彩內容
文章糾錯
x
*文字標題:
*糾錯內容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網安備 44030502002758號