韓閏凱 楊晶晶 翟永輝 顧志豪 劉家興 郭甲倩



摘要:近些年隨著機器學習領域的不斷發展,在諸多領域都展現出其獨特的優勢。目前在養雞業中,雛雞性別鑒別的方式主要為人工鑒別,鑒別過程需要耗費大量人力物力,且需要鑒別人員擁有豐富的鑒別經驗。該文結合機器學習在圖像識別方向的發展,將圖像識別技術應用于雛雞性別鑒別,從而解決養雞行業中雛雞性別鑒別問題。使用卷積神經網絡構建雛雞性別鑒別模型,并在高識別率的情況下對模型進行壓縮,將其轉換為Tensorflow Lite模型后,部署到Android App以實現自動鑒別雛雞公母。同時,在Android App實現了雞的品種查詢、疾病查詢等功能。該軟件可以降低相關工作人員工作負擔,提高鑒別雛雞公母的效率,有重要的應用價值。
關鍵詞:雛雞識別;機器學習;養殖;Android;Tensorflow Lite
中圖分類號:TP18? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)18-0082-04
開放科學(資源服務)標識碼(OSID):
App Design for Identification of Chicken Sex Based on TensorFlow Lite
HAN Run-kai,YANG Jing-jing, ZHAI Yong-hui, GU Zhi-hao, LIU Jia-xing, GUO Jia-qian
(School of Information Science and Engineering, Hebei North University, Zhangjiakou 075000, China)
Abstract:Machine learning,with its continuous development in recent years in fields, its distinctive advance has appeared.? At present in chicken culture industry, the chicken sex is identified manually as the main, which costs much in man power and material, and the personnel is required experienced. In the paper,? development of machine learning in image identification is combined with the use of technology of image identification into chicken sex identification so as to solve the problem mentioned in chicken industry: apply Convolutional Neural Network(CNN) to construct chicken sex identification model, and compress the model in condition of high identification rate; transfer the compressed model to TensorFlow Lite model, then deploy the model to Android App for implementation of automatic identification of chicken sex and functions of enquiry of both chicken variety and disease, etc.? This software may be used to reduce relevant man power, improve the efficiency of identical rate of chicken sex, which is of important applicable value.
Key words: identification 0f chicken sex; machine learning; culture; android; TensorFlow Lite
1 背景
1.1 開發背景
隨著生活水平的提高,人們對雞肉及其副產品的需求量日益增加,導致養雞業迅速發展。而初生雛雞是較脆弱,飼養時需要較高的成本,同時由于溫度、濕度、通風、光照等因素影響 [1],初生雛雞擁有較高的死亡率。而且在養殖過程中,涉及的雛雞性別識別問題[2],主要為人工操作,這在雛雞養殖過程中消耗了大量的時間與人力。
現實生活中養雞場無論是商品肉雞或是商品蛋雞養殖,都需要把不同性別的雛雞分開養殖或按一定比例混合飼養[3],從而提高初生雛雞的存活率和養殖的經濟效益。所以養雞場養殖雛雞時對購買的初生雛雞進行性別鑒別尤為重要,雛雞性別鑒別流程中多個步驟均為人工操作,需要花費大量時間,同時對于雛雞鑒別人員的眼力與鑒別經驗有較高要求。所以開發一款雛雞性別鑒別軟件尤為重要,可以在支持養雞人員的工作同時,降低工作負擔提高工作效率,并且幫助養雞場節省成本。
該雛雞性別識別App能夠實現通過快捷的拍照或是使用雛雞的生殖部位圖片對雛雞進行性別識別,提高性別鑒別效率,以便將剛出生的雛雞合理飼養,進而提高養殖效率與養雞的經濟收益。
1.2 雛雞翻腔鑒別法
雛雞翻腔鑒別[4]要在雛雞破殼后12小時內完成鑒別。需將雛雞肛門翻開,通過雛雞泄殖腔前端突起形狀來判斷雛雞性別,雌性突起前端尖,雄性突起前端圓。與羽色法、羽斑法等鑒別方法相比,翻缸鑒別法適用于適用各個品種雛雞,且準確率高。
2 開發平臺
TensorFlow Lite 是 Google在2017年I/O大會上首次被提出,其使開發人員可以在端側部署人工智能應用[5]。同時TensorFlow Lite市TensorFlow,在移動設備上運行機器學習模型的跨平臺解決方案,并擁有低延遲,運行時庫極小等特性,使其在移動設備上有著十分優秀的表現,并加速端側機器學習的發展[6]。
Android系統是由Android系統公司的創始人Andy Rubin創造的,而后被Google收購,Google的目標是將Android系統打造成一個標準化、開放式的移動操作系統平臺[7]。目前Android系統早已成為主流移動終端操作系統之一,并占據了大部分市場份額。同時與其他移動終端操作系統相比Android系統由于開源性而吸引了大量開發者前來進行應用開發,導致在過去幾年中Android應用的數量出現了井噴式增長,并在一定程度上促進了Android技術的發展。而且Android系統已經不僅僅用在手機端,還廣泛用于TV、手表等各種可穿戴設備以及各種智能硬件。
3 需求分析
3.1 用戶需求
對于軟件性能來說,App不僅需要具備基本的功能,在軟件的設計和人機交互過程中更要注重用戶的體驗感,本產品的界面簡潔清晰,色彩清新可為用戶提供優良的體驗。
1)軟件功能完整性:客戶端功能齊全,為用戶使提供便利。
2)軟件運行流暢性:用戶使用過程中不能出現卡頓現象,在一些必需的耗時操作中展示加載動畫提示用戶,確保用戶不會出現負面體驗。
3)軟件啟動時間較短:軟件的啟動是用戶體驗的第一步,如果啟動時間較費時會直接影響用戶的體驗感。
4)軟件內存占用較少:軟件設計不當會造成占用內存過高,運行中導致軟件被系統進程殺掉,從而大大降低了用戶的體驗感。
3.2 功能需求
1)雛雞性別鑒別軟件,必須滿足用戶可對雛雞進行快速性別鑒別的功能,本產品通過機器學習技術會對雛雞性別概率進行初步的分析。
2)滿足客戶端與服務器之間、客戶端與客戶端之間的通信流暢,用戶在我們的平臺能夠及時地發送接收信息。
3)錯誤信息提示,軟件在斷網時運行或其他錯誤情況,需有彈窗告知用戶,除此之外在本產品的“我的”界面有意見反饋功能,用戶可以隨時通過此功能對本產品提出建議。
4 雛雞性別識別模型實現
由于現實生活中Android設備可能處于無網絡的情況,無法將數據傳輸到服務器端進行運算,同時在部署機器學習模型時,要考慮到移動設備的帶寬較低與其在運行時對低延遲、低功耗的要求。所以無法直接將用Keras訓練的雛雞性別鑒別模型直接部署到移動設備端,需使用TensorFlow Lite將訓練好的模型轉換成TensorFlow Lite 的模型文件,并使用TensorFlow Lite中的優化方法對轉換后的模型文件進行處理,從而保證模型在Android設備上的識別準確率與運行效率。
1) 使用文獻[8]中的方法訓練好初始雛雞性別鑒別模型。但由于初始模型網絡參數量大,無法直接部署到Android端。所以將已經訓練好的網絡模型,通過知識蒸餾的方法進行模型壓縮,從而得到一個較小體積的壓縮模型,并且其準確率與初始模型相近。
2) 采用非量化的TFLite轉換器,將已經壓縮好的雛雞性別鑒別模型轉換為Tensorflow Lite格式。
3) 在Android端使用TensorFlow Lite 的模型的解釋執行器去解釋執行已經轉換完成的雛雞性別鑒別模型。從而完成雛雞性別模型在Android端的部署。
5 雛雞識別的設計
雛雞識別軟件具有以下基本功能,能夠滿足用戶基本需求包括:登錄注冊、雛雞性別識別、雞的品種、雞的疾病、雞場建設、動態、收藏、新聞資訊、意見反饋、我的關注、瀏覽歷史、修改資料、退出登錄。
1) 登錄注冊:初次下載應用的用戶可以設置賬號密碼進行注冊,獲取本軟件一個身份ID,并使用注冊的賬號進行登錄,完成登錄的用戶可以使用軟件的所有功能。
2) 雛雞性別識別:用戶使用此功能,對雛雞拍一張照片或者是從相冊中選擇一張雛雞的照片進行識別,識別結果會給出這只雞雌性與雄性的性別比例,以此來進行一個初步的雛雞性別判斷。
3) 雞的品種:本產品收錄了六十多種雞的品種,充分滿足用戶的需求,通過對本功能的查看,分辨并了解一只雞的品種特點習性等。
4) 雞的疾病;本功能羅列了雞的各種常見疾病,根據疾病能夠查看病因、癥狀、治療方法。
5) 雞場建設:提供建設雞場的大量資料,為初次建設雞場的用戶提供了許多的建議和指導。
6) 動態:為用戶提供一個分享與交流的平臺,用戶可以在養殖的過程中分享自己的養殖經驗,同時也可以查閱其他用戶的養殖經驗來進行參考。
7) 收藏:用戶可以收藏對自己有用的帖子,方便下次查看。
8) 新聞資訊:在本產品的首頁每天都會推出有關雞在市場上的資訊,用戶在家也能了解時事。
9 )意見反饋:用戶可以通過此功能對我們的產品提出建議或問題,我們會為用戶提的意見進行優化修改。
10) 我的關注:記錄了用戶在動態中關注的其他用戶。用戶可以瀏覽所關注用戶的個人信息和發布的動態,在瀏覽動態的過程中不會查看到未關注的用戶所發布的動態。
11) 瀏覽歷史:記錄用戶觀看過的帖子,方便用戶查找,以免在沒有關注和收藏的情況下找不到想要查看的帖子。
12) 修改資料:用戶可以修改自己向其他用戶展示的個人信息,如頭像、昵稱、年齡、個性簽名等。
13) 退出登錄:退出你的賬號。
6 雛雞性別識別軟件的實現
通過圖片與文字相結合的方式介紹本產品的實現:
6.1 登錄注冊
登錄注冊模塊使用,通過將用戶數據與后臺連接,后臺會對注冊的信息進行檢查(用戶上傳的身份用戶名是否已經存在),檢查通過后會對密碼進行動態加密處理,再存儲到數據庫的用戶表中。用戶的登錄、注冊功能展示如下(如圖2,圖3所示)。
6.2 首頁
首頁頂部有搜索功能供用戶查詢,搜索下面有精美的輪播圖,首頁包含雞的品種、雞的疾病、雞場建設、雛雞性別識別四個功能,還有每天的新聞資訊(如圖4),首頁的四個功能界面分別如下(圖5,圖6,圖7,圖8,圖9)。
6.3 雞的品種及詳細
在軟件的后臺數據庫中收錄了常見的雞的品種以及它們的介紹。用戶打開該功能的界面可以獲取數據庫中所收錄的雞的品種名稱和該品種的圖片(圖5),點擊雞的品種名稱和該品種的圖片所展對應的按鈕會跳轉到所選中雞的品種詳細頁面(圖6),便于用戶可以直觀地了解該品種信息。
6.4 雞的疾病
將常見的雞的疾病信息進行整合,并且收錄到軟件后臺數據庫中。用戶在該功能界面可以獲取五種類型的疾病(細菌性傳染病、病毒性傳染病、寄生蟲病、營養缺乏病、雞中毒)以及每種類型所對應的疾病的名稱(圖7),點擊疾病名稱所對應的按鈕可以跳轉到該疾病的詳細頁面(圖8),在該頁面中展示了所選中的疾病詳細信息,介紹了其病因、癥狀、治療方法供用戶參考。
6.5 雞舍建設
在軟件的后臺數據庫中收錄了一些的雞舍的建設信息,該頁面提供了一些雞舍的建設信息供用戶參考(圖9,圖10)。
6.6 雛雞識別
該功能是基于TensorFlow Lite模型文件和Android中的Neural Networks API(Google在Android 8.1以及更高版本的系統中,為實現機器學習框架而設計的底層接口。)實現的,用戶通過選擇一張雛雞泄殖腔前端的圖片(需將雛雞肛門翻開拍攝的圖片)即可運行TensorFlow Lite模型進而獲取該雛雞的性別概率,界面如下(圖11,圖12)。(雛雞破殼后12小時內完成識別準確率較高)。
6.7 動態
在動態頁面可以查看其他用戶發表的雛雞性別鑒別與養殖經驗的文章(如圖13)。同時想要查看文章的詳細內容可以對文章進行點擊,并且文章可在下方發表評論或與其他人進行相關知識探討(如圖14)。點擊動態右上角圖標進入發布動態界面,將雛雞性別鑒別或養殖過程中的經驗與問題進行分享。
6.8 收藏
這里可以清楚地看到以前收藏的帖子(圖16)擊帖子,點擊帖子可以查看帖子的詳細內容(如圖14)。
6.9 我的
我的界面有網名頭像、我的關注、瀏覽歷史、修改資料、關于我們、意見反饋等主要功能(如圖17)。我的關注可以查看用戶在動態中關注過的人(如圖18);瀏覽歷史保存了用戶曾經瀏覽過的帖子,方便查找(如圖19);修改資料通過頭像、昵稱等修改,讓用戶展示自己的個性(如圖20)。
7 結束語
本文對基于TensorFlow Lite的雛雞性別鑒別App的開發背景、需求分析與軟件的設計與實現進行探討和研究,通過用文字與圖片相結合的方式進行闡述。在軟件開發時,采用設計模式原則,使代碼趨于高內聚低耦合,提高代碼可維護性,易讀性以及擴展性。此外,在實現雛雞性別鑒別功能的基礎上,增加了與雛雞養殖相關的功能。為相關的工作人員提供便利,并且有助于雞場提高雛雞養殖的經濟效益。
參考文獻:
[1] 張榮號.蛋雞養殖技術要點[J].湖北畜牧獸醫,2017,38(5):38.
[2] 馮淑梅.雛雞飼養中應注意的問題[J].農業開發與裝備,2019(4):240.
[3] 王德智.雛雞日常飼養技術[J].畜牧獸醫科學:電子版,2020(13):55-56.
[4] 魏曉冉,王志強,姜國松.雛雞雌雄翻肛鑒別技術要點[J].家禽科學,2016(7):30-32.
[5] 高陸川.TensorFlow Lite開發平臺的研究與分析[J].電子測試,2018(20):64-65,85.
[6] 李雙峰.TensorFlow Lite:端側機器學習框架[J].計算機研究與發展,2020,57(9):1839-1853.
[7] 肖勇鋒,邱桃榮,余宇婷,等.基于Android的色卡識別系統的設計與實現[J].南昌大學學報(工科版),2016,38(2):183-190.
[8] 楊晶晶,韓閏凱,吳占福,等.基于CNN和圖像深度特征的雛雞性別自動鑒別方法[J].農業機械學報,2020,51(6):92,258-263.
【通聯編輯:謝媛媛】