jetson TX2 + opencv3.4 + python3 + 双目 +人脸检测
淘宝看到一款很便宜的双目,150元,就买了。想着用它学习一下opencv,好换个工作。当然,也想着能否用它做一些好玩的,比如三维重建之类高大上的东西。先用便宜的入个门,等以后眼界高了再看是不是买那些更加精密的双目。不过目前来看,这个摄像头还是很不错的。
这个双目摄像头用win10自带的摄像头驱动可以完美的打开,支持它的各种比例和分辨率的视频显示。分辨率支持以下几种:
16:9 1280x720
4:3 640x480
4:3 320x240
8:3 1280x480
8:3 640x240
32:9 2560x720
可是在win下面的使用anaconda环境+Python版本opencv 只能驱动显示单个摄像头,一旦更改双目的分辨率就会报错,网上找了好久资料也没解决,就一直用录制好的双目视频和双目照片来学习。
这几天在家,就掏出吃灰已久的jetson TX2开发板试试,没想到完美运行。
jetsonTX2为NVIDIA的人工智能开发板,网上有详细的介绍,也有丰富的资料和教程。
使用本开发板时,要先刷机(这个过程很漫长......),我记得当时刷了好几遍,(有一次是没刷完我以为刷好了,所以要耐心等待。)然后安装各种环境,包括opencv、numpy等。
安装opencv时要先装上cmake,然后使用这个里面的脚本安装,很方便:https://www.ncnynl.com/archives/201706/1760.html
这个开发板只有一个USB口,所以要准备一个USB HUB。
插上双目后,使用 ls -la /dev/vid* 命令查看,当出现 /dev/video0 和 /dev/video1 两个摄像头时,说明识别正确。其中video1就是我们的双目,video0是板子自带的摄像头,可能我驱动没装好,自带的摄像头不能用。
人脸检测使用Haar级联算法检测,所以需要用于人脸检测的XML文件。具体见 附件。解压后,替换程序中文件夹的绝对路径。
代码很简单:
1 # -*- coding: utf-8 -*-
2 """
3 Created on Tue May 7 13:37:49 2019
4
5 @author: 执念执战
6 """
7 import cv2
8 camercapture=cv2.VideoCapture(1)#video1 为本双目摄像头
9
10 """
11 本双目支持的分辨率
12 16:9 1280x720
13 4:3 640x480
14 320x240
15 8:3 1280x480
16 640x240
17 32:9 2560x720
18 """
19 camercapture.set(3,1280) #设置分辨率
20 camercapture.set(4,480)
21 cv2.namedWindow('pic1')
22 cv2.namedWindow('pic2')
23 success,frame=camercapture.read() #得到原始图像
24 face_cascade=cv2.CascadeClassifier('/media/nvidia/Ubuntu-Kyli/Opencv/pycv-master/pycv-master/pycv-master/chapter5/cascades/haarcascade_frontalface_default.xml')
25 #Haar数据包的绝对地址,请更改为自己的地址
26
27 while True:
28 if cv2.waitKey(int(1000/30)) & 0xff == ord("q"): #按下 q 键退出
29 break
30 #cv2.imshow('Test',frame) #显示原始图像
31 pic1=cv2.cvtColor(frame[0:480,0:640],cv2.COLOR_BGR2GRAY) #将图像按照左右分割为两部分,并转化为灰度图
32 pic2=cv2.cvtColor(frame[0:480,640:1280],cv2.COLOR_BGR2GRAY)
33
34 faces1=face_cascade.detectMultiScale(pic1,1.3,5)#分别对左右两部分做人脸检测
35 faces2=face_cascade.detectMultiScale(pic2,1.3,5)
36 for (x,y,w,h) in faces1:
37 pic1=cv2.rectangle(pic1,(x,y),(x+w,y+h),(255,0,0),-1)#在灰度图上画出人脸区域,此处使用填充的矩形,遮挡人脸
38 for (x,y,w,h) in faces2:
39 pic2=cv2.rectangle(pic2,(x,y),(x+w,y+h),(255,0,0),-1)
40
41 cv2.imshow("pic1",pic1)#分别显示检测后的图像
42 cv2.imshow("pic2",pic2)
43 success,frame=camercapture.read()#获取下一帧的原始图像
44
45 cv2.destroyAllWindows()#销毁窗口
46 camercapture.release() #释放摄像头
运行效果如下:
原始图像也一起显示效果如下:
本文水平有限,内容很多词语由于知识水平问题不严谨或很离谱,但主要作为记录作用,能理解就好了,希望以后的自己和路过的大神对必要的错误提出批评与指点,对可笑的错误不要嘲笑,指出来我会改正的。
另外,转载使用请注明出处。
-------------随梦,随心,随愿,执念执战,执战苍天!
jetson TX2 + opencv3.4 + python3 + 双目 +人脸检测的更多相关文章
- python3 opencv3 实现基本的人脸检测、识别功能
一言不和,先上码子(纯新手,莫嘲笑) # encoding: utf-8 #老杨的猫,环境:PYCHARM,python3.6,opencv3 import cv2,os import cv2.fac ...
- 在opencv3中进行图片人脸检测
在opencv中,人脸检测用的是harr或LBP特征,分类算法用的是adaboost算法.这种算法需要提前训练大量的图片,非常耗时,因此opencv已经训练好了,把训练结果存放在一些xml文件里面.在 ...
- 基于opencv3.0下的人脸检测和检测部分的高斯模糊处理
如题 这里将任务分解为三大部分: 1.录播放视频 2.人脸检测 3.部分高斯模糊 其中重点放在人脸检测和部分高斯模糊上 1.录播放视频(以opencv中的VideoCapture类进行实现) 首先罗列 ...
- python3 百度AI-v3之 人脸对比 & 人脸检测 & 在线活体检测 接口
#!/usr/bin/python3 # 百度人脸对比 & 人脸检测api-v3 import sys, tkinter.messagebox, ast import ssl, json,re ...
- python opencv3 摄像头人脸检测
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 def detect(): # 创建人脸检测的对象 ...
- 人脸检测及识别python实现系列(1)——配置、获取实时视频流
人脸检测及识别python实现系列(1)——配置.获取实时视频流 1. 前言 今天用多半天的时间把QQ空间里的几篇年前的旧文搬到了这里,算是完成了博客搬家.QQ空间里还剩下一些记录自己数学学习路线的学 ...
- 使用TensorRT对人脸检测网络MTCNN进行加速
前言 最近在做人脸比对的工作,需要用到人脸关键点检测的算法,比较成熟和通用的一种算法是 MTCNN,可以同时进行人脸框选和关键点检测,对于每张脸输出 5 个关键点,可以用来进行人脸对齐. 问题 刚开始 ...
- NVIDIA TX2--3--NVIDIA Jetson TX2 查看系统版本参数状态及重要指令
NVIDIA Jetson TX2 查看系统参数状态. 当前博主的TX2更新的版本为:Jetpack 3.3, cuda 9.0.252, cudnn7.0, opencv3.3.1, TensorR ...
- 在Jetson TX2上捕获、显示摄像头视频
参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...
- 在Jetson TX2上安装caffe和PyCaffe
caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...
随机推荐
- WPF绑定(4)
什么是绑定(Binding)? 在winform中, 我们常常会用到各种类型的赋值, 例如: button1.Text="Hello"; label.Text="Hell ...
- python setup.py install 安装、删除。
# python install 安装.卸载 python setup.py install --record files.txt cat files.txt | xargs rm -rf
- Github的.gitignore忽略文件
Git中有一个非常重要的一个文件-----.gitignore 1.当然如果已经push了怎么办?当然也有解决方法,如下: 有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述 ...
- SAP 删除销售订单行
DATA: ORDER_HEADER_INX TYPE BAPISDH1X, GT_ORDER_ITEM_IN TYPE STANDARD TABLE OF BAPISDITM, LS_ORDER_I ...
- GIT 上传文件出错:fatal: Could not read from remote repository. 解决方案
问题 git push -u origin master 执行后报错 fatal: Could not read from remote repository. 解决方案 1. git执行 git ...
- linux发展史及软件配置
linux岗位需求 # 1.岗位需求 自动化运维,容器运维,DBA,IDC运维(不建议) ps:linux岗位会的越多给的越多 linux工作本质 linux简要发展史 # 1.发展 1991年,芬兰 ...
- docker-compose之memcached
新建docker-compose.yml,写入以下内容 memcached: image: memcached:latest ports: - 11211:11211 启动服务 docker-comp ...
- linux中 查看 CPU 内存负载 磁盘IO 网络IO情况
1.压测时如何观察机器的CPU负载 先来看一个最最常用的监测linux机器性能的命令,就是top命令,直接在linux命令行只能够输入top指令就可以了,然后我们这里来给大家解释一下,top指令展示出 ...
- 【BOOK】【实例】【requests库+正则表达式】猫眼TOP100电影排名爬取
猫眼电影TOP100页面爬取 https://maoyan.com/board/4 ##猫眼电影TOP100爬取 import requests import re import json impor ...
- HDFS Shell 操作
HDFS Shell 操作 HDFS Shell 命令行格式 格式一:hadoop fs –命令名 参数 格式二:hdfs dfs –命令名 参数 HDFS 常用命令及参数 ls:查看 hdfs 中的 ...