淘宝看到一款很便宜的双目,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 + 双目 +人脸检测的更多相关文章

  1. python3 opencv3 实现基本的人脸检测、识别功能

    一言不和,先上码子(纯新手,莫嘲笑) # encoding: utf-8 #老杨的猫,环境:PYCHARM,python3.6,opencv3 import cv2,os import cv2.fac ...

  2. 在opencv3中进行图片人脸检测

    在opencv中,人脸检测用的是harr或LBP特征,分类算法用的是adaboost算法.这种算法需要提前训练大量的图片,非常耗时,因此opencv已经训练好了,把训练结果存放在一些xml文件里面.在 ...

  3. 基于opencv3.0下的人脸检测和检测部分的高斯模糊处理

    如题 这里将任务分解为三大部分: 1.录播放视频 2.人脸检测 3.部分高斯模糊 其中重点放在人脸检测和部分高斯模糊上 1.录播放视频(以opencv中的VideoCapture类进行实现) 首先罗列 ...

  4. python3 百度AI-v3之 人脸对比 & 人脸检测 & 在线活体检测 接口

    #!/usr/bin/python3 # 百度人脸对比 & 人脸检测api-v3 import sys, tkinter.messagebox, ast import ssl, json,re ...

  5. python opencv3 摄像头人脸检测

    git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 def detect(): # 创建人脸检测的对象 ...

  6. 人脸检测及识别python实现系列(1)——配置、获取实时视频流

    人脸检测及识别python实现系列(1)——配置.获取实时视频流 1. 前言 今天用多半天的时间把QQ空间里的几篇年前的旧文搬到了这里,算是完成了博客搬家.QQ空间里还剩下一些记录自己数学学习路线的学 ...

  7. 使用TensorRT对人脸检测网络MTCNN进行加速

    前言 最近在做人脸比对的工作,需要用到人脸关键点检测的算法,比较成熟和通用的一种算法是 MTCNN,可以同时进行人脸框选和关键点检测,对于每张脸输出 5 个关键点,可以用来进行人脸对齐. 问题 刚开始 ...

  8. NVIDIA TX2--3--NVIDIA Jetson TX2 查看系统版本参数状态及重要指令

    NVIDIA Jetson TX2 查看系统参数状态. 当前博主的TX2更新的版本为:Jetpack 3.3, cuda 9.0.252, cudnn7.0, opencv3.3.1, TensorR ...

  9. 在Jetson TX2上捕获、显示摄像头视频

    参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...

  10. 在Jetson TX2上安装caffe和PyCaffe

    caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...

随机推荐

  1. WPF绑定(4)

    什么是绑定(Binding)? 在winform中, 我们常常会用到各种类型的赋值, 例如: button1.Text="Hello"; label.Text="Hell ...

  2. python setup.py install 安装、删除。

    # python install 安装.卸载 python setup.py install --record files.txt cat files.txt | xargs rm -rf

  3. Github的.gitignore忽略文件

    Git中有一个非常重要的一个文件-----.gitignore 1.当然如果已经push了怎么办?当然也有解决方法,如下: 有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述 ...

  4. SAP 删除销售订单行

    DATA: ORDER_HEADER_INX TYPE BAPISDH1X, GT_ORDER_ITEM_IN TYPE STANDARD TABLE OF BAPISDITM, LS_ORDER_I ...

  5. GIT 上传文件出错:fatal: Could not read from remote repository. 解决方案

    问题 git push -u origin master 执行后报错 fatal: Could not read from remote repository.  解决方案 1. git执行 git ...

  6. linux发展史及软件配置

    linux岗位需求 # 1.岗位需求 自动化运维,容器运维,DBA,IDC运维(不建议) ps:linux岗位会的越多给的越多 linux工作本质 linux简要发展史 # 1.发展 1991年,芬兰 ...

  7. docker-compose之memcached

    新建docker-compose.yml,写入以下内容 memcached: image: memcached:latest ports: - 11211:11211 启动服务 docker-comp ...

  8. linux中 查看 CPU 内存负载 磁盘IO 网络IO情况

    1.压测时如何观察机器的CPU负载 先来看一个最最常用的监测linux机器性能的命令,就是top命令,直接在linux命令行只能够输入top指令就可以了,然后我们这里来给大家解释一下,top指令展示出 ...

  9. 【BOOK】【实例】【requests库+正则表达式】猫眼TOP100电影排名爬取

    猫眼电影TOP100页面爬取 https://maoyan.com/board/4 ##猫眼电影TOP100爬取 import requests import re import json impor ...

  10. HDFS Shell 操作

    HDFS Shell 操作 HDFS Shell 命令行格式 格式一:hadoop fs –命令名 参数 格式二:hdfs dfs –命令名 参数 HDFS 常用命令及参数 ls:查看 hdfs 中的 ...