淘宝看到一款很便宜的双目,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. AspectRatio、Card 卡片组件

    一.Flutter AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,wi ...

  2. 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向

    踩过的那些坑 从2011年开始玩Zabbix,踩过的坑着实不少,被研发的同事吐了无数槽,所谓"情到深度又爱又恨".以下简述印象比较深刻的几个坑: 二次开发的方式:2011刚开始做的 ...

  3. Finance财务软件(如何运行该软件)

    下载软件 首先,去gitHub下载该项目的release,尽量下载最新版本:https://github.com/edwardorchis/finance/releases.国内也可以在码云下载htt ...

  4. google filament pbr

    https://google.github.io/filament/Filament.md.html

  5. Echarts河南地图下钻

    var parentJson = null; var parentInfo = [{ cityName: '河南', level: 'city', code: 410000, }, ]; getGeo ...

  6. 35.Linux 性能监控常用命令

    内存 top CPU yum install -y sysstat mpstat 网络 netstat //参数说明 //-n:拒绝显示别卖,能显示数字的全部转化数字 //-l:仅列出Listen(监 ...

  7. 【2】locust性能测试原理分析+登录测试脚本+总结

     login_per_test1.py #对登录功能进行单点性能测试(一组测试数据)#发送首页请求,通过locust进行性能测试from locust import HttpLocust,task,T ...

  8. unity创建一个数组,让他随机生成一个东西之C#语言(有图教程)

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...

  9. SpringBoot接口防刷

    一.自定义注解 import java.lang.annotation.Retention; import java.lang.annotation.Target; import static jav ...

  10. 2022-3-21内部群每日三题-清辉PMP

    1.Sprint的速度低于预期,敏捷团队成员应该怎么做? A.限制团队成员和客户之间的沟通,以防止不必要的焦虑. B.管理沟通,以重置相应团队成员和干系人的期望. C.管理几名团队成员和客户之间的沟通 ...