張野 李帥 劉躍 林李樂 張毅
摘要:基于Tensorflow的產品智能分揀系統采用人工智能技術,通過對圖像識別進行智能分揀,從而提高工廠產品的分揀效率,大大降低了人為產生的誤差,實現工廠自動化。
關鍵詞:tensorflow;深度學習;智能識別
中圖分類號:TP311? ? 文獻標識碼:A
文章編號:1009-3044(2019)18-0197-02
而非監督式就不需要人為的標簽數據,它是監督式和強化學習等策略之外的一個選擇。典型的非監督學習有聚類等,它是直接從數據中尋找相似性,即規律。
現在其實機器學習除了監督式和非監督式之外,還有增強學習。它是和監督式及非監督式都有些不同的一種方式。然后,但其實在工業界用得最多的,其實還是監督式學習的方式,非監督式和增強學習現在在工業界的使用還是相對比較少。本項目主要應用方向為工業生產,所以采用的還是監督學習。最終通過Tensorflow這一框架,實現深度學習的算法。
基于Tensorflow的產品智能分揀系統采用人工智能技術,首先利用Tensorflow技術對多類產品的圖像進行離線學習,得到各種產品的模型;然后利用攝像頭獲得當前產品的圖像;其次再利用習得的模型進行智能識別;最后根據不同產品的類別,為當前的產品指定正確的容器。從而精準無誤地達到人工智能分揀系統的效果。
傳統的產品、農作物等相關物品的分揀都需要通過人工操作,不僅浪費了大量的人力物力,沒有使得資源得到合理的配置,不再符合當今機械化社會的發展水平,它所需要的是極大地便利操作;而且,人工分揀的過程中存在很多的不確定因素,不能準確保證分揀的種類都符合相關的要求,極大地阻礙了生產力的生產效率。隨著經濟和生產的發展,商品趨于“短小輕薄”,流通趨于小批量、多品種和準時制,各類配送中心的貨物分揀任務十分艱巨,分揀作業已成為一項重要的工作環節。我國目前多數配送中心和物流企業都是人工分揀。顯然,隨著分揀量的增加、分送點的增多、配貨響應時間的縮短和服務質量的提高,單憑人工分揀將無法滿足大規模配貨配送的要求。然而,當通過智能分揀系統來進行操作,能夠極大地提高工作效率,節省大量的人力物力,充分發揮這一系統的獨特優勢。能夠為工廠實現自動化推進一大步。
近年來,在傳統帶式輸送機和現有智能分揀技術的基礎上,利用先進的條形碼識別技術和微控制器進行控制的智能分揀系統在物流企業的應用不斷擴大。智能分揀系統分揀作業快速、靈活、準確,操作、維護簡單、方便,大大減少了勞動力,提高了工作效率。
通過現有的的智能分揀系統而言,這已經在人工智能方面取得了巨大的進步。通過對人工智能方面的語言的學習,了解了一點與其相關的編程原理等知識。在現有的人工智能的基礎上進行相應對的創新,以此達到完善,發展這一人工智能分揀系統的作用。
但是,當前已經轉入智能分揀階段,即依靠二維碼、RFID或各種傳感器來識別貨物,再進行分類。但這種分揀系統的成本較高,對產品也有較多的限制(如二維碼、RFID等)。這些限制阻礙了相關產品的智能分揀,需要對這一階段進行優化,使它的功能更加完善,更能廣泛地應用于各個領域。使得它能夠具有低成本,高效率,寬領域等特點。因此,可以通過在現有的智能分揀系統上進行相應改進,完善。一定程度上減少了制作實施過程中的難度系數。
在了解了人工智能方面的知識,學習了與人工智能技術密切相關的編程語言:Python。當前人工智能分揀系統的基礎上突破已有的限制,對其進行完善,使得它能夠應用于多領域。對多類產品的圖像進行離線學習。
智能分揀這一系統是基于人工智能技術,當前,國內外的人工智能技術都處于發展階段,沒有相對完善的技術系統,沒有形成相應的體系來支撐人工智能技術的發展。在這方面的發展,人類還需要走很長的路,進行探索,不斷進行完善,使得它形成具有特色,相對完善,相對前沿的人工智能技術。
在整個項目的進展前期主要是相關系統和軟件、硬件的安裝與配置,其中包括樹莓派相關器械的組裝;安裝風扇用于避免樹莓派溫度過高,造成樹莓派的損壞。之后需要對樹莓派進行導入相關系統,導入之前需要一定的前期準備,需要下載SD Card Formatter、Win32DiskImager以及最新的樹莓派系統等相關軟件。SD Card Formatter用于格式化樹莓派中的SD卡;Win32DiskImager用于將最新的樹莓派系統鏡像燒錄到SD卡中,以此將樹莓派系統導入樹莓派。其次,需要將攝像頭安裝置樹莓派,用于拍照來實現智能分揀的功能。安裝完成后需要對樹莓派進行相關配置的修改,通過python語言實現攝像頭拍照并保存的功能。其間存在的問題主要是樹莓派系統的導入,顯示屏上不能顯示樹莓派系統界面,經過查找相關資料以及指導老師的幫助下發現插入樹莓派的SD卡沒有徹底格式化,起初認為通過電腦可以直接將SD卡格式化,但在導入系統時不能正確顯示界面,因此電腦并沒有將SD卡清理干凈,需要格式化軟件來進行操作,故而下載了SD Card Formatter。最后成功解決了顯示不了界面的情況。以及樹莓派線路連接過程中,HDMI接口并沒有連接,起初以為會造成影響,但實驗證明并沒有對實驗的結果產生影響。這些問題的存在在隨著項目的推進并沒有產生什么影響。
項目進展中期,主要是識別代碼的編寫。起初希望通過利用手寫體數字識別過渡到圖像識別,因此,中期花費了大量時間研究手寫體識別,通過在網上查找相關資料來實現,但是由于代碼的問題不能精準識別圖片,因此,在老師的指導下找到了簡單的代碼并進行了相關學習,不久就實現了識別的功能。基于tensorflow的產品智能分揀系統關鍵在于識別,我們認手寫體識別為后期的圖像識別作鋪墊,因此后期圖像識別只需要修改一下數據集就可以解決,但事實遠非如此。
項目進展后期,雖然中期完成了手寫體數字識別,但由于手寫體數字識別的數據集是集成好的,并沒有制作過程,相對而言實現的比較困難,并沒有起先想的那么容易。因此后期放棄了原先的想法,從另外一個途徑入手。按照傳統圖像識別的步驟通過一步步編程來進行相關操作。編程涉及圖片數據集的制作、圖片的輸入處理、建立網絡模型、神經網絡的訓練以及對圖片測試五個模塊。數據集制作時主要是對圖片進行預處理,但是起初在網上下載圖片時并沒有在意圖片格式,因此在代碼執行過程中出現了reshape問題的錯誤,通過在網上查閱資料以及對圖片格式的比對發現編寫的代碼只能對.jpg格式的圖片進行處理。圖片輸入處理的過程相對比較簡單,主要是對指定大小的生成圖片進行sample與label分類制作,獲得神經網絡輸入的get_files文件,同時為了方便網絡的訓練,輸入數據進行batch處理。網絡模型的編寫過程相對而言比較困難,由于是初學者,有關代碼是通過老師或者網絡資源獲取的。其中涉及卷積層、池化層、全連接、softmax層、激活函數和損失函數。神經網絡訓練時為了提高圖片識別的精準度會對圖片進行多次訓練。圖片測試模塊相對比較容易。最后主要是數據的采集,由于樹莓派上帶有攝像頭,則可直接通過它來采集圖片資源。因此就需要超高像素的攝像頭,從而提高分辨率,減少識別過程中的誤差。在拍攝過程中仍然需要注意其他因素對拍攝效果圖片的影響,比如光線的強度、拍攝的角度等。這些存在的問題都會在制作數據集時產生影響。
本項目擬設計與實現基于人工智能技術的產品分揀系統。采用人工智能技術對產品進行智能識別,從而達到對產品的分類,進一步提高產品的分揀效率,節省大量的人力物力,降低分揀過程中存在的誤差。促使這一人工智能分揀系統能夠廣泛應用于多領域,大大提高自動化水平。對產品的圖像進行離線學習,以此來得到各產品的相應模型;利用攝像頭獲取并識別相應產品的動態圖像;利用所得的模型進行智能識別。從而達到人工智能分揀的效果。通過人工智能控制策略實現產品在分揀過程中準確的信息采集、傳輸、反饋與控制。最終制作出智能識別零件產品的簡易裝置。
突破目前產品分揀系統中依賴二維碼、RFID等主動信息的限制,依靠智能視覺來識別產品。本項目除了可以產品的分揀之外,還可以推廣到農產品的分類等應用場景,極大地擴展了智能分揀系統的應用范圍。對之前的分揀系統進行了改進,能夠在不同的領域進行相應的擴展。具有高效率,低成本,寬領域等獨具特色的特點,打破以往的智能分揀系統限制,使得這一人工智能分揀系統趨于更加完善。
該項目具體步驟為:
1)準備原始數據
準備好訓練的原始數據,將原來大小不一的圖片轉換成規定的格式。各類圖片放入同一文件夾下的不同文件夾中(成片放入成片文件夾,贗品放入贗品文件夾)。主要調用image.resize(width,length)方法,制作Tensflow數據集。
讀取Tfrecords數據集獲得image和label,打印驗證并保存生成的圖片,查看文件夾驗證是否與圖片對應。
2) 輸入圖片處理
獲取上一步生成的數據集,對圖片進行sample與label分類制作,同時為了方便網絡訓練對輸入數據進行批處理,返回image_batch與label_batch。
3) 構造神經網絡模型
卷積層與池化層凸顯圖片特征,激勵函數用于將隱層與輸出層結點的輸入和輸出表現出來,這些操作將原始數據隱射到隱層特征空間。全連接層用于將學到的分布式特征表示映射到樣本標記空間,即將前面提取的特征綜合起來,與卷積操作類似。
在此構造“卷積1*池化1*卷積2*池化2*全連接1*全連接2*回歸層”回歸神經網絡結構。
4) 訓練神經網絡
訓練神經網絡主要分為三個步驟 1.定義神經網絡的結構和前向傳播的輸出結果。2.定義損失函數以及選擇反向傳播優化的算法。3.生成會話并且在訓練數據上反復運行反向傳播優化算法。
用之前創建的數據集訓練神經網絡,保存訓練后的網絡參數。
5) 測試神經網絡
從數據集中隨機選取一張圖片,送入神經網絡中進行識別,輸出最大概率的結果。
實驗數據為工廠生產的產品:包括正品和次品兩類如下圖所示:
【通聯編輯:梁書】