基于Python深度學習的鯊魚識別分類系統

摘要:鯊魚是海洋環境健康的指標,但受到過度捕撈和數據缺乏的挑戰。傳統的觀察方法成本高昂且難以收集數據,特別是對于具有較大活動范圍的物種。論文討論了如何利用基于媒體的遠程監測方法,結合機器學習和自動化技術,來填補鯊魚種群評估中的信息空白。提出了一個包含53,345張鯊魚圖片的數據庫,覆蓋了219種鯊魚,并開發了一個名為“Shark Detector”的軟件包,利用PyQt5設計了簡約的系統UI界面,使用遷移學習和卷積神經網絡(CNN)來自動識別和快速分類鯊魚種類。

關鍵詞:數據挖掘、圖像分類、機器學習、遠程監測、鯊魚識別

參考文獻:Shark detection and classification with machine learning, Jenrette et al., 2022.

  1. 研究背景及意義

鯊魚作為海洋生態系統的關鍵指示物種,其種群的健康狀況直接反映了海洋環境的生態平衡。然而,由于鯊魚的廣泛分布和大范圍的活動習性,傳統的科學調查和漁業監測方法在收集鯊魚種群數據時面臨巨大挑戰。這些方法不僅成本高昂,而且難以捕捉到足夠的信息,特別是對于個體數量和分布情況的精確評估。

缺乏詳盡的數據支持,科學家和保護工作者難以對鯊魚種群進行有效的狀態評估和趨勢預測。這種情況限制了保護措施的制定和執行,導致許多鯊魚物種的保護狀況不容樂觀。隨著IUCN受威脅物種數量的增加,迫切需要新的監測手段來填補數據空白,提高對鯊魚種群動態的了解。

隨著計算機視覺和機器學習技術的發展,特別是卷積神經網絡(CNN)在圖像識別領域的突破,為鯊魚等海洋生物的自動檢測和分類提供了新的技術手段。通過訓練算法識別鯊魚的特征,可以自動化地從大量圖像和視頻中提取有用信息,這不僅提高了數據處理的效率,也為海洋生物多樣性監測提供了新的解決方案。

社交媒體和公共科學項目的興起為生物多樣性監測提供了新的數據來源。公眾拍攝的鯊魚照片和視頻,尤其是通過Instagram等平臺分享的內容,構成了一個龐大的圖像庫。利用機器學習算法對這些數據進行挖掘和分析,可以為鯊魚研究提供寶貴的補充信息,同時也促進了科學研究與公眾參與的結合。

  1. 研究方法

  2. 數據庫構建:研究團隊創建了一個包含53,345張鯊魚圖片的數據庫,涵蓋了219種鯊魚。這些圖片主要來源于社交媒體、公民科學項目、用戶提交和其他電子檔案。

  3. Shark Detector開發:開發了一個名為“Shark Detector”的軟件包,它集成了對象檢測和圖像分類模型。該軟件包使用遷移學習和卷積神經網絡(CNN)技術來自動識別和分類視頻中和圖像中的鯊魚。

  4. 模型組成:

  • Shark Locator (SL):對象檢測模型,用于在圖像和視頻中定位鯊魚并繪制邊界框。

  • Shark Identifier (SI):二元排序模型,用于從混合圖像集中篩選出鯊魚圖像。

  • Shark Classifiers (SCs):多類模型,用于將鯊魚圖像分類到屬和物種級別。

  1. 訓練與驗證:使用來自sharkPulse的數據和其他來源的圖像訓練模型。通過遷移學習,利用預訓練的網絡(如VGG16和DenseNet201)來提高訓練效率和準確性。

  2. 數據增強:采用圖像增強技術,如平移、剪切、縮放和旋轉,提高模型的泛化能力。

?

?

圖1 鯊魚探測器系統由對象檢測和分類軟件包組成,以循序漸進的方式達到最佳效果。此外,通過檢測鯊魚主體,鯊魚定位器可以合成鯊魚識別器和鯊魚分類器模型所需的剪切鯊魚圖像,作為新的訓練數據補充到sharkPulse檔案中。視頻按照定位、識別和分類的順序進行處理。異構數據挖掘數據集按照先識別后分類的順序進行處理。

?

?

?

圖2 SL物體探測模型根據鯊魚出現的置信度繪制方框。(a) 檢測到一條短鰭鯖鯊幼魚,并對單張自動裁剪圖像進行處理,去除餌罐和藍鰭金槍魚等無關物體。(b) 檢測到多個胭脂魚物種,并從單張圖像中裁剪出兩張圖像。

?

?

?

圖3 由SI識別的圖像以及隨后由SC進行的分類。(a) 通過對水下照片、有前景和背景噪聲的圖像、難以辨認鯊魚特征的圖像以及8個不同物種進行分類,SI和SC正確識別了各種鯊魚圖像。(b) SI錯誤分類的常見對象,如鯨目動物(以及其他海洋和陸地動物)、空曠的前景、難以辨認的物體和假鯊魚。(c) 由于部分特征被掩蓋,SI會錯過鯊魚的出現。

  1. 結果分析

  2. 分類能力:Shark Detector能夠對47種鯊魚進行分類。

  3. 準確性測試:

  • 在處理誘餌遠程攝像機鏡頭和YouTube視頻時,Shark Detector在定位鯊魚方面的準確率達到了89%。

  • 在將定位到的鯊魚分類到物種層面時,準確率為69%。

  1. Instagram數據集:在Instagram上收集的異構數據集中,Shark Identifier以91%的準確率篩選出鯊魚圖像,并將這些圖像分類到物種層面的準確率達到了70%。

  2. 性能評估:研究評估了Shark Detector在不同數據生成方法中的性能,包括在sharkPulse數據集中的定位、在線視頻的處理,以及Instagram數據的挖掘。

  3. 軟件性能:Shark Detector在沒有人工交互的情況下處理了所有數據生成方法,展示了其自動化處理的能力。

  4. 模型改進:研究指出,隨著向訓練數據集添加更多圖像,軟件流水線的預測準確性會提高,這表明模型性能有進一步優化的空間。

通過這些方法和結果,本研究展示了Shark Detector作為一個強大的工具,能夠自動化地從各種媒體來源中識別和分類鯊魚,為鯊魚保護和生態研究提供了新的技術支持。簡而言之,圖4概述了通過不同模型和參數測量的SD系統在鯊魚圖像分類方面的性能,包括不同類別的準確性、訓練數據集大小的影響以及模型的可靠性。

?

?

?

圖4 Shark Detector(SD)系統組件的性能測量結果。(a) 對13個鯊魚屬類的分類準確性(GSC)進行了測量,發現隨著訓練數據集大小的增加,其準確性可以用一個雙參數漸近模型來擬合,漸近曲線表示每個類別在模型中可能達到的最大召回率。(b) 測量了7個物種類別和兩個包含數據較少的Carcharhinus sp.和Sphyrna sp.的類別(SSCg)的分類準確性。(c) 展示了12個GSC類別的訓練數據集大小閾值分布,排除了Prionace屬,因為它的召回率從未達到50%,曲線表示正態分布的密度。(d) 展示了9個SSCg類別的訓練數據集大小閾值分布,這些類別的屬包含超過兩個物種。(e) 展示了所有SD組件的性能,包括SSCg模型的標準誤差區間。(f) 展示了所有18個SSCg模型的準確性分布。

  1. PyQt5可視化軟件

本節詳細介紹如何以上述CNN網絡為主干,實現對鯊魚種類的檢測識別,且利用PyQt5設計了簡約的系統UI界面。在界面中,您可以選擇自己的視頻文件、圖片文件進行檢測。此外,您還可以更換自己訓練的主干模型,進行自己數據的檢測。該系統界面優美,檢測精度高,功能強大。它具備多目標實時檢測,同時可以自由選擇感興趣的檢測目標。本文提供了完整的Python程序代碼和使用教程,適合新入門的朋友參考,包括用戶登錄界面(注冊登錄和修改密碼),管理員主界面(用戶賬戶信息、查看歷史資源和鯊魚種類百科),普通用戶界面(上傳歷史記錄、鯊魚圖像識別和鯊魚種類百科),以及鯊魚識別界面(圖片和視頻)。

?

?

?

?

?

?

?

?

?

?

?

圖5 基于深度學習的鯊魚識別分類系統演示界面

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899818.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【漫話機器學習系列】168.最大最小值縮放(Min-Max Scaling)

在機器學習和數據預處理中,特征縮放(Feature Scaling) 是一個至關重要的步驟,它可以使模型更穩定,提高訓練速度,并優化收斂效果。最大最小值縮放(Min-Max Scaling) 是其中最常見的方…

開源測試用例管理平臺

不可錯過的10個開源測試用例管理平臺: PingCode、TestLink、Kiwi TCMS、Squash TM、FitNesse、Tuleap、Robot Framework、SpecFlow、TestMaster、Nitrate。 開源測試用例管理工具提供了一種透明、靈活的解決方案,使團隊能夠在不受限的情況下適應具體的測…

鴻蒙闊折疊Pura X外屏開發適配

首先看下鴻蒙中斷點分類 內外屏開合規則 Pura X開合連續規則: 外屏切換到內屏,界面可以直接接續。內屏(鎖屏或非鎖屏狀態)切換到外屏,默認都顯示為鎖屏的亮屏狀態。用戶解鎖后:對于應用已適配外屏的情況下,應用界面可以接續到外屏。折疊外屏顯示展開內屏顯示折疊狀態…

DRM_CLIENT_CAP_UNIVERSAL_PLANES和DRM_CLIENT_CAP_ATOMIC

drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1); 這兩行代碼用于啟用 Linux DRM(Direct Rendering Manager)客戶端的兩個關鍵特性,具體作用如下: 1. drmSetClientCap…

敏捷開發10:精益軟件開發和看板kanban開發方法的區別是什么

簡介 精益生產起源于豐田生產系統,核心是消除浪費,而看板最初是由豐田用于物料管理的信號卡片,后來被引入軟件開發。 Kanban 后來引入到敏捷開發中,強調持續交付和流程可視化。 精益軟件開發原則是基于精益生產的原則&#xff0…

用matlab探索卷積神經網絡(Convolutional Neural Networks)-3

5.GoogLeNet中的Filters 這里我們探索GoogLeNet中的Filters,首先你需要安裝GoogLeNet.在Matlab的APPS里找到Deep Network Designer,然后找到GoogLeNet,安裝后的網絡是沒有右下角的黃色感嘆號的,沒有安裝的神經網絡都有黃色感嘆號。 一個層&a…

Verilog中X態的危險:仿真漏掉的bug

由于Verilog中X態的微妙語義,RTL仿真可能PASS,而網表仿真卻會fail。 目前進行的網表仿真越來越少,這個問題尤其嚴重,主要是網表仿真比RTL仿真慢得多,因此對整個回歸測試而言成本效益不高。 上面的例子中,用Verilog RTL中的case語句描述了一個簡單的AND函數,它被綜合成AN…

PyTorch中知識蒸餾淺講

知識蒸餾 在 PyTorch 中,使用 teacher_model.eval() 和凍結教師模型參數是知識蒸餾(Knowledge Distillation)中的關鍵步驟。 ?1. teacher_model.eval() 的作用 目的: 將教師模型切換到評估模式,影響某些特定層(如 Dropout、BatchNorm)的行為。 ?具體影響: ?Dropo…

Odoo/OpenERP 和 psql 命令行的快速參考總結

Odoo/OpenERP 和 psql 命令行的快速參考總結 psql 命令行選項 選項意義-a從腳本中響應所有輸入-A取消表數據輸出的對齊模式-c <查詢>僅運行一個簡單的查詢&#xff0c;然后退出-d <數據庫名>指定連接的數據庫名&#xff08;默認為當前登錄用戶名&#xff09;-e回顯…

ChatGPT 迎來 4o模型:更強大的圖像生成能力與潛在風險

OpenAI 對 ChatGPT 進行重大升級&#xff0c;圖像生成功能即將迎來新的 4o 模型&#xff0c;并取代原本的 DALLE。此次更新不僅提升了圖像生成質量&#xff0c;還增強了對話內容和上傳文件的融合能力&#xff0c;使 AI 生成的圖像更加智能化和精準化。 4o 模型帶來的革新 Ope…

Python 實現的運籌優化系統代碼詳解(整數規劃問題)

一、引言 在數學建模的廣袤領域里&#xff0c;整數規劃問題占據著極為重要的地位。它廣泛應用于工業生產、資源分配、項目管理等諸多實際場景&#xff0c;旨在尋求在一系列約束條件下&#xff0c;使目標函數達到最優&#xff08;最大或最小&#xff09;且決策變量取整數值的解決…

Visual Studio Code配置自動規范代碼格式

目錄 前言1. 插件安裝2. 配置個性化設置2.1 在左下角點擊設置按鈕 &#xff0c;點擊命令面板&#xff08;或者也可以之間按快捷鍵CtrlShiftP&#xff09;2.2 在彈出的搜索框輸入 settings.json&#xff0c;打開首選項&#xff1a;打開工作區設置&#xff1b;2.3 在settings.jso…

【分布式】Hystrix 的核心概念與工作原理?

熔斷機制? Hystrix 的熔斷機制就像是電路中的保險絲。當某個服務的失敗請求達到一定比例&#xff08;例如 50%&#xff09;或者在一定時間內&#xff08;如 20 秒&#xff09;失敗請求數量超過一定閾值&#xff08;如 20 個&#xff09;時&#xff0c;熔斷開關就會打開。此時…

TypeScript 中 await 的詳解

TypeScript 中 await 的詳解 1. 基本概念2. 語法要求3. 工作原理4. 與 Promise 的比較5. 實踐中的注意事項總結 本文詳細介紹了 TypeScript 中 await 的工作原理、語法要求、與 Promise 的關系以及實踐中需要注意的問題&#xff0c;同時針對代碼示例進行了優化和補充說明。 1.…

ThreadLocal 深度解析

一、引言 在多線程編程的復雜世界中&#xff0c;數據共享與隔離是一個核心且具有挑戰性的問題。ThreadLocal 作為 Java 并發包中的重要工具&#xff0c;為我們提供了一種獨特的線程局部變量管理方式&#xff0c;使得每個線程都能擁有自己獨立的變量副本&#xff0c;避免了多線…

VMware安裝Ubuntu實戰分享

在日常開發和學習過程中&#xff0c;很多人都會選擇在VMware虛擬機上安裝Ubuntu&#xff0c;以便進行Linux環境的體驗和開發調試。本文將詳細分享在VMware Workstation上安裝Ubuntu的全過程&#xff0c;并結合個人經驗&#xff0c;提供一些實用的小技巧&#xff0c;幫助大家順利…

阻止上傳可執行程序

點擊工具中的文件服務器資源管理器 、然后點擊文件屏蔽管理中的文件屏蔽&#xff0c;然后導入目標文件選擇要限制的屬性即可

微服務面試題:配置中心

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

系統思考反饋

最近交付的都是一些持續性的項目&#xff0c;越來越感覺到&#xff0c;系統思考和第五項修煉不只是簡單的一門課程&#xff0c;它們能真正融入到我們的日常工作和業務中&#xff0c;幫助我們用更清晰的思維方式解決復雜問題&#xff0c;推動團隊協作&#xff0c;激發創新。 特…

MMD 轉 STL,拓寬 3D 模型應用邊界:方法與門道

在 3D 建模與打印領域&#xff0c;不同格式文件間的轉換是常見需求。MMD&#xff08;MikuMikuDance&#xff09;模型文件格式常用于動漫角色的舞蹈創作等&#xff0c;而 STL&#xff08;Stereolithography&#xff09;格式則廣泛應用于 3D 打印與計算機輔助設計&#xff08;CAD…