1.概述
《Vision-based User Interface Programming in Java》这本书介绍了如何用java做摄像头程序和游戏,可以作为一个计算机视觉的启蒙读物。
作者是泰国的Dr. Andrew Davison,这本书的在线浏览网址是
http://fivedots.coe.psu.ac.th/~ad/vbi/index.html
不过计算机视觉对数学要求很高,里面还有许多理论,要想完全吃透还是需要参考一些别的书籍和论文。
这本书依赖于OpenCV和JavaCV早期版本,所以要想运行书中的程序,请注意软件的版本如下。
OpenCV 2.4.5
JavaCV 0.5
2. 各章简单介绍
Chapter 1. What is a VBI?
VBI介绍,没有网络版本
Chapter 2. Webcam Snaps Using JavaCV
使用JavaCV实现摄像头拍照
一上来简单介绍了OpenCV,JavaCV
然后一个简单的HelloWorld程序用JavaCV显示一张图片
最后实现摄像头拍照
并且介绍了3个测试摄像头的工具
CommandCam
DevCon
FFmpeg
Chapter 3. Webcam Snaps Using VLC
使用
vlcj实现摄像头拍照
首先一个简单的程序介绍如何用vlcj播放各种格式的视频
然后实现摄像头拍照
Chapter VBI-3.5. Webcam Snaps Using JMF
使用JMF实现摄像头拍照
JMF比较老了,所以参考参考就行。
Chapter 4. Motion Detection
解释了如何用摄像头来检测场景的变化或移动。因为这是视频系统的基本需求,所以作者介绍了3种不同的方法来实现这个功能。
第一种方法,基于连贯的视频帧的图像差异比较
第二种方法,使用背景前景分割
第三种方法,光流法
Chapter VBI-4.5. A Motion-tracking Missile Launcher
一个程序实现了导弹发射器瞄准人的头部,并发射导弹。当然这个导弹只是一个玩具。
Chapter 5. Blobs Drumming
击鼓游戏。需要使用颜色鲜艳的方形道具(塑料片)来触碰鼓达到击鼓的效果。屏幕被分为9个鼓,当道具的中心点落入9个鼓中的一个时,PC的音箱会发出相应的鼓声。本人用一本全天蓝色封面的大词典试验成功。
首先介绍轮廓寻找技术,如何检测出道具的轮廓。需要用到HSVSelector程序先将道具的颜色识别出来。
Chapter 6. Hand and Finger Detection
手掌与5根手指检测
需要一副纯色的手套作为道具。
同样首先需要用到HSVSelector程序先将道具的颜色识别出来。
这个程序在我的电脑上没有试验成功,手指的识别率比较低。
Chapter 7. Finger Tracking with TopCodes
手指追踪。把TopCodes贴在手指上,达到鼠标的移动和点击效果。
TopCodes可以识别出多达99种图案。
Chapter 8. Fingerprint Recognition
指纹识别
用到
biometricsdk来建立指纹模板,作指纹比对。
Chapter 9. Face Detection and Tracking
人脸检测与跟踪
这个功能是OpenCV自带的,用到哈尔算法来检测人脸,用到人脸数据库文件haarcascade_frontalface_alt.xml
Chapter 10. Face Recognition
人脸识别,这一章比上一章更进了一步,用特征脸(eigenfaces)技术识别人脸,包含三个部分:
第一部分,Colt PCA
PCA(Principal Components Analysis)主成分分析,是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。
colt是一组高性能的科学和数学计算的 Java 库。不过有点老了。
作者用colt实现了一个简单的PCA算法。
第二部分,JavaFaces2
重构了
javafaces代码,为特征脸生成一个cache文件
第三部分,最后的成果,可以人脸识别了
Chapter 11. Eye Tracking
眼睛跟踪
也是用哈尔算法来检测眼睛,用到眼睛数据库文件
Chapter 12. Facial Features Recognition
第一部分,用哈尔算法来检测脸、眼睛、鼻子、嘴
第二部分,用
FaceSDK检测脸部的66个坐标
FaceSDK很强大,遗憾的是需要注册才能试用,且有试用期限制。
Chapter 13. OCR and Sudoku
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。
这章讲了一个例子,识别数独图片,转换成文字,并且将这个数独解答出来。
tesseract是一个老牌的文字识别组件,可能是最好的文字识别工具。
tess4j是对tesseract的java封装
gocr是简单的文字识别,可以命令行调用
Chapter 14. QR Codes
这章讲了如何把网址转换成二维码,以及反向操作。
QR码(全称为快速响应矩阵码;英语:Quick Response Code)是二维条码的一种,于1994年由日本DENSO WAVE公司发明。
zxing 不仅支持二维码,还支持多种条形码
Chapter 15. Augmented Reality with NyARToolkit
增强现实(Augmented Reality, AR), 是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,目标是在屏幕上把虚拟世界套在现实世界并进行互动。
这种技术估计由1990年提出。随着随身电子产品运算能力的提升,预期增强现实的用途将会越来越广。
首先可以在线观赏2个例子(番羽土啬)
Layar
Wikitude
然后介绍了
ARToolKit以及
NyARToolkit
最后用这些类库实现了一个demo,可以识别一张海报,并在海报上加上虚拟3D图像。
Chapter 16. Depth Processing
这章首先讲了3D电影的简单原理,就是需要2个摄像头来拍摄,左右各一个。这样可以辨识出物体距离屏幕的距离。
然后分别用红色和蓝色过滤,配合3D红蓝眼镜观看,就成了3D电影了。
PLY是一种电脑档案格式,全名为多边形档案(Polygon File Format)或 史丹佛三角形档案(Stanford Triangle Format)。
史丹佛大学的 The Digital Michelangelo Project计划采用PLY格式储存极高分辨率之米开朗基罗的作品"大卫"雕塑。
该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。
MeshLab是立体网状处理软件。此软件可管理面和处理大量的非结构化网格,并提供编辑、清理、修复及查核等功能,可对模型进行渲染及转档。
Chapter 17. Networked Cameras
介绍了网络摄像头原理。简单来说就是客户端将图像切成若干方块,每次将和上次不一样的图片发到服务端即可。服务端可以理解成监控中心了,收集各个客户端发来的信息然后还原图像。
分享到:
相关推荐
本文档"Vision-based Vehicle Speed Estimation for ITS A Survey.zip"集中探讨了利用机器视觉技术进行车辆速度估计的方法与应用。 一、机器视觉在车辆速度估计中的作用 机器视觉是通过模拟人类视觉功能,使计算机...
在这类系统中,对象的抓取是一个基础而重要的功能,它能够为社会带来巨大的生产力。 在视觉抓取过程中,主要涉及四个关键任务:对象定位(Object Localization)、位姿估计(Pose Estimation)、抓取检测(Grasp ...
This paper combines workspace models with optimization techniques to simultaneously address wholearm collision avoidance, joint limits and camera field of view (FOV) limits for vision-based motion ...
本文档《Vision-Based SLAM in Real-Time.pdf》由Andrew J. Davison撰写,主要介绍了视觉SLAM技术在实时应用中的基本原理、关键技术及其实现方法。 #### 视觉SLAM的核心思想 当一个世界观察型摄像机在场景中移动并...
基于视觉的无人机自主飞行有望在军事和商业领域实现实际任务的应用,特别是在包含固定和移动障碍物的复杂环境中执行任务时,障碍物避免能力是关键需求之一。因此,本文聚焦于基于视觉的无人机导航与指导系统设计,以...
四轴飞行器(Quad Rotorcraft)是一种具备四个旋翼的垂直...这本书《Quad Rotorcraft Control - Vision-Based Hovering and Navigation》作为四轴飞行器控制技术的参考书籍,将为飞控工程师提供宝贵的知识和实践经验。
《Robust Vision for Vision-Based Control of Motion》一书由Markus Vincze与Gregory D. Hager编辑,由IEEE Press出版,主要探讨了如何利用稳健的视觉技术来增强机器人的运动控制能力。本书不仅深入介绍了视觉系统...
基于视觉的智能驾驶系统开发设计,英文原版,尤其针对行人保护
标题《opencv-3-computer-vision-application-programming-cookbook-third-edition》所指向的内容,显然是一本专注于OpenCV 3版本的计算机视觉应用编程指南。OpenCV,即Open Source Computer Vision Library,是一个...
This edited book highlights the development of robust and effective vision-based motion understanding algorithms and systems from a machine learning perspective. Major contributions of this book are ...
Vision-LSTM(ViL)架构的核心是xLSTM块。每个xLSTM块都包含一个输入门、一个遗忘门、一个输出门和一个内部记忆单元。与传统的LSTM相比,xLSTM引入了指数门控机制,使得模型能够更好地处理长序列数据。同时,xLSTM...
Vision-based Driver Assistance Systems Survey, Taxonomy and Advances.zip
the-art in graph-based SSL algorithms, and the ability to implement them; (2) the ability to decide on the suitability of graph-based SSL methods for a problem; and (3) familiarity with different ...
本资料“jiqishijue.zip”聚焦于“Vision-based 机器视觉”,通过Matlab这一强大的计算平台,为学习者提供了丰富的源程序和详细报告,旨在帮助读者深入理解和应用机器视觉技术。 首先,让我们了解什么是机器视觉。...
Summary Content-based visual information retrieval (CBVIR) or content-based image retrieval (CBIR) has been one on the most vivid research areas in the field of computer vision over the last 10 years....
Vision-Language Models (VLMs)是一种深入学习技术,它可以将图像和文本信息融合在一起,以便更好地理解和处理图像信息。本survey对VLMs的发展进行了系统的总结和分析。 VLMs的发展历程 从传统机器学习到深度学习...
Adrian Rosebrock-Deep-Learning-For-Computer-Vision-全三册(Starter,Practitioner,ImageNet bundle)PDF高清-带目录和标签-以及start章节代码.1,2,3三本书从基础到入门提高,很好的资源