• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于深度學(xué)習(xí)的視頻檢索系統(tǒng)設(shè)計與實現(xiàn)

    2019-06-27 09:32:26
    計算機(jī)測量與控制 2019年6期
    關(guān)鍵詞:關(guān)鍵幀人臉檢索

    (1.華南理工大學(xué) 廣州學(xué)院,廣州 510800; 2.廣東經(jīng)傳多贏投資咨詢有限公司,廣州 510800)

    0 引言

    隨著通信和多媒體技術(shù)的迅速發(fā)展,數(shù)字視頻數(shù)據(jù)在互聯(lián)網(wǎng)上的傳播越來越廣,檢索和瀏覽海量的數(shù)字視頻數(shù)據(jù)成為一個十分困擾的問題,采用傳統(tǒng)的人工描述方法存在很大的弊端[1-2]。目前,國外的Google視頻分析云可以通過HTTP協(xié)議去提供restful風(fēng)格視頻分析API[3]。國內(nèi)的騰訊優(yōu)圖天眼利用計算機(jī)視覺以及深度學(xué)習(xí)技術(shù)去實現(xiàn)高精度且實時的人物重識別任務(wù)[4],北京大學(xué)彭宇新教授及其研究團(tuán)隊提出了視覺注意力驅(qū)動的圖像視頻分類與檢索研究、監(jiān)控視頻語義感知和服務(wù)系統(tǒng)研發(fā)及應(yīng)用示范[5-7]。

    在現(xiàn)有的視頻檢索技術(shù)上,缺少結(jié)構(gòu)化的描述,從而使得檢索時難以用精確的語言來表示它的特征[8]。為此,本文通過對視頻關(guān)鍵幀的識別、特征向量的提取,從而把無結(jié)構(gòu)化的視頻幀圖像中得出有用的信息以便于檢索。用戶在使用本系統(tǒng)的時候,只需要投入較少的人力即可大大地提高視頻的檢索效率[9-11]。

    1 系統(tǒng)架構(gòu)及體系

    本系統(tǒng)主要由4大模塊組成,分為鏡頭分割引擎、相似幀定位檢索引擎、目標(biāo)檢索引擎以及人臉檢索引擎,它們共同構(gòu)成了后端系統(tǒng)。整個后端系統(tǒng),模塊間只需縱向地對上層的網(wǎng)關(guān)接口層負(fù)責(zé),而無需橫向地和同級的模塊進(jìn)行交互。模塊與上層的網(wǎng)關(guān)接口之間使用基于Protobuf3的GRPC框架進(jìn)行通信。底層的數(shù)據(jù)庫引擎使用PostgreSQL數(shù)據(jù)庫、文件存儲文件系統(tǒng)為ext4。在宏觀角度上,本系統(tǒng)采用了B/S架構(gòu),與用戶的交互主要發(fā)生在Web瀏覽器上。前端UI的交互界面在MVVM架構(gòu)上使用ES6和VueJS進(jìn)行開發(fā)。系統(tǒng)架構(gòu)如圖1所示。

    圖1 系統(tǒng)架構(gòu)圖

    1.1 模塊微服務(wù)

    本系統(tǒng)的開發(fā)語言主要基于C++語言,Web處理層基于Go語言,前端使用ES6語言,還有部分涉及傳統(tǒng)機(jī)器學(xué)習(xí)的功能則使用Python開發(fā)。多語言的使用可以方便去發(fā)揮他們不同的長處,更好地去利用已有的資源進(jìn)行系統(tǒng)開發(fā),但多語言的使用會使得模塊間的通信調(diào)用變得復(fù)雜化。因此本系統(tǒng)利用Kong作為API網(wǎng)關(guān)、GRPC作為RPC框架、以HTTP2為底層的Protobuf數(shù)據(jù)傳輸格式去搭建本系統(tǒng)的微服務(wù)架構(gòu)。這樣既可以幫助開發(fā)者屏蔽跨語言模塊間遠(yuǎn)程調(diào)用的底層的復(fù)雜度,同時大大地降低系統(tǒng)模塊間的耦合度,提高系統(tǒng)的可擴(kuò)展性[12-14]。

    1.2 任務(wù)隊列

    在系統(tǒng)的運(yùn)行中,涉及到很多需要長時間計算的任務(wù),例如視頻幀切割、關(guān)鍵幀探測、人臉分類器訓(xùn)練等。采用傳統(tǒng)的同步方式去處理任務(wù),必然會導(dǎo)致系統(tǒng)的整體卡頓,從而影響用戶體驗。為了高效的利用硬件資源而又兼顧系統(tǒng)的穩(wěn)定,在ZeroMQ的基礎(chǔ)上設(shè)計了系統(tǒng)內(nèi)統(tǒng)一的任務(wù)隊列,如圖2所示。在隊列的角度來看,用戶的遠(yuǎn)程調(diào)用請求即是生產(chǎn)者生產(chǎn)的內(nèi)容,調(diào)度器會將其放入到等待任務(wù)隊列中去等待。當(dāng)系統(tǒng)模塊處理完任務(wù)后,會繼續(xù)去執(zhí)行等待隊列中的任務(wù)。通過任務(wù)隊列,系統(tǒng)就可以實現(xiàn)異步任務(wù)處理的功能。

    圖2 隊列處理流程圖

    1.3 前端UI架構(gòu)

    本系統(tǒng)的前端UI界面使用HTML5與CSS3,其中的前端邏輯層使用ES6語言編寫,設(shè)計模式是基于Vue.js的MVVM設(shè)計模式,利用Vue.js 和vue-router去創(chuàng)建單頁應(yīng)用,其中vue-router組件負(fù)責(zé)提供前端頁面的路由功能。在這基礎(chǔ)上,實現(xiàn)了前端頁面路由無刷新跳轉(zhuǎn),提示用戶體驗。由于前端UI項目經(jīng)常需要處理復(fù)雜的狀態(tài)管理,當(dāng)應(yīng)用遇到多個組件共享狀態(tài)時,傳統(tǒng)的傳參數(shù)據(jù)流動的方式會破壞視圖對狀態(tài)的單一依賴性,導(dǎo)致多層嵌套的組件的開發(fā)將會非常繁瑣,并且對于兄弟組件間的狀態(tài)傳遞無能為力,因此引入Vuex作為前端UI狀態(tài)管理的組件,如圖3所示。

    圖3 基于Vuex的數(shù)據(jù)流動圖

    在以上基礎(chǔ)上,就可以用數(shù)據(jù)去驅(qū)動前端的運(yùn)作。在底層的數(shù)據(jù)傳輸上,對于實時性要求低的數(shù)據(jù)請求,一般使用Restful風(fēng)格的HTTP接口。對于實時性要求比較高或需要服務(wù)端主動推送數(shù)據(jù)的接口,本系統(tǒng)獨(dú)立封裝一套Websocket協(xié)議。在前端組件的頁面路由分布上,安排如圖4所示:

    圖4 前端路由分布

    2 模塊的具體實現(xiàn)

    為了提高系統(tǒng)的運(yùn)行性能,在系統(tǒng)的核心功能實現(xiàn)上,使用C++ 11語言進(jìn)行開發(fā)。而在一些較為靈活的網(wǎng)絡(luò)中間層處理上,則使用Go語言開發(fā),前端界面則使用ES6開發(fā)。此外為了能夠充分地利用一些已有的開源機(jī)器學(xué)習(xí)庫,部分功能使用Python開發(fā)。通過多語言的混合式開發(fā),能夠充分地發(fā)揮不同語言的優(yōu)點(diǎn)并提高開發(fā)效率。

    2.1 視頻幀分割模塊

    視頻都是由一系列連續(xù)的圖像組成,所以本系統(tǒng)視頻處理最終還是要?dú)w結(jié)于圖像處理。因此,要實現(xiàn)后續(xù)的功能拓展類工作,必須先要對視頻進(jìn)行幀分割。本系統(tǒng)的分割工作主要依賴OpenCV庫。

    其中視頻幀分割模塊的頭文件定義如下:

    /* @brief 視頻幀分割

    * @param video_path 輸入視頻路徑

    * @param out_folder 輸出視頻幀圖像文件的文件夾路徑

    * @return 返回幀圖像文件列表

    */

    std::list extract(const std::string &video_path,const std::string &out_dir_path);

    視頻幀分割的流程如下:

    1) 根據(jù)輸入路徑構(gòu)建VideoCapture實例

    2) 從二進(jìn)制流中讀取幀數(shù)據(jù)

    3) 把幀數(shù)據(jù)轉(zhuǎn)碼為JPG格式并按照系統(tǒng)的約定規(guī)則存放到相應(yīng)的路徑

    4) 把分割的記錄數(shù)據(jù)存入PostgreSQL數(shù)據(jù)庫

    2.2 視頻關(guān)鍵幀提取模塊的實現(xiàn)

    視頻關(guān)鍵幀提取模塊是在OpenCV的直方圖計算相關(guān)靜態(tài)方法上使用C++去實現(xiàn)的。對于一個已分割的視頻,可以從數(shù)據(jù)庫中讀取出相關(guān)的分割結(jié)果,然后把視頻序列以動態(tài)數(shù)組的形式送入提取器,提取器再調(diào)用系統(tǒng)中的shot_detector::shot_bound方法去調(diào)用。本方法在頭文件中的定義如下:

    /* @brief 通過對比當(dāng)前幀和前一幀去判斷是否檢測到了一個鏡頭,檢測鏡頭返回true,否則返回false

    * @param curr_frame 當(dāng)前幀矩陣

    * @param prev_frame 前一幀矩陣

    * @param threshold 閥值,默認(rèn)為0.7

    * @return 如果兩個圖像矩陣不屬于同一個鏡頭返回true,否則返回false */

    bool shot_bound(const cv::Mat& curr_frame, const cv::Mat& prev_frame, double threshold = 0.7);

    在具體的實現(xiàn)上,相鄰兩幀的圖像矩陣以引用指針的形式傳入方法中,然后使用cv::resize方法進(jìn)行一定的縮放,以防止單點(diǎn)計算量過大,接著使用cv::cvtColor進(jìn)行灰度圖的轉(zhuǎn)換,再使用cv::calcHist進(jìn)行直方圖計算,最后規(guī)一化后會利用cv::compareHist進(jìn)行相似度比較。當(dāng)相似度超過threshold指定的閾值后,則認(rèn)為此相鄰的兩幀是處于同一個鏡頭的。經(jīng)測量,本系統(tǒng)選擇了0.7作為默認(rèn)的閾值。若發(fā)現(xiàn)shot_detector::shot_bound方法返回的對比結(jié)果為false,則說明這兩個相鄰的幀是處于不同的鏡頭當(dāng)中,系統(tǒng)會把后一幀記為一個新鏡頭的起點(diǎn),即把視頻幀實體的is_shot_frame字段設(shè)為true。

    2.3 視頻關(guān)鍵幀非對稱相似檢索模塊的實現(xiàn)

    視頻關(guān)鍵幀非對稱相似檢索模塊的實現(xiàn)由C++語言開發(fā),其中依賴的庫有OpenCV、VLFeat和Yael庫。利用OpenCV的圖像矩陣和顏色空間的相關(guān)方法進(jìn)行關(guān)鍵幀的基礎(chǔ)圖像解析。由于OpenCV自帶的SIFT功能沒有充分利用到CPU的浮點(diǎn)運(yùn)算指令,本系統(tǒng)選用了VLFeat庫去提取SIFT特征向量,它可以利用諸如AVX等向量運(yùn)算指令集。Yael主要用于建立Fisher Vector。

    2.3.1 SIFT特征向量提取

    對于一個輸入的關(guān)鍵幀圖片路徑,系統(tǒng)提供sift_feat:: get_keypoints_and_descriptors方法去從圖像文件中計算得出關(guān)鍵點(diǎn)和描述算子,如果獲取成功則返回true,否則返回false。

    /* 根據(jù)圖像去獲取其關(guān)鍵點(diǎn)和描述算子。如果獲取成功,則返回true。

    * @param image_path 圖像路徑

    * @param divide_512 如果為真,則描述算子元素會處于0~1之間

    * @param keypoints 關(guān)鍵點(diǎn)包含x,y,s,o信息。向量中每一個元素都是作為一個關(guān)鍵點(diǎn)

    * @param descriptors 向量中每一個元素都是作為相對于關(guān)鍵點(diǎn)的描述算子。

    * @param num_descriptor 輸出的描述子數(shù)量

    */

    static bool get_keypoints_and_descriptors(

    const char *image_path, bool divide_512,

    std::vector& keypoints,

    std::vector& descriptors, uint& num_descriptor);

    其中的提取流程如下:

    1) 利用cv::imread讀取圖形文件為圖形矩陣數(shù)據(jù);

    2) 把cv::Mat類型的數(shù)據(jù)轉(zhuǎn)換為std::uint32類型的一維的像素向量;

    3) 用函數(shù)vl_sift_new()初始化SIFT過濾器對象;

    4) 用函數(shù)vl_sift_first_octave()及vl_sift_process_next()遍歷縮放空間的每一階,直到返回VL_ERR_EOF為止;

    5) 對于縮放空間的每一階,用函數(shù)vl_sift_detect()來獲取關(guān)鍵點(diǎn);

    6) 對每個關(guān)鍵點(diǎn),用函數(shù)vl_sift_calc_keypoint_orientations()來獲取該點(diǎn)的方向;

    7) 對關(guān)鍵點(diǎn)的每個方向,用函數(shù)vl_sift_calc_keypoint_descriptor()來獲取該方向的描述;

    8) 最后,用函數(shù)vl_sift_delete()來釋放資源。

    2.3.2 GMM聚類參數(shù)訓(xùn)練

    在構(gòu)建全局索引前,需要利用INRIA提供的假日數(shù)據(jù)集去進(jìn)行GMM聚類參數(shù)的訓(xùn)練。假日數(shù)據(jù)集是一組圖像,主要包含一些國外景點(diǎn)的假日照片。其中圖片包含著多種的變化,例如旋轉(zhuǎn)、視點(diǎn)和光照變化、模糊等。數(shù)據(jù)集包括非常多種高分辨率的場景類型(自然、人造、水和火效果等)。數(shù)據(jù)集包含500個圖像組,每個圖像組代表不同的場景或?qū)ο蟆C總€組的第一個圖像是查詢圖像,其余為該圖像的變化。

    2.3.3 全局索引建立

    本系統(tǒng)的索引建立在gmm參數(shù)訓(xùn)練后,利用yael的fisher 向量轉(zhuǎn)換功能實現(xiàn)。其中的流程如下:

    1)遍歷數(shù)據(jù)庫中的視頻幀表,根據(jù)is_shot和img_path字段去獲取關(guān)鍵幀相應(yīng)的圖像,然后利用vfleat進(jìn)行逐個關(guān)鍵幀建立siftb特征文件

    2)加載上一步建立的gmm參數(shù)

    3)利用yael的fisher方法去進(jìn)行fisher 向量建立

    4)合并多個fisher向量為一個矩陣并進(jìn)行序列化保存

    當(dāng)系統(tǒng)接收到一個非對稱相似視頻幀檢索請求時,會把請求圖片轉(zhuǎn)換為fisher向量化的sift特征,然后和全局索引進(jìn)行遍歷對比。對比得分進(jìn)行排序并返回給用戶。

    2.4 人臉檢索模塊的實現(xiàn)

    在使用人臉檢索功能前,需要進(jìn)行人臉預(yù)標(biāo)注庫的建立。

    其中人物的實體結(jié)構(gòu)體定義如下:

    struct person {

    std::uint32 person_id;

    std::string name; //人物姓名

    std::string description; //描述

    std::uin32 created_at; //創(chuàng)建時間

    std::uint32 modified_at; //修改時間

    }

    人臉實體結(jié)構(gòu)體定義如下:

    struct person_face {

    std::uint32 person_face_id;

    std::uint32 person_id; //人物ID

    std::string img_path; //人物的單人照片路徑

    std::uin32 created_at; //創(chuàng)建時間

    std::uint32 modified_at; //修改時間

    }

    2.4.1 基于的HOG和SVM的人臉探測的實現(xiàn)

    為了提高人臉探測的速度,本系統(tǒng)在OpenCV上,使用基于HOG(Histogram of Oriented Gradient)特征的人臉探測方法。構(gòu)建一個基于HOG的人臉探測器,實際上就是利用人臉數(shù)據(jù)的HOG特征去訓(xùn)練一個SVM分類器。其中的構(gòu)建流程如下:

    1)利用加州理工學(xué)院互聯(lián)網(wǎng)人臉數(shù)據(jù)集(Caltech Web Faces)的13436張各種不同角度的36×36的人臉裁剪照片作為正樣本。對于負(fù)樣本,我們采用多尺度非人臉場景中隨機(jī)裁剪36×36的圖片,其中負(fù)樣本的數(shù)量為85000個。然后以cell等于 4為參數(shù),利用OpenCV的HOGDescriptor去提取樣本的HOG特征。

    2)利用OpenCV的CvSVM::CvTermCriteria定義迭代,終止條件為當(dāng)?shù)鷿M1000次或誤差小于FLT_EPSILON。利用CvSVM::CvSVMParams去指定SVM分類器的核函數(shù)為線性函數(shù)、松弛因子為0.01。最后使用CvSVM::train方法進(jìn)行訓(xùn)練迭代并使用save方法進(jìn)行svm模型保存。

    2.4.2 基于Dlib的臉部編碼的實現(xiàn)

    本系統(tǒng)的臉部編碼是基于Dlib庫并使用Python語言實現(xiàn),其編碼流程如下:

    1)利用dlib.deserialize方法加載預(yù)訓(xùn)練的FaceNet模型;

    2)使用dlib.compute_face_descriptor方法計算臉部的特征向量。

    2.4.3 基于KNN人臉分類器的實現(xiàn)

    當(dāng)要對某一個視頻進(jìn)行人臉檢索前,需要提前對其中包含的人臉特征值提取然后加載到knn中并以person_id作為標(biāo)簽去訓(xùn)練一個KNN分類器。訓(xùn)練過程依賴于scikit-learn,過程如下:

    1)從數(shù)據(jù)庫中加載預(yù)標(biāo)注人臉庫,以X作為人臉特征矩陣,Y作為person_id的標(biāo)簽矩陣

    2)以參數(shù)algorithm=knn_algo、weights='distance',然后利用sklearn.KNeighborsClassifier方法進(jìn)行KNN分類器的訓(xùn)練

    2.5 基于darknet的物體檢測實現(xiàn)

    本系統(tǒng)的目標(biāo)檢測引擎主要在視頻關(guān)鍵幀上匹配出已出現(xiàn)過的常見物體,物體檢測是基于darknet引擎。在深度神經(jīng)網(wǎng)絡(luò)模型上,選用已預(yù)先訓(xùn)練好的yolov3.weights模型。由于darknet本身是基于C語言編寫的,其在面向?qū)ο蠓矫鏁容^弱,所以本系統(tǒng)使用C++將其進(jìn)行封裝。

    其中的封裝中,提供了如下方法:

    ·static Darknet* get_current()

    說明:返回利用單例模式返回darknet的實例

    ·Darknet()

    說明:darknet的構(gòu)造方法,構(gòu)造返回darknet實例

    ·~Darknet()

    說明:darknet的析構(gòu)方法,清理darknet所占用的資源

    ·void initialize(int gpu_id = 0)

    說明:初始化方法,其中可以指定是否啟用GPU去進(jìn)行加速運(yùn)算,同時它也會負(fù)責(zé)加載模型文件

    ·void run()

    說明:運(yùn)行darknet監(jiān)聽線程。使得整個的檢測工作可以使用異步方式去工作,從而防止系統(tǒng)因長時間運(yùn)算而導(dǎo)致的停機(jī)狀態(tài)

    ·void process(cv::Mat& image, process_func_ptr process_func = nullptr)

    說明:圖像物體檢測方法。其中它會把OpenCV類型的圖像矩陣送進(jìn)去隊列中去等待處理。消費(fèi)者對象會根據(jù)指定的算法去進(jìn)行物體的檢測

    3 運(yùn)行與測試

    3.1 系統(tǒng)運(yùn)行環(huán)境

    表1 系統(tǒng)運(yùn)行軟件版本需求

    3.2 系統(tǒng)運(yùn)行流程

    系統(tǒng)首次啟動時,需要完成以下流程的開啟:

    1)導(dǎo)入系統(tǒng)數(shù)據(jù)庫表;

    2)開啟PostgreSQL數(shù)據(jù)庫;

    3)需要在HOME目錄下新建vrs_storage目錄;

    4)修改系統(tǒng)根目錄下的config.yaml文件進(jìn)行配置。

    3.3 實驗結(jié)果與分析

    為了驗證本系統(tǒng)的性能,對CNN于2018年12月20-26日發(fā)布在youtube上的新聞短片分別進(jìn)行了非對稱相似幀檢索、視頻人物檢索及物體檢索等檢索實驗。各檢索結(jié)果及數(shù)據(jù)分析如下:

    3.3.1 視頻非對稱相似幀檢索:

    視頻來源:CNN

    鏈接:youtube

    視頻:Who's been naughty and nice in 2018 politics | With Chris Cillizza

    檢索圖片的來源: 視頻《Who's been naughty and nice in 2018 politics | With Chris Cillizza》的第164秒

    檢索結(jié)果數(shù):100

    檢索結(jié)果如圖5所示,檢索信息如表2所示。從表2可知,近距離全屏拍攝檢索的耗時最長,主要是因為近距離全屏拍攝時,待檢索照片像素較高,數(shù)據(jù)量大,圖像預(yù)處理耗時較長,但在檢索的100個結(jié)果中,對應(yīng)的圖片排在第1位。相反,雖然遠(yuǎn)距離全屏拍攝的耗時最短,但檢索結(jié)果卻排在第8位,說明待檢索照片圖像預(yù)處理耗時較短,但同時會在檢索過程中跟其他類似的圖片有較高的匹配度。整體上,視頻非對稱相似幀檢索都能在預(yù)期的時間上檢索出所需要的圖片。

    圖5 視頻非對稱相似幀檢索結(jié)果圖

    檢索結(jié)果檢索類型 檢索結(jié)果位置耗時/s近距離整屏拍攝14.2遠(yuǎn)距離半屏拍攝13.54遠(yuǎn)距離全屏拍攝83.28

    3.3.2 人臉檢索和物體檢索實驗數(shù)據(jù)

    數(shù)據(jù): 2018年12月20日-2018年12月26日 CNN發(fā)布于youtube上的新聞短片;

    總時長:29 815秒;

    總幀數(shù):29 815;

    關(guān)鍵幀數(shù):2 535.

    檢索結(jié)果如表3和表4的所示。

    表3 物體檢索信息表

    表4 人臉檢索信息表

    由表3可知,人類檢索結(jié)果的數(shù)據(jù)及準(zhǔn)確率最高,狗的準(zhǔn)確率最低。由于人類的檢測算法相對較成熟,而對于一些特征及背景較復(fù)雜物體,則會出現(xiàn)相對較大的誤檢索。由表4可知,檢索準(zhǔn)確率取決于人臉的特征值及人臉訓(xùn)練度,特征值或訓(xùn)練度高的,則檢索準(zhǔn)確率也會相應(yīng)的增高。

    4 結(jié)束語

    本文探索了如何結(jié)合傳統(tǒng)的圖像處理算法和深度學(xué)習(xí)去構(gòu)建一個視頻檢索系統(tǒng)。通過B/S架構(gòu)可以讓用戶直接使用Web瀏覽器進(jìn)行檢索,也可以方便的部署到云端、充分利用云計算服務(wù)商提供的相對低廉的機(jī)器成本、快速伸縮和多容器備災(zāi)等特性。另一方面通過模塊間的耦合度底且模塊與上層的通信使用基于HTTP2的Protobuf協(xié)議的GRPC實現(xiàn),實現(xiàn)了模塊間分布式部署的可能。在后續(xù)的改進(jìn)上,可以嘗試?yán)蒙疃裙K惴ㄟM(jìn)行檢索工作,這樣就可以利用深度神經(jīng)網(wǎng)絡(luò)里面的隱藏層自動地提取特征信息,另外,還可以利用語音識別等技術(shù),生成語義性更好的文本關(guān)鍵詞或標(biāo)簽等信息。

    猜你喜歡
    關(guān)鍵幀人臉檢索
    有特點(diǎn)的人臉
    2019年第4-6期便捷檢索目錄
    三國漫——人臉解鎖
    動漫星空(2018年9期)2018-10-26 01:17:14
    基于改進(jìn)關(guān)鍵幀選擇的RGB-D SLAM算法
    基于相關(guān)系數(shù)的道路監(jiān)控視頻關(guān)鍵幀提取算法
    專利檢索中“語義”的表現(xiàn)
    專利代理(2016年1期)2016-05-17 06:14:36
    基于聚散熵及運(yùn)動目標(biāo)檢測的監(jiān)控視頻關(guān)鍵幀提取
    馬面部與人臉相似度驚人
    論“關(guān)鍵幀”在動畫制作中的作用
    長得象人臉的十種動物
    奇聞怪事(2014年5期)2014-05-13 21:43:01
    阿巴嘎旗| 闵行区| 上饶县| 宝坻区| 武义县| 茶陵县| 龙海市| 汤阴县| 罗江县| 南靖县| 仪征市| 二连浩特市| 博罗县| 襄城县| 桃江县| 南丹县| 兴安县| 达州市| 沙洋县| 仙居县| 榆树市| 五寨县| 台中市| 兖州市| 朝阳市| 山东| 汉源县| 兰考县| 大同县| 庄浪县| 秦皇岛市| 乌兰县| 封丘县| 威远县| 巴彦县| 西昌市| 曲水县| 南通市| 晋宁县| 根河市| 巫山县|