• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      JNI技術在基于OpenCV的人臉與微笑檢測中的應用

      2017-03-06 00:19:10王嘉鑫鄒科文陳義明
      軟件導刊 2017年1期
      關鍵詞:人臉檢測

      王嘉鑫+鄒科文+陳義明

      摘要摘要:人臉識別技術是當前人工智能中較為熱門的一個分支,已經(jīng)有許多開源的視覺庫為其奠定了良好基礎,如OpenCV等,然而OpenCV在Java環(huán)境下有諸多不便。為了解決這一問題,介紹了JNI技術,以及在Java環(huán)境下,如何通過JNI調(diào)用OpenCV庫實現(xiàn)人臉與微笑檢測。實驗結果表明,將JNI應用于Java虛擬機的人臉檢測,可獲得更高的人臉檢測速度。

      關鍵詞關鍵詞:OpenCV;人臉檢測;微笑檢測;JNI

      DOIDOI:10.11907/rjdk.162330

      中圖分類號:TP319文獻標識碼:A文章編號文章編號:16727800(2017)001011502

      隨著人工智能技術的發(fā)展,機器學習、計算機視覺等領域也逐漸成為計算機科學中的熱點問題,人臉檢測便是計算機視覺中的一個分支。OpenCV作為一個開源的視覺庫,提供了不少關于人臉檢測的模型與處理接口,而大部分接口與算法均采用C/C++語言編寫。Java雖有其跨平臺的巨大優(yōu)勢,但是這種特性也給Java帶來了局限性,在調(diào)用動態(tài)數(shù)據(jù)庫文件時存在不便。因此,通過JNI工具,可以利用C/C++語言的特性彌補Java的不足[13]。

      1相關技術原理

      1.1JNI技術分析

      JNI(Java Native Interface)提供了若干API 實現(xiàn)Java與其它語言的通信(主要是C/C++)。從Java 1.1開始,JNI標準成為Java平臺的一部分,它允許Java和其它語言編寫的代碼進行交互。然而使用Java與本地已編譯的代碼交互,通常會喪失平臺可移植性[45]。

      通常遇到以下幾種情況需要使用JNI:①所開發(fā)的程序需要用到其它平臺屬性,但在Java的標準庫中不支持此屬性;②程序?qū)τ谶\行效率要求較高,因此希望能用較低級的語言(如C/C++)來實現(xiàn);③Java已經(jīng)擁有實現(xiàn)需要的程序和庫,希望C/C++對其直接進行調(diào)用[67]。

      1.2JNI技術架構

      JNI允許運行在Java虛擬機上的應用程序調(diào)用其它語言(如C/C++語言)來編寫需要的方法或類庫,也能將Java虛擬機嵌入到本地應用程序中。

      圖1是JNI在本地應用程序與Java應用之間各自扮演的角色圖。從圖中可以看出,JNI作為Java與C/C++函數(shù)庫之間的橋梁,可以實現(xiàn)Java代碼與C/C++庫函數(shù)當中本地代碼之間的交互。然而JNI沒有改變Java語言的屬性,只是讓Java語言擁有一種能夠?qū)ν庹{(diào)用的形式[89]。

      1.3OpenCV介紹

      OpenCV(Open Source Computer Vision Library)是一個基于BSD許可發(fā)行的跨平臺計算機視覺庫。它輕量而且高效,由C函數(shù)與C++類構成,同時提供了Python、Java等語言的接口,可實現(xiàn)圖像處理和計算機視覺方面的很多通用算法。OpenCV中對于人臉的檢測方法是基于處理成的灰度圖像的弱特征檢測方法。該方法建立在Haar特征[10]檢測方法基礎上,可以獲得檢測人臉的實時處理速度。

      OpenCV中也提供了訓練分類器[1112]的程序及方法來檢測特征。使用者可以將此方法應用于一些項目中的二次開發(fā),比如雙目視覺的三維重構、物體識別,協(xié)助機器人完成復雜任務,以及在智能監(jiān)控中的人臉檢測、智能交通中的行人檢測等。

      2開發(fā)工具選擇

      選用的工具是eclipse,Java版本為JDK1.7,C++使用的是VS2010。另外PC端需要具備內(nèi)置或外置攝像頭,PC機配置為Inter Core i5-3230M CPU 2.6GHz。

      3實現(xiàn)過程

      從圖2中編寫JNI代碼的大致步驟可以看出Java需要將字節(jié)碼文件通過javah生成頭文件,再與C代碼共同生成動態(tài)鏈接庫,進而與Java中的代碼進行交互。

      3.4人臉檢測實驗結果

      實驗結果如圖3以及表1所示,Java捕獲的圖像上會圈出特征檢測出的人臉,并在控制臺輸出人臉的X、Y坐標以及微笑值。微笑值越高代表被檢測的人臉表情越開心。表2使用JNI檢測明顯比單獨從Java視頻流中獲取圖像檢測人臉速度更快。因此,將JNI應用于Java虛擬機的人臉檢測中,可以幫助后臺進行高效的圖片信息處理。

      第1期 侯賀,馬林,鄭偉:基于大數(shù)據(jù)的微課評價模型研究軟 件 導 刊2017年標題

      猜你喜歡
      人臉檢測
      基于人臉特征定位的SNS網(wǎng)站應用組件研究與設計
      基于Android平臺的人臉識別系統(tǒng)設計與實現(xiàn)
      基于Matlab的人臉檢測實驗設計
      基于交互式隨機動作的人臉活體檢測
      軟件導刊(2015年12期)2016-01-05 06:16:44
      基于膚色模型與改進Adaboost算法的人臉檢測
      軟件導刊(2015年6期)2015-06-24 07:27:59
      基于JSeg和顯著性檢測的服裝圖像分割方法
      軟件導刊(2015年2期)2015-04-02 12:38:46
      武功县| 诏安县| 同仁县| 福贡县| 镇坪县| 佳木斯市| 宣城市| 石台县| 辰溪县| 定西市| 阜宁县| 临夏市| 宕昌县| 遵义市| 莒南县| 上蔡县| 宁武县| 页游| 广平县| 遂平县| 黑山县| 天祝| 治县。| 太原市| 彭泽县| 读书| 包头市| 苏尼特左旗| 鹿泉市| 开平市| 兴隆县| 车致| 宁远县| 定边县| 嘉定区| 屯留县| 乌兰浩特市| 睢宁县| 五家渠市| 中卫市| 宝丰县|