人工智能/模式识别/机器学习精华专题大数据,机器学习,人工智能人工智能(语言识别&图像识别)

利用ImageAI实现实时视频/图像内物体识别

2019-03-11  本文已影响17人  _KevinZhang_

无图无真相,先上效果图:


请点开图片放大查看。

可以看到图片中的人物都识别出来了,包括左下角背对画面下半身被挡住的主持人,以及右下角部分黑乎乎只有剪影的2个人(其他两个实在太黑以及有台标干扰没识别出来)。
面对画面的几位大佬的领带也被识别出来(最左边那位的领带没被识别出来)。

原图片地址:http://cbsnews1.cbsistatic.com/hub/i/2016/02/14/4245c065-2c0d-47b3-8f4a-d4aa3b0923cb/021316-cbs-news-republican-debate-gop.jpg

整个实现基于ImageAI,项目地址:
https://github.com/OlafenwaMoses/ImageAI

按照步骤安装好各种模块(pip3不行就用pip):

cd ~
git clone https://github.com/OlafenwaMoses/ImageAI
cd ImageAI
pip3 install --upgrade tensorflow
pip3 install numpy
pip3 install scipy
pip3 install opencv-python
pip3 install matplotlib
pip3 install h5py
pip3 install keras

不过实现过程有点坑:

坑一:出现错误:“Python is not installed as a framework?”
解决方法:笔者用的是AnaConda3,Mac环境:
conda install python.app
然后用pythonw而不是python来运行

坑二:出现错误“...this TensorFlow binary was not compiled to use: AVX2 FMA”
解决方法:修改python代码
增加到程序开头的地方:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

坑三:yolo.h5 模型文件
这个文件在项目地址里面根本没有...#@$!#
解决办法:
在终端里敲入命令

cd ~
git clone https://github.com/qqwweee/keras-yolo3.git
cd keras-yolo3
wget https://pjreddie.com/media/files/yolov3.weights
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

然后把生成的yolo.h5文件挪到ImageAI项目的examples目录里

ImageAI项目的examples目录有许多例子,文章开头的图片就是用
image_object_detection.py 生成的
默认程序里会找examples目录里一个叫image3.jpg的图片,找到之后会生成image3new.jpg(也就是文章开头的图片)

有趣的是camera_feed_detection.py这个例子,可以实时抓取摄像头看到的东西,并且录制下来存成一个avi视频文件。注意运行的时候终端窗口只会显示Processing Frame : 1这样的信息,实际你的摄像头灯已经亮了,avi视频文件就生成在当前目录。
你可以对着镜头拿各种东西给它识别。按下Ctrl-C结束录制。
视频里会动态识别出来每件物品,加上框并且标上识别的结果以及概率,就像文章开头的图片那样。

快来试试吧

上一篇 下一篇

猜你喜欢

热点阅读