图像识别功能在小程序中的使用

图像识别功能在小程序中的使用,第1张

1.注册网站相关账号,拿到 API_Key , Secret_Key

2.获取token

想授权地址 https://aip.baidubce.com/oauth/2.0/token 发送请求(推荐post),并在 url 中带上相关参数

-grant_type: 必须参数,固定为client_credentials;

-client_id: 必须参数,应用的API_Key;

_client_secret: 必须参数,应用的Secret_Key;

3.token的保存

在获取的token之后我们可以用uni.setStorage方法(原生的方法不太一样,不过原来都是一样的)把获取到的token和有效时间加上当前时间的值存储到本地,这样不用每次进入小程序就不用反复的请求token;

具体怎么做:

4.设置图片来源选择

用uni.showActionSheet()来配置图片来源的选择

5.根据图片识别接口需要,图片转base64

6.请求图像识别api

注意: token要放到URL中 ,请求方式为 post ;header中Content-Type设置为 application/x-www-form-urlencoded

具体来说,要实现图像识别,通常需要进行以下步骤:

收集图像数据。这些数据应该包含所需的分类或目标的图像样本,以及不属于该分类或目标的图像样本。

对图像进行预处理,以提取有用的特征。例如,可以使用某些算法对图像进行滤波、降噪或增强。

使用 TensorFlow Lite for Microcontrollers 库来训练模型。可以选择一个适合于 ESP32-CAM 的模型架构,或者自己设计一个模型。

将训练好的模型编译为可在 ESP32-CAM 上运行的代码,并将其上传到 ESP32-CAM 上。

在 ESP32-CAM 上编写程序,以调用模型并进行图像分类或目标检测。

确定物体个数和中心的话,利用颜色值进行连通性分析,应该能确定一块相同颜色的区域,找到这块区域就能确定质心点了。要是还要判断形状还得先提取出每个形状的特征。

1.识别静态的整个人体较难;即使识别出来结果也不可靠,所以现在主要以手势/人脸识别为主;这是因为手和脸上面有比较独特的特征点。你说的滤波归根结底还是要找出具有灰度跳变的高频部分作为人体;这除非背景中除了人以外没有其他突出的物体;否则光凭滤波二值法检测人体是不太现实。

2 两张图片中人要是产生相对运动,检测起来就容易多了;利用帧间差分找到图像中灰度相差大的部分(你用的滤波也是一种手段);然后二值化区域连通;要是图像中没有其他移动物体计算连通区域的变动方向就是人的运动方向。

先建立起静态背景的模型(或者直接在没人的时候拍张);然后不断的与这个背景做差,原理和帧间差分一样。建议你先从典型的帧间差分例程开始下手(比如移动车辆的检测,这个比较多)。

在二值化之后加上一个区域连通的步骤;即使用膨胀或者闭运算;这样轮廓就是连续的了;用matlab的话bwlabel可以统计连通区域里面像素的个数也就是人体面积大小。质心就是横竖坐标的平均值;取所有人体点的横竖坐标分别累加;除以坐标总数得到的x和y平均值;这个就是质心了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10964466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存