clean 3
Former-commit-id: 0d5b15c8877419ac69f03d538f8d1bf9c4e063b9
This commit is contained in:
91
README.md
91
README.md
@ -1,91 +0,0 @@
|
||||
# 基于计算机视觉的AI滴定控制装置
|
||||
## Mlabs AI Titration 1.0
|
||||
## **[慕乐网络科技(大连)有限公司, MoolsNet](https://www.mools.net/)**
|
||||
|
||||

|
||||
|
||||
### 说明
|
||||
|
||||
本软件包是基于计算机视觉的AI滴定控制装置的示例程序,用于演示如何使用计算机视觉技术进行滴定控制。它包括了滴定控制程序和权重训练程序。
|
||||
### 软件包内容
|
||||
- **Auto_Ctrl**:滴定控制程序,包含控制滴定管的开度和注射泵两种控制方式的原始程序。
|
||||
- **Picture_Train**:权重训练程序,用于训练神经网络模型。
|
||||
- **MAT_1.2.2_exe可执行文件**:exe版本有界面ui的程序(网盘链接和说明)。
|
||||
|
||||
### 常见问题请参见:[常见问题汇总](https://docs.qq.com/doc/DWmxGckJNdU1yTWhC)
|
||||
|
||||
### 使用前的准备
|
||||
|
||||
- 计算机硬件:一台计算机,至少需要安装Windows操作系统。
|
||||
- 软件依赖:本软件包需要安装Python、PyCharm,建议安装Anaconda、CUDA、cuDNN等软件。
|
||||
- 软件依赖:使用前请先安装ch340驱动,否则无法识别COM串口。
|
||||
- 软件依赖:使用前请按照requirements.txt文件安装依赖项。
|
||||
- 硬件测试:使用前请先使用电机控制板的按键测试电机是否正常。
|
||||
- 硬件准备:注射泵版本使用前请先将注射泵活塞手动(按键)移动到注射器体积归零位置。
|
||||
- 硬件准备:蠕动泵版本使用前请先将蠕动泵活塞手动(按键)控制到液体充满管子。
|
||||
- 硬件准备:基础(滴定管)版本使用前请先调节好滴定管活塞初始位置和开启时的角度速度。
|
||||
|
||||
### 本软件推荐使用的软件及其版本为:
|
||||
|
||||
### [Python3.10.11(64-bit)](https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe)
|
||||
[Python3.10.11(32-bit)](https://www.python.org/ftp/python/3.10.11/python-3.10.11.exe)
|
||||
[Python 安装教程(新手)-CSDN博客](https://blog.csdn.net/qq_45502336/article/details/109531599)
|
||||
|
||||
### [PyCharm](https://www.jetbrains.com/pycharm/download/?section=windows#section=windows)
|
||||
注意请下载社区板(PyCharm Community Edition),不要下载专业版(PyCharm Professional Edition),专业版需要付费。
|
||||
[PyCharm 安装教程-CSDN博客](https://blog.csdn.net/qq_44809707/article/details/122501118)
|
||||
|
||||
### [Anaconda](https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Windows-x86_64.exe)
|
||||
[最新 Anaconda3 的安装配置及使用教程-CSDN博客](https://blog.csdn.net/qq_43674360/article/details/123396415)
|
||||
[在 PyCharm 中配置使用 Anaconda 环境-CSDN博客](https://blog.csdn.net/TuckX/article/details/115681862)
|
||||
|
||||
### [CUDA](https://developer.nvidia.com/cuda-toolkit-archive)
|
||||
[cuDNN](https://developer.nvidia.com/cudnn-downloads)
|
||||
[CUDA安装教程](https://blog.csdn.net/m0_45447650/article/details/123704930)
|
||||
[如何使用CUDA编译Torch](htts://blog.csdn.net/qq_46941656/article/details/119701547)
|
||||
|
||||
注:我们写了一个简单的安装流程文档 **简易版_CUDA_cuDNN_和_PyTorch-GPU_安装流程.pdf** ,放在了本软件包的根目录下,有需要的可以下载使用
|
||||
|
||||
这个软件包提供的是基础程序,理论上大家直接执行也可以完成整个滴定控制过程,但是我们还是希望大家可以发挥自己的创造力和奇思妙想,选用不同的控制方式、神经网络等
|
||||
|
||||
### 基于计算机视觉的AI滴定控制装置(AI_Titration)
|
||||
软件包中的示例程序分别放置在3个文件夹中,此外附带了3个说明文件和1份附录文件夹,之所以这样做是比较符合一般常见的Python软件包的模式。
|
||||
|
||||
### Auto_Ctrl
|
||||
**Auto_Ctrl** 文件夹里面包含的是 **滴定控制程序** 和依赖项。本软件包中使用的是COM串口接电机控制板,包含电机控制滴定管开度的“致敬经典”方案、注射泵方案和蠕动泵方案。详情参见此文件夹中的`README.md`文件。
|
||||
|
||||
### Picture_Train
|
||||
**Picture_Train** 文件夹里面包含的是 **权重训练程序** 、训练集、测试集以及依赖项。本软件包中使用的是Resnet34网络的训练程序。详情参见此文件夹中的`README.md`文件。
|
||||
|
||||
### pths
|
||||
**pths** 文件夹包含了现有的神经网络模型训练后得到的权重文件,后续新增的权重文件也会逐步更新,文件名将尽量以实验内容+Net命名
|
||||
|
||||
### LICENSE
|
||||
**LICENSE** 此文件包含了项目的许可协议。这告诉用户和其他开发者他们如何使用、修改和分发代码。Python包通常使用开源许可协议,如MIT、BSD、Apache 2.0或GPL等。在 LICENSE 文件中,包含完整的许可协议文本,确保用户明确了解他们使用代码的权利和义务。
|
||||
|
||||
### README.md
|
||||
**README.md** 此文件是项目的文档说明,它向用户提供了关于项目的详细信息。README 文件通常以Markdown格式编写(文件扩展名为 .md),这样它可以在GitHub等平台上以易于阅读的格式呈现。在PyPI上发布包时,README 文件的内容也可以作为项目的长描述显示。
|
||||
|
||||
### requirements.txt
|
||||
**requirements.txt** 文件在Python项目中扮演着非常重要的角色。它主要用于列出项目运行所需的所有外部Python包及其版本号。这个文件的主要目的是确保项目的依赖环境可以在不同的环境中被一致地重现,无论是开发环境、测试环境还是生产环境。
|
||||
|
||||
当你使用pip(Python的包管理工具)时,可以通过requirements.txt文件来安装项目所需的所有依赖包。具体方法参见:[常见问题汇总](https://docs.qq.com/doc/DWmxGckJNdU1yTWhC)
|
||||
|
||||
### 简易版_CUDA_cuDNN_和_PyTorch-GPU_安装流程.pdf
|
||||
**简易版_CUDA_cuDNN_和_PyTorch-GPU_安装流程.pdf** 是一份详细的安装流程文档,详细介绍了如何在Windows系统上安装CUDA、cuDNN和PyTorch-GPU。这份文档旨在帮助用户快速、轻松地完成CUDA、cuDNN和PyTorch-GPU的安装,以便在GPU上运行深度学习模型。
|
||||
|
||||
最后介绍一下软件包里附带的两个驱动
|
||||
|
||||
### ch340驱动官网下载
|
||||
**ch340驱动官网下载** 文件夹里放的exe文件是USB转TTL串口工具的驱动,安装完成后重启电脑,即可在设备管理器里面查看该通讯模块的串口号
|
||||
|
||||
### sscom32
|
||||
**sscom32** 文件夹里面是串口调试工具
|
||||
|
||||
视频教程可以参考assets文件夹内的两个视频
|
||||
|
||||
串口指令如下
|
||||
|
||||

|
||||
|
||||
### 更多问题请参见:[常见问题汇总](https://docs.qq.com/doc/DWmxGckJNdU1yTWhC)
|
||||
|
@ -1,15 +1,11 @@
|
||||
import torch
|
||||
from PIL import Image
|
||||
import torchvision.transforms as transforms
|
||||
import cv2
|
||||
import time
|
||||
import os
|
||||
from model import resnet34
|
||||
import serial
|
||||
from datetime import datetime
|
||||
import numpy as np
|
||||
import joblib
|
||||
import json
|
||||
import Find_COM
|
||||
from threading import Thread
|
||||
import atexit
|
||||
@ -198,37 +194,6 @@ class MAT:
|
||||
else:
|
||||
return "colored"
|
||||
|
||||
def predictor(self, im_file): # 预测分类
|
||||
image = Image.open(im_file)
|
||||
data_transform = transforms.Compose([
|
||||
transforms.Resize(256),
|
||||
transforms.CenterCrop(224),
|
||||
transforms.ToTensor(),
|
||||
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
|
||||
])
|
||||
img = data_transform(image)
|
||||
img = torch.unsqueeze(img, dim=0)
|
||||
with open(self.json_path, "r") as f:
|
||||
class_indict = json.load(f)
|
||||
|
||||
model = resnet34(num_classes=self.classes).to(self.device)
|
||||
|
||||
assert os.path.exists(self.weights_path), "file: '{}' dose not exist.".format(self.weights_path)
|
||||
model.load_state_dict(torch.load(self.weights_path, map_location=self.device))
|
||||
|
||||
model.eval()
|
||||
with torch.no_grad():
|
||||
output = torch.squeeze(model(img.to(self.device))).cpu()
|
||||
predict = torch.softmax(output, dim=0)
|
||||
predict_cla = torch.argmax(predict).numpy()
|
||||
|
||||
class_a = "{}".format(class_indict[str(predict_cla)])
|
||||
prob_a = "{:.3}".format(predict[predict_cla].numpy())
|
||||
prob_b = float(prob_a)
|
||||
print('class_:',class_a)
|
||||
print('prob_:',prob_b)
|
||||
return class_a, prob_b
|
||||
|
||||
def __del__(self):
|
||||
self.pump_ser.close()
|
||||
self.cap.release()
|
||||
|
@ -4,7 +4,6 @@ torch
|
||||
Pillow
|
||||
scikit-learn
|
||||
opencv-python
|
||||
pyautogui
|
||||
pyserial
|
||||
scipy
|
||||
paddlepaddle
|
||||
|
38
setup.py
38
setup.py
@ -1,38 +0,0 @@
|
||||
# Copyright (c) 慕乐网络科技(大连)有限公司(MoolsNet Inc.) and affiliates.
|
||||
# All rights reserved.
|
||||
|
||||
# This source code is licensed under the license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name='Automatic_Titration_Control',
|
||||
version='1.0',
|
||||
packages=find_packages(),
|
||||
include_package_data=True, # 确保您有MANIFEST.in文件来指定要包含的文件
|
||||
install_requires=[
|
||||
'tensorflow',
|
||||
'numpy',
|
||||
'torch',
|
||||
'Pillow',
|
||||
'scikit-learn',
|
||||
'opencv-python',
|
||||
'pyautogui',
|
||||
'pyserial'
|
||||
],
|
||||
# 其他有用的元数据选项
|
||||
description='A package for reporting similar items', # 简短的描述
|
||||
long_description=open('README.md').read(), # 如果存在README.md文件,可以读取其内容作为长描述
|
||||
long_description_content_type='text/markdown', # 如果README.md是Markdown格式,请指定内容类型
|
||||
author='慕乐网络科技(大连)有限公司(MoolsNet Inc.)', # 作者或组织名
|
||||
author_email='moolsnet@126.com', # 作者的电子邮件地址
|
||||
classifiers=[ # 分类信息,帮助用户了解包
|
||||
'Development Status :: 3 - Alpha', # 这表示项目目前处于开发阶段,并且是Alpha版本。Alpha版本通常意味着软件的功能尚未完整,可能包含严重的错误,不适合生产环境使用。
|
||||
'Intended Audience :: Developers', # 这表示项目主要面向开发者。这意味着包可能包含一些高级功能或API,主要用于构建其他软件,而不是直接面向最终用户
|
||||
'Topic :: Software Development :: Build Tools', # 这表示项目是关于软件开发,特别是构建工具的。这告诉用户包可能用于自动化构建过程、管理依赖关系或其他与软件构建相关的任务。
|
||||
'License :: OSI Approved :: MIT License', # 这表示项目使用MIT许可证。MIT许可证是一种非常宽松的开源许可证,允许用户自由地使用、修改和分发代码,但通常要求他们保留原始版权和许可信息。
|
||||
'Programming Language :: Python :: 3.10', #这表示项目是用Python编写的,并且支持Python 3.10版本。这告诉用户他们需要有Python 3.10环境来运行代码。
|
||||
# 其他分类...
|
||||
],
|
||||
)
|
6
更新日志.txt
6
更新日志.txt
@ -1,6 +0,0 @@
|
||||
update @ 2025/03/13
|
||||
1.添加可执行文件网盘链接
|
||||
2.更新Readme文件
|
||||
|
||||
update @ 2025/1/13
|
||||
1.添加注射泵版本程序
|
Binary file not shown.
BIN
说明书v1.2.pdf
BIN
说明书v1.2.pdf
Binary file not shown.
Reference in New Issue
Block a user