亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于圖像深度學(xué)習(xí)的牛個(gè)體的識別與統(tǒng)計(jì)

        2022-01-22 07:21:44何欽李根嚴(yán)永煜于文靜王嶸
        電子測試 2021年21期
        關(guān)鍵詞:優(yōu)化檢測模型

        何欽,李根,嚴(yán)永煜,于文靜,王嶸

        (華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海,200237)

        0 引言

        在傳統(tǒng)的養(yǎng)牛行業(yè),常見的識別方法包括基于耳標(biāo)的系統(tǒng)識別,基于圖案的標(biāo)記技術(shù),嵌入式微芯片生物標(biāo)記技術(shù)[1]以及基于RFID的射頻識別系統(tǒng)。傳統(tǒng)的識別系統(tǒng)用于防止動(dòng)物的盜竊、數(shù)量的統(tǒng)計(jì)、個(gè)體識別、疾病監(jiān)測等一系列管理,然而這些傳統(tǒng)的識別方法無法阻止對動(dòng)物體內(nèi)嵌入標(biāo)簽的復(fù)制和篡改,進(jìn)而發(fā)生欺詐行為。隨著現(xiàn)代化養(yǎng)牛業(yè)的發(fā)展,通過圖像識別實(shí)現(xiàn)群體中個(gè)體識別及數(shù)量的統(tǒng)計(jì)從而實(shí)現(xiàn)精細(xì)化管理成為目前智能化養(yǎng)殖的一個(gè)新興熱點(diǎn)。本項(xiàng)目利用TensorFlow object Detection API及Intel OpenVINOTM工具套件在目標(biāo)識別的快速性、便利性及高遷移性,并利用牛的特征信息改善其精確度,建立自己的數(shù)據(jù)集進(jìn)行訓(xùn)練,實(shí)現(xiàn)圖像中目標(biāo)牛數(shù)量的統(tǒng)計(jì)及多目標(biāo)的標(biāo)定,目前未見相關(guān)技術(shù)應(yīng)用于牛類養(yǎng)殖業(yè)。

        1 牛類養(yǎng)殖行業(yè)現(xiàn)狀

        牛養(yǎng)殖行業(yè)的規(guī)模在現(xiàn)代科技的輔助下不斷擴(kuò)大,然而其監(jiān)管方法卻存在著很多瑕疵。傳統(tǒng)方法之一的生物耳紋身及機(jī)械烙印方法不僅標(biāo)記過程極為耗時(shí)而且容易丟失、損壞、可二次復(fù)制;再者,像RFID等電子標(biāo)簽技術(shù)的缺陷在于電子標(biāo)簽可能會遭到修改、復(fù)制,極易造成欺詐行為,降低可監(jiān)管的程度。現(xiàn)提出的前沿技術(shù)主要有三種:視網(wǎng)膜血管形態(tài)、DNA測序檢測、基于生物虹膜特征的動(dòng)物識別[2],由于高昂的檢測費(fèi)用及虹膜數(shù)據(jù)獲取效率低下的原因,不被廣泛采用。隨著圖像處理技術(shù)的普及和發(fā)展,利用圖像識別算法輔助牛類畜牧業(yè)監(jiān)管為相關(guān)企業(yè)提供了一定的借鑒作用。

        2 牛個(gè)體識別與統(tǒng)計(jì)關(guān)鍵技術(shù)

        2.1 TensorFlow

        TensorFlow是目前非常流行的開源機(jī)器學(xué)習(xí)平臺。它擁有極其豐富的而全面的社區(qū)資源,且包含大量工具及不同應(yīng)用方向的機(jī)器學(xué)習(xí)庫。在本項(xiàng)目中主要應(yīng)用到了TensorFlow Object Detection技術(shù),其發(fā)源于Google公司物體識別系統(tǒng)。2017年Google宣布將TensorFlow Object Detection API進(jìn)行開源,幫助機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺社區(qū)進(jìn)一步發(fā)展。其次,TensorFlow還提供了預(yù)訓(xùn)練模型。TensorFlow預(yù)訓(xùn)練模型提供了在多個(gè)數(shù)據(jù)集上完成了訓(xùn)練的模型。使用該技術(shù)可以迅速的對目標(biāo)對象進(jìn)行標(biāo)定,同時(shí)模型的訓(xùn)練基于TensorFlow預(yù)訓(xùn)練模型可以輕松實(shí)現(xiàn)目標(biāo)對象的訓(xùn)練。

        2.2 SSD目標(biāo)檢測算法

        2.2.1 原理

        Single Shot MultiBox Detector(SSD)目標(biāo)檢測算法屬于one-stage方法,相較于two-stage方法有很大的不同:two-stage方法是先進(jìn)行粗略的分劃,再對分劃后的對象進(jìn)行判斷。而one-stage方法首先在圖片的不同位置進(jìn)行均勻密集地抽樣,抽樣時(shí)可以采用不同尺度和長寬比,然后利用CNN提取特征后直接進(jìn)行分類與回歸,整個(gè)過程只需要一步,所以其優(yōu)勢是速度快,但是均勻密集采樣的一個(gè)重要缺點(diǎn)是訓(xùn)練比較困難,這主要是因?yàn)槟繕?biāo)與背景極其不均衡,導(dǎo)致模型準(zhǔn)確度稍低。

        2.2.2 設(shè)計(jì)

        SSD最核心的設(shè)計(jì)理念分為三點(diǎn):采用多尺度特征圖用于檢測、采用卷積進(jìn)行檢測、設(shè)置先驗(yàn)框。

        多尺度特征圖,可以用來檢測不同大小的目標(biāo)。一般最開始的特征圖尺度較大,可以用來檢測較小的目標(biāo),然后對特征圖進(jìn)行處理,改變特征圖的尺度,而小的特征圖檢測大目標(biāo)。其次,SSD直接采用卷積對不同的特征圖來進(jìn)行提取檢測結(jié)果。對于任意大小的特征圖,采用一個(gè)卷積核進(jìn)行處理,得到檢測值,然后對目標(biāo)結(jié)果進(jìn)行判斷。最后,SSD借鑒了Faster R-CNN中的anchor的理念,每個(gè)單元格設(shè)置了不同尺度的先驗(yàn)框,預(yù)測框是以這些先驗(yàn)框?yàn)榛A(chǔ)的,可以在一定的程度上減少訓(xùn)練難度。一般情況下,針對不同的對象,有不同形狀的先驗(yàn)框。

        在SSD中對于每個(gè)單元的先驗(yàn)框都輸出一套獨(dú)立的檢測值,對應(yīng)一個(gè)邊界框。檢測值分成兩個(gè)部分,第一個(gè)部分是各個(gè)類別的置信度,特別的是,SSD將背景也看做一個(gè)特殊的類別,如果檢測目標(biāo)共有n個(gè)類別,SSD需要對每個(gè)先驗(yàn)框預(yù)測n+1個(gè)置信度,其中第一個(gè)置信度代表的是先驗(yàn)框內(nèi)容為背景的評分。第二部分是邊框的位置,邊框包含四個(gè)元素(cx,cy,w,h),分別代表了邊框的中心坐標(biāo)、寬和高。先驗(yàn)框用表示,其對應(yīng)邊界框那么,邊界框的預(yù)測值l是b相對于d的轉(zhuǎn)換值:

        一般我們將其稱為編碼,當(dāng)?shù)玫搅祟A(yù)測值的時(shí)候需要反向這個(gè)過程,稱為解碼,即從預(yù)測值和先驗(yàn)值推出邊框的真實(shí)位置:

        2.3 OpenVINOTM工具套件

        OpenVINOTM工具套件是英特爾于2018年發(fā)布的主要用于計(jì)算機(jī)視覺實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型優(yōu)化和推理計(jì)算加速的軟件工具套件。該工具套件基于最新一代的人工神經(jīng)網(wǎng)絡(luò),可擴(kuò)展跨英特爾?硬件的計(jì)算機(jī)視覺和非視覺工作負(fù)載。OpenVINOTM主要包括用于優(yōu)化神經(jīng)網(wǎng)絡(luò)模型的工具M(jìn)odel Optimizer和用于加速推理計(jì)算的軟件包Inference Engine。如圖1所示。

        圖1 OpenVINO?工具套件

        當(dāng)模型訓(xùn)練完畢,導(dǎo)出TensorFlow凍結(jié)圖模型文件(*.pb文件),接著使用工具套件中的Model Optimizer工具優(yōu)化凍結(jié)圖模型。Model Optimizer工具是一個(gè)跨平臺命令行工具,可將經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型執(zhí)行多項(xiàng)優(yōu)化。優(yōu)化完畢后會將模型從源框架轉(zhuǎn)換為與nGraph兼容的中間表示(IR文件)。IR文件包含兩個(gè)文件,一個(gè)是描述神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的*.xml文件,另一個(gè)是儲存模型權(quán)重參數(shù)的*.bin文件。優(yōu)化過后的模型在不影響精度的情況下,在英特爾的多平臺硬件上可以更快的執(zhí)行。

        獲得IR文件后,就可以使用Inference Engine來完成推理計(jì)算。Inference Engine其本質(zhì)為一組C++/Python API函數(shù),依靠該函數(shù)組,可以實(shí)現(xiàn)初始化AI推理計(jì)算硬件,同步或者異步加載經(jīng)過優(yōu)化后的神經(jīng)網(wǎng)絡(luò)模型及執(zhí)行推理計(jì)算并返回推理計(jì)算的結(jié)果。

        3 牛個(gè)體的識別與統(tǒng)計(jì)

        3.1 環(huán)境

        本文所有工作在以下環(huán)境中完成:

        Windows 10(64 bit),Ubuntu 20.04,labelImg Windows_v1.8.0,TensorFlow Obeject Detection API r1.13.0,OpenVINO 2021.2,Cmake V3.4,CPU為 intel i7-10875H;GPU為Nvidia RTX 2070s

        3.2 數(shù)據(jù)集的收集及標(biāo)注

        原始圖片一部分來源于Kaggle數(shù)據(jù)集,一部分來源于現(xiàn)場拍攝。圖片清晰,噪點(diǎn)較少,且包含牛個(gè)體不同角度的照片,部分圖片中牛的數(shù)量多于1頭,在后期的時(shí)候都需要進(jìn)行標(biāo)注。在標(biāo)注前需要進(jìn)行準(zhǔn)備工作,將圖片按照順序標(biāo)號同時(shí)轉(zhuǎn)換為標(biāo)準(zhǔn)RGB通道格式。原始數(shù)據(jù)如圖2所示:

        圖2 原始圖片數(shù)據(jù)集

        其次進(jìn)行標(biāo)注工作,本項(xiàng)目使用LabelImg軟件進(jìn)行標(biāo)定。提前預(yù)設(shè)標(biāo)簽,在圖片數(shù)據(jù)集中將目標(biāo)進(jìn)行人工標(biāo)記,如圖3所示。在完成所有圖片的標(biāo)記之后每張圖片會自動(dòng)生成xml文件,其中包括目標(biāo)檢測對象在圖片中的位置和標(biāo)簽信息。

        圖3 圖片標(biāo)記過程

        圖4 圖片標(biāo)記典型流程

        圖5 xml文件標(biāo)記信息

        數(shù)據(jù)集中用來訓(xùn)練的圖片和用來作驗(yàn)證的圖片比例為8:2,本項(xiàng)目訓(xùn)練數(shù)據(jù)集為812張,測試數(shù)據(jù)集為208張。

        3.3 使用TensorFlow訓(xùn)練模型

        3.3.1 數(shù)據(jù)集的轉(zhuǎn)換

        TensorFlow推薦使用TFRecord格式文件向TensorFlow模型輸入訓(xùn)練數(shù)據(jù),該數(shù)據(jù)結(jié)構(gòu)下訓(xùn)練速度最快、效率最高。TensorFlow內(nèi)核很多的數(shù)據(jù)處理機(jī)制都是基于TFRecord文件做的優(yōu)化。TFRecord格式文件是TensorFlow定義的二進(jìn)制文件,基于Google Protocol Buffers這個(gè)跨平臺跨語言序列化結(jié)構(gòu)數(shù)據(jù)的協(xié)議標(biāo)準(zhǔn)。其擴(kuò)展名為*.tfrecord。因此為了提高訓(xùn)練效率,需要將xml文件轉(zhuǎn)換為csv文件進(jìn)行過渡,然后將csv文件轉(zhuǎn)換為tfrecord文件。

        csv主要是將xml中的信息進(jìn)行整合,其內(nèi)容包括:圖片文件名Filename;圖片寬度Width;圖片高度Height;標(biāo)注Class;坐標(biāo)的起始位置和終止位置Xmin、Ymin、Xmax、Ymax。如圖6所示。

        圖6 csv文件提取xml文件內(nèi)容

        在得到csv文件后,將其轉(zhuǎn)換為tfrecord文件即可作為標(biāo)準(zhǔn)輸入文件,輸入目標(biāo)檢測網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

        3.3.2 基于預(yù)訓(xùn)練模型進(jìn)行模型訓(xùn)練

        本項(xiàng)目使用的預(yù)訓(xùn)練模型網(wǎng)絡(luò)為ssd_inception_v2_coco,結(jié)合SSD目標(biāo)檢測方法[3]和inception特征提取網(wǎng)絡(luò)對原始數(shù)據(jù)集進(jìn)行訓(xùn)練。在訓(xùn)練之前需要設(shè)置訓(xùn)練參數(shù),為了更有效率的完成訓(xùn)練,本項(xiàng)目采取TensorFlow-gpu進(jìn)行基于GPU的訓(xùn)練。

        本次實(shí)驗(yàn)參數(shù)的設(shè)置為:Batch_size為6,訓(xùn)練步數(shù)為5000步。在訓(xùn)練過程中可以使用TensorFlow的可視化工具tensorboard對相關(guān)參數(shù)進(jìn)行監(jiān)控和調(diào)整。主要關(guān)注的參數(shù)為Loss虧損函數(shù),主要用于描述訓(xùn)練的模型參數(shù)同真實(shí)值之間的差異,在訓(xùn)練過程中會隨著訓(xùn)練步數(shù)的增加而減小,其值越接近于0說明其訓(xùn)練效果越好。

        在訓(xùn)練完成之后得到model.ckpt.data-00000-of-00001、model.ckpt.index和model.ckpt.meta文件。這三個(gè)文件一起構(gòu)成TensorFlow和Checkpoint文件,是訓(xùn)練過程中保存的模型變量、模型權(quán)重等重要參數(shù)。當(dāng)模型訓(xùn)練完畢后需要執(zhí)行Frozen操作,將所有變量的值提取出來變成常量,同模型權(quán)重一起合并為一個(gè)*.pb文件作為后期推理計(jì)算的模型文件。

        3.3.3 Loss函數(shù)

        Loss函數(shù)作為模型訓(xùn)練中的一個(gè)重要參數(shù),可以通過其數(shù)值大小來反映訓(xùn)練效果。SSD算法中的損失函數(shù)定義為位置誤差(localization loss,loc)與置信度誤差(confidence loss, conf)的加權(quán)和[4]:

        其中,N為符合先驗(yàn)框的樣本數(shù)量,c為類別置信度預(yù)測值,l為邊界框的預(yù)測值,α為權(quán)重系數(shù),設(shè)置為1,g為真實(shí)框的位置參數(shù)。

        同時(shí)SSD采用Smooth L1 loss方法計(jì)算位置誤差:

        采用softmax loss表示:

        其中,Neg代表負(fù)樣本集。

        通過TensorFlow自帶的tensorboard可以將該過程可視化,隨時(shí)監(jiān)控訓(xùn)練的過程,如圖所示。在經(jīng)過10000步迭代后loss值約為1.37。

        圖7 classification_loss變化趨勢

        圖8 locallization_loss變化趨勢

        圖9 TotalLoss變化趨勢

        圖10 clone_loss變化趨勢

        3.4 使用OpenVINOTM進(jìn)行模型優(yōu)化

        當(dāng)模型訓(xùn)練完畢,可以導(dǎo)出TensorFlow凍結(jié)圖模型文件(*.pb文件),接著使用OpenVINOTM中的Model Optimizer工具優(yōu)化TensorFlow凍結(jié)圖模型,獲得模型的中間表示(IR)。IR模型包含兩個(gè)文件,一個(gè)是描述神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的*.xml文件,另一個(gè)是儲存模型權(quán)重參數(shù)的*.bin文件。經(jīng)過該工序優(yōu)化過后的模型,在不影響精度的情況下,在英特爾的多平臺硬件上可以更快的執(zhí)行,為之后的硬件實(shí)現(xiàn)提供基礎(chǔ)。

        3.5 可視化測試結(jié)果

        在模型優(yōu)化完畢后,可在基于Intel的平臺之間通用。從測試結(jié)果可以看出模型還是具有相當(dāng)好的泛化效果。經(jīng)過完整的測試,本次訓(xùn)練的模型識別精度較低,并不是特別理想。由于識別過程對背景、圖片的清晰度有一定的要求,且牛群相互遮擋時(shí)的識別效果不佳,總體的識別率還是有待提高,后期的改進(jìn)措施應(yīng)提高訓(xùn)練步數(shù)至150k乃至300k步迭代,其次通過圖片的變換豐富原始數(shù)據(jù)集,得到更好的訓(xùn)練模型。

        圖11 牛個(gè)體檢測示意圖1

        圖12 牛個(gè)體檢測示意圖2

        3.6 基于Nvidia Jetson nano 和Intel NCS 2的硬件實(shí)現(xiàn)

        Nvidia Jetson nano是Nvidia推出的GPU運(yùn)算平臺,可以做為嵌入式設(shè)備實(shí)現(xiàn)推理。Intel Neural Compute Stick 2 (NCS2) 是Intel公司推出的邊緣側(cè)推理加速設(shè)備。本項(xiàng)目引入Nvidia Jetson nano和Intel NCS 2,將上述部分的所有環(huán)境移植到Ubuntu 20.02系統(tǒng)中實(shí)現(xiàn)了基于視頻流的牛個(gè)體識別與檢測,為相關(guān)企業(yè)提供了基于圖像處理的監(jiān)管方案。

        4 總結(jié)

        本文從圖像處理角度為牛養(yǎng)殖業(yè)提出了新的監(jiān)管手段,基于TensorFlow框架和OpenVINOTM實(shí)現(xiàn)了牛個(gè)體的識別與統(tǒng)計(jì),為大規(guī)模畜牧業(yè)養(yǎng)殖的監(jiān)管提出了新的解決思路。在該構(gòu)想的實(shí)現(xiàn)過程中也有很大的改善空間,如牛群遮擋狀況下的識別,以及超大規(guī)模的牛群識別等。John Hopkins大學(xué)提出了使用殘差網(wǎng)絡(luò)估計(jì)大密度人群[5],下一步研究的方向集中于如何利用殘差提取網(wǎng)絡(luò)對超大規(guī)模的牛群實(shí)現(xiàn)識別,進(jìn)一步提高技術(shù)的效果與可用度。綜上,為了更好的將圖像識別技術(shù)應(yīng)用于畜牧業(yè)養(yǎng)殖過程中,需要軟硬件協(xié)同工作,綜合利用各種方法的優(yōu)缺點(diǎn),最終達(dá)到最佳的識別效果。

        猜你喜歡
        優(yōu)化檢測模型
        一半模型
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        日本精品啪啪一区二区| 久久无码人妻丰满熟妇区毛片| 亚洲精品无码永久在线观看你懂的| vr成人片在线播放网站| 久久99精品这里精品动漫6| 美利坚合众国亚洲视频| 人妻丰满熟妇av无码区app| 在线精品国产一区二区三区| 成年女人A级毛片免| 91青青草免费在线视频| 24小时在线免费av| 国产精品无码久久久久久| 国产农村妇女毛片精品久久久| 日本道免费一区日韩精品| 成人偷拍自拍视频在线观看| 亚洲中文字幕在线第二页 | 国产高清不卡在线视频| 麻豆文化传媒精品一区观看| 亚洲av色图一区二区三区| 高清偷自拍亚洲精品三区| 色狠狠色狠狠综合一区| 最大色网男人的av天堂| 亚洲一区二区三区四区地址| 97高清国语自产拍| 国模无码视频专区一区| 亚洲精品久久麻豆蜜桃| 亚洲欧美v国产一区二区| 国产欧美一区二区精品性色| 极品人妻少妇一区二区| 国产成人大片在线播放| 西西大胆午夜人体视频| 亚洲a级片在线观看| av一区二区三区观看| 乱人伦精品视频在线观看| 久久亚洲国产精品成人av秋霞| 精品日产一区2区三区| 97人妻精品一区二区三区男同| 海角国精产品一区一区三区糖心| 成人午夜免费福利| 丝袜美腿人妻第一版主| 东京热人妻一区二区三区|