<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快到飛起!兼容所有主流操作系統(tǒng),又一Java開(kāi)發(fā)神器面世!

          共 4022字,需瀏覽 9分鐘

           ·

          2021-05-10 01:02

          自從飛槳框架2.0發(fā)布以來(lái),一直有用戶期待什么時(shí)候能夠幫助Java用戶更便捷高效完成他們的部署任務(wù)。在過(guò)去,我們往往需要自己部署一臺(tái)Model Server來(lái)做這個(gè)事情。但是,無(wú)論是維護(hù)方面,還是速度方面,很多時(shí)候都沒(méi)有辦法達(dá)到預(yù)期。現(xiàn)在,我們聯(lián)手DeepJavaLibrary(以下簡(jiǎn)稱為DJL)—— 一個(gè)基于Java的深度學(xué)習(xí)開(kāi)發(fā)包,提供了一套飛槳Java推理API。


          DJL x Paddle 是一個(gè)基于飛槳 C++ 推理庫(kù)的輕量級(jí)Java推理庫(kù),它支持基本的飛槳Tensor,并可以用來(lái)對(duì)所有飛槳模型進(jìn)行推理。DJL x Paddle可以直接在Windows、Linux和Mac操作系統(tǒng),以及所有的Java環(huán)境中使用。


          目前,我們?yōu)橛脩籼峁┝藘蓚€(gè)基本的使用樣例:

          • 基于飛槳的口罩識(shí)別應(yīng)用
          • 基于PaddleOCR的文字識(shí)別應(yīng)用
          從性能角度上來(lái)說(shuō),DJL x Paddle 集成了飛槳的高速推理引擎,同時(shí)加入了所有Java的特性,包括高效的內(nèi)存管理以及多線程推理。這樣可以滿足生產(chǎn)環(huán)境中大規(guī)模推理應(yīng)用服務(wù)的需求。同時(shí),它可以和現(xiàn)有的大數(shù)據(jù)平臺(tái)集成,例如 Apache Spark,實(shí)現(xiàn)離線大數(shù)據(jù)推理服務(wù)。飛槳的預(yù)訓(xùn)練模型應(yīng)用工具PaddleHub提供了很多產(chǎn)業(yè)實(shí)踐應(yīng)用案例,您可以直接通過(guò)我們的Paddle模型轉(zhuǎn)換教程,輕松地將應(yīng)用部署在您的Java服務(wù)上。為了更好地展示它的強(qiáng)大之處,讓我們來(lái)看一則小故事吧。


          Paddle模型轉(zhuǎn)換教程鏈接:

          http://docs.djl.ai/docs/paddlepaddle/how_to_create_paddlepaddle_model_zh.html



          一個(gè)小故事



          Aaron是一名Boss,負(fù)責(zé)一家位于田納西州的冷凍炸雞加工廠。最近,他一直因?yàn)楣と瞬淮骺谡诌M(jìn)廠工作而苦惱。為了保護(hù)員工的健康,他在廠子門前安裝了攝像頭。這樣,他就可以在每次上班的時(shí)候,監(jiān)督工人佩戴口罩的情況,只有戴上口罩才能入內(nèi)。

          可是,因?yàn)槿肆髁勘姸啵麄冃枰獣r(shí)時(shí)刻刻去盯著屏幕來(lái)判斷是否要讓工人進(jìn)來(lái)。這樣不僅十分不方便,還讓工人因?yàn)槿斯ずY查耽誤時(shí)間變得焦躁。于是乎,Aaron就想:有沒(méi)有什么辦法能夠?qū)⑦@個(gè)過(guò)程自動(dòng)化,比如攝像頭自動(dòng)識(shí)別客人是否戴了口罩,然后自動(dòng)將他們放進(jìn)工廠?本科期間,他學(xué)過(guò)一點(diǎn)Java,工廠的網(wǎng)頁(yè)后端也是自己用Java寫的。他在網(wǎng)上搜索,有沒(méi)有什么Java的方法能夠解決這個(gè)問(wèn)題。此時(shí),DJL就出現(xiàn)在了眼前。對(duì)于Aaron來(lái)說(shuō),他并不了解AI,只是想找到一個(gè)現(xiàn)成的方法解決這個(gè)問(wèn)題。

          Aaron在DJL提供的案例里找到了基于飛槳的口罩識(shí)別應(yīng)用模型!雖然飛槳和DJL都不曾聽(tīng)說(shuō)過(guò),但是代碼看起來(lái)很簡(jiǎn)單,只需要稍作改動(dòng)就可以完成任務(wù)。對(duì)于Aaron來(lái)說(shuō),這個(gè)模型可以進(jìn)行面部識(shí)別,還能判斷是否戴了口罩,完全滿足了他的需求!


          心動(dòng)不如行動(dòng),他開(kāi)始嘗試直接使用這里所介紹的步驟完成他的口罩識(shí)別應(yīng)用。首先,他需要引入DJL相關(guān)的依賴項(xiàng)至Gradle(Java中常用的構(gòu)建工具)里:

          dependencies {
            implementation "ai.djl:api:0.10.0"
            implementation "ai.djl.paddlepaddle:paddlepaddle-model-zoo:0.10.0"
            runtimeOnly "ai.djl.paddlepaddle:paddlepaddle-native-auto:2.0.0"
          }


          之后,直接導(dǎo)入圖片:

          String url = "/user/home/my_client.jpg";
          Image img = ImageFactory.getInstance().fromUrl(url);



          Aaron發(fā)現(xiàn),DJL直接把模型和前后處理都封裝好了。而后,只需要下面這些代碼,就可以直接導(dǎo)入模型并且用來(lái)推理。首先,使用第一個(gè)模型,用以尋找人臉:

          Map<String, String> filter = new ConcurrentHashMap<>();
          filter.put("flavor""server");

          ZooModel<Image, DetectedObjects> model =
                          PpModelZoo.FACE_DETECTION.loadModel(filter, nullnew ProgressBar());

          Predictor<Image, DetectedObjects> predictor = model.newPredictor();
          DetectedObjects obj = predictor.predict(img);


          之后只需要將推理結(jié)果映射到圖片上即可:


          Aaron心想:“ WOW,兩個(gè)人臉都識(shí)別出來(lái)了。不對(duì),等一下,它只找到了人臉,但是我們?nèi)绾闻袛嗨麄冇袥](méi)有戴口罩呢?”他繼續(xù)往下看發(fā)現(xiàn),原來(lái)還有一個(gè)模型需要使用,人們僅通過(guò)輸入一張圖片,就能判斷是否戴了口罩:

          Map<String, String> filter = new ConcurrentHashMap<>();
          filter.put("flavor""server");
          ZooModel<Image, Classifications> model =
                  PpModelZoo.MASK_DETECTION.loadModel(filter, nullnew ProgressBar());
          Predictor<Image, DetectedObjects> predictor = model.newPredictor();
          Classifications result = predictor.predict(img);


          “那就試試看?”Aaron嘀咕著。他把每張面部的推理結(jié)果映射到圖片試試看:

          誒,還不錯(cuò)嘛,識(shí)別精確度可以說(shuō)是非常準(zhǔn)了,終于可以用它來(lái)幫助我們開(kāi)關(guān)門了。Aaron的這個(gè)設(shè)計(jì)節(jié)約了很大的人力成本,他也不需要每天盯在屏幕前了。沒(méi)想到,就算是Java小白也可以輕松上手DJL x Paddle。


          Aaron在DJL的Slack群里發(fā)了一條:

          "Thanks for your help for this awesome application! Big love to DJL x Paddle :>"


          翻譯 (DJL組 Zach): "wo bu hui zhong wen"




          總結(jié)




          上面的案例只是冰山一角。我們提供了完整的中文教學(xué),手把手幫你搭建一個(gè)屬于自己的口罩檢測(cè)模型。我們還提供了OCR模型的案例,可以幫助你順利識(shí)別文字。


          值得一提的是,我們?cè)谶@次集成中帶來(lái)了完全的Java支持,用戶只需寫幾行代碼便可以輕松讀取模型并用來(lái)推理。飛槳框架2.0的訓(xùn)練十分簡(jiǎn)單,部署也十分輕松。后續(xù)我們還將繼續(xù)優(yōu)化支持,推出GPU推理以及一些其他方向的開(kāi)發(fā),敬請(qǐng)期待!



          如果您想詳細(xì)了解更多飛槳的相關(guān)內(nèi)容,請(qǐng)參閱以下文檔。


          ·DJL項(xiàng)目地址·

          https://github.com/awslabs/djl


          ·DJL項(xiàng)目文檔·

          http://docs.djl.ai/paddlepaddle/index.html


          ·Paddle Inference文檔地址·

          https://paddle-inference.readthedocs.io/en/latest/index.html


          ·飛槳官網(wǎng)地址·

          https://www.paddlepaddle.org.cn/


          ·飛槳開(kāi)源框架項(xiàng)目地址·

          GitHub: https://github.com/PaddlePaddle/Paddle 

          Gitee: https://gitee.com/paddlepaddle/Paddle


          1、最牛逼的 Java 日志框架,性能無(wú)敵,橫掃所有對(duì)手!
          2、把Redis當(dāng)作隊(duì)列來(lái)用,真的合適嗎?
          3、驚呆了,Spring Boot居然這么耗內(nèi)存!你知道嗎?
          4、牛逼哄哄的 BitMap,到底牛逼在哪?
          5、全網(wǎng)最全 Java 日志框架適配方案!還有誰(shuí)不會(huì)?
          6、30個(gè)IDEA插件總有一款適合你
          7、Spring中毒太深,離開(kāi)Spring我居然連最基本的接口都不會(huì)寫了

          點(diǎn)分享

          點(diǎn)收藏

          點(diǎn)點(diǎn)贊

          點(diǎn)在看

          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产六区在线 | 欧美一级裸体视频 | 丁香六月婷婷五月 | 2021国产精彩在线视频 | 不卡视频免费在线播放 |