成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

7行Python的人臉識別

開發 開發工具
AI涉及的領域眾多,圖像識別中的人臉識別是其中一個有趣的分支。百度的BFR,Face++的開放平臺,漢王,訊飛等等都提供了人臉識別的API,對于老碼農而言,自己寫一小段代碼,來看看一張圖片中有幾個人,沒有高大上,只是覺得好玩,而且只需要7行代碼。

[[185860]]

隨著去年alphago 的震撼表現,AI 再次成為科技公司的寵兒。AI涉及的領域眾多,圖像識別中的人臉識別是其中一個有趣的分支。百度的BFR,Face++的開放平臺,漢王,訊飛等等都提供了人臉識別的API,對于老碼農而言,自己寫一小段代碼,來看看一張圖片中有幾個人,沒有高大上,只是覺得好玩,而且只需要7行代碼。

  1. import cv2  
  2. face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml' 
  3. sample_image = cv2.imread('/Users/abel/201612.jpg' 
  4. faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))  
  5. for (x, y, w, h) in faces: 
  6.     cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)  
  7. cv2.imwrite('/Users/abel/201612_detected.png', sample_image); 

第1行 引入 OpenCV

開源是偉大的,使我們視野更開闊,而且不用重復造輪子。這里沒有用PIL,再結合特定算法,而是直接使用了OpenCV(http://opencv.org)。OpenCV是一個基于BSD許可發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上,輕量而且高效,用C/C++編寫,同時提供了Python、Ruby、MATLAB等接口,實現了圖像處理和計算機視覺方面的很多通用算法。

第2行 加載分類器 cv2.CascadeClassifier

CascadeClassifier是Opencv中做人臉檢測時候的一個級聯分類器,該類中封裝的是目標檢測機制即滑動窗口機制+級聯分類器的方式。數據結構包括Data和FeatureEvaluator兩個主要部分。Data中存儲的是從訓練獲得的xml文件中載入的分類器數據;而FeatureEvaluator中是關于特征的載入、存儲和計算。這里采用的訓練文件是OpenCV中默認提供的haarcascadefrontalfacedefault.xml。至于Haar,LBP的具體原理,可以參考opencv的相關文檔,簡單地,可以理解為人臉的特征數據。

第3行 加載目標圖片 imread

人臉識別系統一般分為:人臉圖像采集、人臉圖像預處理、人臉圖像特征提取以及匹配與識別。 簡化起見,之間讀入圖片,這是一張去年中生代北京閉門會的集體照。

[[185861]]

第4行 多尺度檢測 detectMultiScale

調用 CascadeClassifier 中的調detectMultiScale函數進行多尺度檢測,多尺度檢測中會調用單尺度的方法detectSingleScale。 參數說明:

  • scaleFactor 是 圖像的縮放因子
  • minNeighbors 為每一個級聯矩形應該保留的鄰近個數,可以理解為一個人周邊有幾個人臉
  • minSize 是檢測窗口的大小

這些參數都是可以針對圖片進行調整的,處理結果返回一個人臉的矩形對象列表。

第5行 和 第6行 為每個人臉畫一個框

循環讀取人臉的矩形對象列表,獲得人臉矩形的坐標和寬高, 然后在原圖片中畫出該矩形框,調用的是OpenCV的rectangle 方法,其中矩形框的顏色等是可調整的。

第7行 保存檢測后的結果

萬事具備了,調用imwrite,將檢測后的結果保存到指定的位置。結果圖如下:

[[185862]]

神秘感不是這7行代碼,而是OpenCV中的相關實現,OpenCV的中文網也是一個學習體會的好場所。

因此,7行代碼只是個噱頭,真正的核心是OpenCV。然后,安裝OpenCV環境的時候就是有一些坑,特別記錄一下。

基于Mac的OpenCV環境

建議使用Brew 安裝,如果沒有安裝brew,先執行下面命令:

  1. $/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 

然后,指定目標倉庫 $brew tap homebrew/science

安裝OpenCV3 $brew install opencv3

安裝速度取決于網絡,安裝完畢需要綁定Python開發環境,有多種土方法:

1)增加環境變量,將opencv 的site-packages 添加到PYTHONPATH中

2)使用ln 軟連接,將cv2.so 鏈接到python 環境的 site-packages中

3)直接cp cv2.so 到 python 環境的 site-packages 目錄下

更簡單地是執行如下命令:

  1. echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth  
  2. mkdir -p /Users/hecom/.local/lib/python2.7/site-packages 
  3. echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/hecom/.local/lib/python2.7/site-packages/homebrew.pth 

對于強迫癥患者

可以全面安裝opencv的各種插件,如QT插件,視頻插件等:

  1. $brew install opencv3 --with-contrib --with-cuda --with-ffmpeg --with-tbb --with-qt5 

可能會遇到很多坑,如Error: You must ‘brew link texi2html’ before homebrew/science/opencv3 can be installed

當你執行 $brew link texi2html時又會遇錯:Error: Cowardly refusing to 'sudo brew link' You can use brew with sudo, but only if the brew executable is owned by root. However, this is both not recommended and completely unsupported so do so atyour own risk

說明brew 的權限有問題, 需要解決:$sudo chown root:wheel ‘which brew’

在Ubuntu上OpenCV3的源碼安裝

在Ubantu上安裝先要做一下準備活動

  1. $ aptitude -f install 
  2. $ sudo apt-get update 

然后安裝編譯環境: $sudo apt-get install build-essential

安裝依賴庫$sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev還要安裝python 依賴及其它依賴庫$sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

獲得opencv源代碼git clone https://github.com/Itseez/opencv.git

終于可以編譯安裝了:

  1. $cd opencv  
  2. $cmake -D CMAKE_INSTALL_PREFIX=/home/opencv/build -D CMAKE_BUILD_TYPE=RELEASE .. 

最后,安裝python-opencv:

  1. $sudo apt-get install python-opencv 

OpenCV的Python環境簡單驗證

一行代碼驗證OpenCV的Python環境是否成功:

  1. $python -c "import cv2; print dir(cv2)" 

如果輸出了很多cv2 的屬性和函數名的字典,就表示成功;否則的話,還需要繼續填坑。

【本文來自51CTO專欄作者“老曹”的原創文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-07-24 15:06:02

代碼人臉識別實踐

2024-06-12 12:57:12

2024-11-01 07:00:00

人臉識別Python機器學習

2017-10-17 13:30:32

Python人臉識別

2024-09-30 06:04:02

人臉識別Python機器學習

2018-05-11 14:10:17

Python人臉識別

2020-12-23 08:29:08

人臉識別AI人工智能

2019-11-25 13:44:02

人臉識別AI人工智能

2013-05-28 11:08:51

人臉識別html5

2020-08-19 09:25:32

Python人臉識別人工智能

2021-09-07 09:01:07

人臉識別人工智能數據

2021-08-13 10:01:19

人臉識別人工智能數據

2021-03-16 14:57:41

人臉識別安全隱私

2019-09-12 19:00:06

人臉識別AI人工智能

2015-02-10 10:08:59

JavaScript

2021-05-10 11:08:00

人工智能人臉識別

2017-09-19 11:33:00

智能手機 人臉識別

2021-01-29 23:14:31

人臉識別軟件工具

2021-03-09 09:20:09

人臉識別人工智能智能手機

2021-11-03 13:32:28

MetaFacebook人臉識別
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产传媒毛片精品视频第一次 | 国产精品一区二区精品 | 伦理午夜电影免费观看 | 免费毛片网站在线观看 | 夜夜av | 午夜视频大全 | 男女网站免费观看 | 国产成人av电影 | 国产毛片毛片 | 中文字幕一区二区三区精彩视频 | 欧美男人天堂 | 国产男女视频 | 欧美精选一区二区 | 在线观看毛片网站 | 成人在线免费视频 | 日韩av成人在线观看 | 伊人久操 | 国产探花在线观看视频 | 亚洲一区电影 | 国产精品区一区二区三 | 亚洲视频在线一区 | 在线一区二区三区 | 久久丝袜视频 | 亚洲精品免费在线 | 在线国产中文字幕 | 久热久热 | 一区二区免费视频 | 欧美电影一区 | 97福利在线 | 色橹橹欧美在线观看视频高清 | 亚洲欧美在线视频 | 欧美一级大黄 | 草草草网站 | 国产精品久久久久一区二区 | 欧美精品啪啪 | 久久国产99 | 极品的亚洲 | 手机在线一区二区三区 | 欧美日韩不卡合集视频 | 亚洲国产精品91 | 日本不卡免费新一二三区 |