当前位置:   article > 正文

002-Jetson Nano开发环境搭建与配置-开启绿色之眼(下)_jetson nano自带哪些开发环境

jetson nano自带哪些开发环境

​本节继续介绍有关Jetson Nano开发环境的配置,包括JupyterLab、扩展库的安装等。

目录

0.4 配置开发环境

0.4.3 安装Jupyterlab

(a) pip3安装Jupyterlab

(b) 配置Jupyterlab

(c) 其他配置

0.4.4 安装扩展库

0.4.5 人脸检测实例

0.4 配置开发环境

0.4.3 安装Jupyterlab

用于Python程序开发的IDE软件较多,功能强大的如PyCharm,轻量级的有Spyder,介于两者之间的Visual Studio Code(简称VS code)。具体安装哪种IDE工具,各位可根据个人的喜好自行选择,各IDE软件的安装和配置略有差别,请自行搜索。

相对于功能强大的IDE软件,在算法设计阶段,博主更倾向于使用类似Jupyter Notebook的工具,一边整理资料,一边进行代码的编辑和测试。因此本节将重点介绍该软件在Jetson Nano平台上的安装。

JupyterLab 是 Jupyter 主打的最新数据科学生产工具,JupyterLab 包含了Jupyter Notebook所有功能,并升级增加了很多功能。

(a) pip3安装Jupyterlab

首先安装某些依赖,至于这些依赖不安装有什么影响,说实话,我目前也不清楚。

sudo apt install nodejs npm

接下来,安装libffi-dev,

sudo apt install libffi-dev

接下来,就是本节的主角了,使用pip3安装Jupyterlab

pip3 install jupyter jupyterlab

整个过程较长,经过几分钟的等待,以及终端窗口大段的warning提醒,终于完成了Jupyterlab的安装。一定要先重启机器,目的是让系统自动改写默写Path变量。然后在命令窗口键入jupyter lab,系统会正常启动浏览器,然后就会在默认的路径下创建一个未命名的ipynb文件,并等待编辑。

看到熟悉的notebook的编辑窗口,真是感觉亲切至极。到此算是完成Jupyterlab的基本设置,但这才刚刚开始,还有更多内容等待设置,当然这些设置并不都是必需的,大家可根据个人的编程习惯,自行浏览。

(b) 配置Jupyterlab

下面介绍生成Jupyterlab的配置文件,并完成修改的流程。

首先使用以下命令,生成Jupyterlab的配置文件:

jupyter lab --generate-config

可使用编辑命令,修改配置文件:

nano /home/jetson/.jupyter/jupyter_lab_config.py

至于设置内容,可根据个人需要自行确定,不再单独说明。

(c) 其他配置

使用一下语句,添加界面对中文的支持。

pip3 install jupyterlab-language-pack-zh-CN

完成中文包的安装后,即可将Jupyterlab的界面设置为中文。

0.4.4 安装扩展库

为了方便地实现计算机视觉、机器学习和深度学习等功能,需要安装各种对应的扩展库,如OpenCV、PyTorch库等。

(a) 安装OpenCV

网上有很多有关Jetson Nano下安装OpenCV的教程。如果你和我一样,并没有使用Anaconda类的环境,则无需专门安装该库。这是因为Jetson Nano原系统中自带OpenCV库,而且版本不低(应该是4.1版)。

进入Python运行环境,然后键入以下命令,查询目前系统下OpenCV安装的版本信息,如下所示:

  1. pkg-config opencv --libs
  2. pkg-config opencv --modversion

如果非要重新安装,按照网上帖子的说法,不能使用pip安装,否则可能存在版本问题。但我并没有自己尝试,大家可自行验证。相反,建议各位使用sudo安装,命令如下:

sudo apt-get install python3-opencv

除此之外,经本人测试,像numpy、scipy、matplotlib等科学计算常用的扩展库,系统已经自带,不建议重新安装,否则可能引起版本冲突等问题

至此,就搭建起来了Jupyterlab+Python+OpenCV的最简开发环境了。

0.4.5 人脸检测实例

为了验证上述过程是否配置成功,在此选用上述软硬件平台,完成一个典型的计算机视觉任务任务:基于单幅彩色图像的人脸检测。

人脸检测(Face Detection)完成的是从含有人脸的图像或视频流中自动检测人脸所在的位置,它是人脸识别系统中的重要环节。

本例程旨在实现一种基于Jetson Nano平台的人脸检测方法。在介绍具体过程之前,需要提前说明几点:

  • 处理对象是单幅彩色图像,既不是实时的来自摄像头拍摄的视频流,也不是本机的视频文件。
  • 所用开发软件环境为Python,直接调用原始Jetson Nano系统自带的各个Python扩展库,并没有安装额外的第三方库。
  • 开发软件使用的是Jupyter Lab。

下面给出手把手教程,请各位参考。

(1)创建工程文件

该例程没有使用单独的IDE工具,而是在Jupyter Lab环境下完成的。因此,首先打开命令窗口,键入“jupyter lab”,创建新的ipynb文件。

(2)加载必要的扩展库

本实例使用OpenCV完成人脸检测,使用Matplotlib库用于图像的显示,因此,需要事先加载这两个扩展库,如下图所示。

  1. import cv2
  2. from matplotlib import pyplot as plt

(3)读取彩色图像

使用cv2中的imread函数,读取本机的彩色图像。注意,需要将该图片存放在与ipynb文件相同的路径下。另外,为了便于后续处理和显示方便,需将读取的图像分别转换到RGB空间和灰度图像。

  1. img = cv2.imread('./lena.jpg') # 读取图片
  2. img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为灰色图像
  3. img_color = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 转换为RGB彩色图像为了显示方便

 (4)加载分类器,检测人脸

在此直接调用了OpenCV提供的具有人脸检测功能的分类器文件“haarcascade_frontalface_default.xml”。在调用时,也需要将 该文件复制到当前路径下。该文件在系统中的存放路径是:“/usr/share/opencv4/”。

  1. # 调用OpenCV人脸识别分类器
  2. classifier = cv2.CascadeClassifier( "haarcascade_frontalface_default.xml" )
  3. color = (0, 255, 0) # 定义绘制颜色(绿色)
  4. # 调用分类器,完成人脸检测
  5. faceRects = classifier.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))

  (5)显示人脸检测结果

经过上一步,检测到的人脸区域存放在了faceRects中,接下来依次画出各人脸对应的矩形区域。为了显示方便,将含有人脸区域标注信息的图像单独命名。另外,在此调用了matplotlib提供的imshow函数,完成图像显示。

  1. img_result = img_color.copy()
  2. if len(faceRects): # 大于0则检测到人脸
  3. for faceRect in faceRects: # 单独框出每一张人脸
  4. x, y, w, h = faceRect
  5. # 框出人脸
  6. cv2.rectangle(img_result, (x, y), (x + h, y + w), color, 2)
  7. plt.figure(figuresize(12,4))
  8. plt.subplot(121), plt.axis('off'),plt.title('input image'),plt.imshow(img_color)
  9. plt.subplot(122), plt.axis('off'),plt.title('result'),plt.imshow(img_result)

处理结果如下:

最终总结一下。我们用两节的篇幅,介绍了如何搭建一个简易的Jetson Nano开发平台,其中包括系统安装、系统设置、开发环境配置等,并较详细地介绍了如何配置一个Python+OpenCV+JupyterLab极简开发环境,最后通过实现一个经典的人脸检测实例,验证了所搭建的开发系统的有效性。

下一节,我们将进一步介绍如何在Jetson Nano平台上调用摄像头,如何处理视频文件,并实现一个简单的行人检测实例。

(本节初稿完成时间:2024-03-19)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号