无图无真相,先上效果图:
请点开图片放大查看。
可以看到图片中的人物都识别出来了,包括左下角背对画面下半身被挡住的主持人,以及右下角部分黑乎乎只有剪影的2个人(其他两个实在太黑以及有台标干扰没识别出来)。
面对画面的几位大佬的领带也被识别出来(最左边那位的领带没被识别出来)。
整个实现基于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结束录制。
视频里会动态识别出来每件物品,加上框并且标上识别的结果以及概率,就像文章开头的图片那样。
快来试试吧
网友评论