1. 程式人生 > >Caffe-Windows + FCN進行影象語義分割

Caffe-Windows + FCN進行影象語義分割

一:目的

利用上篇文章編譯好的python介面,採用FCN(Caffe版本)進行影象分割;

二:影象語義分割

1. 環境準備

(1) Caffe-Windows的python介面編譯,可參見上篇博文

(2) 下載FCN原始碼。作者在github上開源了程式碼,直接下載即可。下載完成後,將其解壓進caffe-windows目錄下,如下圖所示(在這裡我將其重名為了fcn-master)。


(3)下載預訓練權重。進入caffe-windows\fcn-master\voc-fcn8s目錄,開啟caffemodel-url檔案,下載其中所對應的fcn8s-heavy-pascal.caffemodel,並將其放在caffe-windows\fcn-master\voc-fcn8s目錄下。同理分別在caffe-windows\fcn-master\voc-fcn16s和caffe-windows\fcn-master\voc-fcn32s目錄下下載對應的caffemodel。

2. voc-fcn8s測試

(1) 拷貝caffe-windows\fcn-master\infer.py進caffe-windows\fcn-master\voc-fcn8s資料夾,並重命名為infer_fcn8s.py

(2) 修改infer_fcn8s.py為如下

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

import caffe

# load image, switch to BGR, subtract mean, and make dims C x H x W for Caffe
im = Image.open('data/tabby_cat.png')
in_ = np.array(im, dtype=np.float32)
in_ = in_[:,:,::-1]
in_ -= np.array((104.00698793,116.66876762,122.67891434))
in_ = in_.transpose((2,0,1))

# load net
net = caffe.Net('deploy.prototxt', 'fcn8s-heavy-pascal.caffemodel', caffe.TEST)
# shape for input (data blob is N x C x H x W), set data
net.blobs['data'].reshape(1, *in_.shape)
net.blobs['data'].data[...] = in_
# run net and take argmax for prediction
net.forward()
out = net.blobs['score'].data[0].argmax(axis=0)

plt.imshow(out,cmap='gray');
plt.axis('off')
plt.savefig('data/tabby_cat_result.png')
#plt.show()
其中,主要修改了im路徑(測試影象路徑),net(包括deploy.prototxt和caffemodel)和plt.savefig(結果影象儲存路徑)

在這裡,測試影象用的是tabby_cat,如下所示

在命令列視窗中cd進caffe-windows\fcn-master\voc-fcn8s目錄,並輸入python1 infer_fcn8s.py(關於python介面編譯可以參見上一篇博文),執行結束後,會在caffe-windows\fcn-master\voc-fcn8s\data目錄下生成分割後的影象,如下圖所示


3. voc-fcn16s和voc-fcn32s測試

這兩部分的測試與voc-fcn8s基本相同,唯一的區別是在caffe-windows\fcn-master\voc-fcn16s和caffe-windows\fcn-master\voc-fcn32s資料夾下,並沒有deploy.prototxt檔案,我們可以通過改寫train.prototxt檔案的方式得到deploy.prototxt。

在改寫train.prototxt得到train.prototxt的過程中,需要修改的地方有以下三個

(1) 修改輸入層


(2) 去掉dropout層

(3)去掉最後一層

如果覺得麻煩,可以下載我生成好的deploy.prototxt檔案,連結:https://pan.baidu.com/s/1bpVvSF9 密碼:kb9y

測試完成後,按照上述步驟執行,即可得到分割後的影象。

4. 對比

(1)voc-fcn32s結果

(2)voc-fcn16s結果


(3) voc-fcn8s結果


可以看出來,上取樣方式的不同,對結果造成的影響還是挺明顯的!

finished! enjoy!

參考:

相關推薦

Caffe-Windows + FCN進行影象語義分割

一:目的 利用上篇文章編譯好的python介面,採用FCN(Caffe版本)進行影象分割; 二:影象語義分割 1. 環境準備 (1) Caffe-Windows的python介面編譯,可參見上篇博文。 (2) 下載FCN原始碼。作者在github上開源了程式碼

keras版FCN網路進行影象語義分割--使用VOC2012資料

原始碼下載:https://github.com/aurora95/Keras-FCN 下載FCN的原始碼,安裝完畢後,下載資料集VOC 2012和MS COCO。 使用按下ctrl+h組合掉出Li

使用全卷積神經網路FCN進行影象語義分割詳解(附程式碼實現)

一.導論 在影象語義分割領域,困擾了電腦科學家很多年的一個問題則是我們如何才能將我們感興趣的物件和不感興趣的物件分別分割開來呢?比如我們有一隻小貓的圖片,怎樣才能夠通過計算機自己對影象進行識別達到將小貓和圖片當中的背景互相分割開來的效果呢?如下圖所示:      而在2015年

影象語義分割(5)-DeepLabV2: 使用深度卷積網路、空洞卷積和全連線條件隨機場進行影象語義分割

論文地址 :DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs 論文程式碼:工程連結 1. 簡介   Dee

影象語義分割(2)-DeepLabV1: 使用深度卷積網路和全連線條件隨機場進行影象語義分割

論文地址:SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED CRFS 論文程式碼: 工程連結1 工程連結2 1. 提出問題   首先明確一個概念-high level task

使用FCN影象語義分割(實踐篇)

http://blog.csdn.net/gavin__zhou/article/details/52142696 FCN原理 原理我已經在上篇部落格說過,大家可以參考FCN原理篇 程式碼 FCN有官方的程式碼,具體地址是FCN官方程式碼 不過我用的不是這個程式碼,我

影象語義分割FCN和CRF

前言 (嘔血製作啊!)前幾天剛好做了個影象語義分割的彙報,把最近看的論文和一些想法講了一下。所以今天就把它總結成文章啦,方便大家一起討論討論。本文只是展示了一些比較經典和自己覺得比較不錯的結構,畢竟這方面還是有挺多的結構方法了。 介紹 影象語義分

影象語義分割(3)-Dilated Conv:使用空洞卷積進行多尺度語義聚合

論文地址: MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS 論文程式碼: github連結-caffe ; github連結-tf 1.論文思想   傳統分類網路通過連續的pooling或者其他下采樣層來整合多尺度上

影象語義分割(1)-FCN:用於語義分割的全卷積神經網路

論文地址:Fully Convolutional Networks for Semantic Segmentation [Long J , Shelhamer E , Darrell T . Fully Convolutional Networks for Semantic Segmen

Recorder︱影象語義分割FCN、CRF、MRF)、論文延伸(Pixel Objectness、)

影象語義分割的意思就是機器自動分割並識別出影象中的內容,我的理解是摳圖… 之前在Faster R-CNN中借用了RPN(region proposal network)選擇候選框,但是僅僅是候選框,那麼我想提取候選框裡面的內容,就是影象語義分割了。

FCN影象語義分割

歡迎訪問人工智慧研究網課程中心 -----------------------------------------------------------------------------------

影象語義分割技術

https://www.leiphone.com/news/201705/YbRHBVIjhqVBP0X5.html 大多數人接觸 “語義” 都是在和文字相關的領域,或語音識別,期望機器能夠識別你發出去的訊息或簡短的語音,然後給予你適當的反饋和回覆。嗯,看到這裡你應該已經猜到了,影象領域也是存

基於深度學習的影象語義分割技術概述之4常用方法 5.4未來研究方向

https://blog.csdn.net/u014593748/article/details/72794459 本文為論文閱讀筆記,不當之處,敬請指正。 A Review on Deep Learning Techniques Applied to Semantic Segmen

影象語義分割文章彙總(附論文連結和公開程式碼)

吶,我也是做影象分割的啦,最近看到有大佬整理了影象分割方面最新的論文,覺得很有幫助,就轉載過來了,感覺又有很多要學的內容了。   Semantic Segmentation Adaptive Affinity Field for Sem

影象語義分割】Semantic Segmentation Suite in TensorFlow---GitHub_Link

Semantic Segmentation Suite in TensorFlow News What's New Added the BiSeNet model from ECCV 2018! Added the Dense Decoder Shor

基於深度學習的影象語義分割演算法綜述(截止20180715)

這篇文章講述卷積神經網路在影象語義分割(semantic image segmentation)的應用。影象分割這項計算機視覺任務需要判定一張圖片中特定區域的所屬類別。 這個影象裡有什麼?它在影象中哪個位置? 更具體地說,影象語義分割的目標是將影象的每個畫素所

使用深度學習技術的影象語義分割最新綜述

http://abumaster.com/2017/07/10/%E4%BD%BF%E7%94%A8%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%8A%80%E6%9C%AF%E7%9A%84%E5%9B%BE%E5%83%8F%E8%AF

Caffe windows進行(微調)fine-tune 模型

小菜最近一直在學習caffe。今天小菜主要介紹一下如何在Caffe上微調網路(ps:小菜中間也出現了許多問題,不過很感謝網上的一些前輩的無私奉獻),一般比較經典的深度學習模型是別人訓練好的模型,例如分

當前主流的深度學習影象語義分割模型解析

轉載自【量子位】公眾號 QbitAI原文地址:http://www.sohu.com/a/155907339_610300影象語義分割就是機器自動從影象中分割出物件區域,並識別其中的內容。量子位今天推薦的這篇文章,回顧了深度學習在影象語義分割中的發展歷程。釋出這篇文章的Qur

推薦一些用CRF做影象語義分割的資源 此博文包含圖片

(201http://blog.csdn.net/moonzjaw/article/details/46744163http://blog.csdn.net/moonzjaw/article/details/467441632-04-19 17:32:11) (adsbygoo