赞
踩
如果你需要做树莓派的课程设计(或者说计算机系统综合课程设计),那这几篇博客一定适合你。一开始做课设的时候对硬件、组装、烧录等等词语都很陌生,老师也不会进行过多的辅导,很多同学迷迷糊糊的不知道自己该干嘛,下面是对我课程设计的一个总结,希望对大家有所帮助。
1、树莓派树莓派人脸识别-硬件组装+系统烧录
2、树莓派人脸识别-树莓派人脸识别-环境搭建、相机测试
3、树莓派人脸识别-原理及问题小结
4、树莓派人脸识别-人脸检测与识别实践部分
5、树莓派人脸识别-课程设计报告
请务必确保自己烧录的树莓派镜像是最新的Raspberry Pi OS,不然会出很多问题,如果你不怕麻烦使用的是19年之前的Raspberry系统,你可以看最后的opencv配置十分繁琐,而且可能存在一些解决不了的问题,十分建议使用最新Raspberry Pi OS镜像。
关于编辑器,用自带的Thonny就ok,不要自己去下其他的ide会出很多问题,或者用自带的Text Editor也可以,写完记得ctrl+s保存再在命令行python xxx.py运行就ok
关于pycharm,我不建议用,太卡了!!!如果你真的想试试
- 确保自己的default-jdk版本>11
- pycharm-community下载2021年或者之前版本(不然全是报错)
- 根据自己的操作系统下载32bit / 64bitArm 的Linux版本
- tar -zxvf pycharm-community-2021.1.3.tar.gz 直接解压
- cd ~/pycharm-community-2021.1.3.tar.gz/bin 进入目录
- ./pycharm.sh 运行pycharm
关于Anaconda,我不建议用
miniconda可以下载但是适配的Python版本过低,还有不少的环境问题需要解决。
完全版的Anaconda只适配arm64架构,但是3B+的主板配64arm系统使用会出现不适配的情况因此不能正确编译,如果你是4B及以上的版本可以试试,不过我估计很卡。
在进行环境配置之前,请确定自己已经连上wifi
开机后在右上角wifi找到自己的网,输入密码连接即可(wifi名会出现中文乱码,中文会转化成Unicode后转化成ASCII,随缘找或者把wifi名字改成英文+数字的组合更好找)
![]()
打开终端
首先需要升级和更新系统,以确保系统版本最新:
sudo apt-get update
sudo apt-get upgrade
接下来安装必要的库和工具:
sudo apt-get install python3-opencv
sudo pip3 install numpy
sudo pip3 install pyqt5
sudo apt-get install vim
python3-opencv
:OpenCV库是进行图像处理和计算机视觉的重要工具。numpy
:Numpy库提供了对大型多维数组的支持以及许多数学函数。一般系统都会配备好。pyqt5
:PyQt5库是用于创建GUI的Python库。一般系统都会配备好。vim
:Vim编辑器是一种高效的文本编辑器。在树莓派上测试相机之前,需要启用相机模块。打开终端并输入以下命令:
sudo raspi-config
然后按照以下步骤进行设置:
Interface Options
后回车。Legacy Camera
后回车。yes
。(提示Legacy camera support is enabled,代表启动成功)OK
,然后按两次 →
键选择 Finish
。在根目录下创建一个testCamera.py文件
cd ~
vim testCamera.py
vim使用提示,输入i后ctrl+shift+v可以粘贴代码进去编辑器,按esc后输入:wq可以保存退出
(会用ssh的话用finalshell很方便,ssh需要在sudo raspi-config的interface options里面打开。不会用的话用微信传输网页版、邮箱都可以。)
现在可以使用以下Python代码测试相机:
import cv2 # 打开摄像头 cap = cv2.VideoCapture(0) # 检查摄像头是否已经打开 if not cap.isOpened(): print("无法打开摄像头") exit() # 设置摄像头参数 cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) # 循环读取摄像头图像 while True: # 读取当前帧 ret, frame = cap.read() # 检查是否成功读取帧 if not ret: print("无法读取摄像头图像") break # 显示当前帧 cv2.imshow("Video", frame) # 等待按键 if cv2.waitKey(1) == ord('q'): break # 释放摄像头 cap.release() # 关闭所有窗口 cv2.destroyAllWindows()
完成保存后使用以下命令运行程序:
python testCamera.py
这样就可以检查摄像头是否可用并测试树莓派的相机模块。正常的话图像如下:
之后返回命令行ctrl+c即可退出窗口。
到这里相机测试就结束了
如果你是用的是2019年之前的raspberry进行,可以按照下面配置opencv3,真的不建议,我自己做了两天都才修完bug,之后换了最新的Raspberry Pi OS 2023.5.4直接下载opencv3就ok了,完全不用这么麻烦,里面做了一些内存上的优化,想试试可以看下面。
sudo raspi-config //进入后先回车,然后键盘右键两下back,键盘右键再两下finsh
sudo reboot //重启
df -h //看下内存
sudo apt-get purge wolfram-engine //内存小的话可以清理,不然可以不管
//0、更新软件包、升级软件包 sudo apt-get update sudo apt-get upgrade //1、安装一些开发人员工具,包括CMake,这有助于我们配置OpenCV sudo apt-get install build-essential cmake pkg-config //2、安装一些映像I/O包,这些包允许我们从磁盘加载各种映像文件格式。此类文件格式的例子包括JPEG、PNG、TIFF等: sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev //3、就像我们需要图像I/O包一样,我们也需要视频I/O包。这些库允许我们从磁盘上读取各种视频文件格式,以及直接处理视频流 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev //4、OpenCV库附带一个名为highgui用于在我们的屏幕上显示图像并构建基本的GUI。为了编译highgui模块,我们需要安装GTK开发库: sudo apt-get install libgtk2.0-dev //5、通过安装一些额外的依赖项,可以进一步优化OpenCV内部的许多操作(矩阵操作) sudo apt-get install libatlas-base-dev gfortran //6、我们同时安装Python 2.7和Python 3头文件,这样我们就可以使用Python绑定编译OpenCV sudo apt-get install python2.7-dev python3-dev
//1、从官网上下载opencv3
cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
unzip opencv.zip
//2、完全安装OpenCV 3(例如,可以访问SIFT和SURF等功能),因此我们还需要抓取opencv_contrib存储库:
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
unzip opencv_contrib.zip
1、我们首先需要安装pip内核 wget https://bootstrap.pypa.io/get-pip.py sudo python3 get-pip.py 2、下载虚拟环境 sudo pip3 install virtualenv virtualenvwrapper -i https://mirrors.aliyun.com/pypi/simple/ sudo rm -rf ~/.cache/pip 3、配置~/.profile(使用下面二者之一,推荐用下面那部分比较方便) echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile //或者把下面的内容写到~/.profile文件内 //# virtualenv and virtualenvwrapper //export WORKON_HOME=$HOME/.virtualenvs //export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 //source /usr/local/bin/virtualenvwrapper.sh 4、配置完之后应用配置 source ~/.profile 5、创建虚拟环境 mkvirtualenv cv -p python3 6、怎么进入虚拟环境 source ~/.profile workon cv 7、安装Numpy(注意要在cv3环境内) pip3 install numpy
1、进入虚拟环境 workon cv 2、使用CMake设置我们的构建 cd ~/opencv-3.3.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_opencv_python3=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D PYTHON3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.9.so \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/huaxi/.virtualenvs/cv/lib/python3.9/site-packages/numpy/core/include \ -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \ -D WITH_OPENEXR=OFF \ -DCMAKE_CXX_FLAGS="-Wa,-mbig-obj"\ -D BUILD_EXAMPLES=ON .. 3、配置交换空间,使用四个核心进行编译 # 打开你的/etc/dphys-swapfile然后编辑CONF_SWAPSIZE变量: # set size to absolute value, leaving empty (default) then uses computed value # you most likely don't want this, unless you have an special disk situation # CONF_SWAPSIZE=100 CONF_SWAPSIZE=1024 4、激活新的交换空间,重新启动交换服务: sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start 5、编译OpenCV make -j4 6、在Raspberry Pi 3上安装OpenCV 3 sudo make install sudo ldconfig
对于python2.7
$ ls -l /usr/local/lib/python2.7/site-packages/
总计1852
-rw-r--r-- 1根词根1895772 3月20日20:00 cv2.so
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
对于python3
$ ls -l /usr/local/lib/python3.9/dist-packages/
总计1852
-rw-r--r-- 1根词根1895932 3月20日 21:51 cv2.cpython-34m.so
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
$ source ~/.profile $ workon cv3 $ python import cv2 cv2.\__version__ '3.3.0' 2、!!!确保前面正确安装执行下面可以清理内存,可以不执行,但一定不要乱执行!!! rm -rf opencv-3.3.0 opencv_contrib-3.3.0 3、取消所有所有编译,配置交换空间,使用四个核心进行编译 #打开你的/etc/dphys-swapfile然后编辑CONF_SWAPSIZE变量: set size to absolute value, leaving empty (default) then uses computed value #you most likely don't want this, unless you have an special disk situation CONF_SWAPSIZE=100 CONF_SWAPSIZE=1024 #注释掉1024MB的线路,不然以后会很卡 4、激活新的交换空间,重新启动交换服务: sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。