我的配置为:香橙派zero2 1G
内核版本号: Linux 4.9.170-sun50iw9
opencv版本:opencv-4.6.0
摄像头 :60块钱的USB免驱摄像头
此教程并不完美,且没有逻辑,很多坑,希望理解
有外接屏幕也可以,ssh的方式登陆也可以显示图像,但是可能会卡
安装opencv的方法参见以下博主的文章,亲测好用,注意安装细节就行
(22条消息) Ubuntu18.04安装Opencv4.5(最新最详细)_ubuntu升级opencv_向日葵骑士Faraday的博客-CSDN博客
// CMAKE 那一行注意 -D要删一些空格,好像是这样,不保证能用啊
//再就是如果用香橙派make的话,make -j1 或者 -j2 就行,多了会卡死,-j1大概要三小时吧。。
//如果会其它编译方法另说
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -D -DOPENCV_ENABLE_NONFREE=True ..
首先确保你跑opencv自带的例程没有问题,如果用ssh方法登陆的话应该可以不用屏幕,是这样的
开讲吧,
首先我们在/home/orangepi/opencv-4.6.0/samples/cpp
我的路径是这样的,建立一个文件夹 face,也可以叫其它的
进入face,建立一个CMakeLists.txt 文件然后将上层文件夹cpp里的例程复制一个过来,我的是facedetect.cpp 需要这两个东西就行了。CMakeCache.txt 里面写下以下内容
第五行 project 括号里写建立文件夹的名字
二十三行和二十六行也需要修改,基本一下就可以看会,
二十三行 改为 (文件夹名 xxx.cpp)
二十六行括号里第一部分改为 文件夹名
1 # cmake needs this line
2 cmake_minimum_required(VERSION 3.1)
3
4 # Define project name
5 project(face)
6
7 # Find OpenCV, you may need to set OpenCV_DIR variable
8 # to the absolute path to the directory containing OpenCVConfig.cmake file
9 # via the command line or GUI
10 find_package(OpenCV REQUIRED)
11
12 # If the package has been found, several variables will
13 # be set, you can find the full list with descriptions
14 # in the OpenCVConfig.cmake file.
15 # Print some message showing some of them
16 message(STATUS "OpenCV library status:")
17 message(STATUS " config: ${OpenCV_DIR}")
18 message(STATUS " version: ${OpenCV_VERSION}")
19 message(STATUS " libraries: ${OpenCV_LIBS}")
20 message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
21
22 # Declare the executable target built from your sources
23 add_executable(face facedetect.cpp)
24
25 # Link your application with OpenCV libraries
26 target_link_libraries(face PRIVATE ${OpenCV_LIBS})
对比一下例程里的CMakeLists.txt 就大概知道什么意思了
project(opencv_example_project) 最后的 _project 好像可加可不加
1 # cmake needs this line
2 cmake_minimum_required(VERSION 3.1)
3
4 # Define project name
5 project(opencv_example_project)
6
7 # Find OpenCV, you may need to set OpenCV_DIR variable
8 # to the absolute path to the directory containing OpenCVConfig.cmake file
9 # via the command line or GUI
10 find_package(OpenCV REQUIRED)
11
12 # If the package has been found, several variables will
13 # be set, you can find the full list with descriptions
14 # in the OpenCVConfig.cmake file.
15 # Print some message showing some of them
16 message(STATUS "OpenCV library status:")
17 message(STATUS " config: ${OpenCV_DIR}")
18 message(STATUS " version: ${OpenCV_VERSION}")
19 message(STATUS " libraries: ${OpenCV_LIBS}")
20 message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
21
22 # Declare the executable target built from your sources
23 add_executable(opencv_example example.cpp)
24
25 # Link your application with OpenCV libraries
26 target_link_libraries(opencv_example PRIVATE ${OpenCV_LIBS})
接着 cmake . 一下
cmake .
然后 make 一下
make
然后就看到了生成一堆东西
好,可执行文件生成了,我们以 ssh的方式登陆 运行一下 ./face
./face
报错,找不到xml文件,我们打开我们工程里面的 facedetect.cpp 文件
修改一下下面这个位置,对比一下两张图片,给换成绝对路径,pwd 命令可以查看当前路径
再重新 cmke . 一下 再 make 一下
camke .
make
ok,我们再 ./face 运行一下
耶啊呀~, 就可以了,识别电脑屏幕上人脸的时候检测时间350ms左右,没有人脸可以跑到100ms左右,
ssh的方式识别真实人脸会稍快一些,280ms左右
直接在屏幕上运行显示的检测速度会快一些,大概需要210ms左右
其它的问题
报错 ,串口登陆无法运行,改成ssh登陆或者直接接屏幕就好了
添加路径,可能没用哦,在工作区进入 .bashrc
本教程适合有一定基础的同学,有什么其它问题以及需要改正的地方欢迎大家一起交流!