香橙派(OrangePi)上安装OpenCv实操

举报
神龙居市 发表于 2022/11/08 22:39:26 2022/11/08
【摘要】 前言– 想做一个轻量级人脸识别系统,放在办公室出入口,对进出人员进行识别,并且对员工打卡进行提醒。上报前一段时间内容识别到员工未打卡,喊出姓名提醒上班打卡。在下班后一段时间内,对出门的进行提醒。这一套在Windows平台轻松实现了,但是这么个东西用一台PC,有些大材小用了,希望一移植到ARM上的小设备。这就带来了环境问题。由于技术受限,自己编译OpenCv总是遇到问题。最后重要找到了,Op...

前言

– 想做一个轻量级人脸识别系统,放在办公室出入口,对进出人员进行识别,并且对员工打卡进行提醒。上报前一段时间内容识别到员工未打卡,喊出姓名提醒上班打卡。在下班后一段时间内,对出门的进行提醒。
这一套在Windows平台轻松实现了,但是这么个东西用一台PC,有些大材小用了,希望一移植到ARM上的小设备。
这就带来了环境问题。由于技术受限,自己编译OpenCv总是遇到问题。最后重要找到了,OpenCv-Python开发方式。摄像头的读取和人脸识别都轻量化,当然了直接客户端识别精准的人脸还差一步,用开发板客户端的人脸识别只做到识别出有人,真正的人脸识别和员工对上号,还是用来华为云FRS服务。

需要准备的设备

香橙派Zero2开发板
16G TF卡
HDMI显示器
一台Windows PC

步骤

我这里安装的是Zero2的Ubuntu系统,从香橙派官网下载。
– 首先把系统更新

$ sudo apt-get update 
$ sudo apt-get upgrade

– 安装依赖环境
如果有提示找不到源,可以单独去掉

sudo apt install libgraphite2-3 libatspi2.0-0 libthai0 libxcb-shm0 libxcb-render0 libswscale5 librsvg2-2 libvorbisenc2 libavutil56 libzvbi0 libgsm1 libxinerama1 libxvidcore4 libsrt1.4-gnutls libswresample3 libatk1.0-0 libvorbisfile3 libogg0 libpangoft2-1.0-0 libpgm-5.3-0 libwayland-egl1 libharfbuzz0b libpango-1.0-0 libcairo2 libva-x11-2 libwayland-cursor0 libgfortran5 libxfixes3 libgme0 libxrender1 libvorbis0a libxi6 libudfread0 libspeex1 libwebpmux3 libsodium23 libdatrie1 libatk-bridge2.0-0 libxrandr2 libbluray2 libwavpack1 libxcomposite1 libpangocairo-1.0-0 libsoxr0 libshine3 libxkbcommon0 libvdpau1 libgtk-3-0 libopus0 librabbitmq4 libgdk-pixbuf-2.0-0 libavformat58 libmpg123-0 libxdamage1 libzmq5 libopenmpt0 libatlas3-base libva2 libva-drm2 libxcursor1 libssh-gcrypt-4 libavcodec58 libwayland-client0 libcairo-gobject2 libpixman-1-0 libdrm2 libsnappy1v5 libnorm1 libopenjp2-7 libtheora0 ocl-icd-libopencl1 libtwolame0 libepoxy0 libchromaprint1 libmp3lame0

– 1、采用第一种方式安装pip,如果不成功可以使用第二种

$ sudo apt-get install python-pip3  #安装pip3
$ sudo pip3 -h # 检查是否安装成功

– 2、第二种方式安装pip

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py #获取get-pip.py文件
$ python3 get-pip.py # #安装pip
$ sudo pip3 -h # 检查是否安装成功

– 最重要的一步安装OpenCv-Python

sudo pip3 install opencv-python

image.png

– 出现以下文字,安装成功

Installing collected packages: numpy, opencv-python
Successfully installed numpy-1.23.4 opencv-python-4.6.0.66

– 给开发板USB接上摄像头,并用命令查看

 ls /dev/

如果出现 video0、video1、video2,说明已经识别。
如果是树莓派还需要设置启用pi camera. 香橙派默认就可以识别。

– 接下来可以小试身手
创建一个Camera.py文件,把以下内容复制进去,
香橙派USB的摄像头索引是1开始,树莓派是0开始

import cv2
def catch_video(name='my_video', video_index=1):
    # cv2.namedWindow(name)
    cap = cv2.VideoCapture(video_index) # 创建摄像头识别类
    if not cap.isOpened():
        # 如果没有检测到摄像头,报错
        raise Exception('Check if the camera is on.')
    while cap.isOpened():
        catch, frame = cap.read()  # 读取每一帧图片
        cv2.imshow(name, frame) # 在window上显示图片
        key = cv2.waitKey(10)
        if key & 0xFF == ord('q'):
            # 按q退出
            break
        if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1:
            # 点x退出
            break
    # 释放摄像头
    cap.release()
    cv2.destroyAllWindows()
if __name__ == "__main__":
    catch_video()

运行效果截图
image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。