1. 程式人生 > >如何上手深度學習中的影象處理?有這個程式碼資源庫就夠了

如何上手深度學習中的影象處理?有這個程式碼資源庫就夠了

仙女為大家整理的程式碼資源庫,收集了大量深度學習專案影象處理領域的程式碼連結。包括影象識別,影象生成,看圖說話等等方向的程式碼,所有程式碼均按照所屬技術領域建立索引,以便大家查閱使用。

2.1 影象生成 
2.1.1 繪畫風格到圖片的轉換:Neural Style 
2.1.2 影象類比轉換:image-analogies 
2.1.3 根據塗鴉生成圖片:Neural Doodle 
2.1.4 匹根據塗鴉類比圖片:Sketchy 
2.1.5 根據圖片生成鉛筆畫:Pencil 
2.1.6 手寫文字模擬:rnnlib 
2.1.7 轉換風景圖片:Transient Attributes for High-Level Understanding and Editing of Outdoor Scenes 
2.1.8 圖片變Emojis表情:What emojis will the Emojini 3000 grant your photos? 
2.1.9 增加圖片解析度:srez 
2.1.10 圖片自動上色:Colornet 
2.1.11 生成可愛的動漫頭像:AnimeGAN 
2.1.12 騾子變斑馬:CycleGAN and pix2pix in PyTorch 
2.1.13 強大的影象生成器:DiscoGAN in PyTorch 
2.1.14 使用RNN生成手寫數字:DRAW implmentation 
2.1.15 使用CNN來放大圖片:waifu2x

2.2 看圖說話 
2.2.1 根據圖片生成一段描述:Show and Tell 
2.2.2 根據圖片講故事:neural-storyteller 
2.2.3 根據圖片將故事2:NeuralTalk2 
2.2.4 識別圖片中的文字:CRNN for image-based sequence recognition

2.3 影象識別 
2.3.1 用於物體識別的全卷積網路:PyTorch-FCN 
2.3.2 引入注意力的卷積網路:Attention Transfer 
2.3.3 物體識別例項:Deep-Learning 
2.3.4 物體識別API:Tensorflow Object Detection API 
2.3.5 推理場景結構:SfMLearner 
2.3.6 用於分辨色情影象的open_nsfw 
2.3.7 人臉識別:Open Face 
2.3.8 易用人臉識別:Face_recognition 
2.3.9 快速人臉識別:MobileID 
2.3.10 影象識別框架1:AlexNet & VGG Net & GoogleNet & ResNet 
2.3.11 影象識別框架2:ResNeXt & RCNN & YOLO & SqueezeNet & SegNet 
2.3.12 預訓練的影象識別模型:functional-zoo 
2.3.13 預定義的CNN過濾器: PyScatWave 
2.3.14 計算圖片中物體的相似度:Conditional Similarity Networks (CSNs) 
2.3.15 量子化學中的神經資訊傳遞(・_・;Neural Message Passing for Quantum Chemistry

2.4 影象理解 
2.4.1 Visual Question Answering in Pytorch 
2.4.2 Facebook看圖答題:Clevr-IEP

影象生成

繪畫風格到圖片的轉換:Neural Style

這個專案是用 Torch 對 Leon A. Gatys, Alexander S. Ecker, 和 Matthias Bethge 等人的論文“A Neural Algorithm of Artistic Style”的一個實現。論文中提出一種演算法,用卷積神經網路將一幅影象的內容與另一幅影象的風格進行組合。

影象類比轉換:image-analogies

“神經影象類比”(neural image analogies)這個專案基本上是 A. Hertzmann et. al(2001)的論文“Image Analogies”的一個實現。在這個專案中,我們使用了 VGG16 的特徵,利用 Chuan Li, Michael Wand (2016) 的論文“Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis”中描述的方法進行patch的匹配和混合。初始程式碼改編自 Keras 的“神經風格遷移”示例。

根據塗鴉生成圖片:Neural Doodle

使用深度神經網路把你的二流塗鴉變成藝術一般的作品!這個專案是 Champandard(2016)的論文 “Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks”的一個實現,基於 Chuan Li 和 Michael Wand(2016)在論文“Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis”中提出的 Neural Patches 演算法。

匹根據塗鴉類比圖片:Sketchy

這個專案可以根據使用者手繪的塗鴉,匹配出類似的圖片。

根據圖片生成鉛筆畫:Pencil

把一副影象變成鉛筆水粉畫。

手寫文字模擬:rnnlib

這個專案可以做到手寫文字模擬。

轉換風景圖片:Transient Attributes for High-Level Understanding and Editing of Outdoor Scenes

這個專案可以識別和理解圖片中的風景,並且可以根據使用者提出的條件,定向改變原風景畫中的環境(比如more night)

圖片變Emojis表情:What emojis will the Emojini 3000 grant your photos?

將使用者提供的圖片轉化成相關的表情圖示

增加圖片解析度:srez

srez(super-resolution through deep learning),即通過深度學習實現影象超解析度。這個專案是利用深度學習將 16x16 的影象解析度增加 4 倍,基於用來訓練神經網路的資料集,所得到的影象具有鮮明的特徵。

圖片自動上色:Colornet

Colornet 是一個給灰度影象自動上色的神經網路。

生成可愛的動漫頭像:AnimeGAN

使用PyTorch實現的GAN,可以自定義生成漂亮的動漫妹子頭像,附帶訓練資料集哦!

騾子變斑馬:CycleGAN and pix2pix in PyTorch

圖到圖的翻譯,著名的 CycleGAN 以及 pix2pix 的PyTorch 實現。

強大的影象生成器:DiscoGAN in PyTorch

《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 實現。

使用RNN生成手寫數字:DRAW implmentation

使用RNN生成手寫體數字。

使用CNN來放大圖片:waifu2x

使用CNN來放大圖片,與普通圖片放大不同的是,使用CNN“生成”放大,使低解析度的圖片在放大後也不會出現畫素鋸齒。

看圖說話

根據圖片生成一段描述:Show and Tell

這是 Oriol Vinyals et. al.(2016)的論文“Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge”的用TensorFlow實現的 image-to-text 圖片說明生成模型。

根據圖片講故事:neural-storyteller

Neural-storyteller 是一個能夠根據影象內容生成一個小故事的迴圈神經網路。這個 GitHub 庫裡包含了使用任意影象生成故事的程式碼,以及用於訓練新模型的說明。

根據圖片將故事2:NeuralTalk2

迴圈神經網路(RNN)可以用於給影象取標題。NeuralTalk2 比原始版本的 NeuralTalk 更快而且效能更好。與原來的 NeuralTalk 相比,NeuralTalk2 的實現是批量的,可以使用 Torch 在 GPU上執行,並且支援 CNN 微調。這些都使得語言模型(~100x)的訓練速度大大加快,但由於我們還有一個 VGGNet,因此總體上的提升沒有很多。但是這仍然是個好模型,可以在 2~3 天裡訓練好,而且表現出的效能非常好。

識別圖片中的文字:CRNN for image-based sequence recognition

這個是 Convolutional Recurrent Neural Network (CRNN) 的 PyTorch 實現。CRNN 由一些CNN,RNN和CTC組成,常用於基於影象的序列識別任務,例如場景文字識別和OCR。

影象識別

用於物體識別的全卷積網路:PyTorch-FCN

一個性能出眾的物體識別全卷積神經網路,使用PyTorch實現。

引入注意力的卷積網路:Attention Transfer

論文 "Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer" 的PyTorch實現。

物體識別例項:Deep-Learning

一個基於Ipython Notebook的物體識別例項,使用了Tensorflow Object Dectection API

物體識別API:Tensorflow Object Detection API

Google Tensorflow Object Dectection API 的開原始碼。

推理場景結構:SfMLearner

用單張圖片推理場景結構:UC Berkeley提出3D景深聯合學習方法

用於分辨色情影象的open_nsfw

這是雅虎構建的用於檢測圖片是否包含不適宜工作場所(NSFW)內容的深度神經網路專案,GitHub 庫中包含了網路的 Caffe 模型的程式碼。檢測具有攻擊性或成人內容的影象是研究人員進行了幾十年的一個難題。隨著計算機視覺技術和深度學習的發展,演算法已經成熟,雅虎的這個模型能以更高的精度分辨色情影象。 由於 NSFW 界定其實是很主觀的,有的人反感的東西可能其他人並不覺得如何。雅虎的這個深度神經網路只關注NSFW內容的一種型別,即色情圖片,所以該模型不適用於檢測素描、文字、動畫、暴力圖片等內容。

人臉識別:Open Face

OpenFace 是一個使用深度神經網路,用 Python 和 Torch 實現人臉識別的專案。神經網路模型基於 Google Florian Schroff 等人的 CVPR 2015 論文“FaceNet: A Unified Embedding for Face Recognition and Clustering” ,Torch 讓網路可以在 CPU 或 CUDA 上執行。

易用人臉識別:Face_recognition

這也提供了一個簡單的 face_recognition 命令列工具,你可以開啟命令列中任意影象資料夾,進行人臉識別!

快速人臉識別:MobileID

據說是個超級快速的人臉識別程式,可以用在手機上

影象識別框架1:AlexNet & VGG Net & GoogleNet & ResNet

AlexNet

VGG Ne

GoogleNet

ResNet

影象識別框架2:ResNeXt & RCNN & YOLO & SqueezeNet & SegNet

ResNeXt

RCNN (基於區域的 CNN)

YOLO (You Only Look once)

SqueezeNet

SegNet

預訓練的影象識別模型:functional-zoo

由PyTorch和Tensorflow實現的常用影象識別模型包含預訓練引數。

預定義的CNN過濾器: PyScatWave

一套預定義的filter,用於增強影象識別的效果。

計算圖片中物體的相似度:Conditional Similarity Networks (CSNs)

《Conditional Similarity Networks》的PyTorch實現,可以根據不同的條件計算圖片中物體的相似度。

量子化學中的神經資訊傳遞(・_・;Neural Message Passing for Quantum Chemistry

論文《Neural Message Passing for Quantum Chemistry》的PyTorch實現,講的是量子化學裡的神經資訊傳遞!聽起來碉堡了。

影象理解

Visual Question Answering in Pytorch

一個PyTorch實現的優秀視覺推理問答系統,是基於論文《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》實現的。專案中有詳細的配置使用方法說明。

Facebook看圖答題:Clevr-IEP

Facebook Research 論文《Inferring and Executing Programs for Visual Reasoning》的PyTorch實現,講的是一個可以基於圖片進行關係推理問答的網路。