91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解什么是音高以及歷史上機(jī)器學(xué)習(xí)如何檢測(cè)歌曲中的音高

Tensorflowers ? 來(lái)源:TensorFlow ? 作者:TensorFlow ? 2020-11-18 17:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本教程的目標(biāo):

了解什么是音高 (Pitch) 以及歷史上機(jī)器學(xué)習(xí)如何檢測(cè)歌曲中的音高

對(duì)歌曲數(shù)據(jù)以及執(zhí)行模型的結(jié)果進(jìn)行可視化

編寫通過手機(jī)麥克風(fēng)收集聲音的代碼

Android 應(yīng)用程序內(nèi)部部署 ML 模型

對(duì)歌曲的數(shù)據(jù)進(jìn)行轉(zhuǎn)換并使用 SPICE 模型進(jìn)行推斷

在 Android 手機(jī)屏幕上呈現(xiàn)最終結(jié)果

介紹

音高是聲音的一種感知屬性,可以按相應(yīng)的頻率對(duì)其進(jìn)行排序。換句話說(shuō),音高在音樂旋律中是用來(lái)判斷聲音聽起來(lái)“高”和“低”的一種屬性。音高是音調(diào)的主要聽覺屬性之一,其余為音長(zhǎng) (Duration),音強(qiáng) (Loudness),以及音色 (Timbre)。音高通過頻率進(jìn)行量化,并以赫茲 (Hz) 為單位進(jìn)行測(cè)量,其中 1Hz 表示每秒一個(gè)周期。

音高檢測(cè) (Pitch detection) 一個(gè)有趣的挑戰(zhàn)。歷史上,對(duì)音高和音高感知的研究一直是心理聲學(xué)的核心問題,并且在音頻表征的形成與測(cè)試?yán)碚摗?信號(hào)處理算法 (Signal-Processing Algorithms) 以及聽覺系統(tǒng)中的感知等方面起到重要作用。研究人員為此開發(fā)并應(yīng)用了許多技術(shù) ,還努力將相近頻率的背景噪聲與背景音樂進(jìn)行分離。

技術(shù)
https://www.cs.uregina.ca/Research/Techreports/2003-06.pdf

今天,我們可以通過機(jī)器學(xué)習(xí)來(lái)實(shí)現(xiàn)這一目標(biāo),更具體地說(shuō),可以使用 SPICE 模型。這是一個(gè)經(jīng)過預(yù)訓(xùn)練的模型,可以識(shí)別混合錄制的音頻中的基本音高(包括噪音和背景音樂),您可以在 TensorFlow Hub 獲取 SPICE 模型,包括適用于 Web 端的 TensorFlow.js 以及適用于移動(dòng)端的 TensorFlow Lite。

TensorFlow Hub

https://tfhub.dev/

TensorFlow.js
https://tfhub.dev/google/tfjs-model/spice/1/default/1

TensorFlow Lite
https://tfhub.dev/google/lite-model/spice/1

開始

音頻以單聲道 16khz 采樣率記錄并保存為 .wav 格式。讓我們用一個(gè)具有該格式的簡(jiǎn)單音頻文件為例。如果使用對(duì)數(shù)頻率坐標(biāo)圖(以使歌聲更清晰可見),加載它并可視化輸出,我們將獲得一個(gè)頻譜圖,該頻譜圖顯示隨時(shí)間變化的頻率:

音頻文件
https://storage.googleapis.com/download.tensorflow.org/data/c-scale-metronome.wav

在執(zhí)行帶有歌曲數(shù)據(jù)的模型后,我們將打印模型的輸出。藍(lán)色表示模型預(yù)測(cè)的音高值,橙色表示這些音高值的置信度:

如果僅保留置信度大于 90% 的結(jié)果,并將其與灰度圖重疊,我們將獲得下圖:

在所有長(zhǎng)度的歌曲上準(zhǔn)確性都很高!!

需要指出的是,雖然對(duì)于上述示例,基于頻譜圖的啟發(fā)式音高提取方法可能也起作用。但是通常情況下,基于機(jī)器學(xué)習(xí)的模型會(huì)優(yōu)于手工提取的信號(hào)處理方法,特別是當(dāng)音頻中存在背景噪聲和背景音樂時(shí)。關(guān)于 SPICE 與 SWIPE(基于頻譜圖的算法)的比較,請(qǐng)參見此文。

若在 Android 應(yīng)用程序內(nèi)部運(yùn)行 SPICE 模型,必須使用麥克風(fēng)收集聲音。首先,我們?cè)O(shè)置變量:

private val AUDIO_SOURCE = MediaRecorder.AudioSource.VOICE_RECOGNITION private val SAMPLE_RATE = 16000 private val CHANNEL_MASK = AudioFormat.CHANNEL_IN_MONO private val ENCODING = AudioFormat.ENCODING_PCM_16BIT private val BUFFER_SIZE = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_MASK, ENCODING) private val AUDIO_FORMAT = AudioFormat.Builder().setEncoding(ENCODING) .setSampleRate(SAMPLE_RATE) .setChannelMask(CHANNEL_MASK) .build()

然后,選擇 MediaRecorder.AudioSource.VOICE_RECOGNITION 以將麥克風(fēng)聲源導(dǎo)入至語(yǔ)音識(shí)別并應(yīng)用噪聲消除。音頻格式是 16位,單聲道,16KHz 采樣率的理想格式。最后,我們開始錄音進(jìn)程:

/** * Start the recording process. */ mRecorder = AudioRecord.Builder().setAudioSource(AUDIO_SOURCE) .setAudioFormat(AUDIO_FORMAT) .setBufferSizeInBytes(BUFFER_SIZE) .build() mRecorder?.startRecording()

停止錄音進(jìn)程 mRecorder.stopRecording() ,隨后我們從錄音機(jī)流中讀取音頻:

private val readAudio = Runnable { var readBytes: Int buffer = ShortArray(BUFFER_SIZE) while (mRecording) { readBytes = mRecorder!!.read(buffer, 0, BUFFER_SIZE) //Higher volume of microphone //https://stackoverflow.com/questions/25441166/how-to-adjust-microphone-sensitivity-while-recording-audio-in-android if (readBytes > 0) { for (i in 0 until readBytes) { buffer[i] = Math.min( (buffer[i] * 6.7).toInt(), Short.MAX_VALUE.toInt() ).toShort() } } if (readBytes != AudioRecord.ERROR_INVALID_OPERATION) { for (s in buffer) { // Add all values to arraylist bufferForInference.add(s) writeShort(mPcmStream, s) } } } }

注意此處的乘法 buffer[i] * 6.7。這個(gè)參數(shù)用于控制麥克風(fēng)增益并提高靈敏度(您可以使用其他值代替 6.7 來(lái)滿足需要)!

在此類內(nèi),還有一個(gè)將字節(jié)數(shù)組轉(zhuǎn)換為.wav文件的函數(shù)。該文件存儲(chǔ)在手機(jī)內(nèi)部存儲(chǔ)器的Pitch Detector文件夾中,可用于與原始版本對(duì)比驗(yàn)證移動(dòng)端模型輸出的準(zhǔn)確性。

原始版本
https://colab.sandbox.google.com/github/tensorflow/hub/blob/master/examples/colab/spice.ipynb

部署 SPICE 模型的第一步是復(fù)制位于 Assets 文件夾中的 .tflite 文件。我們將這些依賴包含在 app build.gradle 文件中:

implementation 'org.tensorflow0.0.0-nightly' implementation 'org.tensorflow0.0.0-nightly' implementation 'org.tensorflow0.0.0-nightly'

.tflite 文件
https://tfhub.dev/google/lite-model/spice/1

最后一個(gè)依賴項(xiàng)含有額外的算子——這是該項(xiàng)目不可或缺的依賴項(xiàng),但會(huì)顯著增大最終 .apk 文件的體積,因?yàn)樵撃P褪褂昧艘恍┰诘谝粋€(gè) tflite 依賴項(xiàng)中沒有的算子。如需進(jìn)一步了解,您可以閱讀此文。

此文
https://tensorflow.google.cn/lite/guide/ops_select#android_aar

初始化解釋器,從文件夾加載模型文件:

// load tflite file from assets folder @Throws(IOException::class) private fun loadModelFile(context: Context, modelFile: String): MappedByteBuffer { val fileDescriptor = context.assets.openFd(modelFile) val inputStream = FileInputStream(fileDescriptor.fileDescriptor) val fileChannel = inputStream.channel val startOffset = fileDescriptor.startOffset val declaredLength = fileDescriptor.declaredLength val retFile = fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength) fileDescriptor.close() return retFile } @Throws(IOException::class) private fun getInterpreter( context: Context, modelName: String, useGpu: Boolean ): Interpreter { val tfliteOptions = Interpreter.Options() if (useGpu) { gpuDelegate = GpuDelegate() tfliteOptions.addDelegate(gpuDelegate) } tfliteOptions.setNumThreads(numberThreads) return Interpreter(loadModelFile(context, modelName), tfliteOptions) }

我們準(zhǔn)備好了,使用音頻流進(jìn)行推理!

音頻流采用 ArrayList 格式。但是要將其輸入至模型,我們必須將其轉(zhuǎn)換為 float 值并正則化到 -1 到 1 的范圍內(nèi)。為此,我們將每個(gè)值除以 MAX_ABS_INT16 = 32768,然后使用解釋器執(zhí)行推理:

fun execute(floatsInput: FloatArray): ArrayList { predictTime = System.currentTimeMillis() val inputSize = floatsInput.size // ~2 seconds of sound var outputSize = 0 when (inputSize) { // 16.000 * 2 seconds recording 32000 -> outputSize = ceil(inputSize / 512.0).toInt() else -> outputSize = (ceil(inputSize / 512.0) + 1).toInt() } val inputValues = floatsInput//FloatArray(inputSize) val inputs = arrayOf(inputValues) val outputs = HashMap() val pitches = FloatArray(outputSize) val uncertainties = FloatArray(outputSize) outputs[0] = pitches outputs[1] = uncertainties try { interpreter.runForMultipleInputsOutputs(inputs, outputs) } catch (e: Exception) { Log.e("EXCEPTION", e.toString()) } }

當(dāng)我們獲得結(jié)果后,我們接下來(lái)要做的是:

篩選輸出置信度超過 90% 的結(jié)果

將絕對(duì)音高轉(zhuǎn)換為赫茲 (Hz)

計(jì)算唱歌期間的偏移量

使用一些啟發(fā)式算法嘗試預(yù)測(cè)并輸出最可能的演唱樂譜。

上述步驟中,計(jì)算出理想的偏移量是重要的一步,因?yàn)橥ǔH藗兒叱男膳c可以記譜的絕對(duì)音高值之間存在偏移。為此,我們還需要知道歌曲的速度(這樣才能確定采用的音符長(zhǎng)度,比如八分音符)以及開始量化產(chǎn)生音符的時(shí)間偏移量。為簡(jiǎn)單起見,我們將嘗試使用不同的速度和時(shí)間偏移并測(cè)量量化誤差,最后采用該誤差最小的組合。您可以在 PitchModelExecutor.kt 的源代碼中繼續(xù)深入了解。

PitchModelExecutor.kt 的源代碼

https://github.com/farmaker47/Pitch_Estimator/blob/master/app/src/main/java/com/george/pitch_estimator/PitchModelExecutor.kt

通過上述過程,我們獲得了含有音符字符串的 ArrayList,例如 [A2,F(xiàn)2,G#2,C3],這些結(jié)果顯示在屏幕上。

TensorFlow Hub 的 SPICE 模型示例頁(yè)面有一個(gè)出色的可視化工具,可以在靜態(tài)的五線譜上顯示不斷流入的音符。因此,是時(shí)候在我們的移動(dòng)應(yīng)用程序去中復(fù)制此實(shí)時(shí)效果了!

可視化工具
https://tfhub.dev/google/lite-model/spice/1

Android webview 用于處理一些自定義 html 代碼。我們將此代碼加載到綁定適配器中:

// this binding adapter helps load custom html from assets folder @BindingAdapter("htmlToScreen") fun bindTextViewHtml(webView: WebView, htmlValue: String) { webView.settings.javaScriptEnabled = true webView.loadDataWithBaseURL("fake://not/needed", htmlValue, "text/html", "UTF-8", "") }

您可以在 這個(gè) GitHub Gist 找到提供給 Webview 的 html 源代碼!

GitHub Gist
https://gist.github.com/farmaker47/8e3b6a5af795f32459d35d2198f07d1c

當(dāng)屏幕上顯示如 [A2,F(xiàn)2] 這樣的文字音符時(shí),我們執(zhí)行:

// Observe notes as they come out of model and update webview respectively viewModel.noteValuesToDisplay.observe(viewLifecycleOwner, androidx.lifecycle.Observer { list -> if (list.size > 0) { var i = 0 val handler = Handler() handler.post(object : Runnable { override fun run() { when (list[i]) { "C2" -> binding.webView.loadUrl("javascript:myMove('125')") "C#2" -> binding.webView.loadUrl("javascript:myMoveSharp('125')") "D2" -> binding.webView.loadUrl("javascript:myMove('130')") "D#2" -> binding.webView.loadUrl("javascript:myMoveSharp('130')") "E2" -> binding.webView.loadUrl("javascript:myMove('135')") "F2" -> binding.webView.loadUrl("javascript:myMove('140')") "F#2" -> binding.webView.loadUrl("javascript:myMoveSharp('140')") "G2" -> binding.webView.loadUrl("javascript:myMove('145')") "G#2" -> binding.webView.loadUrl("javascript:myMoveSharp('145')") "A2" -> binding.webView.loadUrl("javascript:myMove('150')") "A#2" -> binding.webView.loadUrl("javascript:myMoveSharp('150')") "B2" -> binding.webView.loadUrl("javascript:myMove('155')") ........................... } i++ if (i < list.size) { handler.postDelayed(this, 555L) } } }) } })

在這里,我們每?jī)擅腌娪^察一次音符變化,對(duì)于列表中的每個(gè)音符,我們執(zhí)行 javascript 函數(shù)。myMove 函數(shù)內(nèi)部的值是注釋的垂直偏移量。

此項(xiàng)目的 GitHub 地址(https//github.com/farmaker47/Pitch_Estimator)。

此項(xiàng)目使用 Kotlin 語(yǔ)言,并且包括:

使用 Webview 和自定義 HTML 加載。

使用 TensorFlow 的 .tflite 模型文件:

數(shù)據(jù)綁定

MVVM 模式下的協(xié)程

Koin DI

改進(jìn)計(jì)劃

在應(yīng)用程序的 build.gradle 文件中,我們添加了特殊算子的依賴項(xiàng):

implementation ‘org.tensorflow0.0.0-nightly’

此依賴項(xiàng)導(dǎo)致最終的 .apk 文件體積膨脹。我們計(jì)劃通過僅選擇模型所需的算子,以此減少最終 .apk 的大小。

通過改進(jìn)算法,我們將能夠查看全音符,二分音符,休止符和其他音符。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 音頻
    +關(guān)注

    關(guān)注

    31

    文章

    3195

    瀏覽量

    85643
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8556

    瀏覽量

    137002
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    334

    瀏覽量

    62209

原文標(biāo)題:學(xué)習(xí)教程 | 用 TensorFlow Lite 和 SPICE 模型打造聽歌識(shí)譜 App

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用高密度內(nèi)存顯著優(yōu)化人工智能欺詐檢測(cè)的基礎(chǔ)設(shè)施成本

    人工智能欺詐檢測(cè)是金融科技公司的一項(xiàng)關(guān)鍵工作。欺詐監(jiān)控涉及多種機(jī)制,例如采用自然語(yǔ)言處理技術(shù)篩選通信中的可疑內(nèi)容、利用機(jī)器學(xué)習(xí)區(qū)分欺詐交易和合法交易,以及運(yùn)用分析技術(shù)區(qū)分正常用戶行為和
    的頭像 發(fā)表于 03-10 09:47 ?438次閱讀

    小鵬汽車正式加入荷蘭出行行業(yè)企業(yè)協(xié)會(huì)

    近日,小鵬汽車正式加入荷蘭出行行業(yè)企業(yè)協(xié)會(huì)(簡(jiǎn)稱“BOVAG”),成為該協(xié)會(huì)90年歷史上的首個(gè)中國(guó)車企成員。
    的頭像 發(fā)表于 02-11 13:51 ?355次閱讀

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)需避免的 7 個(gè)常見錯(cuò)誤與局限性

    無(wú)論你是剛?cè)腴T還是已經(jīng)從事人工智能模型相關(guān)工作一段時(shí)間,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中都存在一些我們需要時(shí)刻關(guān)注并銘記的常見錯(cuò)誤。如果對(duì)這些錯(cuò)誤置之不理,日后可能會(huì)引發(fā)諸多麻煩!只要我們密切關(guān)注數(shù)據(jù)、模型架構(gòu)
    的頭像 發(fā)表于 01-07 15:37 ?213次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>需避免的 7 個(gè)常見錯(cuò)誤與局限性

    穿孔機(jī)頂頭檢測(cè)機(jī)器視覺深度學(xué)習(xí)

    LX01Z-DG626穿孔機(jī)頂頭檢測(cè)儀采用深度學(xué)習(xí)技術(shù),能夠?qū)崿F(xiàn)頂頭狀態(tài)的在線實(shí)時(shí)檢測(cè),頂頭丟失報(bào)警,頂頭異常狀態(tài)報(bào)警等功能,響應(yīng)迅速,異常狀態(tài)視頻回溯,檢測(cè)頂頭溫度,配備吹掃清潔系統(tǒng)
    發(fā)表于 12-22 14:33

    Shell歷史命令history用法

    1. 顯示歷史命令列表 「介紹」:history 命令用于顯示當(dāng)前會(huì)話執(zhí)行過的命令的列表,以及每個(gè)命令對(duì)應(yīng)的編號(hào)。「示例代碼」:history 2. 使用歷史命令重復(fù)執(zhí)行命令 「介紹
    發(fā)表于 12-02 06:10

    Linux歷史上10件最有意義的大事,你知道幾件?

    個(gè)傳奇。 今天,我們就帶你回顧? Linux 發(fā)展史上最有意義的十件大事 ,看看它如何一步步改變了世界。 一、1991:Linus Torvalds發(fā)布第一版Linux內(nèi)核 1991 年 8 月,芬蘭
    的頭像 發(fā)表于 10-20 11:10 ?397次閱讀

    機(jī)器視覺檢測(cè)PIN針

    : 結(jié)合形態(tài)學(xué)處理、特征提?。ㄈ玳L(zhǎng)寬比、面積)及深度學(xué)習(xí)(針對(duì)復(fù)雜缺陷),自動(dòng)檢出彎曲、斷裂、變形、污染等。輸出與控制:實(shí)時(shí)顯示檢測(cè)結(jié)果(OK/NG)及具體參數(shù)數(shù)值。生成檢測(cè)報(bào)告,支持?jǐn)?shù)據(jù)追溯。NG品自動(dòng)剔除信號(hào)輸出,無(wú)縫對(duì)接產(chǎn)
    發(fā)表于 09-26 15:09

    創(chuàng)造歷史,芯和半導(dǎo)體成為首家獲得工博會(huì)CIIF大獎(jiǎng)的國(guó)產(chǎn)EDA

    作為國(guó)內(nèi)集成系統(tǒng)設(shè)計(jì)EDA專家,芯和半導(dǎo)體科技(上海)股份有限公司憑借其自主研發(fā)的3DIC Chiplet先進(jìn)封裝仿真平臺(tái)Metis,從五百多家參選企業(yè)脫穎而出,斬獲第二十五屆中國(guó)國(guó)際工業(yè)博覽會(huì)CIIF大獎(jiǎng),這也是該獎(jiǎng)項(xiàng)歷史上首次出現(xiàn)國(guó)產(chǎn)EDA的身影。
    的頭像 發(fā)表于 09-24 10:38 ?4903次閱讀
    創(chuàng)造<b class='flag-5'>歷史</b>,芯和半導(dǎo)體成為首家獲得工博會(huì)CIIF大獎(jiǎng)的國(guó)產(chǎn)EDA

    紅外光在機(jī)器視覺檢測(cè)的應(yīng)用

    短波紅外(SWIR)因其高靈敏度、高分辨率和適應(yīng)性強(qiáng),成為工業(yè)機(jī)器視覺和半導(dǎo)體檢測(cè)的重要光源。
    的頭像 發(fā)表于 08-27 09:51 ?814次閱讀
    紅外光在<b class='flag-5'>機(jī)器</b>視覺<b class='flag-5'>檢測(cè)</b><b class='flag-5'>中</b>的應(yīng)用

    博世80億美元收購(gòu)美國(guó)江森自控(Johnson Controls)暖通空調(diào)(HVAC)業(yè)務(wù)!博世歷史上最大收購(gòu)

    案,不僅鞏固了其在能源與建筑技術(shù)領(lǐng)域的全球市場(chǎng)領(lǐng)導(dǎo)地位,還有效降低了對(duì)近年來(lái)表現(xiàn)疲軟的汽車零部件業(yè)務(wù)的依賴,更標(biāo)志著博世在能源與建筑技術(shù)領(lǐng)域的戰(zhàn)略布局邁出了關(guān)鍵一步。 博世集團(tuán)董事會(huì)主席史蒂凡·哈通(Stefan Hartung)表示:“通過這項(xiàng)集團(tuán)歷史上規(guī)
    的頭像 發(fā)表于 08-04 18:17 ?2645次閱讀
    博世80億美元收購(gòu)美國(guó)江森自控(Johnson Controls)暖通空調(diào)(HVAC)業(yè)務(wù)!博世<b class='flag-5'>歷史上</b>最大收購(gòu)

    FPGA在機(jī)器學(xué)習(xí)的具體應(yīng)用

    ,越來(lái)越多地被應(yīng)用于機(jī)器學(xué)習(xí)任務(wù)。本文將探討 FPGA 在機(jī)器學(xué)習(xí)的應(yīng)用,特別是在加速神經(jīng)網(wǎng)
    的頭像 發(fā)表于 07-16 15:34 ?2912次閱讀

    機(jī)器學(xué)習(xí)異常檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常檢測(cè)系統(tǒng)

    本文轉(zhuǎn)自:DeepHubIMBA無(wú)監(jiān)督異常檢測(cè)作為機(jī)器學(xué)習(xí)領(lǐng)域的重要分支,專門用于在缺乏標(biāo)記數(shù)據(jù)的環(huán)境識(shí)別異常事件。本文深入探討異常檢測(cè)
    的頭像 發(fā)表于 06-24 11:40 ?1443次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>異常<b class='flag-5'>檢測(cè)</b>實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常<b class='flag-5'>檢測(cè)</b>系統(tǒng)

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用

    : 一、機(jī)器人視覺:從理論到實(shí)踐 第7章詳細(xì)介紹了ROS2在機(jī)器視覺領(lǐng)域的應(yīng)用,涵蓋了相機(jī)標(biāo)定、OpenCV集成、視覺巡線、二維碼識(shí)別以及深度學(xué)習(xí)目標(biāo)
    發(fā)表于 05-03 19:41

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】+ROS2應(yīng)用案例

    的應(yīng)用。書中詳細(xì)介紹了如何在ROS 2實(shí)現(xiàn)二維碼識(shí)別,包括二維碼掃描庫(kù)Zbar的使用,以及如何通過相機(jī)識(shí)別二維碼。 通過學(xué)習(xí)這一部分,我了解到二維碼識(shí)別的基本原理和實(shí)現(xiàn)步驟。首先,需
    發(fā)表于 04-27 11:42

    日賺1.1億,營(yíng)收超特斯拉!比亞迪史上最強(qiáng)財(cái)報(bào)兩大看點(diǎn)

    (電子發(fā)燒友網(wǎng)報(bào)道 文/章鷹)3月24日,比亞迪發(fā)布2024年度財(cái)報(bào),這次財(cái)報(bào)堪稱歷史上最好的財(cái)報(bào),公司2024年實(shí)現(xiàn)營(yíng)業(yè)收入7771.02億元(1069億美元),同比增長(zhǎng)29.02%,這是比亞迪
    的頭像 發(fā)表于 03-28 01:00 ?4493次閱讀
    日賺1.1億,營(yíng)收超特斯拉!比亞迪<b class='flag-5'>史上</b>最強(qiáng)財(cái)報(bào)兩大看點(diǎn)