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

Posted 一个有趣的灵魂W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一行代码快速图像识别~一排代码搞定视频识别相关的知识,希望对你有一定的参考价值。


一个有趣的灵魂W

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

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


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


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


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


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


https://github.com/ayoolaolafenwa/PixelLib


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

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



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


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

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


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


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



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


让我们开始吧:

import cv2vc = cv2.VideoCapture("D:/b/2.mp4") # 设置视频位置c = 1if vc.isOpened():rval, frame = vc.read()else:rval = FalsetimeF = 1 # 设置帧数while rval:rval, frame =vc.read()if(c%timeF==0):cv2.imwrite('D:/b/mp4/'+ str(c)+'.jpg',frame) # 设置图片存储的位置c=c+1cv2.waitKey(1)vc.release()import pixellibimport osfrom pixellib.instance import instance_segmentationsegment_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 = 24size=(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/' + itemimg = cv2.imread(item) #使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。video.write(img) #把图片写进视频video.release() #释放


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



就可以下载模型了。


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

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

F君的小尾巴,公众号:一个有趣的灵魂W


打完收工! 往期


微信号:一个有趣的灵魂W
关注我们,了解更多


以上是关于一行代码快速图像识别~一排代码搞定视频识别的主要内容,如果未能解决你的问题,请参考以下文章

百度AI开放平台,两行代码也能搞定图像识别!

重磅!一行代码轻松搞定中英文语音识别与语音合成|代码开源!

重磅!一行代码轻松搞定中英文语音识别与语音合成|代码开源!

首次开源!一行代码轻松搞定中英文语音识别合成翻译核心功能!

20 行代码:Serverless 架构下用 Python 轻松搞定图像分类

MMAction2-视频理解行为识别(学习笔记-附代码实操)