開發與維運

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

頭圖.png

作者 | 馬超
來源|阿里巴巴雲原生公眾號

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

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

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

1.png

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

從本地化開發到在線開發

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

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

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

不過在線開發平臺雖然與代碼倉庫結合更為緊密,但是也無法做到完全的敏捷,不能直接實現所見即所得式的測試,也無法高效快速的發佈版本,可以說這也不是開發平臺的最終形態。

雲開發平臺零距離

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

目前人臉信息已經是信息安全攻防的重點領域了,比如 Partialconv 模型可以通過 AI 對於圖像進行修復(Partialconv 的論文地址Partialconv 的 Github 傳送門),即使圖像丟失了大面積的像素,他也能通過 AI 將損失進行修復,Partialconv 也是所謂的一鍵”去“衣、一鍵”去“碼之類應用的鼻祖,其效果圖如下:

2.png

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

基於自編碼技術的 AI 換臉項目 ALAE 成功登頂 Github,之後更是開啟了 AI 換臉的新時代,相比於之前的人臉圖像處理項目,ALAE 可謂是大 BOSS 的級別了,隨便貼幾張效果圖大家來感受一下。

3.png

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

4.gif

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

而這個問題的答案就是將自身的圖像卡通化,比如使用 UGATIT(論文地址Github 地址)模型,讓自己的頭像在各種卡通風格之間轉換。

5.png

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

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

只需要注刪雲開發平臺服務,並開通相關服務,快速實現一個卡通頭像的轉換大概只需要幾分鐘的時間就可以完成。

1. 請求參數

6.jpg

2. 返回數據

7.jpg

3. 示例

1)請求示例

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

2)正常返回示例

  • 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 請求是非常簡單的,不但可以快速調試:

8.png

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

9.png

當然如有讀者有微信小程序的需求,那麼其實現也非常的簡單快捷,只需要上傳人像圖,傳遞給後端,後端調用算法,返回結果

3. 小程序調用 API 示例

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

測試結果如下:

10.png
原圖

11.jpg
卡通結果圖

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

立即體驗

12.png

雲開發平臺推出亮出你的二次元角色的體驗活動,10 分鐘完成一個完整的 AI 小程序開發,一鍵生成自己的二次元角色形象,即可領取阿里雲定製棒球帽,晒頭像還能再領天貓精靈。新年從頭煥新,快來體驗吧

Leave a Reply

Your email address will not be published. Required fields are marked *