目前针对于网络相机开发本人爬的坑有一下总结
rtsp网络人脸相机的优势: 不受各大厂家的SDK限制支持多种相机
开发环境: windows32/64位心疼 win7以上系统
开发语言: C++ 语言
基本要求:熟悉 网络通信,多线程,图形图像处理, opencv, vlc, ffmpeg,QT.
一 最简单的开发方法 opencv+qt
使用opencv进行连接网络相机集成人脸识别
开发流程:下载opencv 库调用opencv接口
1,打开网络相机
2,对每一帧的画面进行提取检测人脸
3,对检测到的人脸帧提取特征值进行人脸比对计算出结果
优点:简单方便快捷,不需要再次封装
缺点:性能差,解码速度不行,只能支持 mpeg格式的码率。
个人建议:不建议使用opencv进行网络人脸识别开发 局限性太小
二 中等难度开发方法 vlc+qt+opencv
使用VLC进行连接网络相机集成人脸识别
开发流程:下载 vlc库调用vlc接口
1,对vlc接口进行封装 打开网络相机
2,对每一帧的画面进行提取检测人脸
3,对检测到的人脸帧提取特征值进行人脸比对计算出结果
优点:稳定,支持多种码率 i5统用配置能跑2~4路画面(1080p)
缺点:性能一般,硬件求比较搞,如果跑多个画面非常吃CPU,会出现延迟的情况,延迟时间在200ms~1000ms
三 较难的开发方法: ffmpeg+qt+opencv
使用ffmpeg进行开发集成人脸识别
开发流程:下载FFMPEG库
1,对ffmpeg数据进行封装
2,提取每一帧的人脸数据
3,对检测到的人脸帧提取特征值进行人脸比对计算出结果
优点:性能好,稳定高效 支持多个画面 win64位系统 I5通用配置(网络相机1080p 能跑 8~12个画面)(网络相机960p能跑到12~16画面)
缺点:开发难度大,需要调优
针对网络相机开发有需求的小伙伴可以加我qq :531501826 私信我有DEMO有案例。
后续将为大家发放每种开发的核心源码和流程。