在第三行将实例的模型文件所在的路径设置为RetinaNet

运行代码后:

上图的控制台结果:

人:55.8402955532074

人:53.21805477142334

人:69.25139427185059

人:76.41745209693909

自行车:80.30363917350769

人:83.58567953109741

人:89.06581997871399

卡车:63.10953497886658

人:69.82483863830566

人:77.11606621742249

公交车:98.00949096679688

卡车:84.02870297431946

车:71.98476791381836

上图的控制台结果:

人:71.10445499420166

人:59.28672552108765

人:59.61582064628601

人:75.86382627487183

摩托车:60.1050078868866

公交车:99.39600229263306

车:74.05484318733215

人:67.31776595115662

人:63.53200078010559

人:78.2265305519104

人:62.880998849868774

人:72.93365597724915

人:60.01397967338562

人:81.05944991111755

摩托车:50.591760873794556

摩托车:58.719027042388916

人:71.69321775436401

自行车:91.86570048332214

摩托车:85.38855314254761

现在让我解释一下这 10 行代码是如何工作的。

在上面3行代码中,我们在第一行导入了ImageAI的物体检测类,第二行导入了python的os类。然后,在第三行,定义一个变量来保存我们用来保存 python 文件、RetinaNet 模型文件和图像的文件夹的路径地址。

在上面5行代码中,我们在第一行定义了一个object detection类的实例,在第二行设置实例的模型类型为RetinaNet,将实例的模型路径设置为我们的RetinaNet的位置第三行中的模型文件第四行将模型加载到目标检测类的实例中。第五行opencv中识别行人的脚,我们调用检测函数,将文件输入输出路径作为参数传入。

上面两行代码中opencv中识别行人的脚,第一行用于遍历detector.detectObjectsFromImage函数返回的所有结果,第二行用于输出图像中检测到的每个物体的名称和概率。

ImageAI 还有很多强大的自定义功能。例如,可以提取图像中检测到的每个对象。只需将参数extract_detected_objects = True 传入detectObjectsFromImage 函数即可实现,如下所示,物体检测类将为图像对象创建一个文件夹,提取每个检测到的子图像,并将每个子图像保存到创建的新文件夹中并返回一个包含每个图像路径的数组。

我们将此方法应用于第一张图像,提取的部分子图像如下:

所有行人图像都被很好地提取出来。为了节省篇幅,这里只展示了一部分。

ImageAI 为自定义对象检测任务和部署项目提供了许多有用的功能。一些支持的功能包括:

– 调整最小概率:默认情况下,检测到的概率百分比小于 50 的对象将不会显示。您可以在需要高精度时增加此值,或在需要检测所有可能的对象时减少此值。

– 自定义对象检测:使用 CustomObject 类,您可以告诉检测类检测一个或多个独立对象。

– 检测速度:检测速度可设置为“快”、“较快”和“最快”,以缩短检测时间。

– 输入类型:输入参数可以指定为图像路径、Numpy 数组或图像文件流的类型。

– 输出类型:您可以指定 detectObjectsFromImage 函数将图像作为文件返回还是作为 Numpy 数组返回。

您可以在官方 GitHub 存储库中找到有关 ImageAI 中上述功能和其他计算机视觉功能的详细信息和文档。

如果你觉得这篇文章对你有帮助或者你也对它感兴趣,请给它一个赞。随时与朋友和同事分享。

如果您有任何问题、建议或想与我联系。请发送电子邮件至 guymodscientist@gmail.com。您也可以在我的 Twitter 帐户 @OlafenwaMoses 和 Facebook 上与我联系。

原文链接:

雷锋网 雷锋网

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论