这些动物,你认识几个呢?

简介: 对于16届全国大学生智能车中的智能视觉组中的动物集合进行识别测试。
简 介: 昨天,参加第十七届智能车竞赛的同学给我发送了一段B站上的,无线充电车模的演示视频: 开源开源,第十七届智能车比赛博特电子节能小车,随便玩一玩吧。比赛还是卷不过你们。

关键词 智能车竞赛动物识别PaddleHub
graph LR
A1(动物识别) === A((文章目录))
style A fill:#39f,stroke:#ccc,stroke-width:5px,color:#FFF
style A1 fill:#9f9,stroke:#3a3,stroke-width:2px
B11(智能车竞赛<br>中动物识别) --- A1
A1 --- B12(PaddleHub一<br>键识别动物)
C121(初步测试) --- B12
style C121 fill:#ffffff,stroke:#777,stroke-width:1px
B12 --- C122(智能车竞赛<br>动物集合)
style C122 fill:#ffffff,stroke:#777,stroke-width:1px
A((文章目录)) === A2(无线充电)
style A2 fill:#9f9,stroke:#3a3,stroke-width:2px

 

§01 物识别


一、智能车竞赛中动物识别

  在 第十六届全国大学生智能车竞赛 中的 室内视觉组 要求车模检测到赛道傍边的 标靶 根据标靶的内容(动物、水果)完成相应的动作。

▲ 图1.1  智能车在识别图片任务

▲ 图1.1 智能车在识别图片任务

  为了提高车模作品中视觉识别的精度要求,在 第十七届智能车竞赛 中的 智能视觉组 则要求对于大类中的小类进行识别,也就是单片机中的软件需要能够完成对于动物、水果、交通工具中的子类别进行识别。由此对于视觉模型的精度要求大大提高了。

二、PaddleHub一键识别动物

  前天在百度的AI Studio 人工智能学习与石浔社区中看到了 PaddleHub一键动物识别 教学案例,展示了PaddleHub中定制打造的动物识别开源模型:

  支持一键完成动物识别,是用于拍照识别图片方面的应用。下面就测试一下这个开源网络,看看去年智能车竞赛组委会各个动物集合中究竟有几种不同的动物种类。

1、初步测试

(1)安装PaddleHub

  在Notebook中安装 paddlehub。

!pip install paddlehub==1.6.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)测试样例图片

test_img_path = ["./1.JPG", "./2.JPG", "./3.JPG"]

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

for imgname in test_img_path:
    img1 = mpimg.imread(imgname)

    plt.figure(figsize=(10,10))
    plt.imshow(img1)

    plt.axis('off')
    plt.show()

▲ 图1.1.1 大熊猫

▲ 图1.1.1 大熊猫

▲ 图1.1.2 人脸图片

▲ 图1.1.2 人脸图片

▲ 图1.1.3 北极狐

▲ 图1.1.3 北极狐

(3)样例图片测试结果

Ⅰ.测试代码
#------------------------------------------------------------

import paddlehub as hub
module = hub.Module(name='resnet50_vd_animals')

#------------------------------------------------------------
import cv2

np_images = [cv2.imread(image_path) for image_path in test_img_path]
results = module.classification(images=np_images)

for r in results:
    printf(r)
Ⅱ.识别结果
{'国宝大熊猫': 0.9751655459403992}
{'非动物': 0.9993972778320312}
{'北极狐': 0.8418184518814087}

2、智能车竞赛动物集合

  在第16届智能车镜竞赛智能视觉组中的动物集合中,主要有五类动物:。这些都是人类生活中常见到的动物,随着人类社会的发展,世界上培育出很多不同的品种。下面使用PaddleHub中的动物识别模型,来告诉我们这些动物的种类。

(1)测试代码

from headm import *

import os

test_img_path = ["./1.JPG", "./2.JPG", "./3.JPG"]

cat_dir = '/home/aistudio/data/fruitanimal'
cat_num = 101

cat_img = [os.path.join(cat_dir, '%02d.jpg'%(i+1)) for i in range(cat_num)]

'''
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

for imgname in cat_img:
    img1 = mpimg.imread(imgname)

    plt.figure(figsize=(10,10))
    plt.imshow(img1)

    plt.axis('off')
    plt.show()

    break
'''

import paddlehub as hub
module = hub.Module(name='resnet50_vd_animals')

import cv2
np_images = [cv2.imread(image_path) for image_path in cat_img]

results = module.classification(images=np_images)

for r in results:
    printf(r)

(2)识别结果

Ⅰ.狗的识别结果

▲ 图1.2.1 狗的图片

▲ 图1.2.1 狗的图片

  通过识别,可以看到总共101张图片,识别出狗的种类为35中,其中最多的两个狗的品种为金毛犬威尔士柯基

序号 种类 个数
1 拉萨犬 1
2 日本柴犬 8
3 爱斯基摩犬 1
4 杰克罗素梗 2
5 日本秋田犬 2
6 八哥犬 7
7 西高地白梗 1
8 威尔士柯基 14
9 拉布拉多 4
10 美系秋田犬 1
11 德牧 德国牧羊犬 3
12 塔马斯卡犬 1
13 德国狐狸犬 1
14 中国藏獒 1
15 斯塔福斗牛梗 1
16 罗威纳犬 2
17 边境牧羊犬 2
18 贵宾犬 贵妇犬 3
19 腊肠犬 1
20 圣伯纳犬 1
21 非动物 1
22 吉娃娃犬 5
23 波士顿梗犬 2
24 阿拉斯加雪橇犬 2
25 大麦町 1
26 金毛犬 10
27 马尔济斯犬 玛尔基斯犬 1
28 中华田园犬 2
29 哈士奇犬 7
30 法兰西斗牛犬 5
31 约克夏梗 1
32 拳师犬 1
33 比格猎犬 3
34 罗秦犬 1
35 卷毛比熊犬 2
{'日本秋田犬': 0.4390193223953247}
{'贵宾犬/贵妇犬': 0.7055565714836121}
{'金毛犬': 0.8339270949363708}
{'比格猎犬': 0.4970936179161072}
{'德国狐狸犬': 0.5624755620956421}
{'金毛犬': 0.6434336304664612}
......
{'金毛犬': 0.7351966500282288}
{'拉布拉多': 0.9914411306381226}
{'哈士奇犬': 0.5635216236114502}
Ⅱ.牛的识别结果

▲ 图1.2.2 牛的图片

▲ 图1.2.2 牛的图片

  牛的图片集合中总共有93张图片,识别的种类为22中,最多的牛的种类为湘西黄牛

序号 种类 个数
1 印度野牛 5
2 白牦牛 2
3 乳牛 6
4 和牛 4
5 野山羊 1
6 南方牛 2
7 非洲水牛 9
8 德克斯特牛 1
9 麝牛 2
10 西门塔尔牛 1
11 秦川牛 2
12 高地牛 3
13 利木赞牛 1
14 犊牛 3
15 中国荷斯坦奶牛 9
16 瑞士褐牛 3
17 水牛 8
18 湘西黄牛 15
19 娟珊牛 1
20 爪哇野牛 1
21 牦牛 8
22 美洲野牛 6
{'印度野牛': 0.7731859087944031}
{'和牛': 0.34460482001304626}
{'中国荷斯坦奶牛': 0.4629508852958679}
{'中国荷斯坦奶牛': 0.4254103899002075}
{'中国荷斯坦奶牛': 0.395224004983902}
。。。。。。
{'利木赞牛': 0.2524842321872711}
{'非洲水牛': 0.5881295204162598}
{'美洲野牛': 0.6179811358451843}
{'犊牛': 0.2019311934709549}
{'西门塔尔牛': 0.10599607974290848}
Ⅲ.猫的识别结果

▲ 图1.2.3 猫的图片

▲ 图1.2.3 猫的图片

  猫的图片总共有99张,识别的种类为37个。最多的两个品种:家猫虎斑猫

序号 种类 个数
1 红色猫 2
2 曼切堪猫 1
3 挪威森林猫 3
4 日本猫 1
5 短毛猫 7
6 美国刚毛猫 3
7 家猫 17
8 豹猫 2
9 波斯猫 1
10 高地猫 2
11 茶杯猫 1
12 粉头斑鸠 1
13 美国银色短毛猫 2
14 丝毛狗 1
15 苏格兰折耳猫 2
16 中国狸花猫 2
17 奶牛猫 4
18 美国短毛猫 2
19 折叠猫 1
20 纯种猫 1
21 缅因猫 1
22 科恩家猫 1
23 德文帝王猫 1
24 欧洲缅甸猫 1
25 虎斑猫 14
26 拉格多尔猫 1
27 英国短毛猫 9
28 孟买猫 1
29 土猫 2
30 乳黄色猫 2
31 西伯利亚猫 2
32 土耳其安哥拉猫 1
33 雪鞋猫 1
34 中华田园猫 2
35 科拉特猫 1
36 泰国暹罗猫 2
37 俄罗斯蓝猫 1
{'家猫': 0.26924195885658264}
{'苏格兰折耳猫': 0.47249680757522583}
{'奶牛猫': 0.48933151364326477}
{'虎斑猫': 0.6846295595169067}
{'土耳其安哥拉猫': 0.16593654453754425}
{'豹猫': 0.6253762245178223}
。。。。。。
{'美国银色短毛猫': 0.42112547159194946}
{'短毛猫': 0.35389307141304016}
{'美国刚毛猫': 0.43220415711402893}
{'美国刚毛猫': 0.4108104407787323}
{'红色猫': 0.2033773958683014}
Ⅳ.马的识别结果

▲ 图1.2.4 马的照片

▲ 图1.2.4 马的照片

  马的图片有95张,识别的种类为10种。其中最多的是骏马

序号 种类 个数
1 伊犁马 1
2 骏马 77
3 阿帕卢萨马 1
4 阿拉伯马 2
5 蒙古马 1
6 乌珠穆沁马 3
7 迷你马 2
8 矮种马 1
9 顿河马 4
10 汗血马 3
{'骏马': 0.6022858023643494}
{'骏马': 0.950950562953949}
{'骏马': 0.8656469583511353}
{'骏马': 0.6158687472343445}
。。。。。。
{'骏马': 0.5660824179649353}
{'蒙古马': 0.3801785707473755}
{'骏马': 0.5563110113143921}
{'骏马': 0.4901660680770874}
{'骏马': 0.9210300445556641}
Ⅴ.猪的识别结果

▲ 图1.2.5 猪的照片

▲ 图1.2.5 猪的照片

  二师兄的图片有88张,识别的种类有14中。最多的为家猪种猪

序号 种类 个数
1 家猪 25
2 特种野猪 2
3 长白猪 1
4 汉普夏猪 1
5 宠物猪 9
6 香猪 7
7 黑山猪 4
8 从江香猪 4
9 西猯 2
10 荣昌猪 1
11 种猪 16
12 二元母猪 5
13 北京黑猪 7
14 小香猪 4
{'家猪': 0.5635786056518555}
{'香猪': 0.5747232437133789}
{'长白猪': 0.34550777077674866}
{'种猪': 0.32950359582901}
{'小香猪': 0.4352666139602661}
。。。。。。
{'家猪': 0.4807981252670288}
{'家猪': 0.6012528538703918}
{'家猪': 0.816167414188385}
{'家猪': 0.6905205845832825}
{'小香猪': 0.4659614562988281}

 

 

§02 线充电


  天,参加第十七届智能车竞赛的同学给我发送了一段B站上的,无线充电车模的演示视频:

  开源开源,第十七届智能车比赛博特电子节能小车,随便玩一玩吧。比赛还是卷不过你们。

▲ 图1 博主的电子小车

▲ 图1 博主的电子小车


▲ 图2  车模在赛道上边充电便运行

▲ 图2 车模在赛道上边充电便运行


■ 相关文献链接:

● 相关图表链接:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-12-13
#
# Note:
#============================================================

from headm import *

strid = 5

#------------------------------------------------------------
tspgetdopstring(-strid)
strall = clipboard.paste().split('\r\n')
#printf(strall)

#------------------------------------------------------------
namedim = []
for s  in strall:
    namedim.append(s.split("'")[1])

nameonly = list(set(namedim))
#printf(namedim)
printf(len(namedim))

printf('序号 种类 个数')
for id,n in enumerate(nameonly):
    num = namedim.count(n)
    printf('{:<4}{:10}{:3}'.format(id+1, n, num))





#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================
相关文章
|
8月前
|
机器学习/深度学习 算法 PyTorch
动物姿态识别+数据集+代码
动物姿态识别+数据集+代码
|
7月前
找出单身狗1,2
找出单身狗1,2
35 0
|
8月前
单身狗问题
单身狗问题
40 0
|
8月前
|
Java
动物换位(含有源码)
动物换位(含有源码)
77 0
|
8月前
|
Java
面试题 03.06:动物收容所
面试题 03.06:动物收容所
44 0
寻找单身狗
寻找单身狗
78 0
|
算法 C++
你是真的“C”——找单身狗~
初阶——找单身狗问题: 在一组数组中,有一只“单身狗”(该数字只出现一次),其他的数字都有一个和自己相同的数字。 其实解答此题有许多的方法,例如直接将数组进行一个排序,然后定义两个指针,然后寻找到单身狗。这里介绍的是用异或运算来解答这道题目,效率也比较高。
108 0
|
机器学习/深度学习 API 数据处理
基于Paddlex超简单的猫狗分类
基于Paddlex超简单的猫狗分类
305 0
基于Paddlex超简单的猫狗分类
AcWing 670. 动物
AcWing 670. 动物
47 0
AcWing 670. 动物