国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

動物識別大轉(zhuǎn)盤:玩轉(zhuǎn)圖像分類模型

2023-05-30 16:09:17劉梅
中國信息技術(shù)教育 2023年9期
關(guān)鍵詞:圖像識別

劉梅

摘要:本項目以野生保護動物圖像分類為主題,共包括數(shù)據(jù)采集及處理、模型訓練、模型封裝、模型部署四個階段,利用6個課時帶領(lǐng)學生體驗完整的人工智能作品開發(fā)流程,以期為高中階段人工智能教學提供參考。

關(guān)鍵詞:模型訓練;Arduino;MobileNet;百度飛槳;圖像識別

中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2023)09-0079-04

目前,在計算機視覺領(lǐng)域有多種圖像分類模型,如ResNet、MobileNet、LeNet等,這些模型在不同的圖像識別場景下發(fā)揮不同的作用。那么,不同網(wǎng)絡模型在結(jié)構(gòu)上有什么差異?哪些模型識別速度更快準確率更高?哪些模型更輕量更適合部署在移動端?為了弄清這些問題,筆者在實際教學過程中進行了一系列探索并發(fā)現(xiàn),如果只是講解理論,對于初次接觸深度學習的高中生來說是枯燥且晦澀的。因此,筆者開發(fā)了可以實踐的趣味項目,讓學生自己動手,親歷完整的問題解決過程,在實踐中理解人工智能模型算法原理。在項目實踐中,筆者也遇到并解決了一些新的問題,如如何實現(xiàn)本地局域網(wǎng)環(huán)境下的模型API調(diào)用,以解決機房網(wǎng)絡不佳、學生注冊調(diào)用網(wǎng)絡平臺API費時費力等問題?有什么硬件是價格低廉、配置簡單且適合機房環(huán)境下大班教學的?下面,筆者以完整的“動物識別分類”項目為例對上述問題進行闡述,以期為高中階段人工智能教學提供參考。

項目介紹

1.項目背景

本項目主題:打造AI野生保護動物識別系統(tǒng)。近幾年,販賣野生保護動物的情況屢見不鮮,許多人在不知情的情況下出于好奇而購買,從而觸犯了法律,究其根本原因還是缺乏對野生保護動物的認識。我們可以借助人工智能的圖像識別技術(shù)來解決這一問題。

2.項目時長

該項目分四部分,共6課時,分別為:數(shù)據(jù)采集及處理(2課時)、 模型訓練(1課時)、模型封裝(1課時)、模型部署(2課時)。

3.項目流程

首先,學生2人一組,從網(wǎng)絡上收集8到10種不常見的野生保護動物圖片,并進行預處理。然后,分組調(diào)用MobileNetV2、resnet50預訓練模型,在訓練過程中對比兩種圖像分類模型的差異。接著,利用教師提供的module.py半成品文件,將自己訓練出的模型進行封裝,實現(xiàn)本地調(diào)用。最后,利用Arduino板完成硬件部署。

項目實施

1.數(shù)據(jù)采集及處理

(1)數(shù)據(jù)采集

數(shù)據(jù)集的獲取處理是一個非常復雜的過程,既需要大量高質(zhì)量的圖片數(shù)據(jù),又要保證數(shù)據(jù)集的圖片具有足夠的多樣性,這樣才能提高訓練模型在實際應用中的泛化水平。由于野生保護動物在生活中并不常見,采用手機或相機拍攝是不可行的,所以教師可以指導學生應用高一學習的Python爬蟲知識爬取需要的數(shù)據(jù)集圖片,即根據(jù)關(guān)鍵詞從百度上爬取8到10種野生保護動物圖片,每種500張左右,核心代碼如圖1所示。

將下載好的數(shù)據(jù)集圖片分類放在10個文件夾中,需要按照飛槳平臺的數(shù)據(jù)集格式規(guī)則提前制作好一個label.text文檔,在后期模型訓練中作為數(shù)據(jù)索引。教師可以提前制作一份模型文檔給學生作為參考。格式如圖2所示。

(2)數(shù)據(jù)預處理

數(shù)據(jù)處理中重要的一步是將處理好的數(shù)據(jù)劃分訓練驗證集,使用sklearn.model_selection模塊,只需要如下兩行代碼就可以劃分出訓練驗證集:

from sklearn.model_selection import train_test_split

train_img, val_img, train_label, val_label = train_test_split(data, label, test_size=0.2)

接下來按照飛槳官網(wǎng)[1]提供的代碼進行數(shù)據(jù)預處理。

2.模型訓練

(1)神經(jīng)網(wǎng)絡的搭建

直接調(diào)用飛槳平臺的內(nèi)置模型,調(diào)用代碼如圖3所示。

使用paddle.summary語句查看網(wǎng)絡結(jié)構(gòu),如圖4所示。學生從中可以理解MobileNetV2與resnet50在模型結(jié)構(gòu)上的異同,比教師講解理論要直觀清晰許多。

(2)模型訓練

可以選擇不同的訓練方式進行訓練,機房CPU環(huán)境下訓練時間較長,250個epoch,約需要一個小時左右(如下頁圖5)。

(3)模型評估

在模型訓練好后,使用下頁圖6所示的代碼繪制變化曲線來查看兩種訓練模型對應的準確率的區(qū)別,MobileNetV2約為65%,resnet50約為70%,差距不大,后續(xù)還需要繼續(xù)調(diào)優(yōu)以提高其識別精度。還可以用同樣的方法繪制loss曲線,幫助學生理解訓練過程中損失函數(shù)的變化(如下頁圖7)。

(4)模型預測

加載模型啟動模型預測,選擇圖片對訓練出的模型進行預測,代碼如第82頁圖8所示。指導學生選擇圖片進行多次測試,以體驗訓練模型的識別精度。

3.模型封裝

訓練出的模型權(quán)重文件經(jīng)過封裝,便可以實現(xiàn)本地部署。在機房局域網(wǎng)內(nèi),教師啟動部署命令,其他學生也可以調(diào)用該hub模型進行圖像識別。封裝的核心步驟是要編寫module.py文件,這是比較煩瑣的一步,其中包括配置模型信息、編寫推理方法、測試推理等,代碼較長,具體可參考官網(wǎng)使用指南。[2]

在這個過程中,教師的任務則是要提前為學生準備好module.py的框架代碼,這樣學生只需更改與自己訓練模型相關(guān)的少量關(guān)鍵代碼行即可,這樣可以節(jié)省課堂時間與學生的操作難度。在配置好module.py文件后,學生開始制作自己的paddlehub:新建一個文件夾mobilenet_meimei,與module.py文件中模型的名稱一致,在文件夾中加入一個__init__.py空文件,以及剛剛編輯好的module.py文件、assets文件夾。其中,assets文件夾中包含的是前期訓練好的模型及參數(shù)文件,如下頁圖9所示。之后啟動以下兩條命令:

hub install mobilenet_meimei

hub serving start -m mobilenet_meimei

在本地部署封裝好的模型,利用飛槳提供的測試代碼,就可以在本地對模型進行識別調(diào)用了。

4.模型部署

模型部署階段是整個項目環(huán)節(jié)中趣味性、交互性最強的階段。在這一部分,教師帶領(lǐng)學生利用封裝好的動物識別模型,結(jié)合Arduino制作“動物識別大轉(zhuǎn)盤”,將自己的訓練成果真正應用起來。Arduino板無法實現(xiàn)邊緣部署,計算推理等工作還是要在計算機端完成,但因其配置步驟簡單、價格低廉、功能強大,更適合沒有硬件基礎(chǔ)的學生以及機房環(huán)境下的大班教學。

(1)所需材料

硬件:Arduino*1、舵機*2、yeelight LED燈*1、杜邦線*6、小音箱或語音播報模塊。

軟件:jupyter或idle。

(2)實現(xiàn)功能

調(diào)用封裝好的動物識別模型,在成功識別出相應動物名稱后,組裝驅(qū)動硬件部分實現(xiàn)如下功能:①利用pyttsx3模塊,實現(xiàn)語音播報識別出的保護動物名稱。

②利用Pinpong模塊,實現(xiàn)Arduino控制舵機轉(zhuǎn)動,在轉(zhuǎn)盤中指向識別出的動物名稱。③利用yeelight模塊,結(jié)合小彩燈,當識別到不同動物時,彩燈會顯示與之相對應的不同顏色,如檢測到金絲猴亮起黃燈,檢測到耳廓狐亮起綠燈。如果遷移在水果分類項目中,還可以使亮起的燈顯示為識別出的相應水果的顏色,如火龍果顯示紅色、香蕉顯示黃色。

(3)實現(xiàn)方式

核心代碼如圖10所示。

結(jié)語

在本項目中,教師帶領(lǐng)學生體驗了完整的圖像分類識別流程,理解了resnet50、MobileNetV2兩種圖像分類模型在結(jié)構(gòu)、訓練速度、訓練模型識別精度等方面的差異,實現(xiàn)了利用Arduino部署自訓練模型,解決了機房局域網(wǎng)環(huán)境下API調(diào)用本地化等問題。

參考文獻:

[1]飛槳官網(wǎng)[EB/OL].https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/data_preprocessing_cn.html.

[2]飛槳官網(wǎng)[EB/OL].https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/Sequential_cn.html#sequential.

猜你喜歡
圖像識別
基于Resnet-50的貓狗圖像識別
電子制作(2019年16期)2019-09-27 09:34:50
高速公路圖像識別技術(shù)應用探討
圖像識別在物聯(lián)網(wǎng)上的應用
電子制作(2018年19期)2018-11-14 02:37:04
圖像識別在水質(zhì)檢測中的應用
電子制作(2018年14期)2018-08-21 01:38:16
淺談模式識別在圖像識別中的應用
電子測試(2017年23期)2017-04-04 05:06:50
基于多組合內(nèi)容的圖像識別機制
仙居县| 宁乡县| 海阳市| 鄄城县| 聊城市| 嘉祥县| 苏州市| 宁武县| 江都市| 东至县| 巴林左旗| 静海县| 都匀市| 曲阜市| 孝义市| 闸北区| 新郑市| 兴安县| 阿尔山市| 祁门县| 墨玉县| 营口市| 新田县| 兴安县| 嘉定区| 富川| 安康市| 大姚县| 衡山县| 建瓯市| 延寿县| 文水县| 简阳市| 珲春市| 谢通门县| 万源市| 昌平区| 波密县| 汾西县| 呼伦贝尔市| 清镇市|