利用百度飛槳製作人臉口罩識別系統

2021-10-08 16:56:14 字數 3636 閱讀 7464

2023年,肆虐全球的新冠肺炎讓我們的生活按下了暫停鍵,如今全球疫情形式依舊不容樂觀。

由於疫情的影響,人臉口罩檢測系統的開發成為很多人爭相開發的一種演算法。很多公司或者個人都開源了他們很多的**或者sdk。大家在github或者各種平台上都能夠找到很多的資源。

系統 windows 10

語言 python 3.7

第三方庫 opencv

# 1.待**

test_img_path =

["115.png"

]# 2.載入模型

module = hub.module(name=

"pyramidbox_lite_mobile_mask"

)# 3.**

input_dict =

results = module.face_detection(data=input_dict)

執行上述**後我們可以在資料夾detection_result中得到我們的檢測結果

中no mask表示沒有佩戴口罩, no mask旁邊的數字代表可信度。

通過查閱其他開源到csdn的**,我根據上述**,利用opencv第三方庫呼叫膝上型電腦自帶攝像頭,我並利用第三方庫tkinter編寫了gui介面,具體**如下:

from tkinter import

*import cv2 as cv

from pil import image, imagetk

import paddlehub as hub

#攝像機設定

#0是代表攝像頭編號,只有乙個的話預設為0

capture=cv.videocapture(0)

defgetframe()

: ref,frame=capture.read(

) cv.imwrite(tempimagepath,frame)

defclosecamera()

: capture.release(

)#介面相關

window_width=

1280

window_height=

960image_width=

int(window_width*

0.8)

image_height=

int(window_height*

0.8)

imagepos_x=

int(window_width*

0.2)

imagepos_y=

int(window_height*

0.1)

butpos_x=

600butpos_y=

800top=tk(

)top.wm_title(

"mask recognition"

)top.geometry(

str(window_width)

+'x'

+str

(window_height)

)def

tkimage

(module)

: ref,frame=capture.read(

) input_dict=

results = module.face_detection(data=input_dict)

for result in results:

x1=int(result[

'data'][

'left'])

y1=int(result[

'data'][

'top'])

x2=int(result[

'data'][

'right'])

y2=int(result[

'data'][

'bottom'])

k2=result[

'data'][

'label'

]if k2==

'mask'

: frame=cv.rectangle(frame,

(x1,y1)

,(x2,y2),(

0,255,0)

,2) cv.puttext(frame, k2,

(x1 -

5, y1 -10)

, cv.font_hershey_plain,

1.0,(0

,255,0

),1)

else

: frame=cv.rectangle(frame,

(x1,y1)

,(x2,y2),(

0,0,

255),2

) cv.puttext(frame, k2,

(x1 -

5, y1 -10)

, cv.font_hershey_plain,

1.0,(0

,0,255),

1)cvimage = cv.cvtcolor(frame, cv.color_bgr2rgba)

pilimage=image.fromarray(cvimage)

pilimage = pilimage.resize(

(image_width, image_height)

,image.antialias)

tkimage = imagetk.photoimage(image=pilimage)

return tkimage

#控制項定義

canvas =canvas(top,bg=

'white'

,width=image_width,height=image_height)

#繪製畫布

#控制項位置設定

canvas.place(x=imagepos_x,y=imagepos_y)

if __name__==

"__main__"

: module=hub.module(name=

"pyramidbox_lite_mobile_mask"

)while

(true):

picture=tkimage(module)

canvas.create_image(0,

0,anchor=

'nw'

,image=picture)

top.update(

) top.after(

100)

top.mainloop(

) closecamera(

)

執行上述程式後,我們即可得到下述軟體介面,如圖所示:

這些就是我做出來的一些成果,希望對大家有用。

百度飛槳心得Final 總結

在這次課程之後,我說不上對深度學習,機器學習了解了多深。但這次課程是一次敲門磚,帶我走進了ml,dl的大門,了解到了這個領域是怎麼運作的,對具體知識的要求,以及 數學的美。在這裡我想總結一下本課程的主要內容,分享給大家,同時便於自己日後翻看。這個專案可以看作是機器學習界的 hello world 通...

百度飛槳(Paddle)使用初體驗

該平台有大量的課程 比賽可以參與,也有詳細的新手指導,更有免費的gpu可以蹭,詳細內容大家自己開啟就可以看到了 裡面有飛槳框架使用的詳細教程與說明,也可以搜尋飛槳api埠呼叫的說明,很方便啦 飛槳本地部署快速安裝 install quick 本次的課程是cv入門,我作為一條研二狗感到汗顏 馬上就要找...

paddlepaddle百度飛槳學習心得

還有詳細的安裝模組講解,簡單案例,經典案例,高階內容等等 然後是專案裡自己最近嘗試修改過的部分 1.資料打亂 老師提供的案例是先得到訓練集資料的索引,然後將索引打亂,從而達到打亂訓練集資料的目的。打亂訓練集資料的原因是 網路對最近得到的資料的印象較深,除非特殊任務本身對日期等有限制,都會事先打亂訓練...