10行Python代码实现计算机中视觉中的目标检测
记录一下根据网上文章实现计算机视觉中目标检测时踩的坑。
如何借助ImageAI轻松实现目标检测
使用ImageAI执行目标检测,只需以下4步:
1.在电脑上安装Python
2.安装ImageAI及其环境依赖
3.下载目标检测模块文件
4.运行示例代码,就是我们展示的那10行
下面我们一步步详细讲解。
1)从Python官网下载和安装Python 3
python.org/
2)通过pip安装如下环境依赖
Tensorflow
pip install tensorflow
踩坑:安装tensorflow时,一起安装的protobuf 是3.6.1版本,要把protobuf 的版本改成3.6.0,不然会报 ImportError: DLL load failed: 找不到指定的程序。
-
Numpy
pip install numpy
-
SciPy
pip install scipy
-
OpenCV
pip install opencv-python
-
Pillow
pip install pillow
-
Matplotlib
pip install matplotlib
-
H5py
pip install h5py
-
Keras
pip install keras
-
ImageAI
先将imageai-2.0.1-py3-none-any.whl下载之后安装,下载地址:https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl
pip install C:\User\adm\Downloads\imageai-2.0.1-py3-none-any.whl
通链接下载RetinaNet 模型文件用于目标检测。下载链接:https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5
到了这里我们已经安装好了所有依赖,就可以准备写自己的首个目标检测代码了。 创建一个Python文件,为其命名(比如FirstDetection.py),然后将如下代码写到文件中,再把RetinaNet模型文件以及你想检测的图像拷贝到包含该Python文件的文件夹里。
FirstDetection.py
from imageai.Detection import ObjectDetection
import os
execution_path = os.getcwd()
detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))
for eachObject in detections:
print(eachObject["name"] + " : " + eachObject["percentage_probability"] )
然后运行代码,等待控制台打印结果。等控制台打印出结果后,就可以打开FirstDetection.py所在的文件夹,你就会发现有新的图像保存在了里面。可以看到图像上显示了检测出的物体名称及概率。
参考文档链接:https://blog.csdn.net/a13662080711/article/details/81195379