树莓派3B——打开硬件加速OpenGL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派3B——打开硬件加速OpenGL相关的知识,希望对你有一定的参考价值。

参考技术A 目前系统(2016-02之后的raspbian with desktop)已经内置OpenGL driver,但默认是关闭的而使用较慢的软件渲染。注意:Lite版系统是不支持的,因为opengl离不开桌面。一般来说该选项仅支持pi2及以后的版本,当然也可以找一下Pi 1/0开启opengl的方法( https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=166495 )
一、打开方法:

或者直接在/boot/config.txt里添加一行dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d,分别对应上面两项。
KMS是指Kernel Mode-Setting,理论上该模式会更有效率,因为是通过内核输出的,而Fake KMS则有更好的兼容性,比如打开Full KMS后使用realvnc远程会黑屏等。
需要注意的是,打开该选项可能会导致标准摄像头或者基于OpenGL ES(OpenGL的子集)的视频渲染软件失效(比如kodi),不支持DSI接口的官方显示屏。
二、测试是否已经正确打开OpenGL
在终端打开

如果使用的是标准的软件渲染模式,可见三个齿轮运转大概30帧/s并伴有闪烁卡顿,颜色显示也不正常。如果使用的是opengl硬件加速模式,则有60帧/s,不会伴有闪烁,颜色也显示正常。

这个游戏在软件渲染模式之下几乎是不能打开的,即使打开了也非非常卡顿。
其他opengl应用或游戏(建议GPU mem设置不低于256MB):

主要参考文章:
OpenGL Drivers on Raspberry Pi B/B+/Zero
THREE GREAT GAMEMAKER GAMES FOR RASPBERRY PI
New experimental GL driver configuration

[树莓派]aarch64 系统安装opencv 并使用硬件加速

因为网络原因, 在国内编译Opencv非常的艰难
openfans 提供了opencv-4.5.1-org.pifan_20210116-1_arm64.deb, 可以直接下载, 百度盘路径在: /树莓派爱好者基地64位系统2.0正式版/Debian-Pi-Aarch64-2.0-Release/Extra/OpenCV/

准备工作

mkdir /root/opencv/
cd /root/opencv/

下载并解压

下载源代码

wget https://github.com/opencv/opencv/archive/refs/tags/4.5.2.zip -O opencv-4.5.2.zip
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.2.zip -O opencv_contrib-4.5.2.zip

unzip opencv-4.5.2.zip
unzip opencv_contrib-4.5.2.zip

下载必要文件

因为这地址无法访问, 会卡在下载环节

face_landmark_model.dat

wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat -O face_landmark_model.dat

vim opencv_contrib-4.5.2/modules/face/CMakeLists.txt

https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/改为file:///root/opencv/

ippicv_2020_lnx_intel64_20191018_general.tgz

这个树莓派无需下载/安装
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz -O ippicv_2020_lnx_intel64_20191018_general.tgz

vim opencv-4.5.2/3rdparty/ippicv/ippicv.cmake

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"改为file:///root/opencv/

安装依赖

apt -y remove x264 libx264-dev

## Install dependencies
apt -y install build-essential checkinstall cmake pkg-config yasm
apt -y install libjpeg8-dev libjasper-dev libpng12-dev

apt -y install libtiff5-dev

apt -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
apt -y install libxine2-dev libv4l-dev
cd /usr/include/linux
ln -s -f ../libv4l1-videodev.h videodev.h
cd $cwd

apt -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
apt -y install libgtk+-3.0-dev libgtk2.0-dev libtbb-dev
apt -y install libatlas-base-dev
apt -y install libmp3lame-dev libtheora-dev
apt -y install libvorbis-dev libxvidcore-dev libx264-dev
apt -y install libopencore-amrnb-dev libopencore-amrwb-dev
apt -y install libavresample-dev
apt -y install x264 v4l-utils

# Optional dependencies
apt -y install libprotobuf-dev protobuf-compiler
apt -y install libgoogle-glog-dev libgflags-dev
apt -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

创建编译目录

mkdir -p /root/opencv/opencv-4.5.2/build/
cd /root/opencv/opencv-4.5.2/build/

配置

cmake \\
-D CMAKE_BUILD_TYPE=RELEASE \\
-D CMAKE_INSTALL_PREFIX=/usr/ \\
-D BUILD_SHARED_LIBS=ON \\
-D OPENCV_EXTRA_MODULES_PATH=/root/opencv/opencv_contrib-4.5.2/modules \\
-D BUILD_DOCS=OFF \\
-D BUILD_EXAMPLES=OFF \\
-D BUILD_TESTS=OFF \\
-D BUILD_PERF_TESTS=OFF \\
-D BUILD_opencv_java=NO \\
-D BUILD_opencv_python=NO \\
-D BUILD_opencv_python2=NO \\
-D BUILD_opencv_python3=NO \\
-D INSTALL_C_EXAMPLES=ON \\
-D INSTALL_PYTHON_EXAMPLES=ON \\
-D WITH_TBB=ON \\
-D WITH_V4L=ON \\
-D WITH_QT=OFF \\
-D WITH_OPENGL=OFF \\
-D ENABLE_NEON=ON \\
-D ENABLE_VFPV3=ON \\
-D WITH_JASPER=OFF \\
-D OPENCV_ENABLE_NONFREE=ON \\
-D CMAKE_SHARED_LINKER_FLAGS=\'-latomic\' \\
-D OPENCV_GENERATE_PKGCONFIG=ON ..

编译&安装

make -j$(nproc)
make install

以上是关于树莓派3B——打开硬件加速OpenGL的主要内容,如果未能解决你的问题,请参考以下文章

openvino:yolov3转换成tenserflow模型再转换成openvino模型,并用神经计算棒一代加速树莓派3b+

树莓派3B 开启串口

使用树莓派打造一个私人NAS+博客(2)——硬件篇

Raspberry Pi 3 Model B+ (树莓派3B+)快速上手

Raspberry Pi 3 Model B+ (树莓派3B+)快速上手

Raspberry Pi 3 Model B+ (树莓派3B+)快速上手