用python制作个简单的目标检测小程序

人工智能现在可以说是相当的火爆的,像现在的美图秀秀,百度的OCR文本识别等等我们身边的应用都有人工智能的支持。作为一个还刚刚接触了一丢丢这方面知识的小菜鸟的我,想要将目前已经了解的知识化为实践,好好地吸收一下,所以今天就准备自己动手制作一个用python做的简单目标检测小程序吧。

1.第一步:实现简单的界面设计(GUI),使用的是python的内置库tkinter,我也是才了解的,所以就只是简单地对界面进行了下布局,样式和代码如下,代码量很少。


图片来自网络,侵删
import tkinter as tk
from PIL import ImageTk, Image
import tkinter.filedialog as fd

root = tk.Tk()
root.title("目标检测小程序")
# 背景
canvas = tk.Canvas(root, width=800, height=600, bd=0, highlightthickness=0)
imgpath = 'bg.gif'   #这里注意,图片只能是gif格式的,否则会报错
img = Image.open(imgpath)
photo = ImageTk.PhotoImage(img)
canvas.create_image(0,0,image=photo)
canvas.pack()

label = tk.Label(text="目标检测",width=100,height=50,font=("宋体",32))

canvas.create_window(100, 50, width=200, height=50,
                     window=label)

btn = tk.Button(text="上传文件",command=uploadFile)

canvas.create_window(420, 275, width=200, height=50,
                     window=btn)

root.mainloop()   #显示窗口

第二步:实现上传文件,并实现图片检测,这里的代码也十分简单,通过上传文件的按钮获取到选择的文件的绝对路径,然后利用python的os.system去执行cmd的命令,这里执行的目标检测测试的命令是pytorch版的yolov3算法,这里贴下pytorch版yolov3的GitHub地址:
https://github.com/ultralytics/yolov3
具体代码如下:

def uploadFile():
    file_name = fd.askopenfilenames()
    print(file_name)
    str = "python detect.py  --name coc.names --cfg yolov3-tiny.cfg  --weights yolov3-tiny.weights --source %s"%file_name
    print(str)
    os.system(str)

可以一起来看一下效果,使用的权重是yolov3-tiny.weights,也可以去官网下载yolov3.weights替换进行测试。


image.png

总结:说实话今天文章并没有什么技术分享,就只是可以说给一个非常牛逼的模型套了个壳子,能够进行可视化的操作,而不是在命令行输入命令去执行,可以说这篇文章就是简单了解一下目标检测哈。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容