其他
使用ImageAI快速构建常见对象检测应用
微信公众号:OpenCV学堂
关注获取更多计算机视觉与深度学习知识
ImageAI介绍
纯Python的快速对象检测训练与测试平台,基于tensorflow+opencv构建,支持
RetinaNet
YOLOv3
TinyYOLOv3
在COCO数据集上预训练模型的调用,同时支持自定义对象训练与导出。支持
图像分类
对象检测
视频对象检测与跟踪
安装ImageAI
ImageAI的后台依赖tensorflow框架与keras,所以需要首先安装tensoflow,当前还不支持tensorflow2.0版本
tensorflow 1.4.x以上版本
opencv-python
安装imageai,只需要执行如下命令行即可
pip install imageai
代码演示
1. 图像分类
from imageai.Prediction import ImagePrediction
import os
execution_path = os.getcwd()
prediction = ImagePrediction()
prediction.setModelTypeAsResNet()
prediction.setModelPath(os.path.join(execution_path, "resnet50_weights_tf_dim_ordering_tf_kernels.h5"))
prediction.loadModel()
predictions, probabilities = prediction.predictImage(os.path.join(execution_path, "1.jpg"), result_count=5 )
for eachPrediction, eachProbability in zip(predictions, probabilities):
print(eachPrediction , " : " , eachProbability)
图像
运行输出:
convertible : 52.459555864334106
sports_car : 37.61284649372101
pickup : 3.1751200556755066
car_wheel : 1.817505806684494
minivan : 1.7487050965428352
2. 对象检测
from imageai.Detection import ObjectDetection
import os
execution_path = os.getcwd()
detector = ObjectDetection()
detector.setModelTypeAsYOLOv3()
detector.setModelPath( os.path.join(execution_path , "yolo.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image2.jpg"), output_image_path=os.path.join(execution_path , "image2new.jpg"), minimum_percentage_probability=30)
for eachObject in detections:
print(eachObject["name"] , " : ", eachObject["percentage_probability"], " : ", eachObject["box_points"] )
print("--------------------------------")
运行输出:
github地址
https://github.com/OlafenwaMoses/ImageAI/
推荐阅读
Qt实用技巧:使用OpenCV库操作摄像头拍照、调节参数和视频录制
干货 | GIMP中的Noise Reduction算法原理及快速实现
逆天啦!OpenCV4.1.2 CPU上人脸检测居然能跑到700+ FPS
网络模型量化与推理加速框架OpenVINO最新版本SDK演示
如何编译OpenCV4.1.0支持OpenVINO推断引擎加速支持
OpenCV4 | 如何一行代码搞定SSD模型推理与结果解析