欢迎光临散文网 会员登陆 & 注册

有了这个工具你将能安心摸鱼,动手搞一搞

2022-04-01 16:57 作者:深度之眼官方账号  | 我要投稿

来源:转载 作者:livingbody

编辑:学姐

  • 还记得小时候爸妈不偷看电视的你吗?

  • 还记得高中时代看小说防着老师的你吗?

  • 还记得上班打游戏防着领导的你吗?

来感受下用PaddleDetection做上班偷懒神器

NO.1介绍


本文使用PaddleDetection自制数据集,做人脸分类,调用本地电脑的前置摄像头识别出现在屏幕前的人脸,根据不同的人脸切换本地电脑的窗口,实现偷懒神器~


NO.2效果

我的演示项目效果地址:

https://www.bilibili.com/video/BV1ni4y1V7TT

百度推广视频演示地址:

https://www.bilibili.com/video/BV1kC4y1t7s1


我实现的效果截图:

百度推广视频效果图:



NO.PaddleDetection介绍

目标检测是机器视觉领域的核心问题之一。7月3日百度AI开发者大会,飞桨核心框架Paddle Fluid v1.5宣布开源了PaddleDetection物体检测统一框架,用户可以非常方便、快速的搭建出各种检测框架,构建强大的各类应用。

PaddleDetection物体检测统一框架,覆盖主流的检测算法,即具备高精度模型、也具备高速推理模型,并提供丰富的预训练模型,具有工业化、模块化、高性能的优势。


工业化:结合飞桨核心框架的高速推理引擎,训练到部署无缝衔接 


模块化:提供模块化设计,模型网络结构和数据处理均可定制 


 •高性能:基于高效的核心框架,训练速度和显存占用上有一定的优势,例如,YOLO v3训练速度相比同类框架快1.6倍。


NO.4现有的模型



NO.用PaddleDetection实现本项目

PaddleDetection下载地址:

https://github.com/PaddlePaddle/PaddleDetection

或者

https://gitee.com/paddlepaddle/PaddleDetection

0本地制作数据集

实现本项目,最好用打算实验的相机拍摄数据集,就比如我想在自己的笔记本电脑上实现,那么可以直接调用本地电脑的前置相机来采集人脸照片,调用本地电脑拍照储存代码如会自动调用摄像头,按 **S** 按键,保存捕获的图像, **ESC** 退出。

02数据标注

上述代码执行完后会在本地这段代码所在路径创建pictures文件夹存放图片,接下来下载labelImg工具进行数据标注参考教程:

[labelImg在Python3 linux环境下安装]

(https://blog.csdn.net/weixin_40745291/article/details/85775708)


~ 安装完成后在本地执行以下命令打开labelImg:

打开图片路径:

选择框选,并给人脸标注名字(这里我用红绿灯的图为例保护隐私):

标注完成:


03训练模型

现在的路径应该是这样的:

pictures下放着我们的图片和xml文件。

3.1 生成图片和xmls关系的描述文件

上面两段代码执行完后会生成三个文件:


3.2修改配置文件

修改这个文件:PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml


主要修改就是改动了dataset_dir和anno_path和use_default_label,本项目的ssd_mobilenet_v1_voc.yml文件已经修改了。


内容如下:

NO.开始训练

NO.本地部署


转换模型后,这个路径下:

~/PaddleDetection-release/inference_model/ssd_mobilenet_v1_voc会有__params__ __model__ infer_cfg.yml

三个文件,下载到本地。


本地在python环境下下载PaddleDetection的包,将模型的三个文件放到PaddleDetection目录下的output目录下:



安装工具wmctrl 在linux的终端下执行:

sudo apt-get install wmctrl


修改本地PaddleDetection包中的这个文件:

/PaddleDetection-release-0.3/deploy/python/infer.py


内容如下:

上面代码的核心代码,根据个人使用一点修改,核心代码在585行,其他不用改动,内容如下:


NO.总结

  • PaddleDetection可以帮助我们很好的实现各种目标检测任务,不需要用户写大量的代码,只需要简单的配置

  • 使用PaddleDetection也可以很轻松的实现本地的部署

  • 如果项目有任何问题,欢迎在评论区留言指出

    需要源代码吗?需要的话评论区留言嗷!


有了这个工具你将能安心摸鱼,动手搞一搞的评论 (共 条)

分享到微博请遵守国家法律