Deep Learning for Industrial Application 2.0

從 集智百科
跳到: 導覽搜尋

本頁面收集了大量深度學習項目的代碼鏈接。所有代碼均按照所屬技術領域建立索引,以便大家查閱使用。


目錄

圖像

圖像生成

圖片自動上色

插畫界爆火的:PaintsChainer

PaintsChainer是在插畫界鼎鼎有名的應用,它可以直接把畫師的線稿手稿進行簡單的上色,說是簡單,其實有時候也能達到經驗的效果。

下面就是使用這個應用完成的一種效果,可以看到經上色後已經可以達到成品水平了。

Paint chainer 0.png
Paint chainer 1.png

它同時還支持半引導式上色,用戶可以在某些位置指定色域,PaintsChainer會在這個位置按用戶的需求來上色。

Paint chainer 2.png

這種可以自動上色的應用其實和「自動化妝」、「苦臉變笑臉」、「男人變女人」等應用一樣,都是通過對抗生成網絡(GAN)來實現的。

可以理解為:GAN通過學習大量的「線稿圖」和「上色圖」,學習到了其中的關係,而這種關係就是上色的方法。

相關開源實現:

https://github.com/pavelgonchar/colornet

繪畫風格轉換:Neural Style

爆紅應用市場的風格轉換APP:Prisma

Prisma是曾在手機APP市場爆火的風格轉換趣味APP。它通過深度神經網絡能把你手機中那些普通的照片模仿出著名藝術家畫作的風格。

Prisma的核心技術是卷積神經網絡,它利用卷積神經網絡中的Feature map,獲取著名繪畫大師和主要流派的藝術風格,然後對你的照片進行智能風格化。

相關開源實現:

https://github.com/jcjohnson/neural-style

字跡模擬

簽名生成軟件

我們在上網時有時會遇到「免費設計簽名」的廣告,有時候點進去發現真的可以生成簽名,並且筆跡飄逸,感覺還挺專業的。

那這些簽名真的是名家給設計的嗎?當然不是,實際上有很多都是通過「字跡模擬」來實現的。

給予一個深度神經網絡大量的名家筆跡數據,神經網絡就能自動總結出這些筆跡中的風格,從而應用在你要求的文字上。

這種字跡模擬技術還可以用在生成用於訓練手寫文字識別系統的訓練數據生成上。

相關開源實現:

https://github.com/szcom/rnnlib

圖片裝換

FaceAPP:人臉轉換

在人工智能時代,人們對於娛樂方式的要求也越來越高。比如就「自拍」這件事情,僅僅美顏功能,已經不能滿足人們的需求。

有技術團隊利用深度學習技術做出了更強大的「美顏」APP,它可以將「死魚臉」變成「笑臉」,將「年輕的臉」變為「年老的臉」,將「男人的臉」變為「女人的臉」,並且轉化及其逼真,毫無違和感。

Faceapp.png

實現這些效果,是利用了一種叫做「生成式對抗網絡(GAN)」的深度神經網絡模型。

在「生成式對抗網絡」模型中,有一種叫做CycleGAN的變種,它採用了一種叫做「對偶學習」的特殊機制,可以自動學習出原圖片與目標圖片之間的轉化關係。

比如我們選定很多張「沒有表情的臉」作為原圖片,很多張「笑臉」作為目標圖片,直接送到CycleGAN模型中,也不用告訴他目的是「轉換笑臉表情」,CycleGAN就能自己總結出兩套圖片的不同點的「規律」,從而學習這種規律,最終可以實現在這種規律間轉換的效果。

CycleGAN.jpg


相關開源實現:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git

圖像識別

用於物體識別的全卷積網絡:FCN

胰島素囊泡識別

現代醫學對糖尿病患者的診療依賴於觀察胰島細胞中胰島素囊泡的分佈情況。

但是電鏡照片中的胰島素囊泡分佈及其不均勻,醫生觀察起來費時費力,還容易造成誤診。

胰島素囊泡電鏡照片

如果使用基於FCN的圖像分割識別技術,就可以解決這樣的問題。

FCN即全卷積神經網絡,非常勝任圖像分割任務。也就是說,只要將足夠多的標註好的囊泡電鏡照片傳入FCN網絡進行訓練,那麼訓練好的網絡就可以快速定位出電鏡照片中囊泡的位置,其識別正確率可以達到97.73%~98.9%,幾乎與人工處理效果無異。

Multi-FCN識別囊泡.png
眼底病變識別

同樣的技術還被應用在「眼科智能診斷系統」中。據悉,只要在發病初期定期進行眼底檢查,失明風險可下降 94.4%。但由於眼底病灶微小,部分醫生經驗不足等原因,使得診斷中可能出現漏診、誤診的情況,而藉助 AI 系統輔助診斷是非常可行的問題解決方案。

使用基於FCN的圖像分割技術,只需要將訓練FCN網絡的數據改為「標註好的眼底病變數據」,訓練好的網絡就可以輕易識別出患者眼底照片中的病變位置。目前這樣的系統對病患基數巨大的糖尿病視網膜病變(DR)和老年性黃斑變性(AMD)篩查的診斷準確率已達到九成以上。

眼底標記.png


開源實現參考:

https://github.com/mattmacy/vnet.pytorch

https://github.com/wkentaro/pytorch-fcn.git

色情內容識別

圖普科技、阿塔科技圖像鑒黃系統

目前有不止兩家的服務商都提供雲視頻、圖片鑒黃系統。

對於很多社區網站來說,幾乎每時每刻都有用戶在上傳圖片,在這些圖片&視頻中有時會摻雜着色情內容。

數據量如此之大,使用人力篩選過濾其中的內容是不可能的,所以就出現了現在基於深度學習技術的鑒黃系統。

一般這些系統都可以判斷一段圖像是屬於色情、性感還是正常。

Jianhuang 01.png

相關開源實現:

https://github.com/yahoo/open_nsfw

人臉識別

Face++ & 商湯科技 等等

人臉識別目前在市場的應用真是非常普遍,相關的公司也很多,目前國內知名的就是Face++與商湯科技,中科奧森也是國內老牌的人臉識別研發中心。

目前人臉識別技術廣泛應用在認證方面,包括人臉識別免面簽,以及人臉支付,安防等等。

實現方法多是結合了結構分析的深度學習技術,有些公司還採用了基於雙目攝像頭的深度圖像識別系統。

開源實現參考:

https://github.com/cmusatyalab/openface

https://github.com/liuziwei7/mobile-id

https://github.com/ageitgey/face_recognition#face-recognition

圖像理解

OCR光學文字識別

證件識別

支付寶有一個證件校驗系統。證件校驗系統是為了支付寶的證件審核開發的,它使證件校核時間從1天縮小到1秒,同時提升了30%的通過率。以前是靠人識別,可能會誤判,比如人識別是50%的識別率,那麼機器他現在比如說做80%的識別率,這是非常了不得的。

證件識別.jpg

這種將證件圖片掃描,將證件圖片中的文字及圖片提取出來的技術叫做光學文字識別技術,即OCR。

OCR.png

目前最先進的OCR技術採用的是LSTM+CTC的實現方法。LSTM+CTC的框架技術最初是用在自然語言語音識別領域,應用在OCR上,可以實現「一句話」的文字識別效果。

Advaced OCR.png

相關開源實現:

LSTM_CTC_OCR

https://github.com/ilovin/lstm_ctc_ocr

Convolutional Recurrent Neural Network

https://github.com/bgshih/crnn

掃一掃路邊的餐廳,立馬跳出該餐廳的評分信息

實時餐廳查詢0.gif

Google Lens有一個很酷的功能,通過用手機掃街邊的餐廳,可以直接獲得餐廳的評分推薦等信息。

這其實就是將「光學文字識別技術」應用在現實增項中。通過將實時的景象分割成圖片,然後識別圖片中的文字,通過識別出的餐廳名字以及當前的定位信息搜搜餐廳信息,再通過AR顯示技術,實時的顯示在攝像圖像中。

卷積循環神經網絡是一種能在圖片中快輸識別出文字的深度學習模型。

它即保持了卷積神經網絡的特性,可以快速定位出圖片中文字的位置;又具有循環神經網絡的特質,可以將圖片中的文字識別的更加準確。

視頻

場景識別

盲人用環境認知輔助系統

人工智能的發展同樣可以改變殘障人士的生活質量。

有一種能夠根據圖像生成其相關描述的技術,叫做NeuralTalk。將這種技術應用於攝像頭捕捉的視頻圖像,可以實時生成對當前環境的描述,在將描述的文字轉化為語音,可以讓視覺障礙的人們找回認知周圍世界的能力。

Environment reco 0.png
Environment reco 1.png

相關開源實現:

https://github.com/cgq5/Video-Caption-with-Neuraltalk2

聲音

語音識別

句子級語音識別

個人語音助手

目前生活在大城市的人們生活節奏非常緊張,即使是一分一秒都顯得頗為珍貴。因此,即使是像操作手機這樣的操作,感覺也是非常浪費時間的。

因此市面上出現了「個人語音助手」這樣的應用,包括蘋果公司的Siri,微軟的「小娜」,百度小秘等等。使用這些應用我們只需要對着手機說出我們的需求,比如「下午3點提醒我開會」,「附近有什麼好吃的」,語音助手就可以自動為我們設置提醒,搜尋附近符合條件的餐廳等等。一句話就能達到完成自己的需求,不在需要繁瑣的手動操作,語音助手着實節省了人們的時間。

魔法小問.png

目前市面上可用的個人語音助手多是通過基於深度學習的人工智能技術實現的。其中包括語音識別系統,這個我們在上面的案例中已經說過。在將用戶的語音轉換為文字後,為用戶提供服務的其實是一套叫做「任務驅動型聊天機械人」的系統。

Chatbot.png

這套「任務驅動型聊天機械人」系統往往是由多個模塊的深度神經網絡組合而實現的。其中可以包括用來識別用戶意圖(如找餐廳)的「意圖神經網絡」;用來理解語義,從而可以查詢數據庫的「語義理解網絡」;還有最終用來回復用戶信息的「自然語言生成網絡」。


解放醫生雙手:語音電子病歷

口腔科醫生需要記錄每個患者的病歷情況。然而在診療過程中,醫生在牙椅旁戴着手套雙手被佔用,不便對病歷信息進行記錄。如果診療結束後,再通過手寫的方式補填病歷,經常出現內容遺忘的情況。此外,手寫病歷常有文字潦草的情況,因有導致後續診療錯誤的風險。

基於語音識別自然語言理解的語音電子病歷可以解決這樣的問題。在醫生與患者的醫療過程中,使用麥克風,醫生只要以口述的方式記錄電子病歷內容,完全不需要雙手參與。

錄音經過後台處理轉化成文本,在醫生工作站實時展現醫患交流內容、自動生成結構化的電子病歷。醫生只需對電子病歷內容進行簡單修改確認,即可打印提供給患者,並完成電子檔保存。

語音識別 腦.jpg

RNN+CTC 是常用的語音識別技術。CTC 全稱 是Connectionist Temporal Classification,是一種改進的RNN模型。RNN模型可以用來對兩個序列之間的關係進行建模。但是,傳統的RNN,標註序列和輸入的序列是一一對應的。語音識別中的序列建模問題不是這樣:識別出的字符序列或者音素序列長度遠小於輸入的特徵幀序列。所以不能直接用RNN來建模。CTC解決這一問題的方法是,在標註符號集中加一個空白符號blank,然後利用RNN進行標註,最後把blank符號和預測出的重複符號消除。比如有可能預測除了一個"--a-bb",就對應序列"ab"。這樣就讓RNN可以對長度小於輸入序列的標註序列進行預測了。RNN的訓練需要用到前向後向算法(Forward-backward algorithm),大概思路是,對於給定預測序列,比如「ab」,在各個字符間插入空白符號,建立起籬笆網絡(Trellis),然後對將所有可能映射到給定預測的序列都窮舉出來求和。


相關開源實現:

https://github.com/buriburisuri/speech-to-text-wavenet

https://github.com/inikdom/rnn-speech

https://github.com/shawnwun/NNDIAL

文本

文本理解

文本摘要總結理解

市場信息自動調研系統:Synapsify

Synapsify是來自美國的自動文本分析理解提供商。它可以用幾個維度去解讀文本內容,揭示文本的質量、平衡性、可信度和主要句子和含義。網站可以藉助Synapsify這個分析系統來提供內容質量,而出版商可以用Synapsify來評估市場,政府還可以用Synapsify來進行網絡輿情監控。Synapsify承諾,使用自己的專利文本分析和搜索技術,將為客戶提供強大的能力去分析文字內容。Synapsify未來還打算引入聲音分析,Synapsify自稱將來通過一個人的日常語言,就可以分析出這個人的習慣、生活習慣和經歷、比福爾摩斯還神奇。

相關開源實現:

https://github.com/facebookarchive/NAMAS

https://github.com/thomasmesnard/DeepMind-Teaching-Machines-to-Read-and-Comprehend

機器翻譯

百度機器翻譯

機器翻譯是非常古老的人工智能問題,然而這個問題一度作為人工智能發展的瓶頸,一直不能達到理想的狀態。

早期機器翻譯採用「基於語言句法」的翻譯方法,但是語言的變數是無限的,「基於語言句法」的方案一直無法達到理想的效果。

基於深度學習的「端到端」的模型在很大程度上解決了機器翻譯的瓶頸。

「端到端」的模型將自然語言嵌入到一個語義空間中,人類使用不同種語言表達的語義相同的語句,在語義空間中具有相同或相似的坐標,只要對比語義空間中相同坐標的語句,即可完成相關的翻譯。

相關開源實現:

PyOpenNMT: Open-Source Neural Machine Translation

https://github.com/OpenNMT/OpenNMT-py.git


彩雲小譯、有道翻譯官

FAIR的開源序列到序列(sequence-to-sequence)引擎現在可以在PyTorch使用了。FAIR今天發佈了fairseq-py,這是一個用PyTorch實現的卷積seq2seq模型。fairseq-py是語言翻譯以及其他 seq2seq 的NLP任務的一個很好的模型,新的工具包比以前的更高效率:生成翻譯的速度比以前的提高了80%,訓練速度提高了50%。

開源的是一個PyTorch版本的fairseq。這個重新實現的原作者是Sergey Edunov,Myle Ott和Sam Gross。該工具包實現了 Convolutional Sequence to Sequence Learning(https://arxiv.org/abs/1705.03122)中描述的完全卷積模型(fully convolutional model),在單個機器上實現多GPU訓練,並在CPU和GPU上實現快速 beam search 生成。我們提供英語到法語和英語到德語翻譯的預訓練模型

GitHub地址:https://github.com/facebookresearch/fairseq-py

個人工具
名字空間
動作
導覽
工具箱