日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库

發布時間:2023/12/10 目标检测 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關注&置頂“算法猿的成長

每日8:30,干貨速遞!

2019 年第 73 篇文章,總第 97 篇文章

今天介紹一個簡單、易用的開源計算機視覺庫,名字是?cvlib,其 Github 地址:

https://github.com/arunponnusamy/cvlib

官方文檔地址:

http://cvlib.net/

安裝

cvlib?這個庫首先需要安裝這兩個庫:

  • tensorflow

  • opencv

快速的安裝方法是:

pip?install?opencv-python?tensorflow

當然上述安裝的 tensorflow 是 cpu 版本,如果希望安裝可以使用 gpu 的,安裝包名字是?tensorflow-gpu?,安裝 gpu 版本需要注意安裝正確版本的英偉達驅動、CUDA、CUDNN。

接著就是正式安裝?cvlib,簡單的安裝方法是通過?pip:

pip?install?cvlib

如果是希望升級到最新版本,命令為:

pip?install?--upgrade?cvlib

第二種通過源碼安裝方法,只需要按照下列命令依次執行即可:

git?clone?https://github.com/arunponnusamy/cvlib.git cd?cvlib python?setup.py?sdist pip?install?.

注意:目前僅在 Python 3.x 版本測試通過,而 2.x 版本并沒有進行測試,所以建議在 Python 3.x 環境使用該庫。

主要功能

目前?cvlib?支持以下幾種應用:

  • 人臉檢測

  • 性別檢測

  • 目標檢測

人臉檢測

人臉檢測的接口是?detect_face(),返回的結果是所有檢測到的人臉的一個坐標點和置信度。

代碼示例:

import?cvlib?as?cv import?sys import?cv2 import?os?#?read?input?image image?=?cv2.imread(sys.argv[1])#?apply?face?detection faces,?confidences?=?cv.detect_face(image)print(faces) print(confidences)#?loop?through?detected?faces for?face,conf?in?zip(faces,confidences):(startX,startY)?=?face[0],face[1](endX,endY)?=?face[2],face[3]#?draw?rectangle?over?facecv2.rectangle(image,?(startX,startY),?(endX,endY),?(0,255,0),?2)#?display?output #?press?any?key?to?close?window??????????? cv2.imshow("face_detection",?image) cv2.waitKey()#?save?output cv2.imwrite("face_detection.jpg",?image)#?release?resources cv2.destroyAllWindows()

輸出結果如下所示:

人臉檢測的底層實現其實是通過 OpenCV 的?dnn?模塊,并加載一個預訓練的?caffemodel。

性別檢測

性別檢測的接口是?detect_gender(),返回的是標簽(男性or女性)以及預測的概率。

代碼示例:

import?cv2 import?cvlib?as?cv import?sys import?numpy?as?np#?read?input?image img?=?cv2.imread(sys.argv[1])#?apply?face?detection face,?conf?=?cv.detect_face(img)#?loop?through?detected?faces for?f?in?face:(startX,startY)?=?f[0],f[1](endX,endY)?=?f[2],f[3]#?draw?rectangle?over?facecv2.rectangle(img,?(startX,startY),?(endX,endY),?(0,255,0),?2)face_crop?=?np.copy(img[startY:endY,?startX:endX])#?apply?gender?detection(label,?confidence)?=?cv.detect_gender(face_crop)print(confidence)print(label)idx?=?np.argmax(confidence)label?=?label[idx]label?=?"{}:?{:.2f}%".format(label,?confidence[idx]?*?100)Y?=?startY?-?10?if?startY?-?10?>?10?else?startY?+?10cv2.putText(img,?label,?(startX,?Y),??cv2.FONT_HERSHEY_SIMPLEX,0.7,?(0,?255,?0),?2)#?display?output #?press?any?key?to?close?window??????????? cv2.imshow("gender?detection",?img) cv2.waitKey()#?save?output cv2.imwrite("gender_detection.jpg",?img)#?release?resources cv2.destroyAllWindows()

輸出結果如下所示:

從示例代碼可以看到,首先是需要檢測人臉,然后將人臉部分傳入性別檢測接口,再得到最終的檢測結果。其底層實現是采用 keras 的預訓練模型,不過其準確率并不是特別的高,所以可以自己優化模型,提升性別檢測的準確率,然后替換模型。

目標檢測

目標檢測的接口是?detect_common_objects(),它用于檢測常見的物體,返回結果是圖片中檢測到的物體的坐標、類別標簽以及置信度。

代碼示例如下:

import?cvlib?as?cv from?cvlib.object_detection?import?draw_bbox import?sys import?cv2#?read?input?image image?=?cv2.imread(sys.argv[1])#?apply?object?detection bbox,?label,?conf?=?cv.detect_common_objects(image)print(bbox,?label,?conf)#?draw?bounding?box?over?detected?objects out?=?draw_bbox(image,?bbox,?label,?conf)#?display?output #?press?any?key?to?close?window??????????? cv2.imshow("object_detection",?out) cv2.waitKey()#?save?output cv2.imwrite("object_detection.jpg",?out)#?release?resources cv2.destroyAllWindows()

輸出結果:

目標檢測的底層實現是采用在 COCO 數據集上訓練的 YOLOv3 模型。

另外,上述三個功能其實不僅是對圖片進行檢測,還可以實時調用,通過攝像頭捕捉到的實時返回結果,代碼例子可以查看:

https://github.com/arunponnusamy/cvlib/tree/master/examples

其他功能

除了上述三個主要功能,其實?cvlib?也還能實現以下兩個功能:

  • 獲取視頻的幀

  • 生成 gif 動圖

獲取視頻的幀是在?utils.py?中的函數?get_frames(),輸入是視頻的路徑,使用方法如下所示:

import?cvlib?as?cv frames?=?cv.get_frames('~/Downloads/demo.mp4')

也可以添加一個保存所有幀的文件夾路徑,返回的幀?frames?是用列表保存的?numpy?數組形式。

frames?=?cv.get_frames('~/Downloads/demo.mp4',?'~/Downloads/demo_frames/')

生成 gif 動圖則是函數?animate()?實現的,它需要輸入一批圖片或者保存圖片的文件夾路徑,然后返回一個 gif 并保存。

cv.animate(frames,?'~/Documents/frames.gif')

這兩個功能,具體可以查看:

https://github.com/arunponnusamy/cvlib/blob/master/cvlib/utils.py#L48

https://github.com/arunponnusamy/cvlib/blob/master/cvlib/utils.py#L87

小結

今天介紹的計算機視覺庫?cvlib?是一個非常容易上手的工具,簡單實現了人臉檢測、性別檢測和目標檢測三個非常常用的應用。

最后,前兩張圖片其實是來自一部美劇《硅谷》,這是一部講述幾個程序員創業的故事,非常有趣又有常見的程序員梗,目前出了第四季,第五季也是最后一季估計是在年底播出,還是非常推薦大家看看的。

歡迎關注我的微信公眾號--算法猿的成長,或者掃描下方的二維碼,大家一起交流,學習和進步!

如果覺得不錯,在看、轉發就是對小編的一個支持!

推薦閱讀

  • -?[資源分享] Github上八千Star的深度學習500問教程

  • 必讀的AI和深度學習博客

  • [Github項目推薦] 機器學習& Python 知識點速查表

  • [Github項目推薦] 推薦三個助你更好利用Github的工具

  • Github上的各大高校資料以及國外公開課視頻

總結

以上是生活随笔為你收集整理的Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。