我们才刚刚开始触及所有人工智能所能实现的表面,其中人脸识别是最耐人寻味的应用程序之一,具有积极和消极的重大影响。
到目前为止,我已经学习人工智能一年多了。尽管自从我开始工作以来,我已经在深度学习、计算机视觉、机器学习和数据科学方面做了很多大大小小的项目,但没有一个涉及到实际的硬件工作。
硬件项目需要时间,你需要学习很多东西,它们也需要在硬件上投资。也许是因为这些原因,我一直在避免这样做。但上个月,在参加另一门深度学习课程时,我意识到用目前的方法我能学到的东西是有限的,因此我决定做一个完整的端到端项目,该项目也涉及系统的物理部署。
我们家安装了安全摄像头,所以我决定用摄像头的数据做一个项目,我首先想到的是人脸识别系统。
因为这将是一个漫长而庞大的工程。我决定把我的日常工作写成博客。所以,这个博客将作为我的项目日志。我计划一旦这个项目完成,就在另一个博客中总结我的工作。
目前,我甚至不知道这个项目是否可行。
“过程比结果更重要。”
这可能会以彻底的失败告终,但我仍然相信这将是一次很棒的学习经历。
随着我项目的进展,我会不断更新这个博客。
项目说明
这个项目的目标是使用家庭安全摄像头的视频源建立一个人脸识别和威胁警报系统。我将使用nvidia Jetson Nano进行部署,使用python进行编程。将使用的主要库包括OpenCV、TensorFlow、Face_Recognition和dlib。
使用的硬件:NVIDIA Jetson Nano(4 GB)
为此,我想遵循工业项目工作流,因此,我决定将该项目划分为以下步骤:
随着我在项目中的推进和新事物的出现,这些可能会发生变化。
预算编制
工程所需的主要设备包括:
1.NVIDIA Jetson Nano(4 GB)
2.Jetson Nano的案例
3.Jetson Nano电源(5V-4A)
4.>64 GB存储卡
总成本=约₹13000(175美元)
可行性分析
我确定了以下几个部门进行可行性分析:a)可以获得数据吗?如果是,是如何获得的?b)考虑到获得的数据,是否有可能用它来建立一个人脸识别系统?c)如果可以用这些数据建立一个人脸识别系统,是否可以在Jetson Nano上实时运行?
获取数据
在我可以开始做任何事情之前,第一件也是最重要的事情是获取数据(视频)进行处理。
这里的挑战在于,从运行在独立电路上的安全摄像头收集数据,与简单地从网络摄像头或直接连接到计算机的USB摄像头收集数据不同。
到目前为止,我只在直接连接到PC的摄像头上工作。我不知道如何从不同网络上的摄像头获取视频源。所以,我和我的朋友们讨论了这个问题,他们对外部硬件有更多的了解,并在互联网上搜索了一下。
起初,我想到了一些方法,比如使用hdmi或以太网和合适的转换器来获取提要,但由于摄像机的实时提要也可以在移动设备上查看,我想肯定有一种方法可以使用类似的方式将视频输入到我们的程序中。
就在那时,我在IP摄像机上看到了一段YouTube视频。IP摄像机是通过网络连接传输和接收视频的摄像机。我决定采用这种方法,因为这是获得饲料的最简单、最常见的方式。
详细工作:
7月1日至7月3日:
探索了摄像头连接,它们是如何在整个房子里部署的?哪根电线通向哪里?我需要哪些电线?
寻找Jetson Nano的购买选择。我决定推迟购买,直到我做了充分的可行性评估。
7月4日:
我探索了如何在笔记本电脑上查看摄像机提要(不需要编程),认为这可能会给出如何在Python中获取输入的提示。已使用HDMI在电视显示器上观看。相机供应商来救我了。他告诉我,需要IP才能在笔记本电脑上观看。
在这一点上,我只是随意地做一些事情,不知道这些是否真的会有帮助。
7月5日至7月6日:
浏览了YouTube关于如何获取安全摄像头IP的信息。遇到了三种情况:
1.路由器登录
2.“钢丝鲨鱼”(Wire Shark)
3.相机公司的发现工具(我这里是大华配置工具)
我用窃听器获取了摄像机网络的IP地址。
一旦我获得了IP,我就可以登录到摄像机配置页面,并在我的笔记本电脑上查看它的源。
在互联网上搜索获取大华摄像机IP的方法时,我遇到了一种在Python程序中使用RTSP协议获取IP摄像机视频源的方法。
这一天,我完成了获取视频提要作为python程序输入的第一个任务。
部分摘要(从IP摄像机获取数据):
以下命令总结了此部分,并可用于使用OpenCV将来自大华IP摄像机的输入源获取到python程序中:
cam=cv2.VideoCapture(RTSP URL)
RTSP URL签名:
示例:rtsp://admin:admin123@192.168.1.12:554/cam/realmonitor?channel=1&subtype=0
“大华远程访问”一文给出了详细的解释,如果你使用的是其他公司的摄像机,这篇关于(几乎)每个制造商的RTSP流URL的文章都是一个很好的帮助之处。Dahua Remote Access RTSP stream URLs from (nearly) Every Manufacturer
数据驱动的可行性分析
在可行性分析的这一小节下,我们研究来自家庭安全摄像头的数据,以发现可能阻碍我们项目的问题。
我决定跳过这一部分,假设数据是好的,因为在这一点上,即使在可视化数据之后,我也无法知道数据是否适合项目。
因此,我决定继续前进,假设来自安全摄像头的数据足够好,可以制作一个人脸识别系统。
实时运行分析
这里的目标是分析我们的人脸识别系统是否可以在嵌入式系统上运行?(该技术是否可充分优化?)
在确定实时可行性之前,需要对人脸识别技术进行深入研究。因此,我们将在执行第三步,即“探索人脸识别技术”之后,重新讨论这一部分。
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/27/%e5%9f%ba%e4%ba%8epython%e5%92%8cjetson-nano%e7%9a%84%e5%ae%9e%e6%97%b6%e4%ba%ba%e8%84%b8%e8%af%86%e5%88%ab%e5%ae%89%e5%85%a8%e7%b3%bb%e7%bb%9f%e4%b8%8a/