Camera2 教程 7:相机集成物体检测功能
2020-03-29 本文已影响0人
古风子
青橙相机
物体检测官方地址:TF物体检测
支持类别
官方提供预训练模块可被用于检测80多种物体:
物体检测官方Demo是通过ImageReader获取预览数据,然后转化成图片,对图片进行识别后,记录识别信息,然后将图片显示到窗口上;官方代码不在贴出,可以自行下载查看,也可以以查看
QCCamera中的DetectorActivity.java,开源工程中将识别的逻辑代码放到了DetectionController类中,比原生的更易看些
处理流程
物体检测在相机预览上显示的代码逻辑:
物体检测相机预览.png-
获取相机预览数据后,将预览数据转化成图片
-
识别并不是对原图片进行处理,因为图片可能很大,识别程序处理效率不高;将图片进行压缩,官方是压缩到300x300
-
对压缩后的图片运行识别程序,并获取识别后的以下数据:
- 坐标 记录了每个被识别出的物体的在图片中位置信息: [top, left, bottom, right]
- 类型 每一个元素代表标签文件中(assets/labelmap.txt)的索引。
- 分数 代表检测到的类型的相似度信息
-
将识别出的位置信息,进行反向转换,转换到对应原预览数据对应的图片大小的位置信息
-
创建一个最终显示预览数据的view一样大的overlayview,并将位置信息再次转换
6:根据位置信息,分数和类型,在overlayview上显示检测后的结果
检测结果