最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Google ML模型開(kāi)發(fā)Android物體檢測(cè)應(yīng)用

 更新時(shí)間:2024年07月27日 15:12:17   作者:青蛙娃娃  
ML Kit是Google提供的機(jī)器學(xué)習(xí)SDK,包含了一系列預(yù)訓(xùn)練模型,可以在Android和iOS應(yīng)用中快速添加機(jī)器學(xué)習(xí)功能,本項(xiàng)目基于Google ML模型開(kāi)發(fā)Android物體檢測(cè)應(yīng)用,首先對(duì)圖像中的物體進(jìn)行分類(lèi)檢測(cè),獲取分類(lèi)物體的位置區(qū)域,然后結(jié)合圖像標(biāo)記,逐個(gè)獲取單個(gè)物體的標(biāo)簽

ML Kit

ML Kit是Google提供的機(jī)器學(xué)習(xí)SDK,包含了一系列預(yù)訓(xùn)練模型,可以在Android和iOS應(yīng)用中快速添加機(jī)器學(xué)習(xí)功能。ML Kit工具包將谷歌在機(jī)器學(xué)習(xí)方面的專(zhuān)業(yè)知識(shí)帶給了普通的移動(dòng)應(yīng)用開(kāi)發(fā)者,可以借助ML Kit在幾行代碼中實(shí)現(xiàn)所需的功能。

ML Kit的功能非常全面且易于使用,提供了基于API的現(xiàn)有解決方案,如文字識(shí)別、條碼識(shí)別、圖像標(biāo)簽、人臉檢測(cè)、對(duì)象檢測(cè)等。同時(shí),還提供了便利的API,允許在移動(dòng)應(yīng)用中使用自定義的TensorFlow Lite模型。

ML Kit針對(duì)移動(dòng)設(shè)備進(jìn)行了優(yōu)化,使得機(jī)器學(xué)習(xí)套件的處理過(guò)程可以在設(shè)備上進(jìn)行,保證了快速性,并解鎖了處理相機(jī)輸入等實(shí)時(shí)用例的能力。即使在離線狀態(tài)下,也可以使用這項(xiàng)功能來(lái)處理需要保留在設(shè)備上的圖片和文本。

 項(xiàng)目描述

ML Kit的默認(rèn)模型在物體檢測(cè)方面表現(xiàn)非常出色。當(dāng)你將圖像傳遞給物體檢測(cè)器時(shí),它會(huì)返回一個(gè)物體列表,其中包含邊界框,這些邊界框可用于確定圖像中物體可能的位置。

本項(xiàng)目首先對(duì)圖像中的物體進(jìn)行分類(lèi)檢測(cè),獲取分類(lèi)物體的位置區(qū)域,然后結(jié)合圖像標(biāo)記,逐個(gè)獲取單個(gè)物體的標(biāo)簽。

開(kāi)發(fā)工具

  • Android Studio Koala
  • Kotlin
  • Gradle 8.7

代碼設(shè)計(jì)

界面設(shè)計(jì)

界面上方是一個(gè)ImageView,用于呈現(xiàn)示例圖片;用戶(hù)點(diǎn)擊中間按鈕,調(diào)用物體檢測(cè)處理代碼;待處理完畢,將結(jié)果展示在下方的 TextView 中。

物體檢測(cè)處理

ML Kit物體檢測(cè)器提供多種物體檢測(cè)方法,這些方法由ObjectDetectorOptions對(duì)象控制。該檢測(cè)器是一個(gè)強(qiáng)大的API,不僅可以檢測(cè)物體,還能在視頻流中跟蹤它們,實(shí)現(xiàn)逐幀跟蹤功能。

創(chuàng)建物體檢測(cè)器,將Bitmap轉(zhuǎn)換為InputImage,并使用物體檢測(cè)器進(jìn)行處理。 這將在成功時(shí)返回檢測(cè)到的物體列表,或在失敗時(shí)返回異常物體。

val objectDetector = ObjectDetection.getClient(options)
            var image = InputImage.fromBitmap(bitmap!!, 0)
            txtOutput.text = ""
            objectDetector.process(image)
                    .addOnSuccessListener { detectedObjects ->
                        // 任務(wù)執(zhí)行成功
                        getLabels(bitmap, detectedObjects, txtOutput)
                        bitmap?.apply{
                            img.setImageBitmap(drawWithRectangle(detectedObjects))
                        }

                    }
                    .addOnFailureListener { e ->
                        // 任務(wù)執(zhí)行失敗
                        Log.e("MainActivity", e.toString())
                    }

用戶(hù)點(diǎn)擊按鈕后,調(diào)用物體檢測(cè)器以獲取圖像中物體的邊界框。然后,使用這些邊界框裁剪圖像,得到定義的子圖像,并將其傳遞給圖像標(biāo)記器。

標(biāo)記物體

使用已有的邊界框創(chuàng)建新的臨時(shí)圖像(croppedBitmap),將其傳遞給圖像標(biāo)記器,并返回結(jié)果。重復(fù)此操作以處理每個(gè)邊界框(即每個(gè)物體),以獲取每個(gè)檢測(cè)到物體的詳細(xì)標(biāo)簽!

val labeler =
        ImageLabeling.getClient(ImageLabelerOptions.DEFAULT_OPTIONS)
    for(obj in objects) {
        val bounds = obj.boundingBox
        val croppedBitmap = Bitmap.createBitmap(
            bitmap,
            bounds.left,
            bounds.top,
            bounds.width(),
            bounds.height()
        )
        var image = InputImage.fromBitmap(croppedBitmap!!, 0)
        labeler.process(image)
            .addOnSuccessListener { labels ->
                // 任務(wù)執(zhí)行成功
                var labelText = ""
                if(labels.isNotEmpty()) {
                    labelText = txtOutput.text.toString()
                    for (thisLabel in labels){
                        labelText += thisLabel.text + " , "
                    }
                    labelText += "\n"
                } else {
                    labelText = "Not found." + "\n"
                }
                txtOutput.text = labelText.toString()
            }
    }

該代碼遍歷每個(gè)檢測(cè)到的物體,使用邊界框創(chuàng)建名為croppedBitmap的新位圖。接下來(lái),它使用一個(gè)設(shè)置了默認(rèn)選項(xiàng)的圖像標(biāo)記器(稱(chēng)為labeler)處理新圖像。處理成功后,從標(biāo)簽中獲取多個(gè)結(jié)果,并將這些標(biāo)簽寫(xiě)入逗號(hào)分隔的字符串,最終呈現(xiàn)在TextView中。

項(xiàng)目演示

Android AI應(yīng)用開(kāi)發(fā):物體檢測(cè)_ML_02

到此這篇關(guān)于基于Google ML模型開(kāi)發(fā)Android物體檢測(cè)應(yīng)用的文章就介紹到這了,更多相關(guān)Android AI應(yīng)用開(kāi)發(fā):物體檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

凤庆县| 蓬安县| 宜春市| 德保县| 永胜县| 武义县| 武胜县| 苏州市| 宜昌市| 陵水| 金湖县| 和平区| 毕节市| 都昌县| 潼关县| 嵊州市| 平阳县| 炎陵县| 平乐县| 申扎县| 湾仔区| 米林县| 延长县| 石楼县| 靖西县| 郴州市| 通海县| 东阿县| 高青县| 玉溪市| 翁牛特旗| 松潘县| 西充县| 当阳市| 彭山县| 新宁县| 长白| 天津市| 宁陕县| 化隆| 嘉黎县|