• 
    

    
    

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

      基于機器視覺的櫻桃缺陷檢測與識別

      2019-04-16 10:02:58裴悅琨連明月姜艷超葉家敏韓心新
      食品與機械 2019年12期
      關鍵詞:裂口正確率櫻桃

      裴悅琨 連明月 姜艷超 葉家敏 韓心新 谷 宇

      (1.大連大學遼寧省北斗高精度位置服務技術工程實驗室,遼寧 大連 116622;2.大連大學大連市環(huán)境感知與智能控制重點實驗室,遼寧 大連 116622)

      櫻桃種植主要分布于美國、加拿大、澳洲、歐洲等地,中國主要有遼寧、山東等[1-2],因其營養(yǎng)價值豐富而深受人們喜愛。櫻桃缺陷主要有裂口、腐爛、雙胞胎、刺激生長、未成熟、鳥啄和鼻尖裂口等。目前的分級主要依靠人眼進行識別,會造成可食用缺陷種類的浪費,而基于機器視覺技術的水果自動分級方法可快速、準確、無損地檢測櫻桃表面缺陷和判定分類級別。Balestani等[3]利用圖像處理技術對櫻桃進行缺陷檢測,其裂口、雙胞胎檢測率分別為95%,89%;王昭等[4]設計了一套基于視覺處理軟件的櫻桃缺陷檢測裝置,檢測率為86.8%,但未對缺陷類型進行精確分類。

      卷積神經網絡(Convolution Neural Network,CNN)是將特征提取與分類融為一體,可直接對原始圖像進行模式識別,已成功應用于手寫數(shù)字識別及車牌字符識別[5-6],并且都取得了較好的效果。劉云等[7]改進了一種基于RGB彩色分量算術運算的背景分割算法,使用分塊策略對蘋果缺陷進行檢測,檢測速度可達5個/s,準確率為97.3%;吳志洋等[8]采用雙網絡并行的模型訓練方法,結合特征圖優(yōu)化卷積核參數(shù)的模型壓縮算法,實現(xiàn)了單色布匹瑕疵的快速檢測,檢測速度為135 m/min,準確率達96.99%;邡鑫等[9]設計了基于塊的CNN缺陷檢測算法,發(fā)現(xiàn)晶圓缺陷可分為10個缺陷種類,準確率達97%;許偉棟等[10]融合了支持向量機方法對馬鈴薯缺陷進行檢測,其運行速度快且準確率達99.2%;卞國龍等[11]采用數(shù)據(jù)增強技術對輪胎X射線圖像進行了缺陷檢測,所需時間短且準確率達91.3%。

      為了避免櫻桃可食用缺陷種類的浪費,收獲更高的經濟效益、更標準的櫻桃分級水平、更快的速度以及更高的準確性,試驗擬使用圖像增強、增廣技術對圖片進行部分預處理,利用卷積神經網絡對櫻桃缺陷進行檢測識別,為櫻桃產后處理提供理論依據(jù)。

      1 整體模型與算法

      1.1 模型框架

      典型的卷積神經網絡主要由數(shù)據(jù)輸入層、卷積計算層、池化層、激勵層和全連接層組成。試驗設計的基本模型結構如圖1所示。

      圖1 CNN基本模型結構

      1.2 輸入層

      訓練前,需對原始圖像進行旋轉、縮放、裁剪、歸一化等預處理操作,即標準化處理。在圖片輸入層,對指定大小的生成圖片進行樣本與標簽分類制作,獲得神經網絡輸入的以特征命名的文件,為了方便網絡的訓練,對輸入數(shù)據(jù)進行批處理。經輸入層的圖片預處理操作可避免人為干擾,保證輸入圖片的準確性,提高訓練的正確率,得到精確的訓練結果。

      目前,常用的圖片類型主要有bmp、png、jpg及gif格式。訓練時需統(tǒng)一圖片格式,彩色圖、灰度圖不可同時進行訓練。試驗主要采用bmp格式的RGB彩色圖片,即三通道輸入。為加快處理速度與時間,將圖片尺寸統(tǒng)一定為64×64。

      1.3 卷積層

      卷積層是CNN網絡的核心結構,通過局部感知和參數(shù)共享兩個原理實現(xiàn)對高維輸入數(shù)據(jù)的降維處理,并且能夠自動提取原始數(shù)據(jù)的優(yōu)秀特征。卷積層將輸入層輸出的數(shù)據(jù)與一組可學習的濾波器進行卷積操作,每個濾波器在輸出的圖像中產生一個特征映射。試驗中采用尺寸為3×3的卷積核(filter)。按式(1)計算卷積層特征圖大小。

      (1)

      式中:

      heightin、widthin——輸入圖像尺寸;

      heightout、widthout——輸出圖片尺寸;

      heightfilter、widthfilter——卷積核尺寸;

      padding——取0或1;

      stride——卷積滑動步長。

      卷積得到的結果加上一個偏置,通過激活函數(shù),作為該層某個神經元的值。試驗選用修正線性單元進行激活,不存在飽和問題,其收斂速度大于S型生長曲線和雙曲正切,且得到的結果是稀疏的。按式(2)計算卷積層。

      (2)

      式中:

      W——卷積核;

      f——激活函數(shù);

      bi——偏置。

      1.4 池化層

      池化層又稱子采樣層,主要作用是減少參數(shù)數(shù)量,防止過擬合,降低特征向量維度,并且能夠保持局部線性變換的不變性。常見的池化操作主要包括:① 最大池化函數(shù),即對鄰域內特征點只取最大值;② 平均池化函數(shù),即對鄰域內特征點只求平均值。分別按式(3)、(4)計算最大池化函數(shù)、平均池化函數(shù)。

      poolingmax(?k)=maxi∈?kai,

      (3)

      (4)

      式中:

      poolingmax——最大池化函數(shù);

      poolingave——平均池化函數(shù);

      ?k——卷積層輸出的特征向量劃分的多個區(qū)域,k=1,2,…,K。

      1.5 全連接層和輸出層

      全連接層的輸入特征是經過反復提煉過的,因此直接使用原始數(shù)據(jù)作為輸入能夠取得更好的效果。試驗模型中有兩層全連接層,使用Relu激活函數(shù),采用softmax函數(shù)做分類器,輸出相應的類別,試驗中有兩種類別:第一種為正常果和缺陷果;第二種為完好櫻桃、裂口櫻桃、腐爛櫻桃、雙胞胎櫻桃、刺激生長櫻桃及鼻尖裂口櫻桃。由于試驗中主要是基于缺陷分類,故模型最終的輸出根據(jù)第二種來定。

      訓練CNN,最終形成的訓練模型如表1所示。

      2 算法驗證及數(shù)據(jù)分析

      2.1 試驗環(huán)境

      基于機器視覺的櫻桃缺陷檢測系統(tǒng)由硬件和軟件兩部分組成,硬件系統(tǒng)用來采集櫻桃圖像,軟件部分對圖像進行處理。

      圖片采集系統(tǒng)主要由照明系統(tǒng)、CMOS攝像機、吸光背景布、POE千兆網卡、計算機等組成,如圖2所示。照明系統(tǒng)包含圓頂光源和控制器,圓頂光源將內嵌的高強度白色LED光經圓頂內壁漫反射到被測物體表面,很大程度上避免了櫻桃表面的反射和底部陰影,且有利于提高被測物體的輪廓、斑點等細節(jié)的清晰度,進而提高檢測精度。光源控制器具有同步觸發(fā)模式,將其與相機觸發(fā)輸出接口相連可以通過相機快門同步觸發(fā)頻閃信號。在整個采集系統(tǒng)的外圍,定制了一個立方體的遮光盒,其內壁由吸光背景布覆蓋。該外殼能有效屏蔽外界環(huán)境光的影響,減少內部反射,使得采集的圖片處于同一光照條件下。CMOS相機、鏡頭及網卡均為主流的工業(yè)級產品。

      表1 CNN模型設計

      1.同步光源 2.控制器 3.CMOS相機 4.圓頂光源 5.傳送帶 6.櫻桃樣本 7.電腦

      圖2 硬件框架圖

      Figure 2 Hardware framework diagram

      試驗使用TensorFlow框架,Python3.7,軟件平臺采用Windows10系統(tǒng)、Pycharm,硬件環(huán)境為4 GB內存,intel(R)Core(TM)i5-6500 CPU @ 3.20GHzHP LV2011的計算機。

      2.2 試驗設計

      每個櫻桃在采集圖像的過程中,根據(jù)不同角度采集6張圖片,以便能覆蓋櫻桃的全部表面信息。為了擴大樣本數(shù)據(jù)集,先使用旋轉、縮放、按比例裁剪以及鏡像等Matlab操作方法擴大樣本數(shù)據(jù),在此基礎上,建立櫻桃樣本庫,樣本數(shù)量15萬張,用樣本庫進行模型訓練。圖片采集平臺統(tǒng)一規(guī)格2 046×1 080,格式為bmp,為了較大地縮短訓練時間,加快訓練速度,所有照片在預處理時都被統(tǒng)一成64×64尺寸。具體的流程框架以及樣本示例如圖3、4所示。

      圖3 流程框圖

      圖4 樣本示例

      試驗模型采用AdamOptimizer法來最小化損失函數(shù),并對其進行優(yōu)化。為了避免訓練過程中產生過擬合現(xiàn)象,采用隨機失活方法,雖然時間增加了近3倍,但防過擬合效果很好[12]。經過多次模型調試,最終將模型訓練的批次大小設為50,即每次的輸入樣本數(shù)為50;隊列容量設為300,即一個隊列的最大輸入樣本數(shù)為300;訓練總次數(shù)設為3 000,即進行3 000次迭代訓練,每隔100步輸出一次訓練結果;基礎學習率設為0.001。

      試驗將6種預處理好的分類樣本各25 000張進行訓練學習。首先,采用人工標記的方法對訓練樣本進行標記,并用數(shù)字表示櫻桃樣本(0代表裂口櫻桃,1代表腐爛櫻桃,2代表雙胞胎櫻桃,3代表刺激生長櫻桃,4代表完好櫻桃,5代表鼻尖裂口櫻桃)。這種利用一組已知分類樣本來調整分類器參數(shù)以滿足所需性能的過程即監(jiān)督學習。經過多次訓練,最終得到一個最優(yōu)模型。對于每一種分類情況,由于其正確率的計算相同,以完好櫻桃為例,將完好櫻桃用正常果表示,將有缺陷櫻桃用缺陷果表示,如果將正常果識別為正常果表示為正預測的正類數(shù),用TP表示;將缺陷果識別為缺陷果表示為正預測的負類數(shù),用TN表示;將正常果識別為缺陷果表示為正預測的負類數(shù),用FN表示;將缺陷果識別為正常果表示為負預測的正類數(shù),用FP表示。按式(5)計算正確率(acc)。

      (5)

      由圖5可知,整體訓練準確率隨訓練步數(shù)的增加逐漸提高;當訓練次數(shù)為2 300步時,整體損失逐漸趨于0,櫻桃識別準確率達100%。結果表明,試驗設計的6層CNN結構能在短時間內有效提取櫻桃圖像的特征,使訓練精度達到較高水平。

      圖5 損失值及正確率隨迭代次數(shù)的變化趨勢圖

      2.3 試驗結果分析

      為了檢測使用64×64的櫻桃圖像進行訓練是否會對試驗結果產生一定影響,在試驗測試時選取720張櫻桃原圖進行測試,每個分類各120張。由表2可知,完好、雙胞胎、鼻尖裂口及腐爛櫻桃測試結果均正確;裂口櫻桃有3個被識別錯誤,刺激生長櫻桃有3個被識別錯誤;完好、雙胞胎、鼻尖裂口和腐爛櫻桃識別正確率為100%,裂口、刺激生長櫻桃識別正確率為97.5%,處理速度可達25個/s,滿足了實時性要求。通過查看訓練樣本可知,刺激生長櫻桃被識別為雙胞胎、裂口和完好櫻桃是因為圖片在人為標記過程中出現(xiàn)了分類錯誤。說明使用預處理后的圖像進行訓練未對結果產生影響。

      表2 識別正確率比較

      2.4 與其他方法的對比

      根據(jù)櫻桃的實際售賣情況可知,裂口、雙胞胎、刺激生長及鼻尖裂口櫻桃是可以進行售賣的,且裂口、鼻尖裂口櫻桃甜度更高,很多人更喜歡食用這兩種櫻桃,故試驗將有缺陷的櫻桃劃分為裂口、鼻尖裂口、刺激生長、腐爛、雙胞胎5種類型,同時對完好櫻桃進行了精確識別。由表3可知,試驗方法優(yōu)于其他方法,有較高的精度及較快的識別速度。

      表3 缺陷種類識別結果對比

      3 結論

      試驗將卷積神經網絡應用于櫻桃的缺陷檢測上,實現(xiàn)了缺陷種類的精確分類,相比其他方法,分類效果得到了明顯提升,該方法可以準確高效地識別出正常果和缺陷果,也能精確地細分5種缺陷果。根據(jù)識別個數(shù)分類可知,正常果識別準確率為100%,缺陷果識別準確率為99%;根據(jù)相似程度判斷可知,正常果識別準確率為99.25%,缺陷果識別準確率為97.99%,識別速度達25個/s。試驗表明,該算法實時性好、識別率高,且通過與其他方法的對比,更加證實了該方法具有較高的精度和適用性。后續(xù)可涉及深化網絡模型結構,增加學習樣本種類,建立合理的分類分級邏輯和對硬件平臺的升級,做到櫻桃更多缺陷種類的精確識別,提高分類器的識別能力與速度。

      猜你喜歡
      裂口正確率櫻桃
      踏古尋洋 披荊斬棘的軟骨魚祖:裂口鯊
      櫻桃肉,讓年味飄香
      金橋(2022年2期)2022-03-02 05:43:04
      門診分診服務態(tài)度與正確率對護患關系的影響
      蘋果裂口“笑”原因分析及防控
      一樹櫻桃?guī)в昙t
      人大建設(2018年5期)2018-08-16 07:09:08
      吃不到的櫻桃
      喜劇世界(2017年13期)2017-07-24 15:43:42
      生意
      品管圈活動在提高介入手術安全核查正確率中的應用
      天津護理(2016年3期)2016-12-01 05:40:01
      生意
      故事會(2016年15期)2016-08-23 13:48:41
      萵苣裂口咋辦
      贵德县| 易门县| 军事| 定安县| 上思县| 新河县| 宜良县| 科尔| 亳州市| 庆阳市| 扶绥县| 霍林郭勒市| 大渡口区| 灌阳县| 郴州市| 巴楚县| 沿河| 天祝| 晋江市| 盐山县| 开原市| 霍城县| 墨脱县| 昌江| 阿合奇县| 红桥区| 邵武市| 徐汇区| 诏安县| 阳西县| 射洪县| 东城区| 鲁甸县| 潼南县| 滨州市| 香河县| 容城县| 合水县| 商南县| 巢湖市| 尉犁县|