基于yolov5全系列模型【n/s/m/l/x】开发构建不同参数量级的猫类细粒度目标检测识别系统

一直以来,我都是猫类动物的爱好者,小时候在家的时候总少不了养几只猫来消磨时光,最近一个想法就是开发细粒度的动物检测识别系统,本文的核心是以猫类数据为基准来开发构建猫类动物的细粒度检测识别系统,首先看下效果图:

 本文使用到的数据集是来源于百度搜索引擎采集获取得到,之后人工归类标注处理得到的。

代码使用requests库发送HTTP请求,并解析百度图片搜索结果的JSON数据。然后,它会下载指定数量的图片并保存到本地文件夹中(在示例中为"./images"),使用该爬虫时,请注意遵守网站的使用规则和法律法规。核心代码实现如下所示:

import os
import requests
from urllib.parse import quote

def baidu_image_crawler(keyword, num_images):
    keyword = quote(keyword)  # 对关键词进行URL编码
    url = f"https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&word={keyword}&pn=0&rn={num_images}"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
    }
    
    response = requests.get(url, headers=headers)
    response.raise_for_status()
    data = response.json()

    save_dir = "./images"  # 图片保存目录
    if not os.path.exists(save_dir):
        os.makedirs(save_dir)

    for item in data["data"]:
        if "thumbURL" in item:
            image_url = item["thumbURL"]
            try:
                response = requests.get(image_url, headers=headers)
                response.raise_for_status()
                file_name = image_url.split("/")[-1]
                save_path = os.path.join(save_dir, file_name)
                with open(save_path, "wb") as f:
                    f.write(response.content)
                print(f"Saved image: {file_name}")
            except Exception as e:
                print(f"Failed to download image: {image_url}, Error: {e}")

# 示例用法
keyword = "cat"  # 输入关键词
num_images = 10  # 需要下载的图片数量
baidu_image_crawler(keyword, num_images)

经过人工处理后得到所需要的数据集,接下来简单看下数据集情况:

 这里一共收集整理获取到了12种不同的猫类数据,因为很多猫类的品种我不是很熟悉,这里专门整理的每种类别数据的资料,分别如下,感兴趣的话可以看下,如果都是熟知的话就不需要多看了,这里权当是给自己当科普介绍学习了解了。

【阿比西亚猫】

阿比西亚猫是一种来自非洲埃塞俄比亚的猫品种。它们具有长躯干、长腿和尖尾的特点。阿比西亚猫拥有独特的斑纹毛色,通常呈现出浅棕色的底色配以黑色线条。它们的眼睛一般为绿色或黄绿色。阿比西亚猫性格活泼、聪明,喜欢与人互动并进行活动。它们对周围的环境和家人非常好奇,喜欢参与各种活动。阿比西亚猫是一种受欢迎的家养猫品种,被许多人视为理想的伴侣动物。

【豹猫】

豹猫是一种中小型猫科动物,主要分布在亚洲地区,如中国、印度等地。它们有着独特的豹纹斑点,因此得名为豹猫。豹猫的身体相对较小,通常体长约40-60厘米,尾长约25-40厘米,体重在2-5千克之间。它们有着灵活的身躯和敏锐的思维,是出色的攀爬者和猎手。

豹猫通常生活在森林、山地和丛林等环境中,它们擅长隐藏和狩猎技巧,以小型哺乳动物、鸟类和爬行动物为食。豹猫的活动时间主要集中在夜晚,是夜行性动物。

豹猫的外貌与豹子有些相似,但它们的体型较小,没有那么显眼的斑点和浓密的皮毛。豹猫的毛色因地域而异,一般为灰褐色底毛上有黑色和棕色的斑纹。这使得它们在自然环境中具有很好的伪装能力。

豹猫在一些地区受到保护,因为它们的数量逐渐减少,主要原因是栖息地破坏和非法狩猎。作为野生动物,豹猫不适合作为宠物饲养,应该受到保护和尊重。

【伯曼猫】

伯曼猫是一种体型较长,身上被毛主要是浅金黄色的猫科动物。伯曼猫脸部较窄,脸、耳朵、头和尾巴间的颜色形成对比。伯曼猫的眼睛为得天独厚的蓝宝石眸子,它的四肢脚掌就像戴上了白色袜子一样,非常可爱。

伯曼猫的性格温文尔雅,非常友善,叫声悦耳。 伯曼猫属于中型猫,有且仅有重点色块,肌肉结实,四肢中等长度, 脚爪大而圆 。

【孟买猫】

孟买猫是由美国育成的著名短毛猫。全身乌黑,油光闪亮,毛短紧贴身体,像漆皮一样。 孟买猫由缅甸猫和美国短毛猫杂交培育而成,不但保留了美国短毛猫的颜色,体形也很像缅甸猫。其具有独一无二的颜色——黑色,幼猫稍淡,成年猫为漆黑单色,毛短而有光泽,被称为"小黑豹"。

【英国短毛猫】

英国短毛猫是一种著名的短毛猫品种,起源于英国。它们有着丰满饱满的身体和厚实的被毛,呈现出平直而贴近身体的外观。

英国短毛猫有各种各样的毛色和图案,包括单色、双色、三色、斑点和条纹等。它们的眼睛通常呈现出浓郁的橙色或黄色,与被毛形成鲜明的对比。

这个品种的猫性格温和平静,通常被认为是一种友善、亲近和容易相处的猫。它们通常对主人和家人表现出忠诚、耐心和亲近,但也需要自己的私人空间和独立时间。

英国短毛猫一般不太活跃,相对较为宅居。它们通常喜欢舒适的环境和安静的家庭生活。虽然它们对家人非常友善,但对陌生人可能会表现出一定的保留。

对于想要饲养一只英国短毛猫的人来说,提供高质量的食物、适量的运动和定期的兽医护理是非常重要的。除此之外,定期梳理被毛可以帮助保持它们的健康和外观。

总的来说,英国短毛猫是一种温和、友善和适应性强的猫品种,非常适合成为家庭宠物。它们的魅力不仅仅在于其外观和被毛,更在于与家人建立亲密的关系

【埃及猫】

埃及猫是一种体型较大,肌肉结实,四肢粗短发达,毛短而密的猫科动物。它的被毛像绒布一般柔软、厚实,很少脱落,容易打理。

古埃及人家里有猫的历史可以追溯到公元前3000-公元前4000年,但那时候的猫可能是温顺的野猫,而不是被驯化后的猫。从公元前1900年开始,古埃及人开始养一些被驯化的猫,但此时的猫多是“非洲野猫”(libyca)。到公元前1450年,猫成为埃及人家中经常出现的宠物之一。

【缅因猫】

缅因猫是一种大型、强壮的短毛猫品种,起源于美国缅因州。它们是一种自然形成的品种,是北美洲唯一的非洲短发猫。

缅因猫有着厚实而浓密的被毛,特别适应寒冷气候。它们的被毛有多层,其中包括防水的外层和绒毛般的内层。这使得它们在户外活动时能更好地适应低温环境。

缅因猫的身体健壮,骨骼结构强壮,肌肉发达。它们的前肢要比后肢稍长,造成了它们的背部略微高耸的外观。它们的头部宽阔,眼睛呈现出金黄色或绿色。尾巴浓密而呈锥状。

缅因猫非常友善、温和、亲近和善于与人交往。它们通常对家人和陌生人都很友善,并与儿童和其他宠物相处得很好。它们喜欢亲近和关注,倾向于积极参与家庭活动。

尽管缅因猫有一种较大的体型,但它们通常不像其他大型猫那样活跃和敏捷。它们更适合室内生活,但也需要足够的空间来活动和探索。

缅因猫的养护相对简单,它们的被毛需要每周刷理一次以保持良好的状态。它们对食物没有特殊要求,但需要提供高质量的猫粮以满足其营养需求。

总的来说,缅因猫是一种温和友好、亲近人的猫品种,非常适合成为家庭伴侣。它们的外貌和性格特点使其备受喜爱,成为许多人的理想选择。

【波斯猫】

波斯猫是一种非常著名的长毛猫品种,起源于波斯地区(现今的伊朗)。它们以其美丽的外观、浓密的被毛和温和的性格而闻名于世。

波斯猫有一个圆饼状的头部,宽而圆的面孔,大而圆的眼睛,短而扁平的鼻子,以及小而耐人寻味的嘴巴。它们的身体结实而短小,四肢短而粗壮,背部平直。最显著的特征是其厚实、长而丰满的被毛,波斯猫的被毛广泛存在各种颜色和图案。

波斯猫是性情温和、亲近人类的猫。它们倾向于沉静、安静,喜欢放松和享受温柔的人类陪伴。它们通常对陌生人持保留态度,对家人表现出忠诚和爱护。由于其相对较为宅居的性格,波斯猫适合在室内环境中生活。

由于波斯猫的长而浓密的被毛,它们需要定期的梳理和清洁。这可以防止被毛打结、蓬松和皮肤问题的发生。

养护方面,波斯猫需要提供高质量的猫粮以满足其营养需求,并保持适量的水分摄入。另外,定期的兽医检查和注射疫苗也是必不可少的。

总而言之,波斯猫是一种非常优雅、温和和美丽的猫品种。它们的外貌和性格使其成为许多人理想的宠物选择,但养护波斯猫需要花费一些额外的精力和时间。

【布偶猫】

布偶猫是一种非常受欢迎的猫品种,以其温和的性格和迷人的外表而闻名于世。它们得名于它们像布偶人偶一样柔软而可爱的外貌。

布偶猫起源于美国,在20世纪60年代首次被培育出来。它们的特点之一是其大而明亮的蓝色眼睛,给人一种温柔而慈祥的感觉。它们有一个中等大小的身体,骨骼结实,与其身体比例协调。布偶猫的被毛长而丰满,呈现出柔软的质地,通常为双层毛发,外层是半中等长度的丝绒状毛发,内层则是浓密的下毛。

布偶猫以其友好、温和和安静的性格而著名。它们非常亲近人,善于与家人和陌生人建立紧密的联系。布偶猫对于投入的家庭环境非常适应,喜欢参与家庭活动,并对孩子们和其他宠物友好。它们通常会跟随人类在屋子里走来走去,而不是像其他猫那样独自行动。

和其他长毛猫一样,布偶猫的被毛需要定期的刷理和梳理,以保持其外观的美观。同时,定期的洗澡也是必要的,以保持它们的被毛清洁。

布偶猫对食物没有特殊要求,但需要提供高质量的猫粮来满足其营养需求。同时,适量的运动和定期的兽医检查也是养护布偶猫所需的。

总而言之,布偶猫是一种温和、友好和漂亮的猫品种。它们非常适合做家庭宠物,善于与人亲近,给人带来无限的快乐和陪伴。

【俄罗斯蓝猫】

俄罗斯蓝猫(Russian Blue)是一种古老的猫品种,起源于俄罗斯。它们以其独特的灰蓝色被毛、翠绿色的眼睛和优雅的外观而闻名。

俄罗斯蓝猫有一个中等大小的身体,结构紧凑且肌肉发达。它们的头部呈现流线型,眼睛大而明亮,轮廓呈现椭圆形状。它们的被毛非常短而紧密,给人一种光滑的触感。颜色是其最显著的特征,呈现深度且均匀的灰蓝色调,看起来就像是烟雾般的柔和。

俄罗斯蓝猫以其温和且平静的性格而著名。它们通常非常亲近家人,但对陌生人可能会有一定的保留。它们喜欢安静的环境,不喜欢过于嘈杂或繁忙的地方。这些猫通常会建立起与主人的紧密联系,喜欢陪伴人类并参与他们的日常活动。

俄罗斯蓝猫对于养护需要较少的努力。由于其短而紧密的被毛,它们只需要定期的梳理和刷毛,以保持被毛的光滑和清洁。此外,提供高质量的猫粮、适量的水分和定期的兽医检查也是必不可少的。

总而言之,俄罗斯蓝猫是一种优雅、平静和美丽的猫品种。它们温和的性格和独特的外貌使其成为许多人的理想宠物。无论是在家庭还是单身人士,这些猫都能为人们带来无尽的快乐和陪伴。

【泰国暹罗猫】

泰国暹罗猫(Siamese cat)是一种古老而著名的猫品种,起源于泰国(旧名为暹罗,因此得名)。它们以其蓝眼睛、斑点被毛和温柔的性格而闻名。

泰国暹罗猫有一个优雅的外观,身体修长而匀称,肌肉结实。它们的头部呈楔形,眼睛大而明亮,呈现深蓝色。泰国暹罗猫最引人注目的特征是其被毛,呈现出浅色的主体,而在耳朵、脸部、尾巴和肢体上有深色的斑点。

泰国暹罗猫以其友善、亲近人和活泼好动的性格而著名。它们非常依赖人类陪伴,喜欢成为家庭的一部分,并与家人建立紧密的联系。这些猫通常会主动与人互动,愿意与人交谈并发出各种声音。

泰国暹罗猫有着低维护的被毛,只需要定期的梳理和刷理,以保持被毛的整洁和光滑。此外,提供高质量的猫粮、定期的兽医检查和适量的运动也是养护泰国暹罗猫所需的。

总而言之,泰国暹罗猫是一种美丽、友好和活泼的猫品种。它们适合与人类亲密相处,并能为家庭带来无尽的快乐和欢乐。无论是在家庭还是单身人士,这些猫都能成为可爱的伴侣和陪伴者。

【斯芬克斯猫】

斯芬克斯猫是一种全身无毛的奇特品种,有些像古埃及神话中有名的怪物狮身人面斯芬克斯,因此人们给它取名为斯芬克斯猫。加拿大无毛猫并非完全没有毛,它的毛很幼细而且紧贴皮肤,感觉就如一个变暖的桃一样。

斯芬克斯猫的性格活泼、贪玩、独立性强,无攻击性,能与其他的狗、猫相处。感情丰富,希望得到主人的专宠。

接下来就可以开发构建训练模型了,这里我们开发使用了yolov5全系列五款不同量级参数的模型来分别开发构建猫类检测识别模型,为了能够整体对比分析,这里我们对其各个指标进行整体对比分析可视化如下所示:

首先是F1值对比曲线:

 接下来对五款不同模型训练过程中loss曲线变化进行对比可视化,如下所示:

 之后是精确率对比曲线,如下所示:

 最后是召回率对比曲线如下所示:

 为了进一步分析模型检测识别原理,这里集成GRADCAM对模型检测识别能力进行可视化展示,如下所示:

 感兴趣的话也都可以尝试构建自己喜欢的动物细粒度检测识别系统,实践还是能带给你更多的进步很认知的。

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/131430520