呂俊霖,陳作志,劉 巖,楊長平
(中國水產(chǎn)科學研究院南海水產(chǎn)研究所,廣東 廣州510300)
隨著智能手機的普及和深度學習技術的發(fā)展,以智能手機為載體的圖像識別軟件日漸走入人們的生活?;诰矸e神經(jīng)網(wǎng)絡技術和深度學習的方法,圖像識別軟件可自動提取圖像特征,并推斷出對應的種類(標簽),因此,在需要進行圖像識別的場景中,手機圖像識別軟件得到了迅速地推廣和應用,這類手機軟件使用便捷,對特定領域的物體識別具備一定準確度,受到人們的普遍歡迎[1-2]。
我國擁有廣闊的海洋面積,有3 000多種魚類,共4個綱47目、313科、3 090種,人們經(jīng)常捕獲和食用的魚類有幾十種到上百種[3-5]。某些魚類較為少見;不同科屬的魚類具有較相似的外觀特征;各地對某些魚類的稱呼不統(tǒng)一,容易引起誤解。鑒于上述情況,有必要開發(fā)出一款魚類識別軟件,幫助大眾識別魚類、辨別魚類、了解魚類,這既是海洋科普的需要,也有益于漁政和科研人員了解當?shù)氐臐O業(yè)水產(chǎn)情況。
當前,已經(jīng)有不少應用于特定場景的識別程序,如人臉識別、花卉識別、水果識別、昆蟲識別和車牌號識別等[6-10]。這些識別程序為工作人員提供了有力的輔助工具,對普通人群來說,可通過這些識別程序,快速便捷地獲得科普知識。
魚類識別程序適用于以下場景。
(1)對不了解的魚類,如在農(nóng)貿(mào)市場上售賣的魚類,或在漁業(yè)資源調(diào)查中捕獲、垂釣到的魚類進行識別,可了解其名稱、生活習性、分布位置和形態(tài)特征。
(2)對已知道俗名的魚類,想了解其更多的信息(學名、分類地位和生活習性等)。
(3)對俗名相同但外形不同的魚類進行探究和比較,了解其不同之處。
(4)對識別出來的魚類,希望通過分享功能,得到進一步確認,或者通過手機的分享功能,向公眾或好友傳播新發(fā)現(xiàn),分享新知識。
當前,手機識別應用軟件有多種表現(xiàn)形式,傳統(tǒng)上使用手機應用程序,也就是俗稱的手機APP[11]。手機APP的特點是開發(fā)時間較長、功能較豐富,但成本也較高。隨著微信的興起,微信為了統(tǒng)一入口,推出了小程序功能,由于微信的使用人數(shù)眾多,因此,基于微信小程序的識別軟件也逐漸流行起來[12-13]。兩者之間的比較如表1所示。
表1 手機APP和微信小程序的對比
針對魚類識別的使用場景,選擇微信小程序的形式,比較符合魚類識別這種一次性、偶發(fā)性和隨用隨走的應用場景。
魚類識別小程序的設計可以分為前端和后端兩個部分。前端使用微信小程序,呈現(xiàn)各種功能頁面并接受用戶輸入(圖1),后端在服務器上運行,對前端傳遞過來的交互信息進行響應,執(zhí)行具體的功能,如調(diào)用識別腳本、讀取數(shù)據(jù)庫信息等,并返回相應的結果(圖2)。
圖1 前端功能框架
圖2 后端功能框架
(1)識別功能。識別功能是核心功能,用戶通過調(diào)用手機攝像頭,或者通過讀取相冊里的圖片,上傳給服務器進行識別。識別的結果包括學名、中文名、俗名、形態(tài)特征、地理分布、生活習性等信息。
(2)魚類搜索。用戶可以通過搜索魚類的學名或俗名,得到相應魚類的具體信息。
(3)一句話提示。在程序的起始頁隨機展示魚類的清晰大圖,并配有一句話提示,激發(fā)用戶的好奇心和求知欲,增強用戶黏性。
(4)識別記錄。記錄用戶的每一次識別,并可將識別記錄分享出去。
(5)小程序助手。如果有不了解的魚類,用戶可借助微信小程序的助手功能,邀請魚類鑒定專家輔助鑒定。
(6)分享轉發(fā)。分享轉發(fā)識別出來的結果,請好友幫忙核對結果,或分享新知識。
(1)魚類識別腳本調(diào)用。對上傳過來的圖片進行識別腳本調(diào)用,利用卷積神經(jīng)網(wǎng)絡技術,將圖片的卷積結果與識別模型相比對,得到屬于某個物種的概率值,該物種在魚類數(shù)據(jù)庫中有一個唯一的標識(identification,ID),每個ID對應一種魚類。
(2)數(shù)據(jù)庫讀取。設計魚類信息數(shù)據(jù)庫,根據(jù)腳本識別出來的物種ID,在魚類數(shù)據(jù)庫中讀取屬于該ID的其他字段,從而得到對應魚類的詳細信息。開發(fā)人員需提前在數(shù)據(jù)庫中填好魚類各字段的具體信息。
(3)識別日志。記錄圖片的識別結果,如上傳圖片時間、識別結果、識別耗時等。
(4)統(tǒng)計分析。對識別結果進行統(tǒng)計分析,可給出目標時間段內(nèi)識別接口的調(diào)用情況和識別概率,為有針對性地調(diào)整識別參數(shù)提供數(shù)據(jù)支撐。
魚類數(shù)據(jù)庫用于對可識別的魚類信息進行統(tǒng)一管理。根據(jù)軟件的使用場景,確定了魚類數(shù)據(jù)庫的收錄標準:①較為常見;②在我國出版的魚類圖譜、圖志中被收錄過;③魚類的信息和圖片較易采集。經(jīng)反復篩選,共收入魚類1 400種,這也是識別小程序所能識別的上限。
在魚類識別數(shù)據(jù)庫中,設計了可展示字段,并根據(jù)字段收集整理了魚類的關鍵信息,如學名、中文名、俗名、分類地位、形態(tài)特征和生活習性等,制作成魚類數(shù)據(jù)庫。
魚類識別數(shù)據(jù)庫的結構如表2所示。
表2 魚類信息數(shù)據(jù)表
識別小程序由2個頁面組成,首頁是“識別”頁(圖3),通過隨機展示一張魚類的清晰大圖和一句話知識,引發(fā)用戶的好奇心,用戶可直接點擊該圖片進行識別,也可通過拍照或從相冊中選擇圖片進行識別,識別結果如圖4所示。
圖3 識別頁
圖4 識別結果頁
第2個頁面(圖5)是“我的”頁,主要提供了除識別外的其他重要功能,如識別記錄、識別貝類的跳轉鏈接、識別蝦蟹的跳轉鏈接、聯(lián)系我們、分享轉發(fā)和關于等,識別記錄頁面如圖6所示。
圖5 “我的”頁
圖6 識別記錄頁
通過這些菜單,用戶可以查看自己的識別記錄,也可以跳轉到對貝類和蝦蟹類的識別?!奥?lián)系我們”提供了微信小程序助手的功能,可以通過這個功能聯(lián)系魚類鑒定專家,從而得到更好的鑒別服務?!瓣P于”則提供了該軟件的開發(fā)信息。
魚類識別小程序的開發(fā),緊密切合了需要對魚類進行識別的典型場景,抓住了用戶的核心需求,并且通過生動活潑的界面設計,實現(xiàn)了其核心功能。
魚類小程序的識別結果比較準確,在驗證集上的測試,準確率可達95%以上,在生活中經(jīng)過多次的實物測試,準確率也達到90%以上,較好地實現(xiàn)了產(chǎn)品的需求,在魚類知識普及中具有一定的作用,也可為手機識別程序的開發(fā)者提供有益的借鑒。