一行代码快速图像识别~一排代码搞定视频识别

image

一个有趣的灵魂W

image

一行代码能干嘛?这种噱头式的开头现在估计已经不香了。。。我只能在别人挖好的土堆上再刨一铲子。

image

没错,咱们用的是Python,一行代码它就是能干很多事。用别人封装好的第三方库,我们可以用一行代码傻瓜式调用,干许多大事。

image

今天我们将使用一行代码实现深度学习里的图像识别,再将图像识别拓展到视频~进行视频流的物体识别。

我们将用到pixellib库和mask_rcnn_coco.h5这个训练好的模型。其中pixellib这个库可以非常简单的实现图像分割。我们可以利用pip install进行安装。github的开源地址为:

https://github.com/ayoolaolafenwa/PixelLib

然后你还需要下载mask_rcnn_coco.h5这个训练好的模型~

下载地址在文末~

关于模型,我就不做过多介绍啦,有兴趣可以自行搜索。

image

好了,当你跟我一样把所有准备工作都完善了之后,我们就开始后续的步骤吧。。。

哦对了,请自行准备一个小视频。

image

啊----不,是小小的视频

image

让我们开始吧:

import cv2
vc = cv2.VideoCapture("D:/b/2.mp4") # 设置视频位置
c = 1
if vc.isOpened():
rval, frame = vc.read()
else:
rval = False
timeF = 1 # 设置帧数
while rval:
rval, frame =vc.read()
if(c%timeF==0):
cv2.imwrite('D:/b/mp4/'+ str(c)+'.jpg',frame)  # 设置图片存储的位置
c=c+1
cv2.waitKey(1)
vc.release()
import pixellib
import os
from pixellib.instance import instance_segmentation
segment_image = instance_segmentation()
segment_image.load_model('D:/b/mask_rcnn_coco.h5')###运行过才知道h5是训练好的模型,需要单独下载
path='D:/b/mp4'
inf=os.listdir('D:/b/mp4')
inf.sort(key=lambda x:int(x[:-4]))
for i in range(len(inf)):
segment_image.segmentImage('D:/b/mp4/'+inf[i], output_image_name = 'D:/b/newmp4/'+inf[i], show_bboxes = True)
#原视频图片和新视频图片合并
path='D:/b/mp4'
path2='D:/b/newmp4'
inf=os.listdir(path)
inf2=os.listdir(path2)
inf.sort(key=lambda x:int(x[:-4]))
inf2.sort(key=lambda x:int(x[:-4]))
for i in range(len(inf)):
a=cv2.imread(path+'/'+inf[i])
b=cv2.imread(path2+'/'+inf2[i])
c=np.column_stack((a,b))
cv2.imwrite('D:/b/new2/'+inf[i],c)
# 图片合成视频
filelist = os.listdir('D:/b/new2') #获取该目录下的所有文件名
filelist.sort(key=lambda x:int(x[:-4]))
fps = 24
size=(640,240)
file_path ='D:/b/5.mp4'#导出路径
fourcc = cv2.VideoWriter_fourcc('D', 'I', 'V', 'X')#不同视频编码对应不同视频格式(例:'I','4','2','0' 对应avi格式)
video = cv2.VideoWriter( file_path, fourcc, fps, size )
for item in filelist:
item = 'D:/b/new2/' + item
img = cv2.imread(item)  #使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。
video.write(img)        #把图片写进视频
video.release() #释放

哦霍霍~下面是结果的视频。。。

[结果的视频](https://mp.weixin.qq.com/s?__biz=Mzg5NDIxNjM1Ng==&mid=2247484523&idx=1&sn=fa6f8fb39cdff627005fe56ea15cc0ab&chksm=c023b5a0f7543cb66abd0734114e6ddc82b1bd25a5bc4dfb47607de1649e1f08c2da4e92331a&token=1248647607&lang=zh_CN#rd](https://mp.weixin.qq.com/s?__biz=Mzg5NDIxNjM1Ng==&mid=2247484523&idx=1&sn=fa6f8fb39cdff627005fe56ea15cc0ab&chksm=c023b5a0f7543cb66abd0734114e6ddc82b1bd25a5bc4dfb47607de1649e1f08c2da4e92331a&token=1248647607&lang=zh_CN#rd)

就可以下载模型了。
[模型下载](https://mp.weixin.qq.com/s?__biz=Mzg5NDIxNjM1Ng==&mid=2247484523&idx=1&sn=fa6f8fb39cdff627005fe56ea15cc0ab&chksm=c023b5a0f7543cb66abd0734114e6ddc82b1bd25a5bc4dfb47607de1649e1f08c2da4e92331a&token=1248647607&lang=zh_CN#rd](https://mp.weixin.qq.com/s?__biz=Mzg5NDIxNjM1Ng==&mid=2247484523&idx=1&sn=fa6f8fb39cdff627005fe56ea15cc0ab&chksm=c023b5a0f7543cb66abd0734114e6ddc82b1bd25a5bc4dfb47607de1649e1f08c2da4e92331a&token=1248647607&lang=zh_CN#rd)

另外,模型下载如果速度较慢~可以参考这个工具:

用这个工具下百度网盘文件,简直飞起

F君的小尾巴,公众号:一个有趣的灵魂W百度网盘下载很慢吧,Pandownload之后的新工具-亿寻

打完收工!往期最新版中国范围路网数据来啦(OpenStreet Map,OSM)python调用cmd运行GDAL报错解决:ERROR 1: PROJ利用python把shp文件写入PostgresSQL数据库ArcGIS入门之-建模工具-迭代掩膜提取Python-gdal离线文档下载

你可能感兴趣的:(一行代码快速图像识别~一排代码搞定视频识别)