截止12.17 bitahub踩坑,mask无数次更改,lama代码的那些痛,羊了个羊,imwrite不生效

前面那篇跑出了STCN,倒是STCN熟悉了很多了

对bitahub,需要注意一个问题

要进ssh请用debug卡!!!!
要进ssh请用debug卡!!!!
要进ssh请用debug卡!!!!

12.13

小杜帮我把lama的docker配好了,于是愉快地跑lama
(这个时候觉得bitahub是真不太好用,大文件传不上去,每次都得进ssh自己往上传,还有三小时的限制)

但是发现这个lama的效果真是糟糕

在这里插入图片描述
后来询问了学长,哦哦蒙层要是白色的才能覆盖他rgb三个通道

12.14

改蒙层颜色了,还写了python代码

一开始写的是只要rgb通道有一个大于60,就把这个地方改成白色

也挺成功的

后来学长告诉我其实这个代码已经写好了,还贴心地写了readme,但是我没有看到呜呜

包括dilation(感觉是让边缘不要那么糊)和closing(去mask中的洞洞的)
还有一个把mask蒙在原图片上看效果的

一个注意点:千万要把蒙层完全蒙在图片上,宜大不宜小

否则LAMA会觉得这是一个背景
在这里插入图片描述

在这里插入图片描述
学长可能最近比较忙,没有回我


import argparse
import numpy as np
import glob
import os
import scipy.ndimage


def main(args):
    views, masks, output, mask_output = args.views, args.masks, args.output, args.mask_output
    dilation = args.dilation
    views = sorted(glob.glob(os.path.join(views, '*.png')))
    masks = sorted(glob.glob(os.path.join(masks, '*.png')))
    if not os.path.exists(output):
        os.makedirs(output)
    if not os.path.exists(mask_output):
        os.makedirs(mask_output)
    assert len(views) == len(masks)
    for i in range(len(views)):
        view = cv2.imread(views[i])
        mask = cv2.imread(masks[i])
        mask = mask / 255.
        mask_single = np.sum(mask, axis=2, keepdims=True)
        mask_single[mask_single > 0] = 1
        # dilation
        if dilation > 0:
            mask_single = scipy.ndimage.binary_dilation(mask_single, iterations=dilation)
        # closing
        mask_single = cv2.morphologyEx(mask_single.astype(np.uint8), cv2.MORPH_CLOSE, np.ones((21, 21), np.uint8))
        mask_single = scipy.ndimage.binary_fill_holes(mask_single)
        if len(mask_single.shape) == 2:
            mask_single = mask_single[:, :, np.newaxis]
        view = view * (1 - mask_single)
        out_path = os.path.join(output, '{:05d}.png'.format(i))
        out_mask_path = os.path.join(mask_output, '{:05d}.png'.format(i))
        cv2.imwrite(out_path, view)
        cv2.imwrite(out_mask_path, mask_single * 255.)

        
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--views', type=str)
    parser.add_argument('--masks', type=str)
    parser.add_argument('--dilation', type=int, default=5)
    parser.add_argument('--output', type=str)
    parser.add_argument('--mask_output', type=str)
    args = parser.parse_args()
    main(args)

12.16

同居人羊了,照顾了一天

忙中还是偷闲了一会
先是小杜的服务器羊了,哎!
在这里插入图片描述
后来小杜说应该是因为换线路了,更新了一下就好了

下午忙到两点,还出现了梦魇
小杜说我是吓的,瑶瑶说可能是压力太大了
在这里插入图片描述
有人陪伴真幸福呀

在这里插入图片描述

下午代理阳了
在这里插入图片描述
晚上其实有点小不舒服,不知道是不是羊了,反正感觉有点发冷

开始不想看代码了,找小杜debug(实际上应该没有bug,只是我确实没有看懂)

小杜还在上课,害

在这里插入图片描述
头晕乎乎不想看手机只想听语音
在这里插入图片描述
虽然emmm一直烦小杜不太好

but:
在这里插入图片描述
所以就不喜勿喷了。

找小马驹点歌《东西》
在这里插入图片描述
唱的真的很不错
听了好几遍哈哈哈

在这里插入图片描述
不知道第二天状态怎么样,今天就这样吧

在这里插入图片描述

12.17

sample view原来是为了得到采样后的depth,意思是我原来有了depth进行采样,而不是得到depth。。。

那问题来了,depth怎么得到呢。
问了kd学长:

我记得“”只要…就…"不是这么用的:
在这里插入图片描述

学长帮我把他的代码下载下来了呜呜感动
在这里插入图片描述
这个先不管,我得抽帧。nerf得到的视频本来就120帧的,需要抽成120个图片

这个代码应该有用
文件结构是

  • video
    • vedio1.mp4
    • vedio2.mp4
#coding=utf-8
import cv2
import os
#/content/drive/MyDrive/实验室任务/nerf/logs/fern_example/vedio
path = '/content/drive/MyDrive/实验室任务/nerf/vedio'
video_list = os.listdir(path)
for video in video_list:
    video_path = os.path.join(os.getcwd(),path,video)
    vc=cv2.VideoCapture(video_path)
    if vc.isOpened():
        rval,frame=vc.read()
    else:
        rval=False

    c =1
    while rval:
        rval,frame=vc.read()
        if rval==False:
        	break
        cv2.imwrite('/content/drive/MyDrive/实验室任务/nerf/vedio/video2img/'+str(video)+str(c)+'.jpg',frame)
        print(c)
        c=c+1
        cv2.waitKey(1)
    vc.release()

但是我明明规定了保存的路径也没见着他保存在哪
在这里插入图片描述
反正试过了没有用

上服务器跑
在这里插入图片描述
haha
关键我还装不上!!!!!
在这里插入图片描述
说来你可能不信,我抽了一下午的帧

不错,bitahub,好用!
在这里插入图片描述

学聪明了,知道复制一份新的,这样下载整个文件夹就行啦
在这里插入图片描述

明天研究研究学长说的depth了

跑了个lama
在这里插入图片描述

后来
后来发现多加了个下划线。。。。。蠢哭了
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值