调研报告之AI图像识别

标签: 无 分类: 未分类 创建时间:2023-03-03 07:23:12 更新时间:2025-01-17 10:39:24

1.前言

最近接触到的一个项目,就是图像识别的东西,于是我正式开始进入到图像识别的领域。ChatGPT给出的答案,学习图像识别,有许多开源软件可供选择,以下是其中一些比较流行和使用广泛的开源软件:

  • TensorFlow:由Google开发,是目前应用最广泛的深度学习框架之一,支持各种语言接口(如Python、Java、C++等),具有高度的灵活性和扩展性,适合用于各种图像识别和深度学习任务。

  • Keras:基于TensorFlow和Theano开发的高级神经网络API,可以快速构建和训练深度学习模型,易于使用,适合初学者和快速原型设计。

  • PyTorch:由Facebook开发,是另一种流行的深度学习框架,与TensorFlow类似,但更加灵活、易用和便于调试,适合用于图像识别、自然语言处理等任务。

  • OpenCV:一个跨平台的计算机视觉库,提供各种图像处理和计算机视觉算法,如特征提取、目标检测、图像分割等,适合用于各种计算机视觉应用和项目。

  • Caffe:是一个由伯克利视觉与学习中心开发的深度学习框架,适用于图像识别、图像分类、目标检测等视觉任务,具有高效性和易用性。

以上是一些常用的图像识别开源软件,建议根据自己的需求和学习经验选择合适的软件进行学习。

参考文章:
【1】.GitHub 6大热门实时人脸识别开源项目!哪个最适合初级开发者?
【2】.程序员必看:13个GitHub开源又炫酷的计算机视觉项目
【3】.TensorFlow从头训练图像识别模型CNN(完整流程)
【4】.真的!只需 “六步” 实现图像特定物体识别!!! 这个是使用的OpenCV,在一张图片中,识别全部的的光伏组件,给出了示例代码。
【5】.什么是机器学习?什么是深度学习?
【6】.AI领域的几个概念:机器学习、深度学习和大模型 1.人工智能(Artificial Intelligence,AI)是指用机器去实现所有目前必须借助人类智慧才能实现的任务。人工智能分为ANI、AGI和ASI三个等级。2.机器学习(Machine learning)是一种人工智能的技术,通过让机器通过对过去已知大量数据的学习,逐渐有能力从数据中发现接近现实的规律,并通过这些规律对未来的某些状况进行预测,从而实现自主学习和预测的能力。根据数据是否有明确标签,可以把机器学习分为监督学习、无监督学习和半监督学习三种类型。根据机器学习的应用场景,目前可以分为分类问题、回归问题、聚类问题三大类。3.深度学习(Deep learning)是一种机器学习的分支,它是通过构建多层神经网络来实现自主学习和预测的能力。深度学习常见算法有反向传播(Backpropagation)、卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)等,后续会详细介绍。4.大模型是指深度学习中的大型神经网络模型,它们通常包含数亿甚至数十亿个参数,可以处理海量的数据,并且具有强大的特征表达和推理能力。大模型的出现使得AI在语音识别、自然语言处理、图像识别等领域取得了突破性的进展,受到了广泛的关注。大模型也属于深度学习,大模型的特点主要表现在:巨大的规模、预训练方式、多任务学习、模型架构和技术、参数优化、数据集要求。

2.开源项目

1.PaddleClas

这是百度飞浆开源的项目,项目地址

2.ImageAI

开源地址 OlafenwaMoses / ImageAI

3.TensorFlow

参考文章:
1.图像分类
2.深度学习入门:手把手教你用TensorFlow搭建图像识别模块 Google 之外,国内包括华为、京东、小米,其实都在用 TensorFlow。国外像 Twitter、Uber、Snapchat 也在用。使用它的公司其实非常多。现在学术界也好,工业界也好,都偏向使用它。
3.初学者的 TensorFlow 2.0 教程

4.Segment Anything

segment-anything Segment Anything Model (SAM): a new AI model from Meta AI that can “cut out” any object, in any image, with a single click。一种来自 Meta AI 的新 AI 模型,只需单击一下即可“切出”任何图像中的任何对象。源码开源地址 facebookresearch /segment-anything

我尝试了下,上传了一张影像地图,居然可以对整个的场景进行分门别类的进行分割,确实很神奇,分割之后的图像,还可以下载,这样比在ps中进行分割切图好像要好多了。

参考文章:
1.Segment Anything
2.我用segment-anything来提取卫星遥感影像建筑物轮廓,发现效果并不理想。 有大神用这个进行建筑物的影像识别,效果感觉还是可以的。
3.智慧医疗
4.segment-anything 这里对napari进行了介绍
5.Segment Anything 使用初探 使用 Segment Anything 进行农田地物都提取
6.【segment-anything】- Meta 开源万物可分割 AI 模型 本文列举了一些资料,并从SAM的功能介绍、数据集、数据标注、图像分割方法介绍,研发思路以及对未来的展望来展开详细介绍。并综合了一些评价谈论,放眼当下和展望未来,给出了一些个人的想法和看法。

5.Pytorch

参考文章:
【1】.Pytorch基础知识(5)图像二分类 图像分类又叫图像识别,是计算机视觉中的重要任务。在这个任务中,我们假设每张图像只包含一个对象。图像分类分为两种,一种叫二分类,一种叫多分类。

3.商业项目

1.商汤科技

2.达摩院AI

参考文章:
1.达摩院AI识别

3.SuperMap

参考文章:
1.AI识别

4.百度AI识别

EasyDL 图像 零算法基础定制高精度图像应用AI模型,提供端云多种灵活部署方案。EasyDL从2017年11月中旬起,在国内率先推出针对AI零算法基础或者追求高效率开发的企业用户的零门槛AI开发平台,提供从数据采集、标注、清洗到模型训练、部署的一站式AI开发能力。您采集到的原始图片、文本、音频、视频、OCR、表格等数据,经过EasyDL加工、学习、部署后,可通过公有云API调用,或部署在本地服务器、小型设备、软硬一体方案的专项适配硬件上,通过离线SDK或私有API进一步集成。

参考文章:
1.图像识别 精准识别超过十万种物体和场景,包含10余项高精度的识图能力并提供相应的API服务,充分满足各类开发者和企业用户的应用需求

5.科大讯飞

图像自训练平台 图像自训练平台为用户提供一整套的数据上传、模拟训练、校验测试工具,你只需上传已标注的少量数据,即可获得高精度的定制模型。根据所给的教程来看,可以实现对图像进行预训练,并提供接口的形式进行调用。

1.创建模型
讯飞A.I.开发栈 平台上找到AI自训练平台 可以创建模型,和讯飞官网 控制台有所区别。

3.数据集

  • 开源数据集
  • 自行采集数据集,自己通过拍照或者爬虫的方式
  • 热心网友自己采集整理之后的数据集
参考文章:
1.动物分类这些数据集,图像分类肯定需要! 平台的数据集版块,共有263个不同类别,不同应用的数据集。
2.大白智能 数据集及相关软件下载,这个好像基本上是一些链接,不用登录和花钱。
3.国内外深度学习开放数据集下载集合(值得收藏,不断更新) 1.Image processing data set;2.Natural Language Processing data set;3.Audio / voice dataset;4.综合数据集;
4.各领域公开数据集下载 1.经济金融;2.交通出行;3.商业活动;4.推荐系统;5.医疗健康;6.社会生活;7.三维重建;8.宇宙太空;9.地理遥感;10.科研和竞赛;11.拓扑图关系数据;12.图像数据;13.视频数据;14.音频数据;15.自然语言处理。这里面都是一个叫 聚数力 的网站上提供的。
5.各类图像数据集下载地址 1.COCO;2.KITTI;3.MPII;
6.【深度学习数据集】常用公开图片数据集下载 1.MNIST;2.Imagenet;3.COCO;4.PASCAL VOC;5.CIFAR-10.
7.33个常用数据集
8.各类图像数据大集合(下载链接) 1.MNIST手写数据集;2.百度EasyDL平台的水果分类数据集;3.Imagenet图像分类数据集;4.CIFAR-10图像分类数据集;5.Open Image图像分类数据集;6.PASCAL VOC挑战赛对象分类与识别数据集;7.CALVIN研究组数据集 -眼睛跟踪对象检测;
9.Animals-10 数据集下载,十种动物
10.动物相关公开数据集(免费下载链接) 1.动物名称文本;2.Animals 151种动物图片;3.动物图像分类训练;4.猴子、猫、狗 检测;5.《集合啦!动物森友会》目录;6.动物园动物数据;7.Cattle Breeds 牛品种数据集;8.简单的恐龙图片数据集;
11.12大类150个图像处理和深度学习开源数据集

5.入门教程

6.基础知识

在学习深度学习的时候,总会有一些新的名词出现:

  • 上采样
    上采样(upsampling):又名放大图像、图像插值;主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上;上采样有3种常见的方法:双线性插值(bilinear),反卷积(Transposed Convolution),反池化(Unpooling);

  • 下采样
    下采样(subsampled):又名降采样、缩小图像;主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图;其实下采样就是池化;

  • 卷积
    一次卷积运算指的是:如下图,当我们有一个过滤器(黄色矩阵块,又称卷积核,也是矩阵);移动卷积核,将这个方块对应要处理的输入矩阵的一部分,位置一一对应相乘,然后把结果再相加得到一个数;

  • 池化
    池化最直观的作用便是降维,常见的池化有最大池化、平均池化和随机池化;池化层不需要训练参数;

参考文章:
【2】.上采样/下采样 上采样就是以数据量多的一方的样本数量为标准,把样本数量较少的类的样本数量生成和样本数量多的一方相同,称为上采样。下采样,对于一个不均衡的数据,让目标值(如0和1分类)中的样本数据量相同,且以数据量少的一方的样本数量为准。获取数据时一般是从分类样本多的数据中随机抽与少数量样本等数量的样本。
【2】.【深度学习基本概念】上采样、下采样、卷积、池化 上采样、下采样、卷积和池化
【3】.图像的上采样(upsampling)与下采样(subsampled) 1.传统差值原理;2.基于边缘图像差值算法;3.基于区域的图像差值算法。
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。