• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android的葡萄病蟲(chóng)害圖像識(shí)別的研究與實(shí)現(xiàn)

      2020-08-16 13:52:59黃彬蘇家儀楊洋
      現(xiàn)代經(jīng)濟(jì)信息 2020年5期
      關(guān)鍵詞:圖像識(shí)別

      黃彬 蘇家儀 楊洋

      摘要:目前葡萄病蟲(chóng)害的傳統(tǒng)診斷均為人工目測(cè),而且對(duì)農(nóng)技人員的經(jīng)驗(yàn)要求較高,如果發(fā)現(xiàn)病蟲(chóng)害不能及時(shí)解決,將會(huì)導(dǎo)致病蟲(chóng)害有進(jìn)一步擴(kuò)散的風(fēng)險(xiǎn)?,F(xiàn)如今移動(dòng)智能手機(jī)的普及與配置性能的提升,讓人們可以便捷地獲得更多的技術(shù)支持,外加人工智能的興起,深度學(xué)習(xí)已廣泛應(yīng)用于很多行業(yè),通過(guò)更精準(zhǔn)的特征提取,為人們提供決策依據(jù)。本文通過(guò)介紹Android系統(tǒng)和YOLO的相關(guān)技術(shù)知識(shí),然后論述病蟲(chóng)害圖像識(shí)別的流程,最后應(yīng)用到Android平臺(tái)的工程項(xiàng)目中,系統(tǒng)穩(wěn)定運(yùn)行,并達(dá)到預(yù)期效果。

      關(guān)鍵詞:葡萄病蟲(chóng)害;圖像識(shí)別;Android

      病蟲(chóng)害的防治管理是農(nóng)業(yè)生產(chǎn)的重要環(huán)節(jié),但傳統(tǒng)診斷農(nóng)作物病蟲(chóng)害的方法是人工目測(cè),這存在兩個(gè)問(wèn)題:一方面,大田或溫室發(fā)生的病蟲(chóng)害種類(lèi)眾多,農(nóng)民并不能保證根據(jù)經(jīng)驗(yàn)做出的判斷完全正確,另一方面,農(nóng)業(yè)技術(shù)人員相當(dāng)匱乏,由于沒(méi)有專(zhuān)業(yè)人士及時(shí)到現(xiàn)場(chǎng)診斷,可能會(huì)使病情延誤或加重。

      近年來(lái),人工智能技術(shù)已經(jīng)取得了長(zhǎng)足的進(jìn)步,圖像識(shí)別、自動(dòng)推理、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等都在蓬勃發(fā)展。人工智能可以在智能感知的前提下,結(jié)合大數(shù)據(jù)技術(shù)自主學(xué)習(xí),幫助人們做出決策、代替重復(fù)性工作,這意味著人工智能可以代替農(nóng)業(yè)專(zhuān)家自動(dòng)診斷識(shí)別病蟲(chóng)害,并做出防治決策。比如郭文川等[1]利用圖像技術(shù)根據(jù)參照物和被測(cè)植物葉片面積得到植物葉片的面積的基于基于Android手機(jī)的植物葉片面積快速無(wú)損測(cè)量系統(tǒng);鄒秋霞等[2]利用OpenCV(Open Source Comput- er Vision Library) 中的圖像處理技術(shù)在Android手機(jī)上實(shí)現(xiàn)了對(duì)植物葉片進(jìn)行分類(lèi)的系統(tǒng);夏永泉等[3]在Android手機(jī)上運(yùn)用一種最大類(lèi)間差法和Canny算子對(duì)植物葉片圖像進(jìn)行病蟲(chóng)害檢查。

      本文以葡萄三種常見(jiàn)病害(葡萄白粉病、葡萄灰霉病、葡萄褐斑病)為研究對(duì)象,利用Android手機(jī)對(duì)葡萄表面病蟲(chóng)害圖像進(jìn)行采集、裁剪,并通過(guò)Tensorflow加載YOLO[4]模型進(jìn)行病蟲(chóng)害識(shí)別,并基于Android手機(jī)客戶(hù)端研發(fā)了葡萄病害圖像識(shí)別系統(tǒng),實(shí)現(xiàn)了葡萄病蟲(chóng)害圖像的及時(shí)診斷并給出防治措施。

      一、系統(tǒng)總體設(shè)計(jì)

      (一)系統(tǒng)可行性分析

      1.條件可行性分析

      本系統(tǒng)需要一臺(tái)傳統(tǒng) PC 用來(lái)編寫(xiě)、編譯和調(diào)試安卓應(yīng)用程序代碼。在該 PC 機(jī)器上,需要安裝JDK、Android Studio、Android SDK等開(kāi)發(fā)軟件,這些軟件都能夠在各自的官網(wǎng)上免費(fèi)下載。同時(shí)也需要在一臺(tái)帶有攝像頭的安卓智能移動(dòng)手機(jī)來(lái)運(yùn)行該應(yīng)用軟件,這也很容易獲得。因此,從軟件開(kāi)發(fā)條件的可行性上來(lái)看,本系統(tǒng)在硬件和軟件條件上都是可行的。

      2.技術(shù)可行性分析

      安卓應(yīng)用程序的主要開(kāi)發(fā)語(yǔ)言是Java,而Java是簡(jiǎn)單、面向?qū)ο?、可移植、高性能、多線程和靜態(tài)的語(yǔ)言。在每一個(gè)版本的 Android SDK中,Google 公司官方都提供了若干示例,初學(xué)者都可以通過(guò)這些示例源碼快速掌握安卓應(yīng)用程序的開(kāi)發(fā)。本文也調(diào)用了Tensorflow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的加載和圖像識(shí)別,此外Tensorflow可通過(guò)Android Studio的Gradle添加依賴(lài),就能調(diào)用相關(guān)的類(lèi)庫(kù),因此,本研究課題在技術(shù)上也是可行的。而YOLO先以開(kāi)源,可下載源碼進(jìn)行配置訓(xùn)練。

      (二)系統(tǒng)的開(kāi)發(fā)環(huán)境

      本課題主要是在 Android 手機(jī)上進(jìn)行葡萄病蟲(chóng)害圖像識(shí)別,所以首先需要對(duì) Android 應(yīng)用程序的開(kāi)發(fā)環(huán)境進(jìn)行搭建。本系統(tǒng)當(dāng)前的開(kāi)發(fā)環(huán)境和軟件資源如下:系統(tǒng)環(huán)境為 MacOS 10.13.6 ,JDK 為 JDK1.8 ,SDK 為 Android SDK r24,NDK 為 Android NDK,開(kāi)發(fā)軟件為 Android Studio 3.6,用到的第三方庫(kù)有 Tensorflow。

      (三)系統(tǒng)設(shè)計(jì)

      1.系統(tǒng)的整體結(jié)構(gòu)

      Android手機(jī)客戶(hù)端葡萄病蟲(chóng)害圖像識(shí)別系統(tǒng)功能共分為三個(gè)主要部分:圖像采集、病蟲(chóng)害診斷以及病蟲(chóng)害防治措施。

      2.系統(tǒng)識(shí)別工作流程

      啟動(dòng)系統(tǒng),進(jìn)入主頁(yè)面,點(diǎn)擊圖像采集后可選擇“系統(tǒng)相冊(cè)”或“手機(jī)拍照”的方式進(jìn)行病蟲(chóng)害圖像的獲取。由于安卓6.0后,系統(tǒng)權(quán)限已調(diào)整為動(dòng)態(tài)獲取,所以這兩個(gè)功能均需用戶(hù)允許方能使用。圖像采集成功后,用戶(hù)可以通過(guò)“圖像裁剪”來(lái)去除多余的識(shí)別內(nèi)容,裁剪成功后,會(huì)執(zhí)行Tensorflow加載的神經(jīng)網(wǎng)絡(luò)模型識(shí)別病蟲(chóng)害。并對(duì)四種病蟲(chóng)害的準(zhǔn)確率取最高值,最后顯示準(zhǔn)確率最高的病蟲(chóng)害的名稱(chēng)和防止措施,如果不屬于這三種病蟲(chóng)害,則顯示識(shí)別失敗,并提示用戶(hù)是否繼續(xù)識(shí)別。

      二、系統(tǒng)功能實(shí)現(xiàn)

      (一)YOLO 總體設(shè)計(jì)

      1.YOLO 概述

      YOLO是一個(gè)端到端的目標(biāo)檢測(cè)算法,不需要預(yù)先提取region proposal(RCNN目標(biāo)檢測(cè)系列),通過(guò)一個(gè)網(wǎng)絡(luò)就可以輸出:類(lèi)別,置信度,坐標(biāo)位置,檢測(cè)速度很快,雖然定位的精度相對(duì)低些,但其檢測(cè)快速的特點(diǎn)特別適合移動(dòng)手機(jī)。

      2.模型設(shè)計(jì)

      整體來(lái)看,YOLO算法采用一個(gè)單獨(dú)的CNN模型實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的目標(biāo)檢測(cè)。本系統(tǒng)的模型先將輸入的圖片切割為416x416的尺寸,然后傳入CNN網(wǎng)絡(luò),CNN網(wǎng)絡(luò)將輸入的圖片分割為13x13的網(wǎng)格,最后每個(gè)單元格負(fù)責(zé)去檢測(cè)那些中心點(diǎn)落在該格子內(nèi)的目標(biāo),并框定最后識(shí)別的對(duì)象。其中預(yù)測(cè)框和實(shí)際框的準(zhǔn)確度可通過(guò)IOU(intersection over union,交并比)設(shè)定,其范圍是0到1之間,預(yù)置為0.6。

      3.模型訓(xùn)練

      配置好模型的訓(xùn)練集和測(cè)試集的參數(shù),并將樣本放置各個(gè)細(xì)分文件夾,設(shè)定好識(shí)別對(duì)象的名稱(chēng)為葡萄白粉病、葡萄褐斑病、葡萄灰霉病,和檢測(cè)對(duì)象類(lèi)型為3后開(kāi)始訓(xùn)練,訓(xùn)練結(jié)果如表1所示。保留YOLO使用均方差處理?yè)p失,訓(xùn)練完成后導(dǎo)出模型并轉(zhuǎn)換成pb文件以供Tensorflow加載。

      (二)系統(tǒng)實(shí)現(xiàn)

      本系統(tǒng)新建工程后,通過(guò)AndroidManifest.xml配置Android的啟動(dòng)頁(yè)為主頁(yè)面MainActivity,并注冊(cè)識(shí)別頁(yè)面DetectActivity和病蟲(chóng)害防治防治頁(yè)面DetailActivity,各個(gè)Activity都生成一個(gè)xml文件,并通過(guò)Activity中的setContentView方法加載各自的xml文件,以達(dá)到有效的把表現(xiàn)層和邏輯層分開(kāi),降低程序的耦合性,方便開(kāi)發(fā)和維護(hù)。

      在主頁(yè)面中,需要加載Tensorflow框架,并通過(guò)Tensorflow調(diào)用訓(xùn)練好的YOLO模型進(jìn)行識(shí)別,具體實(shí)現(xiàn)如下:

      classifier = TensorFlowImageClassifier.create(

      getAssets(),

      MODEL_FILE,

      LABEL_FILE,

      INPUT_SIZE,

      IMAGE_MEAN,

      IMAGE_STD,

      INPUT_NAME,

      OUTPUT_NAME);

      將系統(tǒng)拍攝或本地相冊(cè)獲取的圖像通過(guò)getBitmap的方法轉(zhuǎn)換成相應(yīng)尺寸的Bitmap以供模型識(shí)別:

      private static Bitmap getBitmap(Context context, String path, int size) throws IOException {

      Bitmap bitmap = null;

      InputStream inputStream = null;

      inputStream = context.getAssets().open(path);

      bitmap = BitmapFactory.decodeStream(inputStream);

      inputStream.close();

      int width = bitmap.getWidth();

      int height = bitmap.getHeight();

      float scaleWidth = ((float) size) / width;

      float scaleHeight = ((float) size) / height;

      Matrix matrix = new Matrix();

      matrix.postScale(scaleWidth, scaleHeight);

      return Bitmap.createBitmap(bitmap,0,0, width, height, matrix, true);

      }

      最后通過(guò)如下方法進(jìn)行圖像的預(yù)測(cè),并根據(jù)病蟲(chóng)害的準(zhǔn)確率跳轉(zhuǎn)識(shí)別頁(yè)面顯示識(shí)別詳情:

      Recognition.List=classifier.recognizeImage(croppedBitmap);

      Intent intent = new Intent(MainActivity.this,DetectActivity.class);

      startActivity(intent);

      三、系統(tǒng)測(cè)試

      (一)測(cè)試環(huán)境

      本系統(tǒng)最終在裝有Android系統(tǒng)的移動(dòng)智能手機(jī)上運(yùn)行,系統(tǒng)選用設(shè)備的硬件配置如表2所示。

      (二)測(cè)試功能模塊

      1.系統(tǒng)流程測(cè)試

      主要測(cè)試拍照功能和從相冊(cè)中選取圖片的功能。該模塊能夠成功打開(kāi)攝像頭對(duì)病蟲(chóng)害圖像進(jìn)行拍照,并且能夠從系統(tǒng)相冊(cè)中選取已經(jīng)拍攝好的圖片,并且將拍攝或者選取的圖片顯示在識(shí)別界面上。圖像獲取成功后,需要對(duì)進(jìn)行識(shí)別尺寸的裁剪,以符合模型的識(shí)別尺寸。

      該頁(yè)面會(huì)將最終的病蟲(chóng)害圖像傳入神經(jīng)網(wǎng)絡(luò)模型,并將識(shí)別結(jié)果顯示在頁(yè)面,其中包含識(shí)別的病蟲(chóng)害名稱(chēng)、病蟲(chóng)害的準(zhǔn)確率,用戶(hù)可點(diǎn)擊“防治措施”跳轉(zhuǎn)具體的頁(yè)面。病蟲(chóng)害防治措施頁(yè)面會(huì)顯示相應(yīng)的病狀和具體防治措施,具體操作流程如圖1所示。

      2.其他病蟲(chóng)害

      如圖2所示,分別展示了葡萄灰霉病、葡萄褐斑病的識(shí)別結(jié)果和防治措施。

      四、結(jié)語(yǔ)

      本文提出的基于Android的葡萄病蟲(chóng)害圖像識(shí)別的識(shí)別技術(shù)具備葡萄病蟲(chóng)害圖像采集、病蟲(chóng)害診斷、病蟲(chóng)害防治措施顯示三個(gè)功能,加以完善后能投入到實(shí)際運(yùn)用,具有一定的實(shí)際意義。其具體優(yōu)勢(shì)有如下幾點(diǎn):

      (一)將人工智能技術(shù)應(yīng)用到農(nóng)業(yè)中會(huì)顯著地減少產(chǎn)量損失與勞動(dòng)力成本,幫助用戶(hù)做出防治決策。

      (二)充分利用了Android手機(jī)的攜帶方便,采用基于Tensorflow框架與YOLO技術(shù),將訓(xùn)練好的葡萄病蟲(chóng)害識(shí)別模型加載到手機(jī)中。

      (三)該系統(tǒng)操作簡(jiǎn)單、快速、識(shí)別效果準(zhǔn)確。

      然而,在Android移動(dòng)設(shè)備上進(jìn)行葡萄病蟲(chóng)害圖像識(shí)別的參考文獻(xiàn)有限,深度學(xué)習(xí)技術(shù)在農(nóng)業(yè)生產(chǎn)領(lǐng)域中應(yīng)用也還處于起步階段,基于深度學(xué)習(xí)的葡萄病蟲(chóng)害圖像識(shí)別系統(tǒng)目前國(guó)內(nèi)外均缺乏研究,對(duì)于算法的研究都是基于已有文獻(xiàn),本系統(tǒng)不能適應(yīng)所有的拍攝環(huán)境。利用移動(dòng)設(shè)備拍攝圖像時(shí)產(chǎn)生的干擾因素不可預(yù)測(cè),以致拍攝過(guò)程中因?yàn)楣庹諘?huì)產(chǎn)生個(gè)別結(jié)果的不準(zhǔn)確。因此從整體系統(tǒng)角度來(lái)看,仍有幾個(gè)地方仍需完善:

      1.支持的病蟲(chóng)害類(lèi)型僅限文中3種,擴(kuò)展更多的病蟲(chóng)害類(lèi)型有待加強(qiáng),還有病蟲(chóng)害類(lèi)型擴(kuò)展后的防止措施的補(bǔ)充。

      2.對(duì)復(fù)雜背景下拍攝的圖像準(zhǔn)確度還有待提高,比如拍攝對(duì)象出現(xiàn)遮擋,或是顫抖拍照時(shí)出現(xiàn)的模糊。

      3.本系統(tǒng)只研究和實(shí)現(xiàn)了針對(duì)Android平臺(tái),但市場(chǎng)上仍有相當(dāng)一部分iOS系統(tǒng)的用戶(hù),因此從推廣角度來(lái)看,兼容iOS系統(tǒng)也是必須的。

      參考文獻(xiàn):

      [1]郭文川,周超超,韓文霆.基于Android手機(jī)的植物葉片面積快速無(wú)損測(cè)量系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2014(01):281-286.

      [2]鄒秋霞,郜魯濤,盛立沖.基于Android手機(jī)和圖像特征識(shí)別技術(shù)的植物葉片分類(lèi)系統(tǒng)的研究[J].安徽農(nóng)業(yè)科學(xué),2015(11):377-379.

      [3]夏永泉,王會(huì)敏,曾莎.基于Android的植物葉片圖像病害檢測(cè)[J].鄭州輕工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2014(29):74.

      [4] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. You Only Look Once: Unified, Real-Time Object Detection.

      猜你喜歡
      圖像識(shí)別
      基于Resnet-50的貓狗圖像識(shí)別
      電子制作(2019年16期)2019-09-27 09:34:50
      高速公路圖像識(shí)別技術(shù)應(yīng)用探討
      圖像識(shí)別在物聯(lián)網(wǎng)上的應(yīng)用
      電子制作(2018年19期)2018-11-14 02:37:04
      圖像識(shí)別在水質(zhì)檢測(cè)中的應(yīng)用
      電子制作(2018年14期)2018-08-21 01:38:16
      淺談模式識(shí)別在圖像識(shí)別中的應(yīng)用
      基于多組合內(nèi)容的圖像識(shí)別機(jī)制
      长顺县| 永定县| 平定县| 柘荣县| 商都县| 万安县| 喜德县| 高密市| 于都县| 鄄城县| 巴彦淖尔市| 娄烦县| 海淀区| 沅陵县| 安义县| 禹城市| 乌恰县| 和平区| 陈巴尔虎旗| 中江县| 吉林省| 永胜县| 都兰县| 吴忠市| 蕉岭县| 横山县| 循化| 林芝县| 张家口市| 铁岭市| 青浦区| 襄樊市| 信丰县| 航空| 巍山| 曲靖市| 麻栗坡县| 河北区| 普洱| 大港区| 原平市|