神奇动物在哪里,但导演是微软

3e930e97fba287d37e39139d5418fdc1.png

944cd2661ba835ad0703e5dc46668cfa.png

c6873211587af74d2ecaf430b820289f.png




大数据产业创新服务媒体

——聚焦数据 · 改变商业


一说到计算机视觉,大多数人第一时间联想到的便是“人脸识别”、“自动驾驶“、道路检测”等跟我们日常生活息息相关的关键词。而在2024年的5月末,微软在GitHub上面上传了这样一个计算机视觉的项目,完全不包含这些关键词,却吸引来了无数人围观,短短两天时间就冲到了700颗星。

这个项目就是Pytorch-Wildlife。项目成立的初衷是因为人类活动导致全球生物多样性急剧下降,对野生动物种群的全面监控变得尤为迫切。

可是想要完全利用人力,来对某一种群或者某一块栖息地进行24小时监控,这显然是不现实的。不仅仅是因为成本过于高昂,而是人类肉眼很难完整观察清楚一些行动迅敏的动物,这就会导致没有办法准确记录物种以及栖息地情况。于是在这个大背景下,Pytorch-Wildlife诞生了。

PyTorch-Wildlife是一个用于创建、修改和共享强大 AI 保护模型的平台。这些模型可用于各种应用,包括相机陷阱图像(当检测到动物经过时进行拍照)、俯视图像、水下图像以及生物声学。通俗来讲,项目是利用数据集和深度学习架构来实现保护野生动物的目的。

项目的原理其实并不复杂。首先,利用了Megadetector v5进行对象检测,这是一个预先训练好的模型,用以过滤掉空图像或含有非动物对象(如人类和车辆)的图像。

8cc4b6fed7b969261b4d7168a8dc52dc.png图:亚马逊丛林的动物

Megadetector是基于Yolov5检测模型架构,专门为动物检测设计的深度学习模型。能够处理来自不同地区和生态系统的大约300万张动物图像。

接下来,对所拍摄的视频和图像进行采集,把采集得到的数据喂给Megadetector v5进行识别筛选。其中,对于视频数据,每段视频按30fps的帧率被拆分成图像帧,如果原视频帧率低于30fps,则使用原始帧率。这种取舍可以平衡模型的运行效率以及识别精准度。

针对检测到的动物对象,Pytorch-Wildlife会将它们裁剪并调整至256x256像素的尺寸,并根据图像级别的标注为每个裁剪图像分配标签。

大多数深度学习模型,尤其是卷积神经网络(CNN),它对输入的素材是有严格规范的。256x256其实是一个常见的选择,因为它既能保持一定的图像细节,又不会使计算负担过大。

在裁剪之后,利用Pytorch-Wildlife的分类微调模块,采用ResNet-50作为基础模型架构,进行动物的识别训练。训练设置包括60个训练周期,批量大小为128,采用随机梯度下降优化器,并设定学习率在每20个周期后衰减。

以往来看,开发者需要对模型进行微调,模型才能够更好地理解和区分特定的动物类别,提高在实际野生动物监测任务中的识别准确率。而Pytorch-Wildlife框架提供的微调模块则简化了这一过程,使得即使是没有深厚技术背景的研究人员,也能利用先进的深度学习技术进行动物识别模型的定制化训练。

Pytorch-Wildlife团队准备两份案例,第一个是在亚马逊丛林中检测动物。

亚马逊雨林是世界上最大的热带雨林,是地球上生物多样性最丰富的地区之一。亚马逊雨林里的动物数量是非常惊人的,已知的动物种类超过了10万种,这包括鸟类、哺乳动物、爬行动物、两栖动物以及其他无脊椎动物等。但是这个数字仅仅是已记录和描述的物种,现代学者普遍认为,还有成千上万甚至是数百万种动物物种尚未被发现和描述。由于亚马逊雨林的广阔和复杂性,新的物种仍在不断被发现,因此确切的动物种类数量是一个不断变化且难以精确统计的数字。

Pytorch-Wildlife使用了一个包含41904张图像的数据集,这些图像覆盖了36个已标记的动物属,其中33569张用于训练,8335张用于验证。

在亚马逊雨林项目中,模型实现了92%的识别准确率,针对90%的数据集在98%的置信度阈值下正确预测。这意味着,大部分动物图像能够被准确分类,只有少量需要人工审核。

除了亚马逊丛林的案例外,Pytorch-Wlidlife还有一个在加拉帕戈斯群岛的项目。这个项目的背景非常独特,虽然加拉帕戈斯群岛的动物种类也很多,然而这个脆弱的生态系统正面临外来入侵物种的重大威胁,这些物种可能改变本地物种的种群动态并导致它们灭绝。

Pytorch-Wlidlife检测到,一些负鼠通过船只、陆地等手段,正在入侵加拉帕戈斯群岛的生态。对本地生物构成了竞争压力,因此连续的监测和管理对于维持生态平衡至关重要。

项目中使用的数据集包含491471段视频,这些视频被标记为“负鼠”或“非负鼠”。数据集被划分为训练集和验证集,分别包含343053段和148418段视频。

经过验证,Pytorch-Wildlife平台训练的模型针对入侵的负鼠识别达到了98%的准确率。比如下面两张图,由于是夜间拍摄的缘故,即便是人的肉眼也很难第一时间分清两种动物。第一张图片是当地的食蚁兽,第二张是外来入侵物种负鼠。

43c205fdb8d6ea81a6a108eb1b41e061.png图:食蚁兽

8de0d7c38df1f3d107cf0080ebe7cc05.png图:负鼠

这部片接下来要怎么拍?

Pytorch-Wildlife在监控和识别上初步取得了成功,不过这对于保护生态平衡上来说显然还是远远不够的。未来Pytorch-Wildlife将会连接LILA:BC数据集,进一步提高对物种识别的能力。

LILA数据集指的是亚历山大图书馆的标注信息库:生物与保护(Labeled Information Library of Alexandria:Biology and Conservation),这是一个专注于生物学和野生动物保护领域的数据集库,提供了多样化的开放数据资源,用于促进野生动植物的监测、保护生物学研究以及生态系统的管理。

LILA数据集包含大量经过标注的信息,比如图片、视频和其他类型的数据,这些数据有助于科学家和保护工作者利用机器学习和深度学习技术来识别和跟踪野生动物,评估生物多样性。此外,通过使用LILA进行与训练,还能够监测生态系统的健康状况。

b7de21ceb6ee003af0a2dc3c4b2c14c6.png图:Pytorch-Wildlife未来的规划图

数据猿也体验了一下Megadetector的实力。识别模型选择Megadetector v5,检测模型选择的是亚马逊丛林。可以明显看出,只要是亚马逊丛林中出现的动物,Megadetector都能很好的识别出来。

a3b30544134b2c528e11026283edca09.png图:亚马逊丛林中的豹子

不过像是数据猿LOGO这种卡通动物形象,即便把识别阈值拉满,Megadetector也没有办法识别出来。相反,如果是真实的动物,Megadetector只需要很低的阈值就能识别。

05f2ee5020e42e3985f666b1b43ae853.png图:Megadetector无法识别卡通动物形象

根据开发团队的介绍,Megadetector的最新版本,也就是Megadetector v6即将上线,识别率远超v5版本,同时消耗的计算资源更低。目前,使用Megadetector v5检测一张图片耗时约为20秒,而v6版本将会让耗时小于15秒。

另外Megadetector v6还会支持更多的低预算设备,这是因为在亚马逊丛林等地,温热潮湿的生态环境会使得拍摄设备损坏率提高,没办法长期维持成本高昂的拍摄设备。然而成本较低的拍摄设备会导致拍摄画面的分辨率低下,帧数低下等等,对Megadetector的识别作业起到非常负面的影响。

在未来,Pytorch-Wildlife会支持更多种类的识别方式,比如鸟瞰图、水下拍摄。这何尝不是一种新的云养殖野生动物的方法?

AI For Good

Pytorch-Wildlife属于典型的AI For Good项目,这个概念由微软提出,不过与其说是概念,更像是一种倡议。它是指在推动人工智能技术的发展与应用,以解决全球性的社会、环境和经济挑战,促进可持续发展。这一理念鼓励科研人员、企业、政府、非政府组织以及社会各界合作,利用人工智能的力量创造正面影响,确保技术进步惠及全人类和地球生态。

不一定非得是动物,其他类似的方式都可以算是AI For Good。例如,通过机器学习算法监测森林砍伐、海洋污染、气候变化和生物多样性减少,以及开发智能系统优化资源利用和能源管理。

事实上,Pytorch-Wildlife的核心,Megadetector,几乎没有办法复刻任何的商业途径。但这个项目依然拥有足够高的关注度,说明人们关注AI,使用AI技术,眼里并不是只有它的商业化能力,而是如何去使用AI,来建设赖以生存的家园。当然了,也有一部分人是冲着这个项目可以免费看真正的野生动物去的。

国内也有不少AI公司着手于类似的项目,比如百度的“绿色伙伴计划”,通过AI来减少碳排放。根据记录,百度地图“低碳计划”全年累计访问量超过 4000 万人次,累计可减少碳排放量超 3800 吨。

还有腾讯的“自然风险评估”,应用AI调优技术,腾讯2023年当年减少用电量约5000兆瓦时,避免碳排放2851.5吨。

文:火焰翼人 / 数据猿
责编:凝视深空 / 数据猿

1ad7d65aa6175a68156225402597d915.jpeg

cac43d5e6580bd77fff93af40e463223.png

bdb2f5ef2f7610d0ab86aab0705b5401.png

ccda0ddd01768285fce4f4e88766a0c1.jpeg

8c9b0ad7f29a9c4519b88cf9413a1303.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几个速度比较快的 Linux 开源镜像站及支持的资源列表

搜狐开源镜像站 https://mirrors.sohu.com/ File Name CPAN/ FreeBSD/ QpenBSD/ RockyL apache/ archlinux/ centos/ ceph/ cygwin/ debian/ debian–cd/ debian-security/ deepin/ deepin-cd/ docker-ce/ fedora/ fedora-epel/ gentoo/ lib/ mysql/ nginx/ opensuse/ php/ ubu…

C++笔试强训day32

目录 1.素数回文 2.活动安排 3.合唱团 1.素数回文 链接https://www.nowcoder.com/practice/d638855898fb4d22bc0ae9314fed956f?tpId290&tqId39945&ru/exam/oj 现将其转化为回文数(这里用字符串存储比较方便转化),然后判断是否为…

【FPGA】VGA显示文字、彩条、图片——基于DE2-115

文章目录 前言一、VGA概述1.1 简述1.2 管脚定义1.3 VGA显示原理1.4 VGA时序标准1.5 VGA 显示模式及相关参数 二、VGA显示自定义的汉字字符2.1 点阵汉字生成2.2 生成BMP文件2.3 生成txt文件2.4 实现效果 三、VGA显示条纹3.1 实现流程3.2 实现效果 四、VGA输出一幅彩色图像4.1 bm…

ArcGIS不同图斑设置不同的透明度

对于设置一个图层的整体的透明度,我们在 ArcGIS制作带蒙版的遥感影像地图http://mp.weixin.qq.com/s?__bizMzIzNjM2NTYxMg&mid2247509080&idx1&sn38dccf0a52bb3bb3758f57114ee38b72&chksme8da161bdfad9f0d363da90959a8524dcf2b60d0e8d999f8ebeef0…

Unity面试八股文之基础篇

文章目录 前言1. Unity的生命周期加载第一个场景Editor在第一次帧更新之前帧之间更新顺序协程销毁对象时退出时 2. Unity 协程和线程,进程的区别3. 本地坐标系 世界坐标系4. 碰撞器和触发器的区别后话 前言 开设这个栏目的博文会写一些有关unity的面试题目,在面试的…

【spring】@ResponseBody注解学习

ResponseBody介绍 ResponseBody 是一个Spring框架中的注解,主要用于Web开发,特别是在Spring MVC框架中。它的核心作用是改变Spring MVC处理HTTP请求响应的行为,使得从控制器方法返回的数据直接写入HTTP响应体(Response Body&…

Python高级进阶--slice切片

slice切片⭐⭐ 在 Python 中,切片操作是一种常见且方便的方式,用于从字符串、列表或元组中获取部分元素。这种操作通过指定起始索引、结束索引和步长来实现。下面我们来看一些关于切片的简单介绍以及一些常见用法。 1. 切片简介 取一个str、list、tup…

【Unity2D:Animator】为角色添加动画效果

一、添加Animator组件并创建Animator Controller文件 1. 添加Animator组件: 2. 在Assets-Art文件夹中新建一个名为Animations的文件夹,用来存储所有动画资源 3. 在Animations文件夹中新建一个名为Player的文件夹,再创建一个名为Animators的文…

LeetCode //C - 119. Pascal‘s Triangle II

119. Pascal’s Triangle II Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal’s triangle. In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: rowIndex 3 Output: …

【排序算法】——归并排序(递归与非递归)含动图

制作不易,三连支持一下吧!!! 文章目录 前言一.归并排序递归方法实现二.归并排序非递归方法实现 前言 这篇博客我们将介绍归并排序的原理和实现过程。 一、归并排序递归方法实现 基本思想: 归并排序(MERGE-…

JS(ES_6)_2

1.创建对象的6种方式&#xff1a; 1. obnew Object() ob.nameah ob.age18 2. ob{name:ah,gae:18} 3.工厂模式&#xff1a; 设计一个函数&#xff0c;专门生产Person类型的对象 <script>function createPerson(name,age,family) {var o new Object();o.name name;o.…

软件设计师备考 | 案例专题之数据流图 概念与例题

案例分析专题大纲&#xff1a; 数据流图基本概念 基本图形元素&#xff1a;外部实体、加工、数据存储、数据流 数据流&#xff1a;由一组固定成分的数据组成&#xff0c;表示数据的流向。在DFD中&#xff0c;数据流的流向必须经过加工。加工&#xff1a;描述了输入数据流到输出…

啊哈!算法-第2章-栈、队列、链表

啊哈!算法-第2章-栈、队列、链表 第1节 解密qq号——队列第2节 解密回文——栈第3节 纸牌游戏——小猫钓鱼第4节 链表第5节 模拟链表 第1节 解密qq号——队列 新学期开始了&#xff0c;小哈是小哼的新同桌(小哈是个大帅哥哦~)&#xff0c;小哼向小哈询问 QQ 号&#xff0c; 小…

uniapp微信小程序解决open-type获取用户头像,返回临时路径问题!

解决 open-type 为 chooseAvatar&#xff0c;返回临时路径问题 文章目录 解决 open-type 为 chooseAvatar&#xff0c;返回临时路径问题效果图Demo获取头像回调数据结构效果图解决方式上传到服务器转base64 基于微信小程序获取头像昵称规则调整后&#xff0c;当小程序需要让用户…

高通Android 12/13 设置和获取ADB状态

/*** 设置ADB状态** param isEnable*/public void setADB(boolean isEnable) {Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED, isEnable ? 1 : 0);}/*** 获取ADB状态** return*/public boolean getADB() {return Settings.Global.getIn…

虚拟化技术[3]之网络虚拟化

网络虚拟化 网络虚拟化简介核心层网络虚拟化接入层网络虚拟化虚拟机网络虚拟化案例: VMware网络虚拟化技术虚拟网络接口卡虚拟交换机vSwitch分布式交换机端口组VLAN 网络虚拟化简介 传统的数据中心&#xff1a;服务器之间操作系统和上层软件异构、接口与数据格式不统一&#x…

基于hive的酒店价格数据可视化分析系统设计和实现

摘要 本文基于Django框架和Hive技术&#xff0c;设计和实现了一种酒店价格数据可视化分析系 统&#xff0c;旨在为酒店管理者提供直观、清晰的数据洞察和决策支持。在研究中&#xff0c;首先深入分 析了酒店价格数据可视化分析系统的背景和意义&#xff0c;认识到对于酒店行…

3.Redis之Redis的环境搭建redis客户端介绍

1.版本的选取 安装 Redis&#xff1a;Redis 5 系列~~ 在 Linux 中进行安装~~ Redis 官方是不支持 Windows 版本的~~ 微软维护了一个 Windows 版本的 Redis 分支 Centos和Ubuntu.Docker 2.如何进行安装&#xff1f;&#xff1f;&#xff1f; 1.ubuntu 2.centos yum instal…

arcgisPro将一个图层的要素复制到另一个图层

1、打开两个图层&#xff0c;如下&#xff0c;其中一个图层中有两个要素&#xff0c;需要将其中一个要素复制到另一个图层中&#xff0c;展示如下&#xff1a; 2、选中待复制要素&#xff0c;点击复制按钮&#xff0c;如下&#xff1a; 3、下拉粘贴按钮列表&#xff0c;选择【选…

Ubuntu22.04虚拟机设置静态IP

虚拟机设置静态IP 按下电脑的 “win”键&#xff0c;在弹出的输入框中输入“控制面板”&#xff0c;选中控制面板 1.选择 “网络和Internet” 2.选择 “网络和共享中心” 3.选择 “更改适配器设置” 4.选择 “VMnet8”&#xff0c;双击打开 5.选择 “属性” 找到 “Internet …