相对来讲,OpenCV是一个较为成熟的视觉库,它包含了Harris、SURF、SIFT、FAST等算法,支持面向对象的C++ API,并可针对不同硬件进行优化,比如台式机、移动设备等。
JavaCV则是封装了OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库接口的库。如果开发的应用不需要增加用于处理图片的代码,那么可以使用JavaCV。但是如uoxuyao大量额外的用于图片处理的代码,那么Java会降低你的处理速度。
FastCV是专为移动设备进行了优化的一款计算机视觉库。开发者可以使用FastCV建立的计算机视觉应用程序所需的框架,Qualcomm的增强现实(AR)SDK就是一个很好的例子。FastCV可以为开发者的应用添加更多基于摄像头的功能,比如手势识别、文本识别、增强现实,以及人脸检测、跟踪与识别。
Qualcomm的Snapdragon系列(S2版本以上)是基于ARM架构开发的移动设备处理器。所以相应的,FastCV支持所有ARM处理器,并专为Qualcomm处理器进行了优化。
举一个例子,今年Qualcomm推出了骁龙805系列芯片。搭载这块芯片的Android手机可以实现“先拍照,后对焦”的功能,也就是说,用户可以通过点击照片中不同远近的物体,设置照片的焦点,这就利用到了FastCV。
iOnRoad应用截屏
iOnRoad是一款可以利用手机摄像头和内置GPS、加速度计、陀螺仪获取车辆速度、方向等信息的手机App,它还可以通过摄像头监测检测前方车辆和车道,当偏离车道或离前车过近时,会发出预警。这就是利用了FastCV对物体监测、跟踪的能力。尽管这款应用是2012年FastCV刚刚发布时,由开发者开发的。但据官方介绍,利用FastCV后,性能提升了10% - 15%,两天就完成了开发。
其实,计算机视觉不仅仅可以应用于拍照、AR,或其他与摄像头相关的手机应用上,对于机器人这个新兴领域也很重要。比如在今年Uplinq大会上,开发者展出了一款机器人产品,它采用了Snapdragon 600处理器,能很好的支持FastCV视觉计算库,利用摄像头识别、跟踪物体。
了解更多FastCV及Qualcomm技术信息,请访问Qualcomm开发者专区