人工智能技術(shù)及應(yīng)用 課件 ch8-人臉檢測(cè)實(shí)踐_第1頁(yè)
人工智能技術(shù)及應(yīng)用 課件 ch8-人臉檢測(cè)實(shí)踐_第2頁(yè)
人工智能技術(shù)及應(yīng)用 課件 ch8-人臉檢測(cè)實(shí)踐_第3頁(yè)
人工智能技術(shù)及應(yīng)用 課件 ch8-人臉檢測(cè)實(shí)踐_第4頁(yè)
人工智能技術(shù)及應(yīng)用 課件 ch8-人臉檢測(cè)實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

8人臉檢測(cè)實(shí)踐FACIALDETECTIONPRACTICEChapter02學(xué)習(xí)目標(biāo)數(shù)據(jù)集采集與標(biāo)注01模型訓(xùn)練 02模型量化03項(xiàng)目落地與部署048人臉檢測(cè)實(shí)踐本章介紹的是人臉檢測(cè)項(xiàng)目,顧名思義,就是通過(guò)目標(biāo)檢測(cè)方法獲取圖像中的人臉,本項(xiàng)目還包括同時(shí)獲取人臉的五個(gè)關(guān)鍵點(diǎn),包括兩只眼睛、鼻子和兩嘴角。單純的人臉檢測(cè)是人臉關(guān)鍵點(diǎn)檢測(cè)的前提,但由于本項(xiàng)目同時(shí)檢測(cè)人臉和關(guān)鍵點(diǎn),因此不需要再單獨(dú)實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)檢測(cè)功能,這能大大提升程序的整體運(yùn)行速度。人臉檢測(cè)的主要應(yīng)用場(chǎng)景有智慧人臉考勤、刷臉閘機(jī)通行、門禁、人臉特效美顏、名人換臉等。

接下來(lái)介紹本項(xiàng)目人臉檢測(cè)的主要流程,如右圖所示,后續(xù)將詳細(xì)介紹流程每一節(jié)點(diǎn)。8.1數(shù)據(jù)集采集與標(biāo)注8.1.1素材采集本項(xiàng)目的素材來(lái)源主要有兩個(gè):1)公開數(shù)據(jù)集本項(xiàng)目使用WIDERFACE數(shù)據(jù)集,下載網(wǎng)址是http://shuoyang1213.me/WIDERFACE/。根據(jù)官網(wǎng)的介紹,WiderFace數(shù)據(jù)集最早是在2015年公開的(v1.0版本)。該數(shù)據(jù)集的圖片來(lái)源是WIDER數(shù)據(jù)集,從中挑選出了32,203圖片并進(jìn)行了人臉標(biāo)注,總共標(biāo)注了393,703個(gè)人臉數(shù)據(jù)。并且對(duì)于每張人臉都附帶有更加詳細(xì)的信息,包括expression(表情),illumination(光照),occlusion(遮擋),pose(姿態(tài))等,如圖所示,后面會(huì)進(jìn)一步介紹。8.1數(shù)據(jù)集采集與標(biāo)注8.1.1素材采集數(shù)據(jù)集文件結(jié)構(gòu)如右所示,包含人臉檢測(cè)和人臉關(guān)鍵點(diǎn)數(shù)據(jù)集,分別存放于WIDER_FACE_rect和WIDER_FACE_landmark文件夾。#人臉檢測(cè)數(shù)據(jù)集├──WIDER_FACE_landmark│├──annotations│ ├──0--Parade│ ├──0_Parade_marchingband_1_849.xml│├──images│ ├──0--Parade│ ├──0_Parade_marchingband_1_849.jpg#人臉關(guān)鍵點(diǎn)數(shù)據(jù)集├──WIDER_FACE_rect│├──annotations│ ├──0--Parade│ ├──0_Parade_marchingband_1_849.xml│├──images│ ├──0--Parade│ ├──0_Parade_marchingband_1_849.jpg8.1數(shù)據(jù)集采集與標(biāo)注8.1.1素材采集WIDER_FACE_rect文件夾包含61類人臉,共12880張jpg格式的圖片和xml格式的標(biāo)簽,分別存放于當(dāng)前目錄下的images和annotations文件夾中,xml標(biāo)簽文件包含了圖片所有人臉的坐標(biāo)。xml標(biāo)簽文件內(nèi)容如下所示:<?xmlversion="1.0"?><annotation> #標(biāo)簽對(duì)應(yīng)的圖像名稱<filename>1501925967889.jpg</filename>#圖像大小,包括寬、高和通道數(shù)<size><width>640</width><height>480</height><depth>3</depth></size>#人臉目標(biāo)<object><name>face</name><truncated>1</truncated><difficult>0</difficult> #人臉框左上角和右下角坐標(biāo)<bndbox><xmin>317</xmin><ymin>0</ymin><xmax>534</xmax><ymax>200</ymax></bndbox> #無(wú)人臉關(guān)鍵點(diǎn)<has_lm>0</has_lm></object></annotation>8.1數(shù)據(jù)集采集與標(biāo)注8.1.1素材采集WIDER_FACE_landmark文件夾包含了同樣類別的人臉,共12596張圖片和標(biāo)簽,同樣分別存放于當(dāng)前目錄下的images和annotations文件夾中,xml標(biāo)簽文件包含了圖片所有人臉關(guān)鍵點(diǎn)的坐標(biāo)。與WIDER_FACE_rect中相同人臉圖像對(duì)應(yīng)的人臉關(guān)鍵點(diǎn)標(biāo)簽文件內(nèi)容如下所示:<?xmlversion="1.0"?><annotation> #標(biāo)簽文件對(duì)應(yīng)的圖像,與上一標(biāo)簽圖像名稱相同,不同是標(biāo)簽包含的信息有區(qū)別<filename>1501925967889.jpg</filename>#圖像大小,包括寬、高和通道數(shù)<size><width>640</width><height>480</height><depth>3</depth></size>#人臉目標(biāo)

<object><name>face</name><truncated>1</truncated><difficult>0</difficult>#人臉框左上角和右下角坐標(biāo)<bndbox><xmin>317</xmin><ymin>0</ymin><xmax>534</xmax><ymax>200</ymax></bndbox> #人臉框?qū)?yīng)的人臉關(guān)鍵點(diǎn)坐標(biāo),包括兩只眼睛、鼻子和兩嘴角坐標(biāo)<lm><x1>389.362</x1><y1>38.352</y1><x2>478.723</x2><y2>36.879</y2><x3>451.773</x3><y3>85.816</y3><x4>405.674</x4><y4>137.589</y4><x5>482.27</x5><y5>133.333</y5></lm> #有人臉關(guān)鍵點(diǎn)<has_lm>1</has_lm></object></annotation>8.1數(shù)據(jù)集采集與標(biāo)注8.1.1素材采集2)自主采集由于不同攝像頭采集的圖像其特征存在差異,因此利用公開數(shù)據(jù)集訓(xùn)練得到的模型有時(shí)候不一定能在自己攝像頭獲取的圖像上推理成功,這時(shí)就需要使用自己攝像頭采集的數(shù)據(jù)集進(jìn)行訓(xùn)練,來(lái)減少訓(xùn)練圖像和推理圖像特征之間存在的差異,從而提升圖像推理成功率。自主采集首先需確定攝像頭類型,然后利用第3.2.4節(jié)介紹的方式進(jìn)行素材采集,此處不再贅述。通過(guò)自主采集獲得數(shù)據(jù)集之后,需要將數(shù)據(jù)集按WIDERFACE數(shù)據(jù)集結(jié)構(gòu)形式存放,有利于后續(xù)的數(shù)據(jù)集制作和數(shù)據(jù)集加載。8.1數(shù)據(jù)集采集與標(biāo)注8.1.2素材標(biāo)注公開數(shù)據(jù)集已包含訓(xùn)練所需的人臉框和關(guān)鍵點(diǎn)標(biāo)簽信息,因此無(wú)需再對(duì)其進(jìn)行標(biāo)注,現(xiàn)主要針對(duì)自主采集的素材進(jìn)行標(biāo)注。首先,根據(jù)項(xiàng)目的具體任務(wù)選擇合適的標(biāo)注軟件。本項(xiàng)目的任務(wù)是對(duì)圖像中的人臉及其5個(gè)關(guān)鍵點(diǎn)進(jìn)行檢測(cè),也就是說(shuō)標(biāo)注素材時(shí)既需要標(biāo)注人臉框,也需要標(biāo)注人臉關(guān)鍵點(diǎn),本項(xiàng)目選擇LabelImge和Sloth標(biāo)注軟件分別對(duì)人臉和關(guān)鍵點(diǎn)進(jìn)行標(biāo)注。其次,標(biāo)注之前,需要明確本項(xiàng)目的圖像標(biāo)注要求。可結(jié)合項(xiàng)目的具體需求對(duì)自主采集的素材進(jìn)行標(biāo)注,標(biāo)注要求如下:1)標(biāo)注人臉框時(shí),人臉框需包含整個(gè)人臉輪廓,不包含耳朵和額頭往上的頭發(fā)部分;標(biāo)注人臉關(guān)鍵點(diǎn)時(shí),關(guān)鍵點(diǎn)應(yīng)在眼睛開合處的中心、鼻尖和嘴角如圖(a)所示。2)當(dāng)人臉是側(cè)臉,且看不見該人臉的眼睛、鼻子和嘴巴時(shí),不標(biāo)注人臉框及其關(guān)鍵點(diǎn),如圖(b)所示。3)當(dāng)人臉被遮擋,且看不見該人臉的眼睛、鼻子和嘴巴或者遮擋超過(guò)一半時(shí),不標(biāo)注人臉框及其關(guān)鍵點(diǎn),如圖(c)所示。4)因圖像較為模糊、曝光較強(qiáng)、光線較暗導(dǎo)致人臉特征不清晰時(shí),不標(biāo)注人臉及其關(guān)鍵點(diǎn),如圖(d)所示。8.2環(huán)境部署 本項(xiàng)目采用的深度學(xué)習(xí)框架是PyTorch,版本為2.0.1。假設(shè)已安裝PyTorch2.0.1虛擬環(huán)境,還需安裝的Python依賴包及其版本如下所示。PackageVersion-----------------------------------------albumentations1.0.3matplotlib3.3.4numpy1.19.2onnx1.9.0onnx-simplifier0.3.6onnxoptimizer0.2.6onnxruntime1.8.0opencv-pythonopencv-python-headless6Pillow8.2.0protobuf3.17.2scikit-image0.17.2scipy1.5.4tqdm4.62.28.2環(huán)境部署 建議將上述依賴包寫入requirements.txt中,然后使用pipinstall-rrequirements.txt自動(dòng)安裝。如果建議方法安裝較慢,也可使用pip單獨(dú)進(jìn)行安裝,命令最后加上國(guó)內(nèi)源,如下所示,即可加快安裝速度。pipinstallalbumentations=1.0.3-i/ubuntu/8.3模型訓(xùn)練8.3.1訓(xùn)練代碼準(zhǔn)備從/ShiqiYu/libfacedetection.train.git下載訓(xùn)練代碼。代碼包含兩部分,如下所示,一部分是數(shù)據(jù)集制作、iou損失計(jì)算、nms、預(yù)選框生成等模塊,一部分是網(wǎng)絡(luò)定義、訓(xùn)練、測(cè)試和ONNX模型轉(zhuǎn)換等相關(guān)腳本。├──src│├──data.py│├──eiou.py│├──multibox_loss.py│├──nms.py│├──prior_box.py│├──timer.py│└──utils.py└──tasks └──task1 ├──config.py ├──datasets.py ├──detect.py ├──exportcpp.py ├──exportonnx.py ├──test.py ├──train.py └──yufacedetectnet.py。8.3模型訓(xùn)練8.3.2模型設(shè)計(jì)思想本項(xiàng)目采用的模型YuFaceDetectNet是一個(gè)輕量級(jí)的SSD架構(gòu),該網(wǎng)絡(luò)實(shí)現(xiàn)了多個(gè)尺度特征預(yù)測(cè),這大大提升了小目標(biāo)的檢測(cè)精度,同時(shí)該網(wǎng)絡(luò)還借鑒了RetinaFace回歸關(guān)鍵點(diǎn)的方法,可以在回歸人臉框的同時(shí)回歸該人臉的5個(gè)關(guān)鍵點(diǎn)。下面通過(guò)代碼實(shí)現(xiàn)的方式詳細(xì)介紹該網(wǎng)絡(luò)模型。首先,定位到項(xiàng)目中train.py中模型的入口,如下代碼所示:#從模型定義文件中導(dǎo)入模型類from

yufacedetectnet

import

YuFaceDetectNet#模型輸入img_dim

=

160#加載模型net

=

YuFaceDetectNet('train',

img_dim)然后,定位至yufacedetectnet.py中的YuFaceDetectNet類,見書本246頁(yè)代碼所示,從__init__、multibox和forward三個(gè)模塊可知,本項(xiàng)目采用的模型由特征提取網(wǎng)絡(luò)和SSD檢測(cè)頭組成,特征提取網(wǎng)絡(luò)采用類似VGG的直筒式結(jié)構(gòu),由多組卷積層以及最大池化層完成下采樣,每組卷積層由兩到三個(gè)卷積模塊組成[3*3+1*1]或[3*3+1*1+3*3]的組合,每個(gè)卷積模塊由卷積Conv2d、歸一化BatchNorm2d和激活函數(shù)ReLu構(gòu)成,即網(wǎng)絡(luò)代碼里的self.model1~self.model6。圖像經(jīng)過(guò)上述特征提取網(wǎng)絡(luò)得到四個(gè)特征層的特征,分別是self.model3、self.model4、self.model5、self.model6層的輸出,這四個(gè)層的特征通過(guò)SSD檢測(cè)頭最終輸出人臉框位置loc、置信度conf和iou。8.3模型訓(xùn)練8.3.2模型設(shè)計(jì)思想最后,定位到SSD模塊的預(yù)選框生成部分,即train.py中的PriorBox類實(shí)例和src/prior_box.py中的PriorBox類實(shí)現(xiàn)部分。由config.py中的cfg字典中的“min_sizes”可知,libfacedetection設(shè)置了四組錨框,分別是[[10,

16,

24],

[32,

48],

[64,

96],

[128,

192,

256]],共有3+2+2+3=9種不同尺寸的預(yù)選框。由src.py中的PriorBox類可知,每組錨框?qū)?yīng)不同的特征層,因此共需要四個(gè)特征層來(lái)生成預(yù)選框,分別是輸入圖像的1/8、1/16、1/32、1/64下的特征層。由上述條件,我們可獲取預(yù)選框生成公式如下:上述公式中,

為生成的預(yù)選框總數(shù)量,

分別表示每個(gè)特征層的寬高,即輸入圖像尺寸的1/8、1/16、1/32、1/64特征尺寸,

表示每個(gè)特征層上的每一個(gè)像素所對(duì)應(yīng)的預(yù)選框個(gè)數(shù),即該特征層對(duì)應(yīng)的一組錨框的尺寸。假如圖像輸入寬高為160和160,有上述公式可得,生成的預(yù)選框總計(jì)(160/8)*(160/8)*3+(160/16)*(160/16)*2+(160/32)*(160/32)*2+(160/64)*(160/64)*3=1200+200+50+45=1495個(gè)。8.3模型訓(xùn)練8.3.3數(shù)據(jù)集制作(1)數(shù)據(jù)集制作通過(guò)第8.1節(jié)素材采集和標(biāo)注,我們得到了一批原始數(shù)據(jù)集,現(xiàn)在需要將原始數(shù)據(jù)集制作成訓(xùn)練時(shí)數(shù)據(jù)集加載所需的文件img_list.txt,該文件每一行保存一張圖片路徑和對(duì)應(yīng)的xml標(biāo)簽文件路徑信息并以空格分開,注意文件名不能有空格,路徑信息由兩部分組成并以符號(hào)“_”連接,“_”之前為該圖片或標(biāo)簽所屬文件夾名,之后為該圖片或標(biāo)簽真實(shí)名稱,如下所示為根據(jù)WIDER_FACE_rect數(shù)據(jù)集制作成的

img_list.txt。0--Parade_0_Parade_marchingband_1_849.jpg0--Parade_0_Parade_marchingband_1_849.xml0--Parade_0_Parade_Parade_0_904.jpg0--Parade_0_Parade_Parade_0_904.xml0--Parade_0_Parade_marchingband_1_799.jpg0--Parade_0_Parade_marchingband_1_799.xml8.3模型訓(xùn)練8.3.3數(shù)據(jù)集制作以第一行為例,圖片路徑信息為0--Parade_0_Parade_marchingband_1_849.jpg,標(biāo)簽路徑信息為0--Parade_0_Parade_marchingband_1_849.xml,中間用空格分開,其中兩者路徑信息0--Parade_0_Parade_marchingband_1_849由兩部分組成并以符號(hào)“_”連接,其中0--Parade是該圖片和標(biāo)簽所屬的文件夾,0_Parade_marchingband_1_849.jpg為該文件夾下一張圖片的名稱,具體的圖片路徑為WIDER_FACE_rect/images/0--Parade/0_Parade_marchingband_1_849.jpg,標(biāo)簽路徑為WIDER_FACE_rect/annotations/0--Parade/0_Parade_marchingband_1_849.xml,該路徑將由后續(xù)數(shù)據(jù)集加載部分獲取。現(xiàn)在,我們使用make_data_list.py中的如下代碼將數(shù)據(jù)集制作成img_list.txt,如果公開數(shù)據(jù)集中已生成該文件,可忽略此操作。8.3模型訓(xùn)練8.3.3數(shù)據(jù)集制作(2)數(shù)據(jù)集加載根據(jù)(1)獲取數(shù)據(jù)集文件img_list.txt后,在訓(xùn)練時(shí)需要對(duì)img_list.txt包含的所有圖片和標(biāo)簽進(jìn)行加載,即根據(jù)設(shè)置的數(shù)據(jù)集目錄和img_list.txt文件,對(duì)數(shù)據(jù)集進(jìn)行解析。解析模塊包括xml轉(zhuǎn)換、圖像增強(qiáng)、裁剪等。dataset_rect=FaceRectLMDataset(training_face_rect_dir,img_dim,rgb_mean)使用PyTorch數(shù)據(jù)加載模塊加載數(shù)據(jù),輸出是一個(gè)以批次(batchsize)為單位的字典。train_loader=torch.utilis.data.DataLoader(dataset=dataset,batch_size=batch_size,collate_fn=detection_collate,shuffle=True,num_workers=num_workers,pin_memory=False,drop_last=True,)讀入PyTorch數(shù)據(jù)加載結(jié)果,以batch為單位,將數(shù)據(jù)送入網(wǎng)絡(luò),得到網(wǎng)絡(luò)推理結(jié)果。foriter_idx,one_batch_datainenumerate(train_loader) images,targets=one_batch_data out=net(images)8.3模型訓(xùn)練8.3.4訓(xùn)練參數(shù)設(shè)置'--training_face_rect_dir''--training_face_landmark_dir''-b','--batch_size''--num_workers''--gpu_ids''--lr','--learning-rate''--momentum''--resume_net''--resume_epoch''-max','--max_epoch''--weight_decay''--gamma''--weight_filename_prefix''--lambda_bbox''--lambda_iouhead'1)優(yōu)化器和損失函數(shù)optimizer=optim.SGD(net.parameters(),lr=args.lr,momentum=momentum,weight_decay=weight_decay)criterion=MultiBoxLoss(num_classes,0.35,True,0,True,3,0.35,False,False)#lossofdifferentpartloss_l,loss_lm,loss_c,loss_iou=criterion(out,priors,targets)#backpropoptimizer.zero_grad()loss.backward()optimizer.step()8.3模型訓(xùn)練8.3.4訓(xùn)練2)訓(xùn)練在設(shè)置參數(shù)后,就可以訓(xùn)練了。訓(xùn)練腳本train.sh如下:pythontrain.py--gamma0.1--gpu_ids0,1,2可以在腳本中適當(dāng)增加定制參數(shù)。nohuptrain.sh&3)保存模型見train.py中的相關(guān)代碼。4)測(cè)試pythondetect.py-mweights/yunet_final.pth--

image_file=test.jpg測(cè)試所需源圖像如左圖所示,其推理結(jié)果如右圖所示。5)結(jié)果評(píng)估pythontest.py-mweights/yunet_final.pth8.4模型量化8.4.1ONNX轉(zhuǎn)換及測(cè)試

代碼清單8-3#第一步,從pth文件加載模型#第二步,使用torch的onnx模塊導(dǎo)出onnx模型weights=“weights/yunet_final.pth”file=weights.replace('.pt','.onnx')torch.onnx.export(model,img,file,verbose=False,opset_version=11,input_names=['images'],dynamic_axes={'images':{0:'batch',2:'height',3:'width'},'output':{0:'batch',2:'y',3:'x'}}ifopt.dynamicelseNone)#第三步,checkimportonnxmodel_onnx=onnx.load(f)onnx.checker.check_model(model_onnx)#第四步,簡(jiǎn)化importonnxsimmodel_onnx,check=onnxsim.simplify(model_onnx,dynamic_input_shape=opt.dynamic,input_shapes={'images':list(img.shape)}ifopt.dynamicelseNone)onnx.save(model_onnx,file)8.4模型量化8.4.1ONNX轉(zhuǎn)換及測(cè)試

onnx轉(zhuǎn)rknn#第一步,創(chuàng)建rknn對(duì)象rknn=RKNN()#第二步,預(yù)處理配置rknn.config(channel_mean_value='0.00.00.01.0',reorder_channel='201',target_platform=target_platform_str)#第三步,加載onnx模型ret=rknn.load_onnx(model='weights/yunet_final.onnx')#第四步,構(gòu)建模型ret=rknn.build(do_quantization=True,dataset='./dataset300_192.txt',pre_compile=True)#第五步,輸出rknn模型ret=rknn.export_rknn('./face_det.rknn')#第六步,釋放資源rknn.release()最終生成的模型如下圖所示8.4模型量化8.4.2rknn轉(zhuǎn)換及測(cè)試importrknn#Setinputsimg=cv2.imread('./cat_224x224.jpg')img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)print('-->Initruntimeenvironment')ret=rknn.init_runtime()ifret!=0:print('Initruntimeenvironmentfailed')exit(ret)print('done')#Inferenceprint('-->Runningmodel')outputs=rknn.inference(inputs=[img])show_outputs(outputs)print('done')#perf-性能測(cè)試print('-->Beginevaluatemodelperformance')perf_results=rknn.eval_perf(inputs=[img])print('done')8.6項(xiàng)目落地8.6.1編譯環(huán)境

操作系統(tǒng) Linux5.13.0-30-generic#33~20.04.1-UbuntuSMPMonFeb714:25:10UTC2022x86_64x86_64x86_64GNU/Linux

編譯器 gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu。 需要提前加入到系統(tǒng)的環(huán)境變量中。加入環(huán)境變量的步驟如下。1)cdtools/rk1808/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-

x86_64_aarch64-linux-gnu/bin/2)pwd3)拷貝pwd輸出地址4)vi~/.bashrc5)在.bashrc文件最后增加exportPATH=$PATH:XXXXXX為拷貝的pwd地址6)保存退出(ESC;冒號(hào);wq;回車) 驗(yàn)證環(huán)境變量是否設(shè)置成功aarch64-linux-gnu-gcc–version若設(shè)置成功,會(huì)有類似右圖的信息輸出8.6項(xiàng)目落地8.6.2基礎(chǔ)庫(kù)準(zhǔn)備首先,編譯算法部署所需要的基礎(chǔ)庫(kù)。之所以稱為基礎(chǔ)庫(kù),是因?yàn)檫@些模塊對(duì)對(duì)于不同的算法來(lái)說(shuō)一般不用修改。部署所需的庫(kù)如下所示├──libcamera_hq.so//攝像頭處理庫(kù)├──libffmpeg_dec_lib.so//視頻解碼庫(kù),使用ffmpeg軟解├──libhq_rknn.so//模型處理庫(kù),包括初始化、推理等├──liblog_hq.so//日志庫(kù),實(shí)際上是封裝的spdlog庫(kù)。有關(guān)spdlog可以參考/gabime/spdlog├──libobject_det.so//目標(biāo)檢測(cè)后處理庫(kù)├──librga_hq.so//rga(rockchip的圖形加速單元)庫(kù)└──libvideo_source.so//視頻源處理8.6項(xiàng)目落地8.6.3測(cè)試程序部署測(cè)試程序的源碼目錄如下所示libfacedetection_rknn├──CMakeLists.txt├──lib│├──CMakeLists.txt│├──face_cnn_interface.h│├──face_cnn_proc.cpp│├──face_cnn_proc.h│├──globle.cpp│├──globle.h└──proc├──CMakeLists.txt├──face_proc.cpp├──face_proc.h├──face_proc_interface.h├──main.cpp8.6項(xiàng)目落地8.6.3測(cè)試程序部署編譯步驟如下mkdirbuildcdbuildcmake-DTARGET_SDK=sdk_rk1808..make-j8makeinstall編譯完成后,可以得到兩個(gè)庫(kù)和一個(gè)二進(jìn)制文件,如下所示├──bin│├──face_proc_test└──lib

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論