嵌入式Linux人脸检测libfacedetection

2023-11-08

人脸检测

此库依赖Opencv,所以首先要移植Opencv到板子上。
笔者使用LVGL搭建了一个界面,界面有些卡顿(主要原因是文件存取较慢),演示效果如下:
在这里插入图片描述

OpenCV

首先要交叉编译Opencv

参考:https://blog.csdn.net/weixin_42794454/article/details/114405816
错误1:
修改交叉编译工具链里的文件:toolchain-sunxi-glibc/toolchain/include/features.h
添加以下一行:

#define _FILE_OFFSET_BITS 64

错误2:
参考:https://github.com/opencv/opencv/issues/16603
环境变量添加好全志的staging_dir 如果遇到找不到库的话-l -L 也添加上

编译opencv
make -j 8
错误3:
编译完成发现无法调用摄像头,原来cmake配置完成后,videoIO依赖的库全是NO,开启为YES需要依赖ffmpeg,遂交差编译ffmpeg

ffmpeg代码下载后 执行一下configure,如果编译出来的so文件太大,可以考虑根据自己的需求裁剪部分功能

./configure --extra-ldflags="-fPIC" --enable-shared --disable-static  --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib --cc=/home/ql/Downloads/R16_Tina_compiler_glibc/toolchain-sunxi-glibc/toolchain/bin/arm-openwrt-linux-gnueabi-gcc --enable-cross-compile --sysroot=/home/ql/Downloads/R16_Tina_compiler_glibc/staging_dir/target --prefix=/home/ql/Downloads/ffmpeg-6.0/output --arch=arm32 

发现编译不通过,根据提示修改makefile 添加:

 CFLAGS += -fPIC
 LDFLAGS += -fPIC  

执行make -j8
将编译出来的so文件放入交叉编译工具链的lib文件夹下,头文件放入inlude文件夹下

重新编译opencv,使用cmakeGUI工具做好以下配置

OPENCV_ENABLE_PKG_CONFIG true
PKG_CONFIG_PATH=/home/ql/Downloads/R16_Tina_compiler_glibc/staging_dir/target/usr/lib/pkgconfig

make -j8即可

编译lifacedetect
添加依赖:修改项目makefile/cmakeList 添加以下选项:-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread
配置并编译:

cmake ..   -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release 
cmake --build . --config Release

demo推送到板子上,运行即可。

将以下so文件推送到板子上,如遇到版本号不对可以建立对应软连接

avformat 
avcodec 
avutil 
swscale 
opencv_core 
opencv_calib3d 
opencv_features2d 
opencv_dnn 
opencv_flann 
opencv_imgcodecs 
opencv_imgproc 
opencv_ml 
opencv_objdetect 
opencv_photo 
opencv_stitching 
opencv_video 
opencv_videoio

总结

既然opencvlibfacedetection移植成功,那么基于opencv的更多应用都可以开发了,那之前学过的数字图像处理在嵌入式方面也可以任意发挥啦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式Linux人脸检测libfacedetection 的相关文章

  • 树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率

    Git例程源码仓库 https github com ZhiliangMa raspberry git 使用到的硬件 led 200 左右的电阻 杜邦线 上一节使用最基本的 GPIO数字输出 led亮了 可如果想要调整led亮度怎么办 PW
  • bootcmd和bootargs环境变量

    从网络启动 setenv bootargs console tty0 console ttymxc0 115200 root dev mmcblk1p2 rootwait rw setenv bootcmd tftp 80800000 zI
  • 2020-11-30

    嵌入式MQTT库移植 基于mosquitto库 一 交叉编译OpenSSL 下载源码到Linux虚拟机环境 https www openssl org source openssl 1 1 1f tar gz 放入非windows共享文件夹
  • 基于Dlib进行人脸特征点检测的Python代码实现

    一 Python代码实现 import sys import os import glob import dlib import numpy as np import cv2 把imread中的路径修改为自己的图片路径 图片格式为jpeg格
  • ubuntu 下安装Valgrind 内存泄漏检查工具

    Valgrind 安装 1 到www valgrind org下载最新版valgrind 3 7 0 tar bz2 2 解压安装包 tar jxvf valgrind 3 7 0 tar bz2 3 解压后生成目录valgrind 3 7
  • linux自启动程序

    嵌入式linux下有软件需要自启动 只需要在 etc init d rcS末尾添加所要启动的程序即可 开机就会自动运行 vi etc init d rcS在文件末尾添加 例
  • 读spi_flash的id

    读SPI FLASH的ID 在上一课中spi i2c adc OLED文件夹下添加spi flash c及spi flash h文件 并添加到si工程中 明确目的 在main函数中调用函数读取spiflash的厂家ID和设备ID 并打印 明
  • 几十行代码 轻松实现人脸识别、人脸检测

    人脸识别最近几年变得很火 技术也已经相对成熟 应用场景也很多 下面将介绍简单几种实现人脸检测 人脸识别的简单方法 我博客中也写了几篇有人脸识别应用的文章 现在分类总结下 人脸识别技术介绍已经近况以及应用 https blog csdn ne
  • Linux多线程编程知识汇总!

    大家好 我杂烩君 什么是多线程编程 1 线程和进程的区别 进程是指正在运行的程序 它拥有独立的内存空间和系统资源 不同进程之间的数据不共享 线程是进程内的执行单元 它与同一进程内的其他线程共享进程的内存空间和系统资源 2 多线程的优势和应用
  • 详解从0开始的嵌入式学习路线,学什么、怎么学?

    嵌入式是个大筐 什么都可以往里面装 电子 机械 计算机 自动化 测控 通信 物联网 很多很多专业都和嵌入式沾边 硬件 驱动 操作系统 网络 应用 算法 很多同学越学越迷糊 越学越感觉什么也不会 首先要记住一句话 嵌入式学习奥义 先观其广 再
  • LRC歌词解析,实现Linux设备播放音乐显示歌词 LRC解析

    开始正文 1 关于LRC lrc是英文lyric 歌词 的缩写 被用做歌词文件的扩展名 以lrc为扩展名的歌词文件可以在各类数码播放器中同步显示 LRC 歌词是一种包含着 形式的 标签 tag 的 基于纯文本的歌词专用格式 最早由郭祥祥先生
  • TQ2440移植u-boot2016.11全过程记录-【5】设置从NOR FLASH启动U-BOOT

    TQ2440移植u boot2016 11 设置从NOR FLASH启动u boot gedit include configs tq2440 h 屏蔽掉宏CONFIG SKIP LOWLEVEL INIT 修改宏CONFIG SYS TE
  • 全志F1C100s使用记录:u-boot & linux & rootfs 编译与烧录测试(基于SD卡)

    文章目录 目的 基础准备 硬件准备 开发环境 制作toolchain和rootfs 设置编译工具链 u boot linux编译 u boot boot scr linux 测试程序 文件烧录 分区设置 分块烧录 上电测试 系统镜像 制作镜
  • linux基本命令与终端操作、linux命令英文全称解释、ls clear cd pwd cat touch cp rm rmdir mkdir mv file find grep sudo su

    linux终端的命令提示符 命令提示符由四部分组成 当前登陆的用户名 主机名 当前所在目录 用户提示符 linux基本命令 查看目录下文件及文件夹 ls 英文全称 助记 list 命令参数 a all 输出所有文件及文件夹 包括隐藏文件 l
  • 基于嵌入式Qt的输入法syszuxpinyin自动弹出软件盘的问题

    移植好的syszuxpinyin输入法能正常的检测到控件焦点并自动弹出软键盘 当使用默认的QLineEdit控件时就有了一些小小的问题 问题一 QLineEditt在默认情况下会自动出现焦点 从而导致一进入界面就弹出软键盘 但是我们需要点击
  • 互斥机制之自旋锁(spinlock)

    一 基础 自旋锁 如果测试结果表明锁仍被占用 程序将在一个小的循环内重复这个 测试并设置 操作 即进行所谓的 自旋 1 定义自旋锁 spinlock t spin 2 初始化自旋锁 spin lock init lock 该宏用于动态初始化
  • 使用face_recognition(一)人脸识别

    关于使用face recognition 安装方面还是有些坑的 之前用的是python3 5 pip安装出错 需要dlib什么的 按照网上的教程弄 还是有问题 搞了一天搞不定 后来看到说用python3 6比较简单 就换了个版本 结果pip
  • uboot下的mw写内存和md显示内存命令以及nand命令

    配置uboot参数 setenv ipaddr 192 168 0 10 setenv serverip 192 168 0 40 setenv gatewayip 192 168 0 1 setenv netmask 255 255 25
  • linux下绑定任务到特定的CPU

    一 linux c查看cpu核 1 命令行查看cpu有几个核 cat proc cpuinfo grep processor wc l 或 nproc 2 linux c代码查看 include
  • 于仕琪的人脸检测算法

    于仕琪的人脸检测算法 对Windows下的商业使用也免费 刚更新了一次算法 正面人脸检测的角度范围从 40 40 度提升到 60 60 度 检测角度变大但计算量不增加 多视角人脸检测速度提升2倍 速度对比 在同样的条件下OpenCV 47

随机推荐