天天看點

人生苦短,開發用雲-如何優雅完成程式員的俠客夢

Coding的魅力如此之強,引無數程式員競折腰,在今年由CSDN舉辦的1024程式員節上,中國初代程式員大宗師求伯君說,當年看到有人在用WPS,可開心了,因為有很多人用。然後,也會去找看是誰破解的,于是就這麼認識雷軍的,目前我雖然退休了,還在寫代碼,寫遊戲代碼,不是商業軟體....其實是寫外挂,這個不好意思拿出來炫耀但确實可以讓遊戲簡單點嘛。讓自己的代碼,自己的項目廣泛流傳可以說是每一位程式員的最高目标。

工欲善其事,必先得其器,一款得心應手的程式設計工具,對于程式員來說無疑是效率神器,可以令開發工作事半功倍,在筆者親身試用了雲原生開發工具之後,可以說目前以雲開發平台為代表的最新開發平台,其帶來的效率提升加成,令人吧為觀止了。

在十年前業界普遍流傳着一句話叫做“代碼正在吞沒世界”,後來又說“網際網路世界的一切源自開源”,而直到最近人們才真正醒悟原來雲原生才是背後的那個大BOSS,凡是不使用雲的都将落後,都無法做到靈活,跟不上時代。雲開發平台作為雲原生工具的典範,在未來必然會成為主流的程式設計神器。

而下面我們先盤點一下開發平台的發展曆程,和各位讀者一起讀懂雲原生與DEVOPS結合進而形成的大趨勢。開發平台就像是程式員手中的劍,隻是程式員手中的劍已經由從前隻能随身攜帶,變成了現在來自雲端的天外飛仙。

從本地化開發到線上開發

在進階語言出現以後,程式員就隻需要關心核心的業務邏輯與代碼實作了,而不再需要關心具體的彙編語言手冊,也不必再與寄存器打交道了。尤其是IDE使程式員在代碼之外的配置調試等工作越來越少。本地化開發平台如最早的vim+gcc到後來的Borland的Powerbuilder,以及後來的本地IDE集大成者Visual stuio 以及Eclipese,在推出之時也都曾經風靡一時。

但是這樣的開發工具其實是軟體時代的産物,當年的軟體公司僅提供編譯後的二進制可執行程式,而不提供源代碼,源代碼也是商業意義更重,甚至在公司内部都不會公開,在這樣的背景下本地化開發工具的确可以完成他的使命。

但是開源基礎會GNU的興起和Linux的火爆,開源的理念也随着網際網路時代逐漸深入人心, IT界傳奇人物Eric Raymond在其史詩級著作《大教堂和集市》(The Cathedral and the Bazaar)中講到,世界上的建築可以分兩種:一種是集市,天天開放在那裡,從無到有,從小到大;還有一種是大教堂,幾代人嘔心瀝血,幾十年才能建成,投入使用。當你建立一座建築時,你可以采用集市的模式,也可以采用大教堂的模式。一般來說,集市的特點是開放式建設、成本低、周期短、品質平庸;大教堂的特點是封閉式建設、成本高、周期長、品質優異。在開源模式的推動下,以Github的Web Ide以及kaggle為代表的線上開發平台崛起。這也使萬千上人開發者同時開發開源項目成為可能。

不過線上開發平台雖然與代碼倉庫結合更為緊密,但是也無法做到完全的靈活,不能直接實作所見即所得式的測試,也無法高效快速的釋出版本,可以說這也不是開發平台的最終形态。

雲開發平台零距離

将雲服務與開發平台結合,開發時即可随時調用Serverless服務,才是真正的所見即所得。下面筆者就帶大家共同來零距離感受一下雲開發平台的魅力。

目前人臉資訊已經是資訊安全攻防的重點領域了,比如Partialconv模型可以通過AI對于圖像進行修複(

Partialconv的論文位址 Partialconv的Github傳送門 )即使圖像丢失了大面積的像素他也能通過AI将損失進行修複,Partialconv也是所謂的一鍵”去“衣、一鍵”去“碼之類應用的鼻祖,其效果圖如下:
人生苦短,開發用雲-如何優雅完成程式員的俠客夢

當Partialconv推出之後不少人都驚呼道以後頭像打碼也不保險了,甚至完全沒有作何意義了。

基于自編碼技術的AI換臉項目ALAE成功登頂Github(

https://github.com/podgorskiy/ALAE )之後更是開啟了AI換臉的新時代,相比于之于的人臉圖像處理的項目,ALAE可謂是大BOSS的級别了,随便貼幾張效果圖大家來感受一下。
人生苦短,開發用雲-如何優雅完成程式員的俠客夢

不但圖像分辨甩之前幾代的換臉模型幾條街,而且學習過程的可視化也更強。

可以說一旦面部資訊丢失那麼後果将十分嚴重,而不少年輕人分享社交動态也就是爆照是一種剛需。那麼如何平衡就是一個問題了。

而這個問題的答案就是将自身的圖像卡通化,比如使用UGATIT(

論文位址 Githu位址

)模型,讓自己的頭像在各種卡通風格之間轉換

不過使用這樣專業的AI模型安裝配置十分繁鎖複雜,一直都是專業人士才能做到的,普通人在之前很難用上這樣的AI服務,不過在雲開發平台的加時下這樣的應用變得十分簡單。

隻需要注删雲開發平台服務,并開通相關服務,快速實作一個卡通頭像的轉換大概隻需要幾分鐘的時間就可以完成。

請求參數

名稱 類型 是否必選 示例值 描述
Action String GenerateHumanAnimeStyle 系統規定參數。取值:GenerateHumanAnimeStyle。
ImageURL http://invi-label.oss-cn-shanghai.aliyuncs.com/label/temp/cartoon/test_data/g1.png 圖檔URL位址。目前僅支援上海地域的OSS連結,如何生成URL請參見生成URL。
AlgoType anime 預設固定為anime,生成日韓卡通效果。

傳回資料

示例

請求示例

http(s)://[Endpoint]/?Action=GenerateHumanAnimeStyle
&ImageURL=http://invi-label.oss-cn-shanghai.aliyuncs.com/label/temp/cartoon/test_data/g1.png
&<公共請求參數>      

正常傳回示例

XML 格式

<RequestId>59697D68-2A6E-4553-89BD-0FADD07881E8</RequestId>
<Data>
    <ImageURL>http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/59697D68-2A6E-4553-89BD-0FADD07881E8_7ee5_20201027-070958.jpg?Expires=1603784400&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&amp;Signature=ut2kn46Lz%2FRwqJ9jWJ0RBDut12****</ImageURL>
</Data>      

JSON 格式

{
    "RequestId": "59697D68-2A6E-4553-89BD-0FADD07881E8",
    "Data": {
        "ImageURL": "http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/59697D68-2A6E-4553-89BD-0FADD07881E8_7ee5_20201027-070958.jpg?Expires=1603784400&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&amp;Signature=ut2kn46Lz%2FRwqJ9jWJ0RBDut12****"
    }
}      

以上代碼在

雲開發平台

上配置這樣的HTTP請求是非常簡單的,不但可以快速調試,

人生苦短,開發用雲-如何優雅完成程式員的俠客夢

甚至還有10萬次免費的生産環境調用額度。

人生苦短,開發用雲-如何優雅完成程式員的俠客夢

當然如有讀者有微信小程式的需求,那麼其實作也的窘迫的簡單快捷,隻需要上傳人像圖,傳遞給後端,後端調用算法,傳回結果

小程式調用api示例

wx.chooseImage({
  success({ tempFiles }) {
    var files = tempFiles
    that.fileUpload(files[0].path);
    wx.request({
      url: '/api',
      method: 'GET|POST',
      data: {
        imageUrl: 'url'
      }
    })
  }
})      

測試結果如下:

原圖

卡通結果圖

人生苦短,開發用雲-如何優雅完成程式員的俠客夢

這樣的快速開發方式及功能實作,可以稱得上頗有事後拂袖去深藏功與名的俠客之風了,雲原發平台其實是雲原生平台,隻要有想法就可以迅速變成對應的功能快速上線,小白也能在雲開發平台的加持下成為一個武功高超的大俠,圓夢極客時代。IT業與傳統行業最大的不同,就是其背後還隐藏着俠義江湖的影子,筆者相信阿裡此次懷着巨大誠意的雲開發平台,也必将能從技術社群中得到中肯的意見與支援。雲開發平台開發平台為各路武林高手快速伸展的途徑,而在這種不斷交流切磋的過程中,必将提高各門派的武功水準。是以在此筆者也由衷希望阿裡今後能夠推出更多優質的雲原生項目,推動行業良性發展。

繼續閱讀