老百姓的日常餐桌上總少不了魚,大快朵頤背后,您是否想到過,這些海產(chǎn)品通常都經(jīng)過水產(chǎn)養(yǎng)殖企業(yè)的科學(xué)養(yǎng)殖處理,且肉感鮮美,安全可靠。
然而,水產(chǎn)養(yǎng)殖企業(yè)的大多數(shù)工作仍舊大量依靠人力,工人需要在潮濕環(huán)境下進(jìn)行高強(qiáng)度的漁業(yè)作業(yè),造成了鮮有年輕人愿意從事這類繁重、惡劣的工作。因此實(shí)現(xiàn)水產(chǎn)養(yǎng)殖的自動化流程,對水產(chǎn)養(yǎng)殖企業(yè)來說是極大的需求。?
水產(chǎn)養(yǎng)殖企業(yè)的一個(gè)主要賣品就是魚,包含各種魚類的魚苗和成魚。魚苗通常會被進(jìn)行飼養(yǎng),直到養(yǎng)成成魚后再賣出。成魚則是會被放進(jìn)池塘中進(jìn)行觀察飼養(yǎng)。由于魚苗的個(gè)體小,在一個(gè)水盆里很難判斷魚苗的數(shù)量,因此需要通過視覺目標(biāo)檢測的方法來對魚苗計(jì)數(shù)。在國內(nèi)、國外都有成熟的魚苗計(jì)數(shù)器來對魚苗的數(shù)量進(jìn)行計(jì)數(shù),有較高的準(zhǔn)確率,但是卻很少有成熟的、針對成魚的計(jì)數(shù)產(chǎn)品。
來自華南理工大學(xué)自動化科學(xué)與工程學(xué)院的研究生林銳描述說:“一方面,成魚的活動性要比魚苗強(qiáng)得多,使得成魚在不同時(shí)刻可能有不同的姿態(tài),給視覺檢測造成困擾;另一方面,成魚之間相互重疊遮擋的情況更為明顯,較難從二維圖像中判斷魚遮擋重疊時(shí)的數(shù)量情況。”
用實(shí)例分割模型對成魚計(jì)數(shù)
作為校企合作項(xiàng)目,林銳和他的小伙伴們一起,與某水產(chǎn)養(yǎng)殖企業(yè)合作,目標(biāo)是幫助企業(yè)在放魚作業(yè)時(shí)能了解魚的數(shù)量和大致重量。
本項(xiàng)目的應(yīng)用場景是:水產(chǎn)養(yǎng)殖企業(yè)將采購的魚裝在車廂中,并載回到養(yǎng)殖場,將車廂和放魚槽連接,放魚槽另一端連接池塘,放魚槽上安裝了本項(xiàng)目的魚計(jì)數(shù)和估重系統(tǒng)。打開車廂的閘門,將魚放進(jìn)放魚槽并流向池塘,該系統(tǒng)則開始對魚進(jìn)行計(jì)數(shù)和估重,并將結(jié)果上傳到后臺服務(wù)器中。
圖1?放魚槽示意圖
圖 1 中的 ① 即為 NVIDIA?Jetson Xavier NX 設(shè)備,② 為攝像頭,① 和 ② 組成了本項(xiàng)目的硬件設(shè)備。③ 為該項(xiàng)目的實(shí)驗(yàn)對象。④ 為該項(xiàng)目所需要的放魚槽設(shè)備。
林銳和他的隊(duì)員們決定,使用深度學(xué)習(xí)實(shí)例分割算法作為魚的目標(biāo)檢測模型。“實(shí)例分割是語義分割和目標(biāo)檢測的集成,它具有目標(biāo)檢測的功能,同時(shí)能對目標(biāo)進(jìn)行像素級的分割。”林銳介紹說。
利用圖像中的一些語義信息,來幫助模型對相互遮擋重疊的魚進(jìn)行識別,從而使算法能更好地對成魚進(jìn)行計(jì)數(shù)。利用實(shí)例分割模型得到的目標(biāo)掩膜,可以建立目標(biāo)像素面積和重量的一個(gè)線性模型,通過這個(gè)模型得到魚的估計(jì)重量,幫助企業(yè)能較好地了解這一批次魚的數(shù)量和重量。
在算力和成本中達(dá)到最佳平衡
同學(xué)們利用現(xiàn)場收集的上千張魚的圖片作為訓(xùn)練數(shù)據(jù)集,部分圖片如圖 2 所示。

利用收集的魚類數(shù)據(jù)集訓(xùn)練算法,使用了 PyTorch1.4 框架,CUDA10.0 以及 NVIDIA GPU 進(jìn)行訓(xùn)練,并且算法的 Backbone 層修改為 ResNet18。在訓(xùn)練完算法之后,先將模型轉(zhuǎn)化為 ONNX 格式,將模型權(quán)重導(dǎo)出為 wts 格 式,并通過 TensorRT 框架實(shí)現(xiàn) YOLACT 算法的加速引擎。部署到 Jetson Xavier NX 上使用的是 C++ 語言,然后使用了 Qt 開源框架搭建了一個(gè)人機(jī)操作界面,并且移植到 Jetson Xavier NX 平臺上。
“由于本項(xiàng)目用到實(shí)例分割算法,需要算力較高的設(shè)備。”林銳說,權(quán)衡了成本后,最終選擇 NVIDIA Jetson Xavier NX。它擁有 384 個(gè) CUDA 核心以及 48 個(gè) Tensor 核 心,Volta 架構(gòu),在 INT8 數(shù)據(jù)格式下可以達(dá)到 21TOPS 的算力,在 FP16 數(shù)據(jù)格式下可以達(dá)到 10TOPS 的算力。
將整個(gè) Qt 程序移植到 NVIDIA Jetson Xavier NX 設(shè)備上,最后的呈現(xiàn)效果如圖 3 所 示。

圖 3?Jetson Xavier NX 界面顯示
“雖然本項(xiàng)目主要研究成魚的計(jì)數(shù)和估重,只是水產(chǎn)養(yǎng)殖業(yè)中的一個(gè)簡單環(huán)節(jié), 但是本項(xiàng)目的技術(shù)可以推廣到水產(chǎn)養(yǎng)殖業(yè)的其他工作任務(wù),”林銳說,“國內(nèi)的水產(chǎn)養(yǎng)殖企業(yè)大多是勞動密集型企業(yè),大多數(shù)工作需要人力來完成。因此,通過引進(jìn)一些智能科技,幫助水產(chǎn)養(yǎng)殖企業(yè)打造自動化流水線,能提高水產(chǎn)養(yǎng)殖企業(yè)的經(jīng)濟(jì)收益和工作效率。這將有利于原型機(jī)產(chǎn)品的推廣和研發(fā),并打開一個(gè)新的市場。”
給 Jetson 開發(fā)者們的建議
作為資深開發(fā)者,已經(jīng)使用了好幾代 NVIDIA Jetson 產(chǎn)品的林銳說:“Jetson 系列有多個(gè)不同型號的設(shè)備,適用于不同的應(yīng)用場景和需求。因此,在選擇 Jetson 設(shè)備時(shí),需要根據(jù)自己的需求選擇合適的設(shè)備。”
“作為 NVIDIA Jetson 用戶,需要深入了解設(shè)備的功能和性能,學(xué)習(xí)優(yōu)化代碼以實(shí)現(xiàn)更好的性能。與此同時(shí),Jetson 擁有一個(gè)活躍的社區(qū),包括開發(fā)者、用戶和愛好者。加入社區(qū)可以獲得幫助、分享經(jīng)驗(yàn)和學(xué)習(xí)新技能。Jetson 社區(qū)還有許多活動和比賽,可以幫助用戶提高技能,認(rèn)識到更多的應(yīng)用場景。”
*本文中圖片均由華南理工大學(xué)自動化科學(xué)與工程學(xué)院的林銳提供,如果您有任何疑問或需要使用本文中圖片,請聯(lián)系林銳同學(xué)。
推薦閱讀
Jetson 開發(fā)者破百萬,快來說出你的開發(fā)故事吧

Jetson 百萬開發(fā)者故事 | NVIDIA Jetson 如何成為可移動智能腦機(jī)交互平臺

Jetson 百萬開發(fā)者故事 | 通過 Jetson NANO 展現(xiàn) CV 實(shí)踐價(jià)值

Jetson 百萬開發(fā)者故事 | 為了孩子的健康成長,他用 NVIDIA Jetson 做了一個(gè)象棋機(jī)器人

Jetson 百萬開發(fā)者故事 | Jetson 開發(fā)者突破百萬,從 TK1 到 Orin 我都經(jīng)歷了啥

Jetson 百萬開發(fā)者故事 | 讓 AI 成為鐵路客運(yùn)站自動扶梯安全管控的關(guān)鍵

Jetson 百萬開發(fā)者故事 | 基于 Jetson Nano 的便攜式巖石分類檢測系統(tǒng):地質(zhì)學(xué)家的新利器

即刻點(diǎn)擊?“閱讀原文”?或掃描下方海報(bào)二維碼,在 NVIDIA On-Demand 上觀看 GTC 精選回放,包括主題演講相關(guān)精選、中國本地精選內(nèi)容、生成式 AI 專題以及全球各行業(yè)及領(lǐng)域最新成果!
