一、MODNET
仓库地址:https://github.com/ZHKKKe/MODNet
模型下载地址:https://drive.google.com/drive/folders/1umYmlCulvIFNaqPjwod1SayFmSRHziyR
Segmentation: 常被认为是硬分割(Hard Segmentation),就是将图片中的像素分成多个类别,如果是前背景分割,那么就是分成两个类别,一个类别代表前景,一个类别代表背景。而分割的二值性(即0和1)导致前景边界周围出现严格边界,留下可见的不好效果,解决了部分透明度和前景问题,对第二帧的合成更有利,分割属于分类任务。
Matting: 也是一类前背景分割问题,但是matting不是硬分割,而是软分割(Soft Segmentation),像玻璃、头发这类前景,对应像素点的颜色不只是由前景本身的颜色决定,而是前背景颜色融合的结果,matting问题的目标就是,找出前背景颜色,以及它们之间的融合程度,以便于将前景合并到新的背景上,matting属于回归任务。
参考原文:https://blog.csdn.net/qq_46675545/article/details/123738493
1.1 导出ONNX
# 进入Pytorch环境,导出为ONNX
pip install onnxsim
python -m torch2onnx.export ./weights/modnet_webcam_portrait_matting.ckpt ./weights/webcam.onnx
python -m torch2onnx.simplify ./weights/webcam.onnx ./weights/webcam_sim.onnx
1.2 build engine 及运行
# 进入TensorRT环境,CMAKE构建程序
# build engine
./build/build --onnx_file ./weights/webcam_sim.onnx
# 处理视频
# 只留下前景
./build/modnet_test --modnet ./weights/photo_sim.engine --vid_dir videos --format foreground
# 只留下抠图蒙版
./build/modnet_test --modnet ./weights/photo_sim.engine --vid_dir videos --format matte
# 混合背景图
./build/modnet_test --modnet ./weights/photo_sim.engine --vid_dir videos --format background --bg ./videos/bg.jpg
# 也可以对比一下另一个模型
./build/modnet_test --modnet ./weights/webcam_sim.engine --vid_dir videos --format foreground
1.3 Jetson部署
构建、build engine、运行。