项目需要做一个预研,基于hadoop map/Reduce实现大量视频数据的处理,将视频流中的图像进行人脸识别并输出。对于map/Reduce这个专题不在此做叙述,如有需求,在后期进行补充。
本篇主要是说明如何基于javaCV+openCV+FFmpeg环境,实现视频帧转为图像并进行人脸识别的过程。同时对视频图像提取和识别封装了两个util以供使用。
Linux环境下的hadoop、ffmpeg、openCV的环境配置说明、以及本例的实现思路讲解内容请参见附件:Linux下MapReduce__FaceRecog环境配置说明.xlsx。
以下是windows下开发环境搭建的说明。
一、javacv opencv环境搭建
JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。所以利用该工具可以很容易地实现视频捕获、截图、转换分割、特征识别等功能。JavaCV实际上是使用JNI方式调用openCV、FFmpeg等库,因此配置javaCV环境时还需要同时安装依赖库的环境。
由其要注意的是JavaCV和openCV的版本是需要匹配的对应的,网上介绍较多的是JavaCV06 + opencv246,我这里使用的是JavaCV07 + opencv248,本质上没有什么区别。但JavaCV08以后的包结构都发生的变化,配置似乎又不一样。为避免不必要的麻烦,由其是相关的文档非常少,推荐大家不要使用JavaCV08以后的版本。
●opencv + javacv
1. 下载opencv-2.4.8.exe
http://opencv.org/downloads.html
2. 双击opencv.x.x.exe安装,其实就是解压过程(注意:一定要把它解压到C盘根目录下)
3. 设置环境变量添加path:
C:\opencv\build\x86\vc10\bin;C:\opencv\build\java\x86;
(第一个是为了vs2010设置的,第二个是为了eclipse设置的)
5.然后开始配置eclipse的javacv:
a)下载javacv-0.7-bin.zip
javacv的开源社区中似乎没找到这个版本,可以在CSDN这里下载。
b)在eclipse下新建一个Java Project:TestJavacv(名字随便取)
c)在TestJavacv下面新建文件目录libs/armeabi,建好之后,文件目录如下图所示
d)将javacv-0.7-bin.zip解压后得到的所有的jar文件拷贝到libs文件的根目录下,并添加到build path中。注意:不是armeabi目录。
e) 刚刚javacv-0.7-bin.zip解压后得到的目录里面会有javacv-android-arm.jar这个文件,解压,把它们里面所有*.so文件直接拷贝到刚创建的“libs/armeabi”文件夹中。
f)接着,再下载javacv-0.7-cppjars.zip,解压,解压目录里面有opencv-2.4.6.1-android-arm.jar文件,以及ffmpeg-2.0.1-android-arm.jar。再把这2个jar解压,把它们里面所有*.so文件直接拷贝到刚创建的“libs/armeabi”文件夹中。
g)在配置build path的设置中,把native环境配置一下,指定到JNI的opencv的Native库目录即C:\opencv\build\java\x86。
h)到至javacv+openCV就配置好了
测试代码如下(先在配置文件中配置vedio目录和简单参数,大家一看即明)
●FFmpeg
FFmpeg在windows下的安装非常简单,下载、解压之下,将FFmpeg的bin目录添加到Path系统变量就行了。可以参照下面的地址运行一些测试命令,试试FFmpeg的强大功能吧。
http://hwei199.iteye.com/admin/blogs/2277892
掌握了FFmpeg命令的用法,以后什么视频、音频的组合、切割就不需要到处找工具了,安装省心效率高。
分享到:
相关推荐
java+FFmpeg+JavaCV实现无控件HTML页面视频实时预览,录像等,RTSP协议
最新全套Jar: FFMPEG3.4.1+JavaCV1.4.1+OpenCV3.4.1-含windows&linux;平台链接库。安卓和macos的链接库将另发。 请根据平台选择适当的链接库。 artoolkitplus-linux-armhf.jar artoolkitplus-linux-ppc64le.jar ...
需配置好OpenCV和OCR环境
基于Python+OpenCV+Django+人脸识别库实现的人脸识别系统源码+项目说明(课程设计).zip 基于Python+OpenCV+Django+人脸识别库实现的人脸识别系统源码+项目说明(课程设计).zip 基于Python+OpenCV+Django+人脸识别库...
FFMPEG3.4.1+JavaCV1.4.1+OpenCV3.4.1的安卓及macos平台支持库。全套资源,需要下载:https://download.csdn.net/download/tianfool/10405853 本资源文件列表: artoolkitplus-macosx-x86_64.jar ffmpeg-macosx-x86...
JavaCV 是一款开源的视觉处理库,基于GPLv2协议,对各种常用计算机视觉库封装后的一组jar包,封装了OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口。 JavaCV通过其中的...
Python+OpenCV 实现的人脸检测并打马赛克源码,安装cv2/np库后进行使用即刻;
javacv配置+javacv人脸识别代码。javacv配置+javacv人脸识别代码。javacv配置+javacv人脸识别代码
基于java+OpenCV人脸识别+图片相似度检测+源码+开发文档说明+代码解说,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 检测任意两张图片的相似度思路 ...
项目写的很烂,参考价值不是很大,CameraActivity中有人脸识别和人脸匹配的方法
javacv0.7+opencv2.4.8调用本地摄像头详细操作及测试代码,因为opencv2.4.8文件较大,本人无法上传还请见谅,给个百度云的下载地址http://pan.baidu.com/s/1o6imnUU,请各位自行下载
视频+摄像头人体形态算法识别
1. 人脸检测、识别(图片、视频) 2. 更换背景图(例如给任务换一张海景背景图) 3. 图片合成(多张照片合成) 4. 证件照更换背景色 5. 年龄识别 6. 性别识别 7. 图片修复(可用于水印去除) 8. 图片分类 9. 老照片 ...
一款入门级的人脸识别、视频人脸识别、图片分类, 性别检测, 年龄检测, 照片特效处理, 天空滤镜, 图像色温调整, 图像对比度调整, 图像饱和度调整, 图像高光调整, 图像阴影调整, 图像明度调整算法实战项目. ...
javacv处理时需要的jar包,已经全部编译过,直接可用,javacv1.4.1,opencv3.4.1,ffmpeg3.4.2,dll都在jar包内
opencv可通过rtmp/rtsp获取视频流人脸识别与并截图,JAVA版本
# PyQt5+OpenCV+PyCharm使用本地摄像头并实时显示图像 GUI可视化 代码内写有详细注释 包含两个demo:一个是只有实时显示摄像头图像的简单版demo,另一个是同时加入了两个按钮控制图像翻转和灰度的demo,供大家学习。
基于python+opencv实现国内车牌识别系统源码(带GUI界面+PPT报告+项目说明)数字图像处理课设.zip 数字图像处理课程设计作业 Python3+OpenCV 使用tkinter搭建界面 tmp/文件夹是数字图像处理过程 chepai/文件夹是车牌...