Python中如何进行视觉开发?

朋友有个项目,大概思路如下:

利用 opencv 进行识别,然后 tensflow 进行学习后可以进行智能识别并输出结果或记录.

目前是跑在 windows 下,打算改为 linux,目前采集摄像头都带有 linux 驱动并工作正常, 同时当前的用户管理框架想改为 django 或者 flask(麻烦但轻巧).

综上请教, opencv 是否太重了? 有比较轻的模块吗? 如何训练 tensflow?

django 还是 flask 比较好? (主要也是单机版,用来进行用户管理,日志管理等,并会慢慢的增加一些必要或可选的模块).


Python中如何进行视觉开发?

6 回复

主要瓶颈是需要在开发场所完成 opencv 的初步测试,tensflow 初步学习模型建立,可以正常生产,然后在客户现场经过一段时间的对应调试学习后, 学习的库可以导出合并到开发场所的库中,为以后复用提供基础,减少开发调试成本,请问有人有经验吗?


Python中进行视觉开发主要依赖几个核心库。GUI开发首选 PyQt/PySide(功能全面、跨平台)或 Tkinter(Python内置,适合简单工具)。游戏或交互式应用可以用 Pygame。如果要处理图像和视频,OpenCV 是行业标准。对于数据可视化,MatplotlibSeaborn 是基础,PlotlyBokeh 适合做交互式图表。

这里是一个用 PyQt6 创建简单窗口的完整例子:

import sys
from PyQt6.QtWidgets import QApplication, QLabel, QMainWindow

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyQt视觉示例")
        self.label = QLabel("你好,视觉世界!", self)
        self.setCentralWidget(self.label)
        self.resize(400, 300)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

运行前需要安装:pip install PyQt6

总结:根据你的具体需求(桌面应用、图像处理、数据图表还是游戏)选择最合适的库开始。

#1 如果是单机版 .NET+Windows 最 OK 啊,如果是服务器版,首选 django,过来人。flask 使用者有 2 类,一种是自己 DIY, 一种是应用特别简单。反而 django 有全套解决方案,更加类似 Java 里的 Spring Boot

谢谢,目前是但加班基于.net+win, 觉得 GUI 浪费的资源太多了,且生长线员工动不动就乱调节 windows 导致意外太多,所以打算转入 linux, 目前是跑个 Lnmp + django 的.

图像算法可以自己实现的话当然直接上 c++
训练你们在现场完成 tensorflow 跑一个 densenet 不得几个小时啊 还得看现场的电脑配置 还得搭环境 或者用 docker
最好是收集的图像数据上传到你们数据中心清洗后添加到数据集 由你们的高配服务器来跑模型 cudnn spark 之类进行加速 还可以不断完善你们的模型 然后另一个 Web 服务器提供一套 restful API 来做数据 upload 你们业务量大的话可以用异步的 tornado 框架提高并发量 都是 IO 密集 这样就可以避免生产线员工人为干扰 算法都在你们自己服务器上保证安全 就是必须得有网 运算服务器牛 b 个人意见 供参考

谢谢, 初步是打算在开发场所完成 tensflow 完成初步模型建立(因为当前算法都比较简单), 开发现场看电脑配置是没问题的,出于方便肯定是 docker,以后去客户那里部署也方便.

初步计划就是每个客户在开发现场建立个 docker,开发场所跑完后直接 docker image 上传 hub 并在生产线下拉并部署(算法由于太简单不做任何保护)

关键是数据中心我们想以后生产线运行一段时间后, 有些数据想倒回到开发场所的数据中心,这样实时或者经验数据以后可以复用,毕竟开发场所的几个小时后 /天的模型建立还是少了点(虽然检测很简单), 某些客户的生产场所为离线,所以可以通过插入 u 盘导出数据并在研发场所复用而已.

暂时也用不到 tornado,没那么多数据交互和数据量,因为都是比较简单的零件,所以打算 django 部署了.

回到顶部