有了Python+树莓派,我也做了款人工智能相机 !

基于Robopeak触摸屏和官方摄像头的树莓派照相机 研 究 生 课 程 论 文 (2013-2014学年第二学期)                                                                                                                 基于触摸屏的树莓派照相机 研究生:蒋育霖 提交日期: 2014年6月17日            阅读详情

用过亚马逊的DeepLens吗?这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。有了DeepLens,智能摄像机的概念也就应运而生了。

 

 

 

 

今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:

 

 

 

 

 

Python学习交流群:1004391443

相机不傻,它可以很机智

我们不打算将一个深度学习模块整合到相机中,相反,我们准备将树莓派“挂钩”到摄像头上,然后通过WiFi来发送照片。本着“一切从简”(穷)为核心出发,我们今天只打算搞一个跟DeepLens类似的概念原型,感兴趣的同学可以自己动手尝试一下。

接下来,我们将使用Python编写一个Web服务器,树莓派将使用这个Web服务器来向计算机发送照片,或进行行为推断和图像检测。

 

 

 

 

 

 

我们这里所使用的计算机其处理能力会更强,它会使用一种名叫YOLO的神经网络架构来检测输入的图像画面,并判断小鸟是否出现在了摄像头画面内。

我们得先从YOLO架构开始,因为它是目前速度最快的检测模型之一。该模型专门给Tensorflow(谷歌基于DistBelief进行研发的第二代人工智能学习系统)留了一个接口,所以我们可以轻松地在不同的平台上安装和运行这个模型。友情提示,如果你使用的是我们本文所使用的迷你模型,你还可以用CPU来进行检测,而不只是依赖于价格昂贵的GPU。

接下来回到我们的概念原型上… 如果像框内检测到了小鸟,那我们就保存图片并进行下一步分析。

检测与拍照

 

 

 

 

 

 

正如我们所说的,DeepLens的拍照功能是整合在计算机里的,所以它可以直接使用板载计算能力来进行基准检测,并确定图像是否符合我们的标准。

但是像树莓派这样的东西,我们其实并不需要使用它的计算能力来进行实时计算。因此,我们准备使用另一台计算机来推断出现在图像中的内容。

我使用的是一台简单的Linux计算机,它带有一个摄像头以及WiFi无线网卡(树莓派3+摄像头),而这个简单的设备将作为我的深度学习机器并进行图像推断。对我来说,这是目前最理想的解决方案了,这不仅大大缩减了我的成本,而且还可以让我在台式机上完成所有的计算。

当然了,如果你不想使用树莓派视频照相机的话,你也可以选择在树莓派上安装OpenCV 3来作为方案B,具体的安装方法请参考【这份文档】。友情提示,安装过程可谓是非常的麻烦!

接下来,我们需要使用Flask来搭建Web服务器,这样我们就可以从摄像头那里获取图像了。这里我使用了MiguelGrinberg所开发的网络摄像头服务器代码(Flask视频流框架),并创建了一个简单的jpg终端:

#!/usr/bin/envpythonfrom import lib import import_moduleimport osfrom flask import Flask, render_template, Response

 #uncomment below to use Raspberry Pi camera instead#from camera_pi import Camera #comment this out if you're not using USB webcamfrom camera_opencv import Camera

 

app =Flask(__name__)

 @app.route('/')def index():   return "hello world!" def gen2(camera):   """Returns a single imageframe"""   frame = camera.get_frame()

   yield frame

 @app.route('/image.jpg')def image():   """Returns a single currentimage for the webcam"""   return Response(gen2(Camera()),mimetype='image/jpeg')

 if __name__ == '__main__':

app.run(host='0.0.0.0', threaded=True)

 

 

 

 

如果你使用的是树莓派视频照相机,请确保没有注释掉上述代码中from camera_pi那一行,然后注释掉from camera_opencv那一行。

你可以直接使用命令python3 app.py或gunicorn来运行服务器,这跟Miguel在文档中写的方法是一样的。如果我们使用了多台计算机来进行图像推断的话,我们还可以利用Miguel所开发的摄像头管理方案来管理摄像头以及计算线程。

当我们启动了树莓派之后,首先需要根据IP地址来判断服务器是否正常工作,然后尝试通过Web浏览器来访问服务器。

URL地址格式类似如下:

http://192.168.1.4:5000/image.jpg

 

 

 

 

在树莓派中加载Web页面及图像来确定服务器是否正常工作:

图像导入及推断

既然我们已经设置好了终端来加载摄像头当前的图像内容,我们就可以构建一个脚本来捕捉图像并推断图像中的内容了。

这里我们需要用到request库(一个优秀的Python库,用于从URL地址获取文件资源)以及Darkflow(YOLO模型基于Tensorflow的实现)。

不幸的是,我们没办法使用pip之类的方法来安装Darkflow,所以我们需要克隆整个代码库,然后自己动手完成项目的构建和安装。安装好Darkflow项目之后,我们还需要下载一个YOLO模型。

因为我使用的是速度比较慢的计算机和板载CPU(而不是速度较快的GPU),所以我选择使用YOLO v2迷你网络。当然了,它的功能肯定没有完整的YOLO v2模型的推断准确性高啦!

配置完成之后,我们还需要在计算机中安装Pillow、numpy和OpenCV。最后,我们就可以彻底完成我们的代码,并进行图像检测了。

最终的代码如下所示:

from darkflow.net.build import TFNetimport cv2

 from io import BytesIOimport timeimport requestsfrom PIL import Imageimport numpy as np

 

options= {"model": "cfg/tiny-yolo-voc.cfg", "load":"bin/tiny-yolo-voc.weights", "threshold": 0.1}

 

tfnet= TFNet(options)

 

birdsSeen= 0def handleBird():   pass 

whileTrue:

   r =requests.get('http://192.168.1.11:5000/image.jpg') # a bird yo   curr_img = Image.open(BytesIO(r.content))

   curr_img_cv2 =cv2.cvtColor(np.array(curr_img), cv2.COLOR_RGB2BGR)

 

   result = tfnet.return_predict(curr_img_cv2)

   print(result)

   for detection in result:

       if detection['label'] == 'bird':

           print("bird detected")

           birdsSeen += 1           curr_img.save('birds/%i.jpg' %birdsSeen)

   print('running again')

time.sleep(4)

 

 

 

 

此时,我们不仅可以在命令控制台中查看到树莓派所检测到的内容,而且我们还可以直接在硬盘中查看保存下来的小鸟照片。接下来,我们就可以使用YOLO来标记图片中的小鸟了。

假阳性跟假阴性之间的平衡

我们在代码的options字典中设置了一个threshold键,这个阈值代表的是我们用于检测图像的某种成功率。在测试过程中,我们将其设为了0.1,但是如此低的阈值会给我们带来是更高的假阳性以及误报率。更糟的是,我们所使用的迷你YOLO模型准确率跟完整的YOLO模型相比,差得太多了,但这也是需要考虑的一个平衡因素。

降低阈值意味着我们可以得到更多的模型输出(照片),在我的测试环境中,我阈值设置的比较低,因为我想得到更多的小鸟照片,不过大家可以根据自己的需要来调整阈值参数。

pip安装face_recognition版本_基于Python开源库Face Recognition的人脸识别如此好用 如今是人工智能时代,人脸识别也是一大应用。我们的手机人脸解锁、火车站人脸识别检票、公积金查询的人脸识别登陆等等,总之,用处很是广泛。那么人脸识别是怎么完成的?这里你肯定要说一些复杂的算法,不用,Python的开源库Face Recognition帮助你实现操作。据说识别率达到99.38%,这肯定是一件很有趣的事情,下面我们来看看如何实现吧。人工智能时代在写文章之前,可以说是经历了千辛万苦。因为这个... 阅读详情

相关推荐

树莓派AI相机:传感器内计算如何实现毫秒级边缘AI推理

边缘计算和嵌入式AI是当前物联网和智能设备领域的关键技术方向,旨在将数据处理和智能分析能力从云端下沉到设备端,以降低延迟、保护隐私并减少带宽依赖。其核心原理是通过在靠近数据源的硬件上部署轻量级神经网络模型,实现实时响应。这一技术架构的价值在于能够满足自动驾驶、工业质检、智能安防等对实时性要求极高的场景需求。传感器内计算作为边缘计算的进阶形态,将AI推理引擎直接集成到图像传感器内部,实现了数据在产生源头即被处理,彻底消除了传统方案中图像数据传输、格式转换等环节带来的延迟和功耗开销。树莓派AI相机模块搭载的IM

weixin_31528001的博客 333

Python+树莓派+YOLO打造一款人工智能相机

不久之前,亚马逊刚刚推出了DeepLens。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。 今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟...

weixin_34391854的博客 1491

Picamera2:树莓派相机模块的Python接口与性能优化

计算机视觉开发中,相机控制接口是关键组件之一。Picamera2作为基于libcamera框架的全新Python库,为树莓派相机提供了现代化、高效的交互方式。其核心原理在于利用开源libcamera替代传统闭源API,实现了更快的曝光控制响应(50ms内)和完整的ISP管道访问。技术价值体现在硬件加速支持上,通过MMAL层直接访问GPU和零拷贝缓冲区传输,使1080p视频流处理达到60fps,CPU占用率降低至12%。典型应用场景包括智能监控系统、工业检测和多相机同步控制,结合OpenGL加速预览和硬件编码

weixin_30388677的博客 322

[已解决]face_recognition库安装,dlib库安装

face_recognition库的安装,dlib库的安装,CMake库的安装解决方案

weixin_53236070的博客 2万+

树莓派AI相机实战:从环境配置到目标检测与姿态估计应用

边缘计算是物联网和嵌入式系统领域的关键技术,通过在数据源头就近处理信息,有效降低延迟和带宽消耗。其核心原理是将计算任务从云端下沉到网络边缘的设备上执行。这一技术价值在于能够实现实时响应、保护数据隐私并减少对中心服务器的依赖。在智能监控、工业自动化和移动设备等场景中,边缘计算发挥着重要作用。树莓派作为流行的单板计算机,结合专用的AI相机模组(如集成索尼IMX500视觉处理单元),构成了强大的边缘AI开发平台。通过官方提供的工具栈,如libcamera、rpicam-apps和Picamera2,开发者可以便捷

weixin_29178069的博客 363

18、树莓派 5 相机项目全解析

本文全面解析了树莓派5在相机应用中的多个项目,涵盖图像显示、静态拍摄、延时摄影、视频录制及与外部设备的交互。通过libcamera命令实现拍照与录像,结合ffmpeg合成视频,利用crontab实现定时任务,并通过OBEX蓝牙协议将照片发送至手机。文章还介绍了实际应用场景如停车位监控和智能门铃系统,提供了常见问题解决方案与未来拓展方向,是树莓派相机开发的实用指南。

zero1的博客 100

【python】树莓派相机实现手势识别,调百度API

1. 做这个的想法 之前一直在玩百度的IOT天工物联网,一次偶然看到了人工智能标签下的人体分析功能,进去看了文档和API,发现有个手势识别很好玩,而且居然50000次/天免费 正巧,手边有一个带摄像头的树莓派3B,说干就干,开始。 2. 资料和准备 百度的API https://cloud.baidu.com/doc/BODY/s/ajwvxyyn0/ 可以看到,能够识别24类手势,还挺好玩的,树...

xuehu96的博客 8216

使用python+yolov5算法+海康摄像头实时检测是否带安全帽以及危险区域+源码+开发文档说明+训练数据(毕设课设&项目开发

使用python+yolov5算法+海康摄像头实时检测是否带安全帽以及危险区域+源码+开发文档说明+训练数据,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 使用python+yolov5算法+海康摄像头实时检测是否带安全帽以及危险区域+源码+开发文档说明+训练数据,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 使用python+yolov5算法+海康摄像头实时检测是否带安全帽以及危险区域+源码+开发文档说明+训练数据,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 该项目是使用 YOLOv5 v2.x 的程序来训练在智能工地安全领域中头盔目标检测的应用

Python+树莓派+YOLO打造一款人工智能照相机

亚马逊刚刚推出了DeepLens 。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。 今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示: ...

644

RexUniNLU零样本通用自然语言理解:nlp_deberta_rex-uninlu_chinese-base模型实战解析

本文深入解析了RexUniNLU零样本通用自然语言理解模型(nlp_deberta_rex-uninlu_chinese-base)的实战应用。通过详细的环境配置、模型加载及实战案例,展示了该模型在零样本场景下的强大能力,如实体识别和复杂关系抽取,显著提升NLP任务效率。

weixin_29088655的博客 251

MATLAB仿真实战:双有源桥(DAB)变换器的扩展移相调制(EPS)全流程解析

本文提供了一份详细的MATLAB/Simulink仿真实战指南,手把手解析双有源桥(DAB)变换器在扩展移相调制(EPS)下的全流程建模。内容涵盖从核心原理、主功率电路搭建、EPS驱动信号生成,到仿真运行、波形分析及模型优化的完整步骤,旨在帮助工程师和研究者快速掌握DAB变换器的仿真与性能验证方法。

o4p5q6r7s的博客 503

他给女朋友做了个树莓派复古相机,算法代码可自己编写,成本不到700元

本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处萧箫 发自 凹非寺手机拍照不够爽,带个单反又太重?试试做个树莓派复古相机,还能自己编写处理算法的那种——成本不到700元...

cainiao_python的博客 260

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1121

不会编程的外国小姐姐,3天、850块,徒手用树莓派DIY了个数码相机

金磊 白交 发自 凹非寺量子位 报道 | 公众号 QbitAI不会编程,也能用树莓派DIY?这个可以有。最近,油管上一位完全「编程小白」的小姐姐,在发现树莓派推出了一款新的相机模块后,...

量子位 1724

手把手教你用VM实现欧姆龙PLC数据采集(含Fins协议配置详解)

本文详细介绍了如何使用VM(VisionMaster)实现与欧姆龙PLC的数据采集,重点解析了Fins协议(包括Fins TCP/UDP)的配置步骤。从网络环境搭建、PLC的IP地址设置,到VM端Fins通讯通道的详细配置与数据点映射,提供了完整的实战指南。文章还涵盖了数据收发解析、常见问题排查清单,帮助工程师快速完成视觉系统与PLC的稳定集成。

weixin_29171087的博客 189

ABB机器人与西门子PLC、工业相机联合实现无序抓取的完整调试方案

将此方案导入系统后,逐步执行调试,确保各环节信号正常触发,即可实现高效无序抓取!

CHUXUEZHE8210的博客 1993

csi python 摄像头 树莓派_Python+树莓派+YOLO打造一款人工智能照相机

亚马逊刚刚推出了DeepLens 。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:相机不傻,...

weixin_35933239的博客 464

【WRF工具】WRF 模型输出可视化工具 plotfmt

【WRF工具】WRF 模型输出可视化工具 plotfmt

WW、forever的博客 1292

树莓派 python_Python+树莓派+YOLO打造一款人工智能照相机

亚马逊刚刚推出了DeepLens 。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:相机不傻,...

weixin_39915694的博客 222

第一篇:APS智能排产理论核心与求解器选型指南

本文系统解析了APS(高级计划与排程)系统的核心功能与技术实现。APS作为融合生产计划与排程的智能决策系统,通过运筹优化算法实现全局最优,平衡交付与效率。重点探讨了混合整数线性规划(MILP)在APS中的应用,包括设备分配、生产批量和人员班次优化等场景,并分析了其局限性与其他算法(如启发式算法)的互补性。文章还提供了APS实施策略建议和优化建模技巧,强调从简单模型开始迭代验证的重要性。最后介绍了甘特图在APS中的多维可视化作用,包括计划调整和决策支持功能。全文为理解APS系统原理及实践应用提供了全面指导。

算法工程师 544

多物理场光学仿真软件:Lumerical_(15).多物理场耦合仿真案例分析

在多物理场光学仿真中,Lumerical 软件提供了强大的工具来模拟复杂的光学系统,包括光子学、热学、力学和电学等多物理场的耦合。本节将通过具体的案例分析,展示如何在 Lumerical 中进行多物理场耦合仿真的开发和实现。我们将从简单的热光效应仿真入手,逐步深入到更复杂的多物理场耦合场景,如光电效应和光力学效应。每个案例都将包括详细的原理说明和具体的代码示例,帮助读者更好地理解和应用这些技术。

kkchenjj的博客 1022

树莓派 AI 摄像头上手体验

最近有幸能玩到搭载 Sony IMX500 传感器的树莓派 AI 摄像头。关于 IMX500,网上已有很多介绍:它是全球首款将 NPU 与 DSP 集成的传感器,这使得 IMX500 设备无需外置 NPU 即可实现 AI 功能。由于 AI 摄像头使用了和普通摄像头一样的接口,这意味着,只需连接 AI 摄像头,就可树莓派上实现物体、人脸识别等 AI 功能。同时,树莓派官方还为 AI 摄像头编写了一系列实例应用,

etoh466的博客 1699

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python手势识别_【python】树莓派相机实现手势识别,调百度API

1. 做这个的想法之前一直在玩百度的IOT天工物联网,一次偶然看到了人工智能标签下的人体分析功能,进去看了文档和API,发现有个手势识别很好玩,而且居然50000次/天免费正巧,手边有一个带摄像头的树莓派3B,说干就干,开始。2. 资料和准备可以看到,能够识别24类手势,还挺好玩的,树莓派支持python,手势识别正好有python的API首先远程连接树莓派,enable摄像头(raspi-con...

weixin_39554021的博客 809

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OAK 3D AI相机深度对齐与深度调优RGBD脚本使用指南:小白也能轻松上手!

OAK-D系列双目深度相机的RGBD深度调优指南,以及预置滤波的配置和调优说明解释。

oakchina的博客 2228

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: Python、Windows 成监狱禁书,犯人不能学习编程和计算机书籍?
下一篇: Python正则表达式 !五分钟带你完全掌握!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值