栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

论文复现与解析(neural holography)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

论文复现与解析(neural holography)

文章目录

项目结构前期准备演示Wave Propagation Model

角谱法(ASM)相机在环校准模型(CITL)

数据集模型的训练测试 Phase Optimization Method

GS算法SGD算法CITL优化算法DPAC算法U-Net优化算法HoloNet模型

数据集模型的训练测试

项目结构

main.py:根据不同的相位优化算法(SGD/GS/DPAC/Holonet/U-net)和模型(ASM/CITL)来生成相位图

eval.py:根据模型(ASM/CITL)来评估相位图和重建图像

main_eval.sh:一个bash脚本,带一个传入参数。首先在RGB通道上根据不同的相位优化算法(SGD/GS/DPAC/Holonet/U-net)执行main.py,然后在RGB通道上根据不同的相位优化算法(SGD/GS/DPAC/Holonet/U-net)执行eval.py

propagation_ASM.py:实现角谱法相关算子

propagation_model.py:定义CITL相关模型

holenet.py:定义HoloNet/U-Net相关模型

algorithms.py:实现相位提取算法(GS/SGD/DPAC)

train_holonet.py:训练HoloNet

train_model.py:训练CITL模型

./data/:测试数据保存位置

./pretrained_networks/:HoloNet/UNet在RGB通道的预训练模型保存位置

./utils/:工具函数实现

utils.pycontains utility functions.

modules.pycontatins PyTorch wrapper modules for easy use of algorithms.pyand our hardware controller.

pytorch_prototyping/submodule contains custom pytorch modules with sane default parameters. (adapted from here)

augmented_image_loader.pycontains modules of loading a set of images.

utils_tensorboard.pycontains utility functions used for visualization on tensorboard.

slm_display_module.pycontains the SLM display controller module. (HOLOEYE SDK)

detect_heds_module_path.pysets the SLM SDK path. Otherwise you can copy the holoeye module directory into your project and import by using import holoeye.

camera_capture_module.pycontains the FLIR camera capture controller module. (PyCapture2 SDK)

calibration_module.pycontains the homography calibration module.

前期准备

代码拷贝

git clone git@github.com:computational-imaging/neural-holography.git

创建虚拟环境(按照environment_windows.yml安装,名字为neural-holography,并安装需要的包)

conda env create -f environment_windows.yml
conda activate neural-holography

问题汇总

 问题:pycapture2安装不了
# 描述:pycapture2是相机拍照的包,可以手动安装
# 解决:进入flycapture skd官网(https://www.flir.cn/products/flycapture-sdk/),
# china->现在下载->...->FlyCapture2->Windows->Python->PyCapture2-2.13.61.win-amd64-py3.6.msi下载

问题:holoeye python sdk没有安装
# 描述:官网上的sdk需要设备、账号才能下载,而且下载不下来
# 解决:用1.0版本的python sdk安装(代理商给的),并且改一下环境变量的名字(HEDS_2_PYTHON_MODULES、HEDS_2_PYTHON)

问题:某些modules没有、找不到
# 描述:不知道为什么
# 解决:使用pip install **安装

问题:pytorch_prototyping下的文件没有、找不到
# 描述:该文件夹下的代码不是本论文作者写的
# 解决:去github上找到该文件单独拷贝下来,然后粘贴到相应的文件夹下

问题:pretrained_networks下模型打不开
# 描述:需要解压
# 解决:解压文件夹,将解压后的文件夹内容放到pretrained_networks下

问题:cuda存储空间不够
# 描述:代码使用GPU加速,显存不够或者batchsize太大
# 解决:增大显存或者改小batchsize

问题:import torch 报错[winerror 182]load error:......caffe2_detectron_ops_gpu.dll...
# 描述:不知道为什么,可能是python、torch、cudatoolkit或者其他包之间的版本兼容性问题,或者是多次import torch(本文件、其他文件、import 其他文件(应该不是这个:我直接import torch也会报错))
# 可能解决:1. 删掉这些dll文件
# 2. pip install intel-openmp
# 3. 尝试降低torch及依赖的版本到torch==1.4.0,但是存在问题: fft模块在torch新旧版本不同,torch1.4.0不支持complex操作,
# 4. 尝试将所有包安装默认版本(删掉environment_windows.yml中指定版本的部分)/安装python3.7/3.8,存在问题:错误依旧、某些第三方包(pycapture2)只支持到python3.6
# 5. 尝试观察代码内部的问题,注意到:在python命令行交互模式下import torch和训练holonet时会报上述错误,但是一开始做相位优化和重建时,同样import torch却没有报错,这是什么意思呢?尝试在train_holonet.py下观察代码,发现文件内调用了torch但是import torch是灰色的。从这点出发可能找到问题所在
# 解决?:删掉灰色部分,重新运行代码,正常跑起来了(环境仍然和environment_windows.yml中一致)

更新:2022.2.26 import torch报错的问题
1. 怀疑是FlyPyCapture2包和其他包之前不相互兼容或者依赖存在问题:我按照environment_windows.yml文件创建环境但是不安装PyCapture2,此时import torch是正常的,但是安装了PyCapture2之后出现上述错误
2. 暂时不使用相机的相关功能,代码运行正常(不安装PyCapture2)
3. 使用pytorch==1.4,作者在readme中讲使用utils/tuils.py的复数功能,但是不知道如何做
4. 或许等到相机来了之后,情况会不一样?
5. 使用Ubuntu?还没去做试验
演示

Wave Propagation Model 角谱法(ASM) 相机在环校准模型(CITL) 数据集 模型的训练 测试 Phase Optimization Method GS算法

测试:python main.py --channel=0 --method=GS --root_path=./phases SGD算法

测试:

SGD with ASM(Gradient Descent):python main.py --channel=0 --method=SGD --root_path=./phasesSGD with CITL(Gradient Descent):python main.py --channel=0 --method=SGD --prop_model='MODEL' --prop_model_dir=YOUR_MODEL_PATH --root_path=./phases CITL优化算法

测试:python main.py --channel=0 --method=SGD --citl=True --root_path=./phases DPAC算法

测试:python main.py --channel=0 --method=DPAC --root_path=./phases U-Net优化算法

测试:python main.py --channel=0 --method=UNET --root_path=./phases --generator_dir=./pretrained_networks HoloNet模型 数据集

Phase pattern(Generated by iterative algorithm) + Target intensity image 模型的训练 测试

Training with ASM:python train_holonet.py --perfect_prop_model=True --run_id=my_first_holonet --batch_size=4 --channel=0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号