基于yolov8的200鸟类智能检测与识别系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】

基于YOLOv8的200种鸟类智能检测与识别系统是一款基于深度学习的目标检测系统,该系统利用YOLOv8框架,通过11788张图片训练出一个能够进行鸟类智能检测与识别的模型,可以识别200种不同的鸟类。

该系统采用Python与PyQt5开发,拥有简洁的用户界面,支持图片、视频以及摄像头进行实时目标检测,并能够保存检测结果。用户可以通过点击图片、视频或摄像头图标,选择需要检测的内容,系统会自动显示检测结果,包括目标位置、目标总数、置信度以及检测用时等信息。

该系统在生态保护、科学研究、野生动物监测以及生态旅游等领域具有广泛的应用前景。它可以帮助研究者和保护人员准确监测鸟类种群的动态,评估生物多样性,及时发现稀有或濒危鸟种,制定更有效的保护措施。同时,它也可以为科学研究提供大量精确的鸟类观察数据,协助进行行为学、迁徙学和生态学的研究。

此外,在野生动物监测方面,该系统能够减少人为干扰,提高数据收集效率和准确度,有助于森林管理及非法狩猎的预防。在生态旅游业中,鸟类检测与识别技术可以提升游客体验,实现自动化识别和解说服务,让游客更深入地了解自然界的奥妙。

【效果展示】

【测试环境】

windows10
anaconda3+python3.8
torch==1.9.0+cu111
ultralytics==8.2.95

【模型可以检测出类别】

001-Black_footed_Albatross
002-Laysan_Albatross
003-Sooty_Albatross
004-Groove_billed_Ani
005-Crested_Auklet
006-Least_Auklet
007-Parakeet_Auklet
008-Rhinoceros_Auklet
009-Brewer_Blackbird
010-Red_winged_Blackbird
011-Rusty_Blackbird
012-Yellow_headed_Blackbird
013-Bobolink
014-Indigo_Bunting
015-Lazuli_Bunting
016-Painted_Bunting
017-Cardinal
018-Spotted_Catbird
019-Gray_Catbird
020-Yellow_breasted_Chat
021-Eastern_Towhee
022-Chuck_will_Widow
023-Brandt_Cormorant
024-Red_faced_Cormorant
025-Pelagic_Cormorant
026-Bronzed_Cowbird
027-Shiny_Cowbird
028-Brown_Creeper
029-American_Crow
030-Fish_Crow
031-Black_billed_Cuckoo
032-Mangrove_Cuckoo
033-Yellow_billed_Cuckoo
034-Gray_crowned_Rosy_Finch
035-Purple_Finch
036-Northern_Flicker
037-Acadian_Flycatcher
038-Great_Crested_Flycatcher
039-Least_Flycatcher
040-Olive_sided_Flycatcher
041-Scissor_tailed_Flycatcher
042-Vermilion_Flycatcher
043-Yellow_bellied_Flycatcher
044-Frigatebird
045-Northern_Fulmar
046-Gadwall
047-American_Goldfinch
048-European_Goldfinch
049-Boat_tailed_Grackle
050-Eared_Grebe
051-Horned_Grebe
052-Pied_billed_Grebe
053-Western_Grebe
054-Blue_Grosbeak
055-Evening_Grosbeak
056-Pine_Grosbeak
057-Rose_breasted_Grosbeak
058-Pigeon_Guillemot
059-California_Gull
060-Glaucous_winged_Gull
061-Heermann_Gull
062-Herring_Gull
063-Ivory_Gull
064-Ring_billed_Gull
065-Slaty_backed_Gull
066-Western_Gull
067-Anna_Hummingbird
068-Ruby_throated_Hummingbird
069-Rufous_Hummingbird
070-Green_Violetear
071-Long_tailed_Jaeger
072-Pomarine_Jaeger
073-Blue_Jay
074-Florida_Jay
075-Green_Jay
076-Dark_eyed_Junco
077-Tropical_Kingbird
078-Gray_Kingbird
079-Belted_Kingfisher
080-Green_Kingfisher
081-Pied_Kingfisher
082-Ringed_Kingfisher
083-White_breasted_Kingfisher
084-Red_legged_Kittiwake
085-Horned_Lark
086-Pacific_Loon
087-Mallard
088-Western_Meadowlark
089-Hooded_Merganser
090-Red_breasted_Merganser
091-Mockingbird
092-Nighthawk
093-Clark_Nutcracker
094-White_breasted_Nuthatch
095-Baltimore_Oriole
096-Hooded_Oriole
097-Orchard_Oriole
098-Scott_Oriole
099-Ovenbird
100-Brown_Pelican
101-White_Pelican
102-Western_Wood_Pewee
103-Sayornis
104-American_Pipit
105-Whip_poor_Will
106-Horned_Puffin
107-Common_Raven
108-White_necked_Raven
109-American_Redstart
110-Geococcyx
111-Loggerhead_Shrike
112-Great_Grey_Shrike
113-Baird_Sparrow
114-Black_throated_Sparrow
115-Brewer_Sparrow
116-Chipping_Sparrow
117-Clay_colored_Sparrow
118-House_Sparrow
119-Field_Sparrow
120-Fox_Sparrow
121-Grasshopper_Sparrow
122-Harris_Sparrow
123-Henslow_Sparrow
124-Le_Conte_Sparrow
125-Lincoln_Sparrow
126-Nelson_Sharp_tailed_Sparrow
127-Savannah_Sparrow
128-Seaside_Sparrow
129-Song_Sparrow
130-Tree_Sparrow
131-Vesper_Sparrow
132-White_crowned_Sparrow
133-White_throated_Sparrow
134-Cape_Glossy_Starling
135-Bank_Swallow
136-Barn_Swallow
137-Cliff_Swallow
138-Tree_Swallow
139-Scarlet_Tanager
140-Summer_Tanager
141-Artic_Tern
142-Black_Tern
143-Caspian_Tern
144-Common_Tern
145-Elegant_Tern
146-Forsters_Tern
147-Least_Tern
148-Green_tailed_Towhee
149-Brown_Thrasher
150-Sage_Thrasher
151-Black_capped_Vireo
152-Blue_headed_Vireo
153-Philadelphia_Vireo
154-Red_eyed_Vireo
155-Warbling_Vireo
156-White_eyed_Vireo
157-Yellow_throated_Vireo
158-Bay_breasted_Warbler
159-Black_and_white_Warbler
160-Black_throated_Blue_Warbler
161-Blue_winged_Warbler
162-Canada_Warbler
163-Cape_May_Warbler
164-Cerulean_Warbler
165-Chestnut_sided_Warbler
166-Golden_winged_Warbler
167-Hooded_Warbler
168-Kentucky_Warbler
169-Magnolia_Warbler
170-Mourning_Warbler
171-Myrtle_Warbler
172-Nashville_Warbler
173-Orange_crowned_Warbler
174-Palm_Warbler
175-Pine_Warbler
176-Prairie_Warbler
177-Prothonotary_Warbler
178-Swainson_Warbler
179-Tennessee_Warbler
180-Wilson_Warbler
181-Worm_eating_Warbler
182-Yellow_Warbler
183-Northern_Waterthrush
184-Louisiana_Waterthrush
185-Bohemian_Waxwing
186-Cedar_Waxwing
187-American_Three_toed_Woodpecker
188-Pileated_Woodpecker
189-Red_bellied_Woodpecker
190-Red_cockaded_Woodpecker
191-Red_headed_Woodpecker
192-Downy_Woodpecker
193-Bewick_Wren
194-Cactus_Wren
195-Carolina_Wren
196-House_Wren
197-Marsh_Wren
198-Rock_Wren
199-Winter_Wren
200-Common_Yellowthroat

【训练数据集】

https://blog.csdn.net/FL1623863129/article/details/136336080

【训练信息】

参数
训练集图片数6929
验证集图片数1980
训练map82.9%
训练精度(Precision)78.0%
训练召回率(Recall)76.7%
验证集测试精度信息

类别

MAP50(单位:%)

all

83

001-Black_footed_Albatross

74

002-Laysan_Albatross

82

003-Sooty_Albatross

56

004-Groove_billed_Ani

72

005-Crested_Auklet

67

006-Least_Auklet

78

007-Parakeet_Auklet

100

008-Rhinoceros_Auklet

90

009-Brewer_Blackbird

63

010-Red_winged_Blackbird

100

011-Rusty_Blackbird

30

012-Yellow_headed_Blackbird

100

013-Bobolink

100

014-Indigo_Bunting

96

015-Lazuli_Bunting

93

016-Painted_Bunting

98

017-Cardinal

95

018-Spotted_Catbird

88

019-Gray_Catbird

97

020-Yellow_breasted_Chat

100

021-Eastern_Towhee

100

022-Chuck_will_Widow

85

023-Brandt_Cormorant

57

024-Red_faced_Cormorant

83

025-Pelagic_Cormorant

62

026-Bronzed_Cowbird

95

027-Shiny_Cowbird

25

028-Brown_Creeper

87

029-American_Crow

67

030-Fish_Crow

24

031-Black_billed_Cuckoo

68

032-Mangrove_Cuckoo

63

033-Yellow_billed_Cuckoo

65

034-Gray_crowned_Rosy_Finch

100

035-Purple_Finch

100

036-Northern_Flicker

100

037-Acadian_Flycatcher

50

038-Great_Crested_Flycatcher

72

039-Least_Flycatcher

57

040-Olive_sided_Flycatcher

68

041-Scissor_tailed_Flycatcher

90

042-Vermilion_Flycatcher

98

043-Yellow_bellied_Flycatcher

64

044-Frigatebird

95

045-Northern_Fulmar

85

046-Gadwall

88

047-American_Goldfinch

100

048-European_Goldfinch

100

049-Boat_tailed_Grackle

54

050-Eared_Grebe

83

051-Horned_Grebe

65

052-Pied_billed_Grebe

100

053-Western_Grebe

99

054-Blue_Grosbeak

100

055-Evening_Grosbeak

100

056-Pine_Grosbeak

99

057-Rose_breasted_Grosbeak

100

058-Pigeon_Guillemot

95

059-California_Gull

56

060-Glaucous_winged_Gull

56

061-Heermann_Gull

74

062-Herring_Gull

46

063-Ivory_Gull

100

064-Ring_billed_Gull

70

065-Slaty_backed_Gull

72

066-Western_Gull

56

067-Anna_Hummingbird

73

068-Ruby_throated_Hummingbird

86

069-Rufous_Hummingbird

77

070-Green_Violetear

96

071-Long_tailed_Jaeger

45

072-Pomarine_Jaeger

53

073-Blue_Jay

75

074-Florida_Jay

90

075-Green_Jay

100

076-Dark_eyed_Junco

91

077-Tropical_Kingbird

98

078-Gray_Kingbird

89

079-Belted_Kingfisher

89

080-Green_Kingfisher

91

081-Pied_Kingfisher

99

082-Ringed_Kingfisher

84

083-White_breasted_Kingfisher

100

084-Red_legged_Kittiwake

84

085-Horned_Lark

100

086-Pacific_Loon

82

087-Mallard

100

088-Western_Meadowlark

100

089-Hooded_Merganser

96

090-Red_breasted_Merganser

80

091-Mockingbird

76

092-Nighthawk

91

093-Clark_Nutcracker

100

094-White_breasted_Nuthatch

100

095-Baltimore_Oriole

100

096-Hooded_Oriole

90

097-Orchard_Oriole

96

098-Scott_Oriole

82

099-Ovenbird

97

100-Brown_Pelican

94

101-White_Pelican

100

102-Western_Wood_Pewee

55

103-Sayornis

46

104-American_Pipit

97

105-Whip_poor_Will

73

106-Horned_Puffin

100

107-Common_Raven

64

108-White_necked_Raven

80

109-American_Redstart

96

110-Geococcyx

100

111-Loggerhead_Shrike

69

112-Great_Grey_Shrike

78

113-Baird_Sparrow

67

114-Black_throated_Sparrow

98

115-Brewer_Sparrow

59

116-Chipping_Sparrow

74

117-Clay_colored_Sparrow

83

118-House_Sparrow

53

119-Field_Sparrow

70

120-Fox_Sparrow

94

121-Grasshopper_Sparrow

79

122-Harris_Sparrow

97

123-Henslow_Sparrow

86

124-Le_Conte_Sparrow

79

125-Lincoln_Sparrow

93

126-Nelson_Sharp_tailed_Sparrow

84

127-Savannah_Sparrow

95

128-Seaside_Sparrow

83

129-Song_Sparrow

85

130-Tree_Sparrow

82

131-Vesper_Sparrow

81

132-White_crowned_Sparrow

98

133-White_throated_Sparrow

81

134-Cape_Glossy_Starling

98

135-Bank_Swallow

71

136-Barn_Swallow

78

137-Cliff_Swallow

45

138-Tree_Swallow

83

139-Scarlet_Tanager

100

140-Summer_Tanager

100

141-Artic_Tern

62

142-Black_Tern

84

143-Caspian_Tern

62

144-Common_Tern

38

145-Elegant_Tern

61

146-Forsters_Tern

58

147-Least_Tern

87

148-Green_tailed_Towhee

96

149-Brown_Thrasher

100

150-Sage_Thrasher

86

151-Black_capped_Vireo

91

152-Blue_headed_Vireo

59

153-Philadelphia_Vireo

70

154-Red_eyed_Vireo

76

155-Warbling_Vireo

55

156-White_eyed_Vireo

90

157-Yellow_throated_Vireo

72

158-Bay_breasted_Warbler

100

159-Black_and_white_Warbler

99

160-Black_throated_Blue_Warbler

91

161-Blue_winged_Warbler

92

162-Canada_Warbler

91

163-Cape_May_Warbler

87

164-Cerulean_Warbler

88

165-Chestnut_sided_Warbler

82

166-Golden_winged_Warbler

100

167-Hooded_Warbler

86

168-Kentucky_Warbler

98

169-Magnolia_Warbler

97

170-Mourning_Warbler

91

171-Myrtle_Warbler

100

172-Nashville_Warbler

79

173-Orange_crowned_Warbler

48

174-Palm_Warbler

72

175-Pine_Warbler

80

176-Prairie_Warbler

87

177-Prothonotary_Warbler

100

178-Swainson_Warbler

89

179-Tennessee_Warbler

72

180-Wilson_Warbler

94

181-Worm_eating_Warbler

89

182-Yellow_Warbler

97

183-Northern_Waterthrush

90

184-Louisiana_Waterthrush

73

185-Bohemian_Waxwing

98

186-Cedar_Waxwing

97

187-American_Three_toed_Woodpecker

100

188-Pileated_Woodpecker

100

189-Red_bellied_Woodpecker

91

190-Red_cockaded_Woodpecker

100

191-Red_headed_Woodpecker

100

192-Downy_Woodpecker

100

193-Bewick_Wren

72

194-Cactus_Wren

94

195-Carolina_Wren

93

196-House_Wren

52

197-Marsh_Wren

82

198-Rock_Wren

95

199-Winter_Wren

88

200-Common_Yellowthroat

100

【部分实现源码】

class Ui_MainWindow(QtWidgets.QMainWindow):
    signal = QtCore.pyqtSignal(str, str)
 
    def setupUi(self):
        self.setObjectName("MainWindow")
        self.resize(1280, 728)
        self.centralwidget = QtWidgets.QWidget(self)
        self.centralwidget.setObjectName("centralwidget")
 
        self.weights_dir = './weights'
 
        self.picture = QtWidgets.QLabel(self.centralwidget)
        self.picture.setGeometry(QtCore.QRect(260, 10, 1010, 630))
        self.picture.setStyleSheet("background:black")
        self.picture.setObjectName("picture")
        self.picture.setScaledContents(True)
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(10, 10, 81, 21))
        self.label_2.setObjectName("label_2")
        self.cb_weights = QtWidgets.QComboBox(self.centralwidget)
        self.cb_weights.setGeometry(QtCore.QRect(10, 40, 241, 21))
        self.cb_weights.setObjectName("cb_weights")
        self.cb_weights.currentIndexChanged.connect(self.cb_weights_changed)
 
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(10, 70, 72, 21))
        self.label_3.setObjectName("label_3")
        self.hs_conf = QtWidgets.QSlider(self.centralwidget)
        self.hs_conf.setGeometry(QtCore.QRect(10, 100, 181, 22))
        self.hs_conf.setProperty("value", 25)
        self.hs_conf.setOrientation(QtCore.Qt.Horizontal)
        self.hs_conf.setObjectName("hs_conf")
        self.hs_conf.valueChanged.connect(self.conf_change)
        self.dsb_conf = QtWidgets.QDoubleSpinBox(self.centralwidget)
        self.dsb_conf.setGeometry(QtCore.QRect(200, 100, 51, 22))
        self.dsb_conf.setMaximum(1.0)
        self.dsb_conf.setSingleStep(0.01)
        self.dsb_conf.setProperty("value", 0.25)
        self.dsb_conf.setObjectName("dsb_conf")
        self.dsb_conf.valueChanged.connect(self.dsb_conf_change)
        self.dsb_iou = QtWidgets.QDoubleSpinBox(self.centralwidget)
        self.dsb_iou.setGeometry(QtCore.QRect(200, 160, 51, 22))
        self.dsb_iou.setMaximum(1.0)
        self.dsb_iou.setSingleStep(0.01)
        self.dsb_iou.setProperty("value", 0.45)
        self.dsb_iou.setObjectName("dsb_iou")
        self.dsb_iou.valueChanged.connect(self.dsb_iou_change)
        self.hs_iou = QtWidgets.QSlider(self.centralwidget)
        self.hs_iou.setGeometry(QtCore.QRect(10, 160, 181, 22))
        self.hs_iou.setProperty("value", 45)
        self.hs_iou.setOrientation(QtCore.Qt.Horizontal)
        self.hs_iou.setObjectName("hs_iou")
        self.hs_iou.valueChanged.connect(self.iou_change)
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(10, 130, 72, 21))
        self.label_4.setObjectName("label_4")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(10, 210, 72, 21))
        self.label_5.setObjectName("label_5")
        self.le_res = QtWidgets.QTextEdit(self.centralwidget)
        self.le_res.setGeometry(QtCore.QRect(10, 240, 241, 400))
        self.le_res.setObjectName("le_res")
        self.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(self)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1110, 30))
        self.menubar.setObjectName("menubar")
        self.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(self)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)
        self.toolBar = QtWidgets.QToolBar(self)
        self.toolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
        self.toolBar.setObjectName("toolBar")
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.actionopenpic = QtWidgets.QAction(self)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/images/1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionopenpic.setIcon(icon)
        self.actionopenpic.setObjectName("actionopenpic")
        self.actionopenpic.triggered.connect(self.open_image)
        self.action = QtWidgets.QAction(self)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/images/2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.action.setIcon(icon1)
        self.action.setObjectName("action")
        self.action.triggered.connect(self.open_video)
        self.action_2 = QtWidgets.QAction(self)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/images/3.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.action_2.setIcon(icon2)
        self.action_2.setObjectName("action_2")
        self.action_2.triggered.connect(self.open_camera)
 
        self.actionexit = QtWidgets.QAction(self)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/images/4.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.actionexit.setIcon(icon3)
        self.actionexit.setObjectName("actionexit")
        self.actionexit.triggered.connect(self.exit)
 
        self.toolBar.addAction(self.actionopenpic)
        self.toolBar.addAction(self.action)
        self.toolBar.addAction(self.action_2)
        self.toolBar.addAction(self.actionexit)
 
        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self)
        self.init_all()

【使用步骤】

使用步骤:
(1)首先根据官方框架https://github.com/ultralytics/ultralytics安装教程安装好yolov8环境,并安装好pyqt5
(2)切换到自己安装的yolov8环境后,并切换到源码目录,执行python main.py即可运行启动界面,进行相应的操作即可

【提供文件】

python源码
yolov8n.onnx模型(不提供pytorch模型)
训练的map,P,R曲线图(在weights\results.png)
测试图片(在test_img文件夹下面)

【源码下载地址】

https://download.csdn.net/download/FL1623863129/89831493

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值