2021-04-11

2021第一次·学习报告

1.pyqt页面设计

详细参考
http://www.python3.vip/tut/py/gui/qt_03/

https://blog.csdn.net/u012577474/article/details/103626606?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161691921916780357246876%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161691921916780357246876&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-4-103626606.first_rank_v2_pc_rank_v29&utm_term=pyqt%E9%80%89%E6%8B%A9%E5%9B%BE%E7%89%87

#简单的例子模板
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * #导入 PyQt5.QtWidgets 中的所有部件
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QMainWindow

def openimage():

    imgName, imgType = QFileDialog.getOpenFileName()
    jpg = QtGui.QPixmap(imgName).scaled(label.width(), label.height())
    label.setPixmap(jpg)

app = QApplication([])

window = QMainWindow()
window.resize(1200, 600)
window.move(300, 310)
window.setWindowTitle('分割图像')

label = QLabel(window)
label.move(10,80)
label.resize(320,320)

button = QPushButton('RUN', window)
button.move(500,20)
button.clicked.connect(openimage)

2.python打包成exe文件

首先,我们需要安装一个叫pyinstaller的库,方法是在命令行中运行:

pip install pyinstaller

(1)-F生成exe

#示例 带黑框

pyinstaller -F C:\Users\LX\AppData\Local\Programs\Python\Python37-32\学习用.py

(2)-F -w生成exe

我们可以看到,后面有一个黑洞洞的窗口,这就有点尴尬了,所以,我们的打包命令也要变一下。执行 pyinstaller -F -wsetup.py 多加-w以后,就不会显示控制台.

(3)-F -w -i生成exe(ico改图标)

3.OpenVino 的安装及配置

建议安装顺序:

  1. Microsoft Visual Studio* with C++ 2019, 2017, or 2015, with MSBuild

2.Build Tools for Microsoft Visual Studio

  1. Python 3.6.5

  2. CMake 3.4 or higher

  3. Intel® Distribution of OpenVINO™ toolkit core components (需要注册)

详细参考

https://zhuanlan.zhihu.com/p/65419817

https://blog.csdn.net/heiheiya/article/details/91387199?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

4.图像分割U2NET网络模型理解及其他
(1)
参考
https://blog.csdn.net/ling620/article/details/110127019?ops_request_misc=&request_id=&biz_id=102&utm_term=u2net&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-110127019.nonecase
2021-04-11_第1张图片

总结(个人理解 或许有误):u-2-net对称,每一层的左右(左边是En,就是encoder,编码器,右边是De,就是decoder,解码器),这两个其实就是一个小的u-net,一共有6个小u-net,在u-net上加u-net,所以叫u-2-net. U2net网络使用的是经典的解码器结构,整体是通过五次下采样和五次上采样,只有对称。U形右边是将左边的输出得到的图片特征进行上采样,通过大小相同的输出特征相互融合然后解码器通过卷积网络输出得到分割出图像。U形左边是通过五次下采样提取特征
2021-04-11_第2张图片

每个En_x使用RSU模块,RSU模块的作用是获得在不同阶段的多尺度特征,RSU模块是七层,RSU模块大致是(文章里的摘要下来)(1)输入的卷积层,将输入的特征图转为和输出相同的通道数的中间映射用于局部特征提取(2)一种高度为L的对称式编解码结构,将中间映射作为输入,提取和学习多尺度的语义信息(3)用于融合局部特征和所尺度特征的残差结构 。(我的通俗理解为)通过多次卷积层和池化然后融合,我认为跟FCN结构一样.(?) U形右边是将左边的输出得到的图片特征进行上采样,通过大小相同的输出特征相互融合然后解码器通过卷积网络输出得到分割出图像。

每一个En_x处理完后再进行整体的卷积池化,对于每一个RSU来说,本质其实就是一个Unet,多个下采样多个上采样输出六个Sup, 6个blovk cat一起之后做特征融合,然后再做输出,结果就是d0的结果,其他的输出都是为了计算loss(side就是每一个小u-net的输出,把这6个加起来就是结果,loos也一共有7个,6个小u-bet的loss还有一个加起来再计算的loss)

其他:然后再把U2net代码生成onnx然后再IR中间模型就是xml和bin文件,然后再加入那个模板里,模板里还要加上前处理和后处理函数,最后实现界面

(2)onnx模型转换成IR中间模型

参考

https://blog.csdn.net/dujuancao11/article/details/114540289

https://blog.csdn.net/gcf_uinque/article/details/105827378

2021-04-11_第3张图片

你可能感兴趣的:(深度学习,python)