物体检测4:Android上应用物体监测(TF1)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物体检测4:Android上应用物体监测(TF1)相关的知识,希望对你有一定的参考价值。

参考技术A 在上一章节 训练一个物体检测器 ,
我们将训练后的模型导出成了pb文件,用在PC侧tensorflow物体监测;本章节,我们尝试在android手机上转化我们训练好的模型,供手机端tensorflow-lite使用

输出结果为:

运行以下命令:

会提示以下错误:

错误解决方案一:
使用非量化的转换,需要将inference_type=QUANTIZED_UINT8 改为—inference_type=FLOAT并添加:
--default_ranges_min
--default_ranges_max

Quantized模型里面的权重参数用1个字节的uint8类型表示,模型大小是Float版本的四分之一;后续我们再讲解怎么生成Quantized的模型文件

最后运行以下命令:

生成detect.tflite文件:

生成的文件达到22MB,而原生的支持80个物种监测的tflite文件(Quantized类型) 相机集成物体监测 ,仅仅为3MB左右;

解决方案二:
使用量化转换,将inference_type和input_data_type设置为QUANTIZED_UINT8 ;
参数default_ranges_min和default_ranges_max也需要设置

此种方案生成的tflite文件,比非量化模式减少了四倍,精度稍有下降

如何在matlab中实现灰度形态检测灰度图像上的圆形物体?

【中文标题】如何在matlab中实现灰度形态检测灰度图像上的圆形物体?【英文标题】:How to implement Gray scale morphology to detect round object on gray scale image in matlab? 【发布时间】:2016-05-18 10:45:34 【问题描述】:

有许多方法可以在二值图像上实现数学变形,例如 imerode 和 imdilate。它还用于使用二进制图像上的这个简单操作来检测不同的对象/形状,但我现在面临的问题是应用这个简单的操作,即在灰度图像上侵蚀、扩张和许多,而不将它们转换为二进制图像。

Selement = strel('disk',5);//disk type element used in morphology
erodeimage = imerode(image,selement);//this is only implement on binary image

以上代码用于二进制数学变形我如何在灰度图像上实现相同的概念。

注意:如果您有任何关于灰度数学变形的资源,请提供或提供有用的链接

【问题讨论】:

imerode 适用于灰度图像。来自documentation:“IM2 = imerode(IM,SE) 侵蚀灰度、二值或打包二值图像 IM...” 【参考方案1】:

MatLab 中应该有一个数学形态学 (MM) 库。二值图像上的 MM 操作仅作为示例/插图显示,但大部分时间以灰度级执行。

我认为最快的 C++ 库是SMIL,你可以从 MatLab 中调用它。 C 中的另一个快速算法是 that one(优化了单次打开/关闭)。

但是,如果您想了解灰度级的膨胀,它的工作原理如下:对于给定的像素 p,您分析其邻域内所有像素的值(由结构元素定义),并且您影响到 p 附近的最高值。您为图像中的每个像素执行此操作。请参阅formula。

这实际上是一个类似于中值的等级过滤器,但不是取中值,而是取最大值(或腐蚀最小值)。显然,基本定义和它退出了更快的算法,就像我指出的库中开发的那样。

【讨论】:

以上是关于物体检测4:Android上应用物体监测(TF1)的主要内容,如果未能解决你的问题,请参考以下文章

计算机视觉案例:应用opencv+keras完成视频物体检测

如何跟踪运动物体的轨迹openCV C++

CV案例:应用Keras SSD进行物体检测

物体检测object detection object recognition和coco数据集 动手学深度学习v2 pytorch

如何在matlab中实现灰度形态检测灰度图像上的圆形物体?

YOLO-V4经典物体检测算法介绍