【嵌入式开发学习02】esp32cam烧录human_face_detect实现人脸识别

Ubuntu20.04系统为esp32cam烧录human_face_detect

      • 1. 下载esp-dl
      • 2. 安装esp-idf
      • 3. 烧录human_face_detect

如果使用ubuntu 16.04在后续的步骤中会报错如下,因为ubuntu 16.04不支持glibc2.23以上的版本(可使用strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_命令查询)。所以建议使用18.04以上的ubuntu进行烧录。

OSError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /home/zhouying/Desktop/ESP32CAM/esp-dl/tools/tvm/python/tvm/libtvm.so)

1. 下载esp-dl

git clone https://github.com/espressif/esp-dl.git

2. 安装esp-idf

官方文档:Linux 和 macOS 平台工具链的标准设置

我安装的版本是5.0.4,其他的版本会在某一步出现版本不兼容的问题。

打开https://github.com/espressif/esp-idf/tree/v5.0.4,选择手动下载压缩文件到本地。

在这里插入图片描述

cd esp-idf-v5.0.4/
./install.sh # 也可以指定单个芯片安装 ./install.sh esp32# 设置环境
export IDF_PATH=/home/zhouying/Downloads/esp-idf-v5.0.4
export IDF_TOOLS_PATH=/home/zhouying/.espressif

在需要运行ESP-IDF的终端窗口运行(不建议直接将export.sh添加到shell的配置文件,这样会导致在每个终端会话中都激活IDF虚拟环境):

~$ source /home/zhouying/Downloads/esp-idf-v5.0.4/export.sh
Detecting the Python interpreter
Checking "python3" ...
Python 3.10.9
"python3" has been detected
Checking Python compatibility
Checking other ESP-IDF version.
Adding ESP-IDF tools to PATH...
Checking if Python packages are up to date...
Constraint file: /home/zhouying/.espressif/espidf.constraints.v5.0.txt
Requirement files:- /home/zhouying/Downloads/esp-idf-v5.0.4/tools/requirements/requirements.core.txt
Python being checked: /home/zhouying/.espressif/python_env/idf5.0_py3.10_env/bin/python
Python requirements are satisfied.
Added the following directories to PATH:/home/zhouying/Downloads/esp-idf-v5.0.4/components/espcoredump/home/zhouying/Downloads/esp-idf-v5.0.4/components/partition_table/home/zhouying/Downloads/esp-idf-v5.0.4/components/app_update/home/zhouying/.espressif/python_env/idf5.0_py3.10_env/bin
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:idf.py build

3. 烧录human_face_detect

cd esp-dl/examples/human_face_detect
idf.py set-target esp32
idf.py flash monitor -p /dev/ttyUSB0

如果报错A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist,先修改权限sudo chmod a+rw /dev/ttyUSB0,再重新运行

~$ idf.py flash monitor -p /dev/ttyUSB0
...
I (1214) main_task: Calling app_main()
Inference latency:          411416 us
[0] score: 0.999874, box: [-1, -1, 268, 299]left eye: (126,  75), right eye: (189,  73)nose: (119, 194)mouth left: ( 41, 141), mouth right: (263, 212)[1] score: 0.999810, box: [5, 206, 233, 506]left eye: (118, 268), right eye: (170, 291)nose: (115, 352)mouth left: ( 55, 303), mouth right: (303, 415)[2] score: 0.896976, box: [125, 255, 385, 556]left eye: (217, 330), right eye: (252, 341)nose: (185, 390)mouth left: (194, 333), mouth right: (349, 465)I (1674) main_task: Returned from app_main()Done

esp32的结果跑出来和官方的不一样,可能芯片性能原因。

在这里插入图片描述

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

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

相关文章

服务号改订阅号怎么弄

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?很多小伙伴想把服务号改为订阅号,但是不知道改了之后具体有什么作用,今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章,但是订阅号每天都可以发…

JVM——类的生命周期(加载阶段,连接阶段,初始化阶段)

目录 1.加载阶段2.连接阶段1.验证2.准备3.解析 3.初始化阶段4.总结 类的生命周期 1.加载阶段 ⚫ 1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 程序员可以使用Java代码拓展的不同的渠道。 ⚫ 2、类加载器在加载完类…

C++和 C 混合编程处理

原因是因为有很多功能是用 C 语言开发的,而 C是兼容 C 的,C应该能直接使用这些功能,那么我们把 C调用 C 实现的功能的这个做法,称为混合编程 但是用 C 开发的功能,很可能已经用 C 编译器编程成目标文件(或打包成库了)…

3.16每日一题(区间在现求定积分)

解法一: 1、二倍角化简,为了使用公式把x消去,令t2x,跟换区间 2、因为三角函数的几何性质,即sinx在0到Π上时对称区间,所以可以只计算[ 0 , Π/2 ]上的面积,最后乘2即可。 注:换元后记…

【服务器】Redis的安装及使用命令(Linux、Windows版)

目录 一、Redis简介 二、Redis安装 1、Linux版 1.1、下载 1.2、导入 1.3、解压 1.4、安装 1.5、修改文件 1.6、启动redis 1.7、测试 1.8、结束进程 1.9、修改密码访问 1.10、安装客户端工具&连接 2、Windows版 2.1、下载 2.2、安装 2.3、修改 2.4、连接 …

卷麻了,00后测试用例写的比我还好,简直无地自容......

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 如何编写测试用例? 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法…

【从删库到跑路】详解MySQL数据库的视图以及相关操作

🎊专栏【MySQL】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 🥰欢迎并且感谢大家指出小吉的问题 文章目录 🎄视图介绍🎄视图特点🌺基本操作⭐创建视图⭐查询…

MIT6.5830 Lab1-GoDB实验记录(二)

MIT6.5830 Lab1-GoDB实验记录(二) – WhiteNights Site 标签:Golang, 数据库 接下来我们将完成tuple.go的缺失代码,并通过tuple_test.go的测试。 实验步骤 观察tuple.go 观察肯定是第一步,先打开tuple.go。 快300行代…

requires SDK version >=3.0.1 <4.0.0, version solving failed

这个很明显是FLUTTER SDK不匹配的问题,需要更新flutter SDK,最简单的办法,在flutter官网的页面直接下载最新的,然后替换之前旧版本的flutter 官网: 在 Windows 操作系统上安装和配置 Flutter 开发环境 - Flutter 中文…

基于GPIO子系统的LED驱动程序

这两个系统属于软件层,让我们不用直接对硬件配置,一般由芯片出产商写好,我们只要基于它们改就行。 设备树操作 1.使用官方的工具来编写pinctrl设置gpio的设备树代码。 如图,生成代码 ![在这里插入图片描述](https://img-blog.cs…

比亚迪今年的薪资。。

大家或许已经对比亚迪在西安的宣讲会有所耳闻,那场面真的是座无虚席。如果你稍微迟到了一些,那么你可能只能在门外或是走廊听了。 事实上,许多人早早地抵达了,只要稍微晚到,就可能错过了室内的位置。 更令人震惊的是&…

HCIA数据通信——静态路由

之前的文章中我提到过静态路由: 数据通信——网络层(路由器以及数据转发流程)_路由器如何转发数据_咕噜跳的博客-CSDN博客这里只做一些简单描述。 路由器关注的是网络之间的通信。路由器以自身为中心,考虑的是如何将数据发送到目…

优维产品最佳实践第13期:如何避免拨测机自身网络问题?

受限于拨测节点自身的环境,单一节点的拨测结果可能并不能反映出监控实例的真实运行状态 本期EasyOps产品使用最佳实践,我们将为您揭晓: 如何基于多点决策配置拨测监控,以避免拨测机自身网络问题而误告警? 如何对指标…

Paddle炼丹炉炸了Unexpected BUS error encountered in DataLoader worker

Paddle训练报错,内存不足 python train.py -c config/ResNet_W18.yaml修改配置文件config/ResNet_W18.yaml # 原配置 loader:num_workers: 4use_shared_memory: True# 修改后 loader:num_workers: 2use_shared_memory: False

基于GB28181-2022实现web无插件播放H265视频

目前发布的GB28181-2022增加了对前端设备视频H265编码格式的支持,所以实现国标平台通过浏览器对H265视频流的无插件的解码播放将是未来的趋势。 目前大多的方案都是通过平台端把H265转码为H264,再推送到web前端进行解码播放,这种方式因为需要…

MAA连不上MUMU模拟器

之前一直能正常用,最近突然连接不上,最终发现是adb版本不同造成的,我系统变量的adb版本如下: MUMU自带adb版本如下: 解决办法: 把mumu的adb复制到系统变量路径下,或者把adb的系统变量删除

小红书协议算法最新版

如果您想通过学习来了解小红书的点赞、关注、私信等功能的实现,以下是一些一般性的思路和示例代码,供您学习参考: 1. 点赞功能: - 后端实现:在后端,您可以创建一个用于存储用户点赞信息的数据库表。对于每…

STM32-创建项目流程

一、基于STM官网得库进行开发 准备工作:下载STM库文件 1、创建项目文件夹 2、在keil 中new uVision project,然后选择刚刚创建得文件夹,在文件夹里面创建一个文件,用来存放这个项目,然后在文件夹里面,写个文件名&am…

基于机器视觉的银行卡识别系统 - opencv python 计算机竞赛

1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的银行卡识别算法设计 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng…

在基于亚马逊云科技的湖仓一体架构上构建数据血缘的探索和实践

背景介绍 随着大数据技术的进步,企业和组织越来越依赖数据驱动的决策。数据的质量、来源及其流动性因此显得非常关键。数据血缘分析为我们提供了一种追踪数据从起点到终点的方法,有助于理解数据如何被转换和消费,同时对数据治理和合规性起到关…